Расчет прямой и обратной геодезической задач на сфероиде

Тема в разделе "Помощь студентам", создана пользователем RapidWien, 9 июн 2013.

  1. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Вам на сфероиде или на плоскости надо?
     
  2. на плоскости
     
  3. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

  4. я интересуюсь правельный или нет ход решения задачи
     
  5. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Вычисления не проверял, т.к. всё же не средняя школа, сам ход вычислений правильный, кроме ответа. Минуса там не может быть, в принципе.
     
  6. Столкнулся с проблемой.
    http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf по алгоритму Vincenty/
    Все было нечего и все работало.
    Но в один прекрасный день решил перепроверить свой код. И что же.

    Координаты точки 1 в вида GG.GGGGG широта 45.0000000 долгота 45.000000000
    Координаты точки 2 в вида GG.GGGGG широта 45.00555555555556 долгота45.011111111111106
    GeodeZ.vincenty дистанция = 1071.7533344520068
    GeodeZ.ElDistan дистанция = 1071.749061613857
    GeodeZ.ElDistanSigm дистанция = 1070.5563580474654
    distan(GeodeZ.transform(SK42_WGS84)-ck42uglToPlosc) 1071.7341706981258
    Google 1071.89
    первая величина, строго по Венсете
    вторая упрощенная оптимизированная
    третье приближенная
    четвертое через WGS84 в СК42 далее СК42 в проекцию СК42 и находим на проекции растояние между двумя точками на плоскости.
    по волшебному Google
    Все бы было ничего, если бы не полез в онлайн калькуляторы: которые мне выдали массу разных величин
    http://www.movable-type.co.uk/scripts/latlong.html
    http://www.planetcalc.ru/722/
    http://www.garmin.com.ua/tools/calc.php?typ=0&n1=45&e1=45&n2=45.0055555555555&e2=45.0111111111111
    Причем третий калькулятор считает почти по тем же формулам, что и мой (вернее Венсете алгоритм) и параметры эллипсоида те же, а итог 1071.735, а у меня 1071.753, но зато ближе к результату через проекцию.
    Вот теперь сижу и думаю, что же точнее... И хотел бы от Вас услышать рекомендации или таблицу "эталонов ортодромий" точность нужна ТОЧНАЯ =) 1:100000 то есть на 1км не более 10мм праметры эл. WGS84 ГОСТ 32453-2013. Прекрасно понимаю почти во всех случаях почему разница в результатах. Ну или скажите мне, что этой точности не достичь. Пока писал послание решил еще проверить по MAGNET Tools и взять его за эталон =)))
    Но если на, что толковое натолкнете или подскажите буду благодарен.
     
  7. stout

    stout Форумчанин

    Верное значение — 1071.735272.

    Ну и калькуляторы вы нашли. ::biggrin24.gif::
    Хотя, при должном подходе и на сфере можно получить неплохой результат.
     
  8. __________________
    1071,7352724674514
    1071,7352724682
    1071,735272
    Ладно с верными значениями определился... придется искать у себя в коде, что же блин не так в нем.
     
  9. stout

    stout Форумчанин

    2 Stepan_S, а какое у вас максимальное расстояние между точками?

    Первое значение с точки зрения математики может быть и верное (надо бы ещё проверить ;) Для double слишком много знаков, а с long double есть известные проблемы под Windows ). А с точки зрения физики – чушь несусветная. Напомню, боровский радиус (радиус ближайшей к ядру орбиты электрона атома водорода в модели атома, предложенной Нильсом Бором) ≅ 5,29·10−11 м.
    Рекомендую ознакомиться
    C++ and Java Code for Geodesic and Meridian Arc Computations -- by Klaus Hehl
    Сама статья с полпинка ищется в интернете
    И очень добротная (в высшей степени добротная) GeographicLib
    там и ссылки на нормальные онлайн калькуляторы есть.
     
    Последнее редактирование: 12 май 2016
    Stepan_S нравится это.
  10. Я и не спорю.
    За ссылки как обычно ОГРОМНОЕ СПАСИБО!!! Я уже определился, в чем проблемам была. Количество итераций, и разная точность главной оси.
    Оффтоп
    большой полуоси геоида. Исправляю, а все равно, что то ухо режит. Эллипсоида. Сижу и сам ржу... оставил все исправления моих мытарств, назвать вещи своими именами. С третей попытки.
     
  11. Между точками... Для разных интервалов расстояния предъявляется разная точность.
    процент, это частота появление того или иного интервала.
    0-1 км 10мм/км 28,1%
    2-10 км примерно 9мм/км 24,2%
    10-17 км примерно 8мм/км 16,1%
    17-22 км примерно 7мм/км 12,2%
    22-29 км примерно 6мм/км 9,1%
    29-90 км примерно 5мм/км 4,4%
    90 км-300 км примерно на весь интервал не более не более ±500мм
    300-600 км ±700мм 3,0%
    600-1200 км±1000мм 1,2%
    1200-2400 км±2000мм 1,0%
    2400-9000 км±5000мм 0.4%
    все расстояния более 9000км определяются ±10000мм 0,3%
    То есть максимальное расстояние которое чаще обрабатывается это 0-90 км. от 300 км до 2400 км встречается редко 5,2%, обработка свыше 2400 0,7% я рассматриваю как форсмажор. То есть максимальное расстояние гипотетически 20000км с какой то долей вероятности которая очень и очень мала.
     
  12. Я был очень удивлен. Когда ради эксперимента решил вычислить ортодрому на сфере с радиусом эквивалентным радиусу в конкретной широте по формуле [​IMG]
    Координаты точки 1 в вида GG.GGGGG широта 45.0000000 долгота 45.000000000
    Координаты точки 2 в вида GG.GGGGG широта 45.00555555555556 долгота 45.011111111111106
    GeodeZ.vincenty дистанция =1071.73527
    GeodeZ.VincentyII дистанция =1071.73527
    Радиус в точки 6367415.6514
    GeodeZ.SferDist L=1311.8986
    Я конечно полагал, что на 1км расстояние увеличиться за счет большей кривизны, но не настолько же? Или что то я упустил глобальное?
     
  13. stout

    stout Форумчанин

    Проверьте это значение. Для средней широты и эллипсоида WGS 84 у меня получается 6378211.1166
    А для эквивалентной сферы Гаусса получается расстояние 1071.75334
     
  14. Каким это образом получается у Вас радиус на средней широте
    больше чем принятый радиус на экваторе в WGS84 6 378 137 м, радиус на полисе 6 356 752,3142 м, то есть в моем понимании радиус лежит в диапазоне этих значений. И продолжаю считать величину полученную мною верной. А также я, с упорством осетра идущего на нерест, продолжаю получать величину ∼1307м, даже если подставляю наименьший радиус (6 356 752,3142) эллипсоида WGS84. Я сомневаюсь, что в формуле на Wikipedia https://ru.wikipedia.org/wiki/Сфера ошибка. Ошибка скорее всего в коде. Или что то я не учитываю или не знаю =)
    Похоже приведенная формула плохо работает в виду малых cos, попробую havsin использовать.
     
    Последнее редактирование: 23 май 2016
  15. stout

    stout Форумчанин

    Средний радиус кривизны R, выраженный через радиус кривизны меридиана M и первого вертикала N

    Проще говоря,

    Формула косинуса стороны сферического треугольника в wiki верна, но считать лучше по формуле гаверсинуса. Во избежание.::biggrin24.gif::

    К чему приводит необдуманное применение математически верных формул хорошо видно на примере: Задача. Размеры земного эллипсоида ::mad24.gif::
    Автора этой задачи необходимо пороть ремнём, пока не услышишь от него; "Дядя, прости маленького засранца, я так больше не буду!"

    Не вдаваясь в теорию отображения эллипсоида на сферу по Гауссу, можно записать:

    Здесь B и L – координаты на эллипсоиде, φ и λ соответствующие координаты на сфере. R всё так же определяется R2 = M×N
    --- Сообщения объединены, 23 май 2016, Оригинальное время сообщения: 23 май 2016 ---
    Она плохо работает только при очень маленьких расстояниях.::biggrin24.gif:: Но гаверсинус лучше.
     
  16. Моя основная ошибка была в получении радиуса. То есть я получал радиус заданной точки, а не радиус кривизны в данной точки. А радиус кривизны эллипсоида (Rкр), может превышать значения малого и большого радиуса эллипсоида. В то время как радиусы Rэл. действительно будет находиться между большой и малой.
    Радиусl.jpg
     
  17. Продолжаю... Новый вопрос возник, обходимо ли перейти от географических координат к геоцентрическим координатам для работ с этой формулой?[​IMG]по логике вещей необходимо.
     
  18. stout

    stout Форумчанин

    Зависит от точности.
    Для отображения на сферу Гаусса см. формулы 28.3
     

    Вложения:

    Stepan_S нравится это.
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление