Punkt przecięcia promienia i powierzchni Ziemi

11

Powiedzmy, że mam wektor promienia pochodzący z kosmosu. Przykładem może być promień światła słonecznego. Jak obliczyć punkt przecięcia (jeśli istnieje) między promieniem a powierzchnią Ziemi? Używam współrzędnych kartezjańskich (ECEF) i chciałbym, aby elipsoidalna geometria Ziemi została uwzględniona w obliczeniach.

Pris
źródło

Odpowiedzi:

12

To proste, ale bałagan.

Ponieważ pracujesz w ECEF, prawdopodobnie masz również początek promienia (x, y, z) i wektor kierunku (u, v, w) we współrzędnych ECEF. Na razie załóżmy, że w czasie podróży na powierzchnię ziemi Ziemia nie porusza się znacznie. (Najszybsza część obracającej się ziemi, równik, porusza się około 0,45 km / s, a światło porusza się około 300 000 km / s, więc promień pochodzący, powiedzmy, 1000 km nad ziemią i skierowany mniej więcej prosto w kierunku równika 1/300 sekundy, aby go osiągnąć, podczas którego równik przesunie się o 1,5 metra: to prawdopodobnie dopuszczalny błąd).

Musimy tylko obliczyć przecięcie sparametryzowanej linii

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

z powierzchnią ziemi, którą można uznać za zerowy zbiór funkcji

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

gdzie a jest pół-główną osią (6 378 137 m), a b jest półmałą osią elipsoidy WGS84 (6 356 752,3142 m). Podłącz pierwszą formułę do drugiej i rozwiąż t dla x, y, z, u, v, w . Jest to równanie kwadratowe, więc otrzymujesz dwa rozwiązania: jedno do wejścia na ziemię, a drugie do ponownego jej opuszczenia (co mogłoby się zdarzyć na przykład dla neutrina). Wybierz rozwiązanie, dla którego odległość jest najkrótsza. To daje

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)])

Podłącz tę wartość do pierwszego równania, aby uzyskać punkt przecięcia.

W przypadku promienia pochodzącego daleko, ale niezbyt daleko ( np. Od Słońca, ale nie spoza Układu Słonecznego), zacznij od przybliżonego oszacowania czasu T, jaki powinien zająć dotarcie do Ziemi (w sekundach): możesz użyj na przykład odległości od (x, y, z) do centrum ziemi. Zmodyfikuj współrzędne początkowe (x, y, z), aby uwzględnić wielkość obrotu Ziemi w tym czasie: spowoduje to zmianę współrzędnych początkowych na

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

(punkt wydaje się przesuwać do tyłu ), gdzie c i s oznaczają sinus i cosinus 0,000072921150 * T radianów . Oblicz przecięcie promienia rozpoczynającego się w tej zaktualizowanej lokalizacji. Możesz być nieobecny nawet o 10 metrów ze względu na wykorzystanie szacowanego czasu. Jeżeli ma to znaczenie, ponowne oszacowanie czasu, który upłynął w oparciu o ten punkt przecięcia i powtórzyć obliczenia z nową wartością T .

Whuber
źródło
Łał. Dziękuję bardzo za niezwykle szczegółową odpowiedź!
Pris
To pytanie wydaje się zbyt bliskie temu innemu: gis.stackexchange.com/questions/86031/... Jednak nie używam ECEF. Czy można rozwiązać w podobny sposób @ Whuber? Thx
alvarolb
1
@alvarolb Odwołanie pokazujące, jak konwertować pomiędzy ECEF i (lon, lat, wysokość) znajduje się na gis.stackexchange.com/questions/20714 .
whuber
Nie można obliczyć bezpośrednio bez przejścia z geodezyjnego do EFEC i z powrotem do geodezyjnego?
alvarolb