Точка перетину для променя і поверхні Землі


11

Скажіть, у мене є промінь вектора, який походить десь із космосу. Прикладом може бути промінь світла від сонця. Як я можу обчислити точку перетину (якщо вона існує) між променем та земною поверхнею? Я використовую декартові координати (ECEF), і я хотів би, щоб еліпсоїдна геометрія Землі враховувала обчислення.

Відповіді:


12

Це просто, але безладно.

Оскільки ви працюєте в ECEF, імовірно, у вас є координат походження променя (x, y, z) та напрямок (u, v, w) в координатах ECEF. На даний момент припустимо, що під час подорожі земною поверхнею земля помітно не рухається. (Найшвидша частина обертової землі, Екватор, рухається приблизно 0,45 км / сек, а світло рухається близько 300 000 км / сек, тому промінь, що виникає, скажімо, на 1000 км над землею і прямує більш-менш прямо вниз до екватора 1/300 секунди, щоб досягти її, під час якої Екватор перемістився на 1,5 метра: це, мабуть, допустима помилка.)

Нам потрібно лише обчислити перетин параметризованої лінії

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

з земною поверхнею, що можна вважати нульовим набором функції

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

де a - напівмагістральна вісь (6,378,137 метрів), а b - напівзначна вісь еліпсоїда WGS84 (6,356,752,3142 метри). Першу формулу підключіть до другої та розв’яжіть для t в частині x, y, z, u, v, w . Це квадратичне рівняння, тож ви отримуєте до двох рішень: одного для входу в землю та іншого для того, щоб знову залишити його (що може статися, наприклад, з нейтрино). Виберіть рішення, для якого відстань найкоротша. Це дає

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

Підключіть це значення до першого рівняння, щоб отримати точку перетину.

Для променя, що походить далеко, але не дуже далеко ( наприклад, від сонця, але не з-за Сонячної системи), почніть з грубої оцінки часу, який T повинен пройти, щоб досягти землі (в секундах): ви могли б наприклад, використовуйте відстань від (x, y, z) до центру Землі. Змініть початкові координати (x, y, z), щоб врахувати величину обертання Землі за цей час: це змінить початкові координати на

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

(точка, здається, рухатиметься назад ), де c і s - синус і косинус 0,000072921150 * T радіани . Обчисліть перетин для променя, починаючи з цього оновленого місця. Ви можете вийти на цілих 10 метрів або близько цього через очікуваний час. Якщо це має значення, повторно оцінити минулий час , грунтуючись на цій точці перетину і повторити обчислення з новим значенням Т .


Ого. Дуже дякую за неймовірно детальну відповідь!
Приз

Це питання видається занадто близьким до іншого: gis.stackexchange.com/questions/86031/… Однак я не використовую ECEF. Можна вирішити аналогічно @whuber? Thx
alvarolb

1
@alvarolb Посилання, що показує, як конвертувати між ECEF та (lon, lat, altitude), наведено на gis.stackexchange.com/questions/20714 .
whuber

Неможливо обчислити безпосередньо, не переходячи від геодезичного до EFEC і повернути їх до геодезичного?
alvarolb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.