Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.221.187.121] |
|
Сообщ.
#1
,
|
|
|
GPS приемник выдает широту и долготу в формате WGS84.
Тоесть есть градусы, минуты, секунды, и высота в метрах. Как можно расчитать расстояние между 2-мя точками в метрах, если расстояние зависит от того, в какой широте (на каком градусе) находится точка |
Сообщ.
#2
,
|
|
|
достраиваешь из этих координат прямоугольник, стороны которого будут зависить от того какой радиус земли (в авиации в нашей принят 6351км.). берешь две стороны и по теореме пифагора найдешь диагональ, то бишь искомую линию. Называться будет она - ортодромией.
|
Сообщ.
#3
,
|
|
|
Сообщ.
#4
,
|
|
|
Цитата Flex Ferrum @ Но есть нюанс - рельеф, который эти формулы не учитывают Смотри приаттаченную акртинку. |
Сообщ.
#5
,
|
|
|
Цитата Coal@ @ Но есть нюанс - рельеф, который эти формулы не учитывают Ну, топикстартер ничего не сказал про то, есть ли у него ЦМР. А потому, будем считать, что нет. |
Сообщ.
#6
,
|
|
|
Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ?
Ведь наш глобус не идеальная сфера и... |
Сообщ.
#7
,
|
|
|
Вычисление расстояния и начального азимута между двумя точками на сфере. Подойдет автору темы?
|
Сообщ.
#8
,
|
|
|
Цитата Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ? Ведь наш глобус не идеальная сфера и... Землю для целей навигации как раз принимают за сферу |
Сообщ.
#9
,
|
|
|
Цитата zss @ Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ? Ведь наш глобус не идеальная сфера и... ... и эксцентриситет не настолько большой, чтобы это стоило учитывать в таких задачах. А вообще, наш глобус - не только не идеальная сфера, но еще и не идеальный эллипсоид. И в разных областях аппроксимируется эллипсоидами с разными параметрами. В частности, территория России аппроксимируется эллипсоидом Красовского. Территория США - каким-то другим (с чуть другими параметрами). Ты и это хочешь учитывать? Насколько я помню, это играет роль только в задачах высшей геодезии, где точности такие, что различие в подобного рода параметрах может сыграть существенную роль. А для бытовых задач вполне подойдет аппроксимация сферой. |
Сообщ.
#10
,
|
|
|
Цитата Flex Ferrum @ ... и эксцентриситет не настолько большой, чтобы это стоило учитывать в таких задачах. А вообще, наш глобус - не только не идеальная сфера, но еще и не идеальный эллипсоид. И в разных областях аппроксимируется эллипсоидами с разными параметрами. В частности, территория России аппроксимируется эллипсоидом Красовского. Территория США - каким-то другим (с чуть другими параметрами). Ты и это хочешь учитывать? Насколько я помню, это играет роль только в задачах высшей геодезии, где точности такие, что различие в подобного рода параметрах может сыграть существенную роль. А для бытовых задач вполне подойдет аппроксимация сферой. убедил всем спасибо за помощь |
Сообщ.
#11
,
|
|
|
тема поднимается
пробовал как тут сказано http://gis-lab.info/qa/great-circles.html пробовал и 2 и 3 способом. При изменение широты на 2 сек. у меня расстояние = 1,5 км. Что-то косяк какой-то. Может расчет не для WGS84, а для какой другой системы З.Ы. Кстати - там в примере расчет ведется в радианах - в формуле этого вроде не отражено |
Сообщ.
#12
,
|
|
|
zss, там в статье есть приатаченный пример расчетов на Excelе (пример), попробуй туда вбить контрольные величины, получится верный результат или нет? Я попробовал в нем так: задал две точки с разницей в 1 градус по широте, ответ 111,227 км получилось, похоже на правду, формулы сравнивать не стал с теми, что в статье, но в Excelе они как на ладошке
|
Сообщ.
#13
,
|
|
|
http://www.astronet.ru/db/msg/1190817/node25.html
Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием. Цитата Землю для целей навигации как раз принимают за сферу Это неверное утверждение. |
Сообщ.
#14
,
|
|
|
Цитата Pred@tor.(07) @ Обычно за эллипсоид вращения - максимальная ошибка около одной угловой минуты - на поверхности одна морская миля - 1852 метра. Чаще около 5 угл.секунд - примерно кабельтов Землю для целей навигации как раз принимают за сферу |
Сообщ.
#15
,
|
|
|
Цитата AntiAspirant @ zss, там в статье есть приатаченный пример расчетов на Excelе (пример), попробуй туда вбить контрольные величины, получится верный результат или нет? 1. Попробовал использовать эту таблицу. Там в примере координаты 55,97277778 а мне GPS отдает в виде 5540,.... (WGS 84) Тоесть тут на лицо формат координат. Что за формат используется для расчетов и как в него перевести ? 2. Вот пример, что у меня. Я замерил координаты между 2-мя точками 2.1 Расстояние 30 метров latitude = 5540,0163357222218 longtitude = 3728,0001688888888 latitude = 5540,0165026111108 longtitude = 3728,0005020833332 Результат 34 метра 2.2 Расстояние 50 метров latitude = 5540,0155025277782 longtitude = 3728,0011686111111 latitude = 5540,0156674999998 longtitude = 3728,0020009722220 Результат = 73 метра 2.3. Расстояние 80 метров latitude = 5540,0165011944446 longtitude = 3728,0001693333334 latitude = 5540,0160009444444 longtitude = 3728,0160005000002 Результат = 1350 метров !!! Что за хрень ? И вообще - это нормальная точность для 1 и 2 случая ? Цитата Fts @ http://www.astronet.ru/db/msg/1190817/node25.html Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием. спасибо - почитаю |
Сообщ.
#16
,
|
|
|
Ребят спорить не советую, летаю штурманом
|
Сообщ.
#17
,
|
|
|
Цитата Pred@tor.(07) @ Ребят спорить не советую, летаю штурманом это к чему ? |
Сообщ.
#18
,
|
|
|
Цитата http://www.astronet.ru/db/msg/1190817/node25.html Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием. Цитата Землю для целей навигации как раз принимают за сферу Это неверное утверждение. Вот к этому |
Сообщ.
#19
,
|
|
|
У сферы погрешность тоже не слишком велика. Сжатие эллипсоида около одной трехсотой. Так что если точки не слишком далеко, то можно и сферой приближать.
И вообще, насколько точно надо ответ получать? |
Сообщ.
#20
,
|
|
|
Цитата спасибо - почитаю Упс, не догнала, что нужно расстояние по поверхности Земли . Как-то привыкла к космической геодезии, а там поверхность планеты воообще не существенна . Прошу прощения. Тогда остается ограничиться дугой большого круга, считая Землю сферой. Или для получения утонченного удовольствия - интегрировать дугу по поверхности эллипсоида. |
Сообщ.
#21
,
|
|
|
Цитата amk @ И вообще, насколько точно надо ответ получать? Хотелось бы иметь погрешность 1-2 метра (На крайний случай 5 метров) Добавлено Цитата amk @ У сферы погрешность тоже не слишком велика. Сжатие эллипсоида около одной трехсотой. Так что если точки не слишком далеко, то можно и сферой приближать пробовал и сферой как Flex сказал - там вообще все плохо. |
Сообщ.
#22
,
|
|
|
>Хотелось бы иметь погрешность 1-2 метра
У вас координаты известны с такой точностью? DGPS? |
Сообщ.
#23
,
|
|
|
Цитата zss @ Там в примере координаты 55,97277778 а мне GPS отдает в виде 5540,.... (WGS 84) Тоесть тут на лицо формат координат. Что за формат используется для расчетов и как в него перевести ? В примере - градусы, а у тебя градусы (55) и минуты (40,...). Перевести просто: 55+(40,...)/60 Цитата zss @ пробовал и сферой как Flex сказал - там вообще все плохо Для большей точности лучше использовать средний радиус кривизны эллипсоида для заданной средней широты B = (B1+B2)/2: R = (N*M)-1/2 = a*(1-e2)1/2/(1-e2*sin2B), где а = 6378137 м большая полуось эллипсоида WGS-84 e2 = (a2-b2)/a2 = 0,00669438 - квадрат эксцентриситета эллипсоида WGS-84 Цитата zss @ Хотелось бы иметь погрешность 1-2 метра (На крайний случай 5 метров) Интересно, зачем знать с такой точностью расстояние вдоль "некоего абстрактного американского эллипсоида" без учета рельефа ? Цитата MBo @ У вас координаты известны с такой точностью? DGPS? Для вычисления приращения расстояния в сотни метров по координатам с одного приемника в одном сеансе по одним и тем же спутникам, абсолютная погрешность (смещение) координат большой роли не играет |
Сообщ.
#24
,
|
|
|
>абсолютная погрешность (смещение) координат большой роли не играет
Увы, эта погрешность в основном не систематическая, а случайная |
Сообщ.
#25
,
|
|
|
Могу ошибаться, но погрешность скорее представляет собой случайный процесс. При малых интервалах между измерениями, пожалуй, меняться должна не слишком сильно. Плюс некоторая меньшая по величине чисто случайная составляющая
|
Сообщ.
#26
,
|
|
|
Цитата MBo @ Увы, эта погрешность в основном не систематическая, а случайная Увы В данном случае следует вести речь не о случайных\систематических погрешностях, а о времени корреляции этих погрешностей. Чисто случайные (не- или слабо-коррелированные) ошибки, обусловленные шумом, многолучевостью и т.д. и т.п. не могут быть устранены за счет дифф.коррекции. Относительно быстроизменяющиеся ошибки за счет "болтанки" эфемерид спутников сами по себе не превышают 1-2 м. Остаются "долгоиграющие" ошибки определения задержки сигнала в ионосфере, которые для заданной конфигурации спутников в течении определенного времени изменяются незначительно (по крайней мере в течении единиц-десятков минут). PS: Можно на пальцах прикинуть время корреляции исходя из ограничения дальности до базовой станции DGPS (~200км), которое в основном определяется пространственной кореляцией ионосферных задержек. Высота спутников известна (~20тыс.км), период обращения тоже (~12 часов), правда максимальная высота ионосферы "гуляет" от 500 до 2000 км - но для оценки сойдет. Сначала "глядя со спутника" пропорционально пересчитываем раствор в 200км на высоту ионосферы, а затем "глядя с земли" пересчитываем полученное значение на высоту спутника, делим на расстояние и на угловую скорость - получаем время в течении которого сигнал с движущего спутника не выходит за пределы области корреляци DGPS. Конечно для справедливости нужно учесть спутники с малыми углами возвышения (умножить эдак на sin(15°)~0.25), но в любом случае получится как минимум несколько минут, чтобы неспеша преодолеть сотню-другую метров . Но это при условии, что за время между измерениями не произойдет переключения на другие спутники |
Сообщ.
#27
,
|
|
|
Цитата leo @ В примере - градусы, а у тебя градусы (55) и минуты (40,...). Перевести просто: 55+(40,...)/60 а не так ли Цитата 55 + 40/60 + 0,.../3600 Цитата leo @ Для большей точности лучше использовать средний радиус кривизны эллипсоида для заданной средней широты B = (B1+B2)/2: R = (N*M)-1/2 = a*(1-e2)1/2/(1-e2*sin2B), где а = 6378137 м большая полуось эллипсоида WGS-84 e2 = (a2-b2)/a2 = 0,00669438 - квадрат эксцентриситета эллипсоида WGS-84 где использовать ? Вернее вместо чего ? |
Сообщ.
#28
,
|
|
|
Цитата zss @ а не так ли 55 + 40/60 + 0,.../3600 Думаю, что нет, хотя лучше свериться с руководством по GPS-приемнику (надеюсь ты его не на блошином рынке покупал ) Цитата zss @ где использовать ? Вернее вместо чего ? Вместо радиуса сферы. Считаешь угол между векторами (точками) в радианах и умножаешь на средний радиус кривизны эллипсоида на средней широте между точками PS: Если не доверяешь упрощенной формуле расчета угла, то можно пересчитать широту\долготу\высоту в геоцентрические XYZ по "официальным данным" ГОСТ Р 51794-2001 и расчитать угол через скалярное или векторное произведение векторов |
Сообщ.
#29
,
|
|
|
Цитата leo @ Вместо радиуса сферы. Считаешь угол между векторами (точками) в радианах и умножаешь на средний радиус кривизны эллипсоида на средней широте между точками понятно Цитата leo @ PS: Если не доверяешь упрощенной формуле расчета угла, то можно пересчитать широту\долготу\высоту в геоцентрические XYZ по "официальным данным" ГОСТ Р 51794-2001 и расчитать угол через скалярное или векторное произведение векторов я его читал. Что-то слишком замутили они там... |
Сообщ.
#30
,
|
|
|
Цитата zss @ Что-то слишком замутили они там... Да не-е, просто собрали во едино и "утвердили" известные формулы из учебников по геодезии |
Сообщ.
#31
,
|
|
|
Цитата leo @ В примере - градусы, а у тебя градусы (55) и минуты (40,...). Перевести просто: 55+(40,...)/60 leo, вроде ты был прав. Что то начало вырисовываться. Но вот с погрешностью, которая там заявлена как 0,5 - они погорячились. Проводил кучу тестов, на разных формулах. Результат схож, но в реднем такой 7,5м - результат 15 15м - результат 17 30м - результат 38 60м - результат 69 ... видно что с увеличением дальности точность возрастает. Но "пол литрой" там и не пахнет А мне нужно определять расттояние от 10 до 1000 метров с точностью хотябы 2-3 метра. А то на 10 метрах погрешность более 40%. Так и мимо промахнуться можно |
Сообщ.
#32
,
|
|
|
Цитата zss @ Но вот с погрешностью, которая там заявлена как 0,5 - они погорячились видно что с увеличением дальности точность возрастает Что то неправильно делаешь Если юзать формулу гаверсинусов и средний радиус кривизны, то для небольших расстояний и сантиметры без проблем получаются, не говоря уж о 0.5 м |
Сообщ.
#33
,
|
|
|
а кто подскажет, как правильно считать пройденный путь. получаю новую координату, добавляю расстояние к счетчику и запоминаю её, но иногда из-за погрешности координата скачет, и общий путь в итоге резко преувеличивается. как можно от этого избавиться?
|
Сообщ.
#34
,
|
|
|
от этого можно избавиться при помощи усреднения. например, брать вместо координаты скользящее среднее от последних пяти координат. или скользящую медиану (отдельно медиану по x, отдельно по y) - так даже лучше, резкие скачки будут лучше сглаживаться.
усреднение будет немного сокращать путь на резких поворотах, зато при движении по пологим поворотам или по прямым траекториям погрешности будут значительно снижаться. |
Сообщ.
#35
,
|
|
|
точно, хороший вариант, спасибо!
а может быть можно еще получить погрешность в метрах из данных о спутниках и точности позиционирования? |
Сообщ.
#36
,
|
|
|
Все знающий Алл если не влом поделитесь кодом расчета расстояния между двумя точками координат GPS. Зарание благодарен. мыло ptnaa@mail.ru
|
Сообщ.
#37
,
|
|
|
Простой метод, точность 0,1%.
Всего 3 формулы, подставляете географические координаты - получаете ответ Недавно нарыл в Инете, кому интересно, читайте здесь: http://www.spywatcher.com.ua/forum/index.php?board=10.0 Кстати, там в процессе обсуждения и более точный метод, но для меня, сложноватый |
Сообщ.
#38
,
|
|
|
Если считать Землю шаром, достаточно знать ее радиус=40000км/(2*pi) и угол между радиус-векторами на две точки. Каковой находится из векторного произведения
|