На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Расстояние между 2-мя GPS координатами
    GPS приемник выдает широту и долготу в формате WGS84.
    Тоесть есть градусы, минуты, секунды, и высота в метрах.

    Как можно расчитать расстояние между 2-мя точками в метрах, если расстояние зависит от того,
    в какой широте (на каком градусе) находится точка
      достраиваешь из этих координат прямоугольник, стороны которого будут зависить от того какой радиус земли (в авиации в нашей принят 6351км.). берешь две стороны и по теореме пифагора найдешь диагональ, то бишь искомую линию. Называться будет она - ортодромией.
        Смотри приаттаченную акртинку.
        Прикреплённая картинка
        Прикреплённая картинка
          Цитата Flex Ferrum @
          Смотри приаттаченную акртинку.
          :yes: Но есть нюанс - рельеф, который эти формулы не учитывают :(
            Цитата Coal@ @
            Но есть нюанс - рельеф, который эти формулы не учитывают :(

            Ну, топикстартер ничего не сказал про то, есть ли у него ЦМР. А потому, будем считать, что нет. :)
              Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ?

              Ведь наш глобус не идеальная сфера и...
              Сообщение отредактировано: zss -
                  Цитата
                  Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ?

                  Ведь наш глобус не идеальная сфера и...


                  Землю для целей навигации как раз принимают за сферу
                    Цитата zss @
                    Flex Ferrum, тоесть если одна координата на экваторе, а другая блише к полюсу, то эта формула учтет, что расстояние в метрах для градуса меняется при прохождении широт ?

                    Ведь наш глобус не идеальная сфера и...

                    ... и эксцентриситет не настолько большой, чтобы это стоило учитывать в таких задачах. :) А вообще, наш глобус - не только не идеальная сфера, но еще и не идеальный эллипсоид. И в разных областях аппроксимируется эллипсоидами с разными параметрами. В частности, территория России аппроксимируется эллипсоидом Красовского. Территория США - каким-то другим (с чуть другими параметрами). Ты и это хочешь учитывать? :) Насколько я помню, это играет роль только в задачах высшей геодезии, где точности такие, что различие в подобного рода параметрах может сыграть существенную роль. А для бытовых задач вполне подойдет аппроксимация сферой. :)
                      Цитата Flex Ferrum @
                      ... и эксцентриситет не настолько большой, чтобы это стоило учитывать в таких задачах. А вообще, наш глобус - не только не идеальная сфера, но еще и не идеальный эллипсоид. И в разных областях аппроксимируется эллипсоидами с разными параметрами. В частности, территория России аппроксимируется эллипсоидом Красовского. Территория США - каким-то другим (с чуть другими параметрами). Ты и это хочешь учитывать? Насколько я помню, это играет роль только в задачах высшей геодезии, где точности такие, что различие в подобного рода параметрах может сыграть существенную роль. А для бытовых задач вполне подойдет аппроксимация сферой.

                      убедил

                      всем спасибо за помощь
                        тема поднимается

                        пробовал как тут сказано
                        http://gis-lab.info/qa/great-circles.html
                        пробовал и 2 и 3 способом.

                        При изменение широты на 2 сек. у меня расстояние = 1,5 км.
                        Что-то косяк какой-то.

                        Может расчет не для WGS84, а для какой другой системы

                        З.Ы. Кстати - там в примере расчет ведется в радианах - в формуле этого вроде не отражено
                          zss, там в статье есть приатаченный пример расчетов на Excelе (пример), попробуй туда вбить контрольные величины, получится верный результат или нет? Я попробовал в нем так: задал две точки с разницей в 1 градус по широте, ответ 111,227 км получилось, похоже на правду, формулы сравнивать не стал с теми, что в статье, но в Excelе они как на ладошке :D
                            http://www.astronet.ru/db/msg/1190817/node25.html
                            Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием.
                            Цитата
                            Землю для целей навигации как раз принимают за сферу

                            :no: Это неверное утверждение.
                            Сообщение отредактировано: Fts -
                              Цитата Pred@tor.(07) @
                              Землю для целей навигации как раз принимают за сферу
                              Обычно за эллипсоид вращения - максимальная ошибка около одной угловой минуты - на поверхности одна морская миля - 1852 метра. Чаще около 5 угл.секунд - примерно кабельтов
                                Цитата 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 (там в таблице есть). Модуль разности векторов и будет расстоянием.

                                спасибо - почитаю
                                Сообщение отредактировано: zss -
                                  Ребят спорить не советую, летаю штурманом
                                    Цитата Pred@tor.(07) @
                                    Ребят спорить не советую, летаю штурманом

                                    это к чему ?
                                      Цитата

                                      http://www.astronet.ru/db/msg/1190817/node25.html
                                      Вычисляете геоцентрический вектор положения каждой из двух точек (координаты вектора зависят от долготы, широты, высоты над уровнем геоида), беря соответствующее сжатие и большую полуось для модели WGS84 (там в таблице есть). Модуль разности векторов и будет расстоянием.
                                      Цитата
                                      Землю для целей навигации как раз принимают за сферу

                                      Это неверное утверждение.


                                      Вот к этому
                                        У сферы погрешность тоже не слишком велика. Сжатие эллипсоида около одной трехсотой. Так что если точки не слишком далеко, то можно и сферой приближать.
                                        И вообще, насколько точно надо ответ получать?
                                          Цитата
                                          спасибо - почитаю

                                          Упс, не догнала, что нужно расстояние по поверхности Земли :wall:. Как-то привыкла к космической геодезии, а там поверхность планеты воообще не существенна :D. Прошу прощения. Тогда остается ограничиться дугой большого круга, считая Землю сферой. Или для получения утонченного удовольствия - интегрировать дугу по поверхности эллипсоида.
                                            Цитата amk @
                                            И вообще, насколько точно надо ответ получать?

                                            Хотелось бы иметь погрешность 1-2 метра (На крайний случай 5 метров)

                                            Добавлено
                                            Цитата amk @
                                            У сферы погрешность тоже не слишком велика. Сжатие эллипсоида около одной трехсотой. Так что если точки не слишком далеко, то можно и сферой приближать

                                            пробовал и сферой как Flex сказал - там вообще все плохо.
                                              >Хотелось бы иметь погрешность 1-2 метра
                                              У вас координаты известны с такой точностью?
                                              DGPS?
                                                Цитата 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?

                                                Для вычисления приращения расстояния в сотни метров по координатам с одного приемника в одном сеансе по одним и тем же спутникам, абсолютная погрешность (смещение) координат большой роли не играет
                                                  >абсолютная погрешность (смещение) координат большой роли не играет
                                                  Увы, эта погрешность в основном не систематическая, а случайная
                                                  Сообщение отредактировано: MBo -
                                                    Могу ошибаться, но погрешность скорее представляет собой случайный процесс. При малых интервалах между измерениями, пожалуй, меняться должна не слишком сильно. Плюс некоторая меньшая по величине чисто случайная составляющая
                                                      Цитата MBo @
                                                      Увы, эта погрешность в основном не систематическая, а случайная

                                                      Увы ;) В данном случае следует вести речь не о случайных\систематических погрешностях, а о времени корреляции этих погрешностей. Чисто случайные (не- или слабо-коррелированные) ошибки, обусловленные шумом, многолучевостью и т.д. и т.п. не могут быть устранены за счет дифф.коррекции. Относительно быстроизменяющиеся ошибки за счет "болтанки" эфемерид спутников сами по себе не превышают 1-2 м. Остаются "долгоиграющие" ошибки определения задержки сигнала в ионосфере, которые для заданной конфигурации спутников в течении определенного времени изменяются незначительно (по крайней мере в течении единиц-десятков минут).
                                                      PS: Можно на пальцах прикинуть время корреляции исходя из ограничения дальности до базовой станции DGPS (~200км), которое в основном определяется пространственной кореляцией ионосферных задержек. Высота спутников известна (~20тыс.км), период обращения тоже (~12 часов), правда максимальная высота ионосферы "гуляет" от 500 до 2000 км - но для оценки сойдет. Сначала "глядя со спутника" пропорционально пересчитываем раствор в 200км на высоту ионосферы, а затем "глядя с земли" пересчитываем полученное значение на высоту спутника, делим на расстояние и на угловую скорость - получаем время в течении которого сигнал с движущего спутника не выходит за пределы области корреляци DGPS. Конечно для справедливости нужно учесть спутники с малыми углами возвышения (умножить эдак на sin(15°)~0.25), но в любом случае получится как минимум несколько минут, чтобы неспеша преодолеть сотню-другую метров ;). Но это при условии, что за время между измерениями не произойдет переключения на другие спутники
                                                      Сообщение отредактировано: leo -
                                                        Цитата 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

                                                        где использовать ? Вернее вместо чего ?
                                                          Цитата zss @
                                                          а не так ли
                                                          55 + 40/60 + 0,.../3600

                                                          Думаю, что нет, хотя лучше свериться с руководством по GPS-приемнику (надеюсь ты его не на блошином рынке покупал ;) )

                                                          Цитата zss @
                                                          где использовать ? Вернее вместо чего ?

                                                          Вместо радиуса сферы. Считаешь угол между векторами (точками) в радианах и умножаешь на средний радиус кривизны эллипсоида на средней широте между точками
                                                          PS: Если не доверяешь упрощенной формуле расчета угла, то можно пересчитать широту\долготу\высоту в геоцентрические XYZ по "официальным данным" ГОСТ Р 51794-2001 и расчитать угол через скалярное или векторное произведение векторов
                                                            Цитата leo @
                                                            Вместо радиуса сферы. Считаешь угол между векторами (точками) в радианах и умножаешь на средний радиус кривизны эллипсоида на средней широте между точками

                                                            понятно


                                                            Цитата leo @
                                                            PS: Если не доверяешь упрощенной формуле расчета угла, то можно пересчитать широту\долготу\высоту в геоцентрические XYZ по "официальным данным" ГОСТ Р 51794-2001 и расчитать угол через скалярное или векторное произведение векторов

                                                            я его читал. Что-то слишком замутили они там...
                                                              Цитата zss @
                                                              Что-то слишком замутили они там...

                                                              Да не-е, просто собрали во едино и "утвердили" известные формулы из учебников по геодезии ;)
                                                                Цитата leo @
                                                                В примере - градусы, а у тебя градусы (55) и минуты (40,...). Перевести просто: 55+(40,...)/60

                                                                leo, вроде ты был прав. Что то начало вырисовываться.

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

                                                                7,5м - результат 15
                                                                15м - результат 17
                                                                30м - результат 38
                                                                60м - результат 69
                                                                ...

                                                                видно что с увеличением дальности точность возрастает. Но "пол литрой" там и не пахнет :)
                                                                А мне нужно определять расттояние от 10 до 1000 метров с точностью хотябы 2-3 метра. А то на 10 метрах погрешность более 40%.
                                                                Так и мимо промахнуться можно :)
                                                                Сообщение отредактировано: zss -
                                                                  Цитата zss @
                                                                  Но вот с погрешностью, которая там заявлена как 0,5 - они погорячились
                                                                  видно что с увеличением дальности точность возрастает

                                                                  Что то неправильно делаешь ;)
                                                                  Если юзать формулу гаверсинусов и средний радиус кривизны, то для небольших расстояний и сантиметры без проблем получаются, не говоря уж о 0.5 м
                                                                  Сообщение отредактировано: leo -
                                                                    а кто подскажет, как правильно считать пройденный путь. получаю новую координату, добавляю расстояние к счетчику и запоминаю её, но иногда из-за погрешности координата скачет, и общий путь в итоге резко преувеличивается. как можно от этого избавиться?
                                                                      от этого можно избавиться при помощи усреднения. например, брать вместо координаты скользящее среднее от последних пяти координат. или скользящую медиану (отдельно медиану по x, отдельно по y) - так даже лучше, резкие скачки будут лучше сглаживаться.

                                                                      усреднение будет немного сокращать путь на резких поворотах, зато при движении по пологим поворотам или по прямым траекториям погрешности будут значительно снижаться.
                                                                        точно, хороший вариант, спасибо!
                                                                        а может быть можно еще получить погрешность в метрах из данных о спутниках и точности позиционирования?
                                                                          Все знающий Алл если не влом поделитесь кодом расчета расстояния между двумя точками координат GPS. Зарание благодарен. мыло ptnaa@mail.ru
                                                                            Простой метод, точность 0,1%.
                                                                            Всего 3 формулы, подставляете географические координаты - получаете ответ :D
                                                                            Недавно нарыл в Инете, кому интересно, читайте здесь:
                                                                            http://www.spywatcher.com.ua/forum/index.php?board=10.0
                                                                            Кстати, там в процессе обсуждения и более точный метод, но для меня, сложноватый :(
                                                                              Если считать Землю шаром, достаточно знать ее радиус=40000км/(2*pi) и угол между радиус-векторами на две точки. Каковой находится из векторного произведения
                                                                              Сообщение отредактировано: 05772 -
                                                                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                              0 пользователей:


                                                                              Рейтинг@Mail.ru
                                                                              [ Script execution time: 0,1016 ]   [ 15 queries used ]   [ Generated: 26.04.24, 10:11 GMT ]