É simples, mas confuso.
Como você está trabalhando no ECEF, presumivelmente você tem a origem do raio (x, y, z) e o vetor de direção (u, v, w) nas coordenadas do ECEF também. Por enquanto, vamos supor que, durante o tempo de viagem à superfície da Terra, a Terra não se mova sensivelmente. (A parte mais rápida da Terra em rotação, o Equador, se move cerca de 0,45 km / s, e a luz se move cerca de 300.000 km / s, então um raio originando, digamos, 1000 km acima da Terra e indo mais ou menos diretamente para o Equador 1/300 segundo para alcançá-lo, durante o qual o Equador se moverá 1,5 metro: provavelmente é um erro aceitável.)
Só precisamos calcular a interseção da linha parametrizada
t --> (x,y,z) + t*(u,v,w)
com a superfície da Terra, que pode ser considerada o conjunto zero da função
(x/a)^2 + (y/a)^2 + (z/b)^2 - 1
onde a é o eixo semi-maior (6.378.137 metros) eb é o eixo semi-menor do elipsóide WGS84 (6.356.752.3142 metros). Conecte a primeira fórmula à segunda e resolva t em termos de x, y, z, u, v, w . Como é uma equação quadrática, você tem duas soluções: uma para entrar na terra e outra para deixá-la novamente (o que aconteceria, por exemplo, para um neutrino). Escolha a solução para a qual a distância é mais curta. Isto dá
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)])
Conecte esse valor à primeira equação para obter o ponto de interseção.
Para um raio que se origina muito longe, mas não muito longe ( por exemplo, do sol, mas não de fora do sistema solar), comece com uma estimativa grosseira do tempo que T levará para alcançar a Terra (em segundos): você pode use a distância de (x, y, z) ao centro da terra, por exemplo. Modifique as coordenadas iniciais (x, y, z) para contabilizar a quantidade de rotação da Terra durante esse tempo: isso alterará as coordenadas iniciais para
(x*c + y*s, -x*s + y*c, z)
(o ponto parecerá se mover para trás ), onde c e s são o seno e o cosseno de 0,000072921150 * T radianos . Calcule a interseção para um raio começando neste local atualizado. Você pode descer cerca de 10 metros ou mais devido ao uso de um tempo estimado. Se isso importa, re-estimar o tempo decorrido com base neste ponto de intersecção e repita o cálculo com o novo valor da T .