Líneas de gran círculo en proyección equirectangular


12

Solo para comprobar que estoy en el camino correcto:

¿Están todos los círculos grandes en la esfera y en proyección equirectangular (es decir, pares de latitud y longitud):

  1. meridianos (es decir, ir de polo a polo)
  2. de la forma tan latitude = sin360(longitude + rotation) * amplitude + offset

(con restricciones adicionales en las combinaciones de desplazamiento / amplitud, obviamente, todas las rutas de círculos grandes con una amplitud de 0 también tienen desplazamiento 0, el ecuador).

¿O hay caminos de gran círculo que no encajan en este esquema (de nuevo, solo en un sistema de coordenadas de longitud-latitud, no en otras proyecciones de mapas).

Nota: tanAgregué lo anterior después de publicar la pregunta, en respuesta a una excelente respuesta. Resulta que offsetentonces siempre es 0.


El Formulario # 2 no es un conjunto de pares (latitud, longitud). Qué significa eso? ¿Y por qué depende de tres parámetros ( rotation, amplitudey offset) cuando los grandes círculos tienen naturalmente solo dos parámetros (cada uno corresponde a un par de puntos diametralmente opuestos que son "polares")?
whuber

Sí, uno es redundante, pero no tengo la fórmula lista. Como se señaló, amplitude==0implica offset=0; estos dos están obviamente acoplados. Vea la pregunta actualizada para los desaparecidos latitudepara que la relación esté bien formada.
Erich Schubert

Respuestas:


11

Aunque las geodésicas se parecen un poco a las ondas sinusoidales en algunas proyecciones, la fórmula es incorrecta.

Aquí hay una geodésica en una proyección equirectangular. Claramente no es una onda sinusoidal:

ingrese la descripción de la imagen aquí

(La imagen de fondo está tomada de http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg .)

Debido a que todas las proyecciones equirectangulares son transformaciones afines de esta (donde la coordenada x es la longitud y la coordenada y es la latitud), y las transformaciones afines de ondas sinusoidales siguen siendo ondas sinusoidales, no podemos esperar ninguna geodésica en ninguna forma de La proyección equirrectangular es ondas sinusoidales (excepto el ecuador, que se traza como una línea horizontal). Entonces, comencemos por el principio y busquemos la fórmula correcta.

Deje que la ecuación de tal geodésica tenga la forma

latitude = f(longitude)

para que se encuentre una función f . (Este enfoque ya se ha dado por vencido en los meridianos, que no pueden escribirse de esa forma, pero por lo demás es completamente general). La conversión a coordenadas cartesianas 3D (x, y, z) da

x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))

donde l es la longitud y se supone un radio unitario (sin pérdida de generalidad). Dado que las geodésicas en la esfera son intersecciones con planos (que pasan por su centro), debe existir un vector constante (a, b, c), que se dirige entre los polos de la geodésica, para lo cual

a x + b y + c z = 0

no importa cuál sea el valor de l . Resolver para f (l) da

f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)

siempre que c sea ​​distinto de cero. Evidentemente, cuando c se aproxima a 0, obtenemos en el límite un par de meridianos que difieren en 180 grados, precisamente las geodésicas que abandonamos al principio. Entonces todo está bien. Por cierto, a pesar de las apariencias, esto usa solo dos parámetros iguales a a / c y b / c.

Tenga en cuenta que todas las geodésicas pueden rotarse hasta que crucen el ecuador a cero grados de longitud. Esto indica que f (l) puede escribirse en términos de f0 (l-l0) donde l0 es la longitud del cruce ecuatorial y f0 es la expresión de un cruce geodésico en el primer meridiano. De esto obtenemos la fórmula equivalente

f(l) = ArcTan(gamma * sin(l - l0))

donde -180 <= 10 <180 grados es la longitud del cruce ecuatorial (cuando la geodésica ingresa al hemisferio norte cuando viaja hacia el este) y gamma es un número real positivo. Esto no incluye los pares de meridianos. Cuando gamma = 0 designa el ecuador con un punto de inicio en longitud 10; siempre podemos tomar l0 = 0 en ese caso si deseamos una parametrización única. Todavía hay solo dos parámetros, dados por 10 y gamma esta vez.


Se utilizó Mathematica 8.0 para crear la imagen. De hecho, creó una "manipulación dinámica" en la que el vector (a, b, c) puede controlarse y la geodésica correspondiente se muestra instantáneamente. (Eso es genial.) Primero obtenemos la imagen de fondo:

i = Import[
   "http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
    Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]

Aquí está el código en su totalidad:

Manipulate[
 {a, b, c} = {Cos[u] Cos[v], Sin[u] Cos[v], Sin[v]};
 Show[Graphics[{Texture[i], 
    Polygon[{{-\[Pi], -\[Pi]/2}, {\[Pi], -\[Pi]/2}, {\[Pi], \[Pi]/2}, {-\[Pi], \[Pi]/2}}, 
     VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}], 
  Plot[ArcTan[(a Cos[\[Lambda]] + b Sin[\[Lambda]]) / (-c)], {\[Lambda], -\[Pi], \[Pi]}, 
   PlotRange -> {Automatic, {-\[Pi]/2, \[Pi]/2}}, PlotStyle -> {Thick, Red}]],
   {u, 0, 2 \[Pi]}, {v, -\[Pi]/2, \[Pi]}]

Gracias. Perdí eso en arctanalguna parte. Supongo que empecé con arctan latitudealguna parte.
Erich Schubert

¡Ojalá pudiera votar esto más de una vez!
Ian Turton
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.