Характеристика різних методів перетворення ECEF в LLA


12

Я намагаюся перетворити координати ECEF (у центрі Землі, виправлені на Землі), які визначені в X, Y, Z, по центру (0,0,0), в LLA (широта, довгота, висота). В Інтернеті я знайшов пару методів (будь ласка, повідомте мене, чи є кращі методи). Обидва чітко описані в цьому документі на сторінках 3-4:

http://www.microem.ru/pages/u_blox/tech/dataconvert/GPS.G1-X-00006.pdf

Один використовує ітераційний метод, а другий - рішення закритої форми. Я хотів би знати, який метод використовувати для моєї програми. Два релевантні критерії - швидкість (час обчислення) та точність . Алгоритми не важко реалізовувати, але я не думаю, що порівняти обидва цілі просто. Наприклад, я відчуваю, що точність буде змінюватися залежно від вхідної координати ECEF.

Так хтось має більше інформації про кожен метод? Було б чудово, якби я міг отримати, який з них швидший (вгадуючи закриту форму) і грубу точність, яку я можу очікувати від кожного (тобто, за скільки метрів фактичної УРБ я можу очікувати, що моя відповідь буде чи щось у цьому напрямку) .


Відповіді:


10

Ви можете порівняти два. У більшості застосунків я підозрюю, що обратимуть другий (прямий) метод.

Точність першого (ітеративного) методу залежить від точності, з якою ви робите обчислення, і коли ви вирішите припинити ітерацію. Тому він може бути настільки точним, як другий метод для всіх входів, де обидва є дійсними (перший метод працює лише для наземних висот, а не для астрономічних).

Що швидше, залежить від середовища програмування, архітектури обчислень та того, наскільки потрібна точність. (У моїх тестах з Mathematica, другий - прямий - метод насправді вдвічі швидший, ніж перший, практично незалежно від того, наскільки неточність була допущена в ітераційному методі.) Тому що обидва методи займають приблизно однакову кількість обчислень, але спочатку потрібно повторити хоча б один раз, насправді це може бути повільніше. Якщо ви робите конверсії лише на рівні моря (h = 0), ітераційний метод може бути трохи швидшим, але різниця не буде величезною (я би здивувався двократною перевагою).

До речі, зауважте, що "закрита формула" (для другого методу) є дещо оманливою: коли ви переходите до обчислення висоти h , вам потрібно отримати радіус кривизни N у розрахунку на щойно обчислену широту ( phi ) . Для цього використовуйте формулу N, знайдену в попередньому розділі.

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