Problemas con las ecuaciones de transformación de proyección estereográfica del Orbitador de reconocimiento lunar (LRO)

He estado tratando de averiguar los marcos de coordenadas que utiliza el equipo Lunar Orbiter Laser Altimeter (LOLA) para los datos.

En su archivo dsmap_polar.cat afirman:

X = R pecado λ , Y = R porque λ ,
dónde λ es la longitud y

R = 2 1737400 broncearse ( 90 θ L ) ,
θ L siendo la latitud.

El problema aquí es el significado de su "longitud". El sistema esférico estándar se define:

X = r pecado θ porque ϕ , y = r pecado θ pecado ϕ , z = r porque θ ,
donde los ángulos están definidos en la siguiente figura. El estándar elegido por LOLA es inusual ya que parece estar rotado ( creo que usan el trabajo de Snyder ). Surge un problema importante cuando, por ejemplo, uno quiere convertir a un mapa gnomónico. Cuando uso el sistema esférico estándar anterior, no vuelvo al mismo punto del mapa gnomónico.

Estoy buscando la motivación y la explicación de por qué alguien elegiría el seno de longitud para la coordenada x y el coseno para la coordenada y para poder comprender mejor lo que tengo que cambiar en mis ecuaciones de transformación.

Además, si uno se transforma del sistema de longitud de latitud de proyección estereográfica según sus ecuaciones, ¿realmente termina con el eje x apuntando a la dirección media de la Tierra?


Antecedentes detallados

Lo que realmente necesito es encontrar el error en mis fórmulas de conversión. Necesito poder convertir entre la proyección estereográfica LOLA y la proyección gnomónica.

Sistema planetocéntrico gnomónico a cartesiano (C1):

X = X ^ 1 + ( X ^ a ) 2 + ( y ^ a ) 2 , y = y ^ 1 + ( X ^ a ) 2 + ( y ^ a ) 2 , z = a 1 + ( X ^ a ) 2 + ( y ^ a ) 2 ,
donde los valores hat son las coordenadas en la proyección gnomónica.

Planetocéntrica cartesiana a proyección estereográfica cartesiana (C2):

X ~ = 2 a y a + z , y ~ = 2 a X a + z ,
donde los valores de tilde son coordenadas cartesianas en proyección estereográfica y a es el radio lunar de referencia. el conmutado X y y en el numerador debe reflejar la extraña elección del equipo LOLA.

Ahora las transformaciones inversas vienen dadas por:

Sistema cartesiano estereográfico a sistema de latitud longitud (proporcionado en el archivo de catálogo LOLA para el hemisferio norte) (C3):

λ = arcán y ~ X ~ , θ L = 90 2 arcán r 2 a ,
dónde
r = X ~ 2 + y ~ 2 .

De latitud y logitud al sistema cartesiano gnomónico (C4):

X ^ = a broncearse ( 90 θ L ) porque λ , y ^ = a broncearse ( 90 θ L ) pecado λ ,

A partir de aquí, latitud y longitud hasta planetocéntrica cartesiana. ( X , y , z ) se convierte utilizando el estándar anterior.

Ahora, si comparo los resultados de la transformación (C1) y (C3) convertidos al sistema cartesiano por el estándar anterior, los ejes x e y se intercambian. El problema es que no estoy seguro de qué transformación es correcta. Lo que realmente quiero es poder llegar a las coordenadas planetocéntricas con el eje x como dirección media de la Tierra.


Ejemplo numérico específico

El siguiente código utiliza la sintaxis de Matlab. a representa el radio de referencia de la esfera lunar. Comencemos con algún punto específico en la proyección gnomónica:

a   =  1737400;
x_g = -411141.107140;
y_g = -411325.894877;

Ahora, convierta este punto de coordenadas gnomónicas a planetocéntricas cartesianas, que se obtiene utilizando las coordenadas esféricas estándar anteriores:

x = x_g/sqrt( 1 + (x_g/a)^2 + (y_g/a)^2 );
y = y_g/sqrt( 1 + (x_g/a)^2 + (y_g/a)^2 );
z =   a/sqrt( 1 + (x_g/a)^2 + (y_g/a)^2 );

Esto da:

(x,y,z) = (-389878.216487,-390053.447599,1647547.281362)

Continúo convirtiendo a la proyección estereográfica usando (tenga en cuenta los intercambios X y y en el numerador en el lado derecho que debería traer uno al sistema del equipo LOLA - con suerte):

x_s = 2*a*y/(a + z);
y_s = 2*a*x/(a + z);

lo que da:

(x_s,y_s) = (-400407.334903,-400227.452318)

Para verificar la consistencia, realizo la transformación inversa para asegurarme de obtener el mismo punto en el sistema gnomónico. Tomando este punto (x_s,y_s) como punto de partida, lo convierto de nuevo al sistema de latitud, longitud utilizando fórmulas oficiales del equipo de LOLA del archivo de catálogo anterior:

r   = sqrt(x_s^2 + y_s^2);
lon = atan2d(y_s,x_s);
lat = 90 - 2*atand(0.5*r/a);

y esto resulta:

(lat,lon) = (71.492702,-135.012873)

Ahora, convirtiendo al sistema cartesiano usando:

