Страница 1 из 1

Рассчёты на эллипсоиде - нужны формулы

Добавлено: 07 ноя 2007, 18:45
Andrey1
Уважаемые форумчане!

Нужны формулы/алгоритмы для вычисления длин/площадей непосредственно на двуосном эллипсоиде БЕЗ привлечения понятия картографической проекции. Длина с точностью не хуже 1 мм, лучше бы 0,1 мм при любых значениях входных данных, площадь также с высокой точностью.

1. Длина ортодромии (геодезической линии) от точки (B1, L1) до точки (B2, L2). Координаты конца и начала линии могут быть заданы какими угодно, даже в разных полушариях, поэтому формулы/алгоритмы, включающие средний радиус и т.п., прошу не предлагать.

2. Площадь, ограниченная линиями с координатами начал/концов B1/L1, B2/L2, ... , Bi/Li.

Эллипсоид должен быть произвольным, т.е. в формулах/алгоритмах должны явно участвовать величины a, b (или a, 1/f).

Меня не устраивает неизбежное (и достаточно крупное) искажение длин/площадей при использовании картографической проекции, а также возможность расчёта только в некоторой зоне, то есть неуниверсальность.

Хорошо бы найти алгоритм расчёта текущих координат B,L на геодезической линии в зависимости от отношения "текущей" длины от общей длины геодезической линии (ведь на двуосном эллипсоиде ортодромия слегка изгибается).

Добавлено: 08 ноя 2007, 08:46
Максим Дубинин
то что вам нужно - алгоритм/формулы винценти (vincenty) если не сможете найти напишите, вышлю pdf статьи и пример расчета.

я полагаю вы в курсе, что на сайте уже есть решение этой задачи для сферы, хотя точность конечно меньше.

Добавлено: 08 ноя 2007, 11:01
lalex
Вот тут разбирается, есть разные ссылки
http://www.gps-forum.ru/cgi-bin/forum/s ... mber=40492

Добавлено: 08 ноя 2007, 20:18
Andrey1
Мне нужен максимально точный алгоритм именно для эллипсоида (двуосного), причём для произвольного (имеющиеся формулы для способа Бесселя привязаны, увы, к эллипсоиду Красовского-1940). Вычислительная сложность задачи не волнует - пусть хоть несколько секунд считает на современной машине. Главное - точность не хуже 1 мм между любыми точками (B1/L1, B2/L2) на любом эллипсоиде, заданном величинами a и 1/f.

Довольно интересные вещи можно найти в документе (3 Mb)

http://www.msun.ru/edu/lit/kaf/tss/ell.pdf

, но нужных именно мне алгоритмов там нет. Максимально подходящие формулы для нахождения s - на страницах 82-83, но привязка констант к какому-либо эллипсоиду меня категорически не устраивает.

Пошла мода, блин, с ГОСТовских формул, упрощать вычисления и перемножать константы, чтоб потом было не разобраться, что откуда взялось :-)

Добавлено: 08 ноя 2007, 21:34
Максим Дубинин

Добавлено: 08 ноя 2007, 23:00
Andrey1
Спасибо! Попробую разобраться.

Думаю, тема интересна многим.

Добавлено: 09 ноя 2007, 14:32
Andrey1
К сожалению, это алгоритм Винсента, а мне нужен Бесселя (тот вариант, который есть - предрассчитан для эллипсоида Красовского-40).

Алгоритм Винсента менее точен, чем алгоритм Бесселя, в котором, самостоятельно задав некоторый эпсилон, можно управлять точностью рассчёта вплоть до абсолютной.

В попадающихся источниках даны неточные, грубые алгоритмы, причём предрассчитанные для эллипсоида Красовского - видимо, это было адекватным для условий, существующих много десятилетий назад - очень плохие компьютеры и неудобные громоздкие таблицы.

Я же пишу универсальную и предельно точную процедуру для современной техники, годную для рассчёта на любом выбранном пользователем двуосном эллипсоиде - хоть для Марса.

Предрассчитанный для ЭК-40 алгоритм Бесселя дан в источнике

http://www.msun.ru/edu/lit/kaf/tss/ell.pdf

, если кому нужно на безрыбье.

Добавлено: 13 ноя 2007, 22:10
Andrey1
Попробую опереться на такой источник:

http://www.ngs.noaa.gov/TOOLS/Inv_Fwd/Inv_Fwd.html