Estoy tratando de calcular la distorsión para poder distorsionar el texto superpuesto y los formularios para que coincidan con precisión con la imagen de una proyección equirrectangular.
Entonces, ¿cómo se calcula la distorsión en una latitud dada en una proyección equirectangular 1: 45,000,000 (por ejemplo, 2000 píxeles de ancho x 1000 píxeles de alto)?
He estado tratando de resolver esta publicación y sus enlaces en vano: ¿Cómo crear una Tissot Indicatrix precisa?
No soy un profesional, solo un aficionado muy interesado, ¡así que por favor muéstrenlo!
¡Muchas gracias!
Gracias por las prontas respuestas! Aquí está la larga historia; Espero que sea más claro.
Estoy visualizando / mapeando datos usando el lenguaje de programación Processing y me gustaría que los datos mapeados en 2D (fuentes y círculos de diferentes tamaños) aparezcan sin distorsión cuando se envuelvan en un globo 3D. Los datos se mapean usando x, y's equirrectangulares y los mapas que quiero usar como telones de fondo son toda esta proyección, por lo que supongo que quiero "igualar" esta distorsión (por ejemplo, ¿calculando la distorsión a través de la latitud usando ecuaciones de Tissot?). Usando el lenguaje de programación, puedo distorsionar con precisión tanto el texto como los círculos. Creo que todo lo que necesito son las ecuaciones para hacerlo correctamente.
Aquí está el mapa de datos 2D original:
Cuando está envuelto se ve distorsionado, así:
La pregunta de $ 10,000: ¿Cómo puedo hacer que mi imagen 2D se vea sin distorsión cuando se envuelve en la esfera 3D?
Como referencia, aquí está la misma pregunta hecha de manera diferente en el foro de procesamiento.
¡Gracias de nuevo!
Si te entiendo correctamente, no estoy seguro de querer volver a proyectar a una proyección ortográfica. Quiero que mi mapa de datos 2D se ajuste a un modelo de esfera 3D con el que se pueda interactuar (es decir, girar).
Estoy usando un programa de modelado 3D (Cinema 4D) para envolver una esfera con una imagen de "Mármol Azul" de 2MB (proyección equirectangular) de la NASA.
Cuando está envuelto, aparece sin distorsión de todos los hemisferios (¿no solo de un hemisferio, como lo sería una proyección ortográfica?), Vea: todavía del modelo 3D anterior. (Supongo que el programa de modelado está haciendo la proyección ortográfica para mí a medida que giro el objeto). Por lo tanto, creo que si distorsiono mi mapa de datos 2D de manera similar, también aparecerá sin distorsión en la esfera 3D. Aquí hay una foto que tomé con una ecuación que se aproxima a la distorsión equirectangular. Notarás que las elipses en forma de huevo de la imagen 2D se ven como un círculo cuando se envuelven en la esfera 3D. Del mismo modo, las elipses de Tissot también aparecen como círculos en la esfera 3D.
Es por eso que estaba mirando las ecuaciones de Tissot ... para descubrir con mayor precisión la distorsión de la proyección equirrectangular en diferentes latitudes para poder distorsionar mi superposición en consecuencia.
Espero que todo esto tenga sentido.
Quizás tengas razón en que debería usar un programa SIG. Acabo de descargar Cartographica y veré si puedo resolverlo. ¿Alguna sugerencia de software para Mac para un novato que realiza esta tarea?
Gracias de nuevo.
fuente
Respuestas:
Las coordenadas de la imagen son latitud y longitud, por lo que
(a) Desproyecte y reproyecte usando una proyección ortográfica o vertical del lado cercano (es decir, proyecciones que se parecen al mundo desde el espacio) o
(b) Haga un mapa de textura en un modelo 3D de una esfera usando lat-lon como coordenadas de textura y visualice esa esfera con un dispositivo de representación de gráficos 3D.
La mayoría de los SIG hacen (a) rutinariamente. Para ilustrar (b), aquí hay un conjunto de imágenes derivadas del mapa "plano" en la pregunta tomada desde un punto de vista que orbita la esfera mapeada de textura:
(Si observa de cerca la imagen más a la derecha, puede ver un meridiano prominente a través del Océano Pacífico: esta es la "costura" formada al unir los lados izquierdo y derecho del mapa).
El comando básico de Mathematica para producir uno de estos es
Esto reduce el problema original (de dibujar "mapas de datos" en una esfera) para generar un mapa que muestre círculos correctamente. La mejor proyección para esto es la Estereográfica, porque proyecta todos los círculos en la esfera, sin importar su tamaño, en círculos en el mapa. Por lo tanto, un procedimiento para dibujar círculos grandes correctamente en una proyección equirrectangular , como se muestra en la pregunta, es crearlos en una proyección estereográfica y luego desproyectarlos a coordenadas geográficas (lat, lon). Usar (lon, lat) como (x, y) coordenadas cartesianas para hacer el mapa equivale a la proyección equirrectangular y, por lo tanto, es adecuado para mapear texturas en la esfera o para aplicar una proyección ortográfica.
Tenga en cuenta que los indicadores de Tissot no son adecuados como solución: solo representan distorsiones locales de círculos infinitesimales . Los círculos lo suficientemente grandes como para ver a escala global ya no aparecerán circulares en la mayoría de las proyecciones: sea testigo de su aparición en el mapa en la pregunta. Es por eso que jugar juegos con proyecciones, como se muestra aquí, es esencial para una buena solución.
fuente
Suponiendo que las formas que se dibujan cubren una pequeña porción de la esfera, debería ser capaz de escalar el ancho en 1 / cos (lat) y dejar solo la altura.
Sin embargo, cuanto más grande sea la forma y más cerca esté de los polos, menos funcionará.
fuente
No puedo entender cómo agregar un comentario, así que pondré esto en la solución y dejaré que los moderadores se esfuercen por averiguar por qué no puedo comentar.
Mi primera impresión al leer su pregunta fue "¿Por qué no diseña sus círculos en una proyección conforme como Mercator?". Podría proyectar este mapa en una proyección de Mercator y ver su distorsión de círculo y texto, arreglar todo para que se vea bien y cuando lo proyecte en su globo, las formas deben permanecer correctas (esa es la definición de una proyección conforme).
fuente
Vea, su primer mapa 2D no tiene características geográficas dibujadas. Agréguelos a este mapa (digamos el contorno de África) y aplique la distorsión en la que está pensando a todo de una vez. La geografía también se modificaría, y cuando la pones en la esfera, estaría mal. Por lo tanto, creo que esta idea de aplicar cierta distorsión no funcionaría.
Puede pasar en 2D dibujando gráficos en pequeños mapas 2D que tienen un área limitada y una distorsión aceptable. Puede cortar su mapa 2D en mosaicos y para cada mosaico usar su propia "mejor" proyección.
Por otro lado, es fácil crear puntos en un círculo geodésico de radio dado en el mapa 2D. Para eso, necesitaría encontrar una función que calcule el lat / long de un punto a una distancia dada y el acimut desde otro punto (busque "problema directo Vincenty"). Una vez que tenga eso, puede generar un montón de puntos equidistantes a una distancia dada del punto cambiando el acimut de 0 a 360. Hacer un polígono de esos puntos en 2D requiere más trabajo cuando el círculo geodésico contiene un polo o se intersecta límite izquierdo o derecho del mapa. Mira cómo pueden verse los círculos geodésicos en un mapa plano aquí .
fuente