¿Cómo se calcula la distorsión en la Proyección Equirectangular?

28

Estoy tratando de calcular la distorsión para poder distorsionar el texto y las formas superpuestas para hacer coincidir con precisión una imagen de una proyección equirectangular.

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 descubrir esta publicación y sus enlaces en vano: ¿Cómo crear un indicador Tissot preciso?

No soy un profesional, solo soy un aficionado muy interesado, ¡por favor, déjalo en paz para mí!

¡Muchas gracias!

Gracias por las respuestas rápidas! 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) no se distorsionen cuando se envuelven en un globo 3D. Los datos se asignan utilizando x, y equirectangular y los mapas que quiero usar como telones de fondo son todas estas proyecciones, así 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:

Cuandoestáenvueltosevedistorsionado,deestamanera:

La pregunta de los $ 10,000: ¿Cómo puedo hacer que mi imagen 2D se vea sin distorsión cuando se ajusta a la esfera 3D?

Para referencia, aquí está la misma pregunta preguntó de manera diferente en el foro de Procesamiento.

Gracias de nuevo!

Si te entiendo correctamente, no estoy seguro de querer volver a proyectar en 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 un 2MB Imagen de" Mármol azul " (proyección equirectangular) de la NASA.

Cuando está envuelto aparece sin distorsión de todos los hemisferios (no solo un hemisferio, como lo sería una proyección ortográfica?), vea: todavía del modelo 3D anterior. (El programa de modelado está haciendo la proyección ortográfica para mí cuando gire el objeto, supongo). 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á que las elipses en forma de huevo de la imagen 2D se ven como un círculo cuando se envuelven en la esfera 3D. De manera similar, las elipsis de Tissot también aparecen como círculos en la esfera 3D.

Esta es la razón por la que estaba mirando las ecuaciones de Tissot ... para descubrir con mayor precisión la distorsión de la proyección equirectangular en diferentes latitudes para poder distorsionar mi superposición en consecuencia.

Espero que todo esto tenga sentido.

Tal vez tienes razón en que debería usar un programa GIS. Acabo de descargar Cartographica y veré si puedo resolverlo. ¿Alguna sugerencia de software de Mac para un novato que realiza esta tarea?

Gracias de nuevo.

    
pregunta NCashew 28.06.2012 - 00:03

4 respuestas

5
  

¿Cómo puedo hacer que mi imagen 2D se vea sin distorsión cuando se ajusta a la esfera 3D?

Las coordenadas de la imagen son latitud y longitud, por lo que cualquiera de las dos

(a) Desproyectarlo y reproyectarlo usando una proyección ortográfica o vertical de lado cercano (es decir, proyecciones que se parecen al mundo desde el espacio) o

(b) Realice un mapa de texturas en un modelo 3D de una esfera usando lat-lon como las coordenadas de la textura y muestre 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 tomadas desde un punto de vista que orbita la esfera con textura de mapa:

(Siobservadecercalaimagendeladerecha,puedeverunmeridianoprominenteatravésdelOcéanoPacífico:estaesla"costura" formada al envolver los lados izquierdo y derecho del mapa).

El comando básico Mathematica para producir uno de estos es

SphericalPlot3D[1, {a, 0, \[Pi]}, {b, 0, 2 \[Pi]}, Mesh -> None, 
 PlotStyle -> {Texture[i]}, TextureCoordinateFunction -> ({#5, -#4} &), 
 Lighting -> {{"Ambient", White}}, 
 Boxed -> False, Axes -> False, Background -> Black]

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 el Estereográfico, porque proyecta todos los círculos en La esfera, sin importar su tamaño, a círculos en el mapa. Por lo tanto, un procedimiento para dibujar círculos grandes correctamente en una proyección Equirectangular , como se muestra en la pregunta, es crearlos en una proyección estereográfica y luego proyectarlos a coordenadas geográficas (lat, lon). El uso de (lon, lat) como (x, y) coordenadas cartesianas para hacer el mapa es equivalente a la proyección Equirectangular y, por lo tanto, es adecuado para el mapeado de texturas en la esfera o para aplicar una proyección ortográfica.

Tenga en cuenta que las indicatrices de Tissot no son adecuadas como solución: solo representan local distorsiones de infinitesimal . Los círculos lo suficientemente grandes como para verlos a escala global ya no aparecerán circulares en la mayoría de las proyecciones: atestigüen su apariencia de blobby 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.

    
respondido por el whuber 14.11.2013 - 17:30
2

Suponiendo que las formas que se están dibujando cubren una pequeña parte de la esfera, debería poder sobrevivir escalando el ancho en 1 / cos (lat) y dejando solo la altura.

Cuanto más grande sea la forma y cuanto más te acerques a los polos, tanto menos funcionará.

    
respondido por el smithkm 17.12.2012 - 19:43
0

No puedo averiguar cómo agregar un comentario, así que pondré esto en la solución y dejaré que los moderadores se apresuren a averiguar por qué no puedo comentar.

Mi primera impresión al leer tu pregunta fue "¿Por qué no estás diseñando tus círculos en una proyección conforme como Mercator?". Podría proyectar este mapa en una proyección de Mercator y ver su círculo y distorsión de 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).

    
respondido por el brenth 18.06.2013 - 17:18
0

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 que está pensando en todo a la 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 tener algo de distorsión aplicada no funcionaría.

Puede sobrevivir 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 un radio determinado en el mapa 2D. Para eso necesitarías encontrar una función que calcule la latitud / longitud de un punto a una distancia dada y el acimut desde otro punto (busca "problema directo Vincenty"). Una vez que obtenga eso, puede generar un montón de puntos equidistantes a una distancia determinada del punto cambiando el azimut de 0 a 360. Hacer un polígono a partir de esos puntos en 2D requiere más trabajo cuando el círculo geodésico contiene un polo, o interseca el límite izquierdo o derecho del mapa. Mira cómo se ven los círculos geodésicos en un mapa plano aquí .

    
respondido por el 0kcats 14.11.2013 - 07:30

Lea otras preguntas en las etiquetas