theta = 90-lat;
phi   = lon;
x = a*sind(theta)*cosd(phi);
y = a*sind(theta)*sind(phi);
z = a*cosd(theta);

resultados en:

(x,y,z) = (-390053.447599,-389878.216487,1647547.281362)

Ahora puede ver que, en comparación con el resultado anterior que obtuve al convertir desde el gnomónico, aquí los ejes x e y ya están intercambiados aquí. Así que no sigo con las transformaciones finales al sistema gnomónico. También tenga en cuenta que este es un punto específico, por lo que no estoy seguro, si en general, solo me intercambian X y y ejes o para otros puntos, surgen otras cuestiones como signos diferentes.


ingrese la descripción de la imagen aquí

¿Qué es un "equipo LOLA"? No es útil usar acrónimos específicos que muchos lectores no reconocerán, y siempre es una buena práctica escribir la frase en su totalidad la primera vez antes de usar su acrónimo más adelante. ¿Puedes actualizar tu publicación para deletrearlo y tal vez agregar un enlace? ¡Gracias!
Creo que necesitamos un ejemplo numérico para ver y comprender el tipo de error que obtienes.
@Uwe Incluí un ejemplo numérico que incluía el código de Matlab para reproducir el problema.

Respuestas (1)

Intenté hacer lo mismo usando python:

import numpy as np

a   =  1737400
x_g = -411141.107140
y_g = -411325.894877

x = x_g/np.sqrt( 1 + np.square(x_g/a) + np.square(y_g/a) )
y = y_g/np.sqrt( 1 + np.square(x_g/a) + np.square(y_g/a) )
z =   a/np.sqrt( 1 + np.square(x_g/a) + np.square(y_g/a) )

print('(x, y, z) = ', (x, y, z))

x_s = 2*a*y/(a + z)
y_s = 2*a*x/(a + z)

print('(x_s, y_s) = ', (x_s, y_s))

r   = np.sqrt(np.square(x_s) + np.square(y_s));
lon = np.arctan2(y_s,x_s);
lat = np.deg2rad(90.0) - 2.0*np.arctan(0.5*r/a);

print('(lat, lon) = ', (lat, lon))

x_d = a * np.tan(np.deg2rad(90.0)-lat) * np.sin(lon)
y_d = a * np.tan(np.deg2rad(90.0)-lat) * np.cos(lon)

print('(x_d, y_d) = ', (x_d, y_d))

resultado :

(x, y, z) =  (-389878.2164872003, -390053.4475990476, 1647547.281362467)
(x_s, y_s) =  (-400407.3349029025, -400227.4523177882)
(lat, lon) =  (1.247783033129123, -2.356419165143969)
(x_d, y_d) =  (-411141.10714000027, -411325.8948770001)

ingrese la descripción de la imagen aquí

Compare sus ecuaciones anteriores con:

X = R SEN(LON PI/180)

Y = R COS(LON PI/180)

Usaste cos para x y sen para y, pero en LOLA se usa sin para x y cos para y.

los valores x e y no se cambian ahora y

x_g = -411141.107140

y_g = -411325.894877

(x_d, y_d) = (-411141.10714000027, -411325.8948770001)

son iguales ahora.

Así que creo que finalmente encontré el error. Cometí algunos errores adicionales cuando busqué tu error. Espero que no haya más errores en mi respuesta.

En matlab, estoy usando sindet al (cuyo argumento está en grados, no en radianes) y creo que mi código usa constantemente funciones que aceptan grados. Si observa sus (x,y,z)resultados, también han cambiado las coordenadas x e y. Estoy bastante seguro de que este no es el problema. Creo que el problema es realmente esa elección inusual de dónde medir ϕ o ángulo acimutal.
Ok, lo investigaré, pero de esta manera obtengo el mismo sistema de coordenadas "desordenado" en la proyección gnomónica, es decir, el azimut tomado del eje y. Supongo que se lograría la misma solución si uno calculara el sistema de latitud y longitud en coordenadas esféricas con seno y coseno de azimut intercambiados. También queda el problema de qué apunta a la dirección media de la Tierra en el marco planetocéntrico, ¿es x o y? En realidad, este es el tema crucial porque da la orientación en el espacio.
Esto es lo que dice la especificación de coordenadas para LRO ( lunar.gsfc.nasa.gov/library/451-SCI-000958.pdf ): "Estas son coordenadas esféricas de mano derecha donde el eje z es el eje medio de rotación y el eje x El eje es la intersección del ecuador y el meridiano principal. ... El eje y es ortogonal a los ejes x y z. ... La longitud es el ángulo entre este vector y el plano del meridiano principal medido en dirección este". y en la parte 6.1 "El Primer Meridiano (0 ̊ Longitud) se define por la dirección media de la Tierra"
Con base en lo anterior, el eje x en el sistema cartesiano planetocéntrico apunta a la dirección media de la tierra, pero con base en sus ecuaciones de transformación, es el eje y. ¿O estoy equivocado? (porque el azimut es con respecto al eje y)
@leosenko "Según lo anterior, el eje x en el sistema cartesiano planetocéntrico apunta a la dirección media de la tierra, pero según sus ecuaciones de transformación, es el eje y". ¿Puede ser que este problema sea el resultado de cambiar entre los ejes x e y cambiando el seno y el coseno?