Punto de intersección para un rayo y la superficie de la tierra

11

Digamos que tengo un vector de rayos que se origina en algún lugar del espacio. Un ejemplo podría ser un rayo de luz del sol. ¿Cómo puedo calcular el punto de intersección (si existe) entre el rayo y la superficie de la Tierra? Estoy usando coordenadas cartesianas (ECEF) y me gustaría que la geometría elipsoide de la Tierra tenga en cuenta el cálculo.

Pris
fuente

Respuestas:

12

Es simple pero desordenado.

Debido a que está trabajando en ECEF, presumiblemente tiene el origen del rayo (x, y, z) y el vector de dirección (u, v, w) en las coordenadas de ECEF, también. Por el momento, supongamos que durante el tiempo de viaje a la superficie de la Tierra, la Tierra no se mueve apreciablemente. (La parte más rápida de la tierra giratoria, el ecuador, se mueve alrededor de 0,45 km / seg y la luz se mueve alrededor de 300,000 km / seg, por lo que un rayo que se origina, digamos, 1000 km sobre la tierra y se dirige más o menos directamente hacia el ecuador tomará 1/300 de segundo para alcanzarlo, durante el cual el ecuador se habrá movido 1,5 metros: eso es probablemente un error aceptable).

Solo necesitamos calcular la intersección de la línea parametrizada

t --> (x,y,z) + t*(u,v,w)

con la superficie de la tierra, que puede considerarse el conjunto cero de la función

(x/a)^2 + (y/a)^2 + (z/b)^2 - 1

donde a es el eje semi-mayor (6,378,137 metros) yb es el eje semi-menor del elipsoide WGS84 (6,356,752.3142 metros). Inserta la primera fórmula en la segunda y resuelve t en términos de x, y, z, u, v, w . Es una ecuación cuadrática, por lo que obtienes hasta dos soluciones: una para ingresar a la Tierra y otra para abandonarla nuevamente (lo que sucedería, por ejemplo, para un neutrino). Elija la solución para la cual la distancia es más corta. Esto da

t = -(1/(b^2 (u^2 + v^2) +  a^2 w^2)) * (b^2 (u x + v y) + a^2 w z + 1/2 Sqrt[
     4 (b^2 (u x + v y) + a^2 w z)^2 - 
     4 (b^2 (u^2 + v^2) + a^2 w^2) (b^2 (-a^2 + x^2 + y^2) + a^2 z^2)])

Inserte este valor en la primera ecuación para obtener el punto de intersección.

Para un rayo que se origina muy lejos, pero no muy lejos ( p. Ej., Del sol pero no del exterior del sistema solar), comience con una estimación aproximada del tiempo T que debería tomar llegar a la Tierra (en segundos): podría use la distancia desde (x, y, z) al centro de la tierra, por ejemplo. Modifique las coordenadas iniciales (x, y, z) para tener en cuenta la cantidad de rotación de la Tierra durante este tiempo: esto cambiará las coordenadas iniciales a

(x*c + y*s, -x*s + y*c, z)

(el punto parecerá moverse hacia atrás ) donde c y s son el seno y el coseno de 0.000072921150 * T radianes . Calcule la intersección para un rayo que comienza en esta ubicación actualizada. Puede estar fuera de servicio hasta 10 metros debido al uso de un tiempo estimado. Si esto es importante, re-estimar el tiempo transcurrido en base a este punto de intersección y repetir el cálculo con el nuevo valor de t .

whuber
fuente
Guau. ¡Muchas gracias por la increíblemente detallada respuesta!
Pris
Esta pregunta parece estar demasiado cerca de esta otra: gis.stackexchange.com/questions/86031/… Sin embargo, no uso ECEF. ¿Se puede resolver de manera similar @whuber? Thx
alvarolb
1
@alvarolb Una referencia que muestra cómo convertir entre ECEF y (lon, lat, altitud) se da en gis.stackexchange.com/questions/20714 .
whuber
¿No se puede calcular directamente sin pasar de geodésico a EFEC y de nuevo a geodésico?
alvarolb