Поиск подхода к решению задачи
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Поиск подхода к решению задачи
Добрый день!
Передо мной стоит задача написания программы, которая по данным, полученным с GPS навигатора, выполняла бы следующие действия:
1. Отображала траекторию пути замкнутую на первую точку.
2. Считала площадь получившейся плоской фигуры.
Из постановки задачи следует, что мне потребуется преобразовать широту и долготу (как я понял, GPS поставляет данные в системе WGS84) в прямоугольные координаты (метры).
После длительных изысканий я нашел формулы для преобразования WGS84 -> Проекция Меркатора.
os = (2 * math.pi * 6378137 / 2.0)
mx = lon * os / 180.0
my = math.log( math.tan((90 + lat) * math.pi / 360.0 )) / (math.pi / 180.0)
my = my * os / 180.0
Собственно вопросы:
1. Верны ли формулы?
2. Подходит ли для решения моей задачи данная проекция (смущает фраза из описания "Масштаб на карте в этой проекции не является постоянным...")?
3. Если нет - то какую проекцию лучше выбрать?
Далее. Тестируя прием данных от GPS навигатора, столкнулся с тем, что стоя на одном месте получаю разные данные о своем местоположении (расхождение +- 10м). Пробовал усреднять данные за 2 секунды, но ощутимого улучшения результата не добился. Данные я беру из NMEA строки $GPRMC. Достоверность проверяю по второму параметру в данной строке.
Вопросы:
1. Существует ли возможность определить точность данных, принимаемых от GPS навигатора?
2. Какие существуют способы программного увеличения точности этих данных?
Передо мной стоит задача написания программы, которая по данным, полученным с GPS навигатора, выполняла бы следующие действия:
1. Отображала траекторию пути замкнутую на первую точку.
2. Считала площадь получившейся плоской фигуры.
Из постановки задачи следует, что мне потребуется преобразовать широту и долготу (как я понял, GPS поставляет данные в системе WGS84) в прямоугольные координаты (метры).
После длительных изысканий я нашел формулы для преобразования WGS84 -> Проекция Меркатора.
os = (2 * math.pi * 6378137 / 2.0)
mx = lon * os / 180.0
my = math.log( math.tan((90 + lat) * math.pi / 360.0 )) / (math.pi / 180.0)
my = my * os / 180.0
Собственно вопросы:
1. Верны ли формулы?
2. Подходит ли для решения моей задачи данная проекция (смущает фраза из описания "Масштаб на карте в этой проекции не является постоянным...")?
3. Если нет - то какую проекцию лучше выбрать?
Далее. Тестируя прием данных от GPS навигатора, столкнулся с тем, что стоя на одном месте получаю разные данные о своем местоположении (расхождение +- 10м). Пробовал усреднять данные за 2 секунды, но ощутимого улучшения результата не добился. Данные я беру из NMEA строки $GPRMC. Достоверность проверяю по второму параметру в данной строке.
Вопросы:
1. Существует ли возможность определить точность данных, принимаемых от GPS навигатора?
2. Какие существуют способы программного увеличения точности этих данных?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Поиск подхода к решению задачи
проекция не подходит, в меркаторе площади не считают, выбирайте что-нибудь равноплощадное типа Albers Equalarea или, еще лучше, на эллипсоиде считайте.
http://gis-lab.info/qa/cep.html
http://gis-lab.info/qa/cep.html
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Поиск подхода к решению задачи
А приёмник какой и какая точность нужна?
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Re: Поиск подхода к решению задачи
Приемник, на котором тестирую - это gpsOne Gen8.
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Re: Поиск подхода к решению задачи
На счет требуемой точности... Чем больше тем лучше. Набрел в интернете на подобную программу http://agro-help.org/description.htm . Они там пишут, что достигли точности 20см. Но помоему врут.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Поиск подхода к решению задачи
Гонят, такую точность можно получить только при использование фазовых приёмников или гибридных КомпаНав-2
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Поиск подхода к решению задачи
Ну, упомянутые чипсеты (antaris 4, например) фазовые измерения делать умеют. Далее возможно применение ppp-kinematic, но 20см - все равно больше похоже на вранье (если речь идет о standalone-режиме, а не дифференциальном). Почему - см. тут viewtopic.php?f=1&t=13567#p87429
В дифференциальном - возможна и лучшая.
В дифференциальном - возможна и лучшая.
-
- Участник
- Сообщения: 82
- Зарегистрирован: 07 сен 2012, 10:57
- Репутация: 9
- Откуда: Санкт-Петербург
Re: Поиск подхода к решению задачи
Как правильно заметил trir, всё зависит от требуемой точности!
Если Вы собираетесь писать программу для отводов леса (судя по задаче), то точность в 1м на 300 м по длине и +3 % по площади, в лесу, Вам не даст ни один бытовой навигатор.
Способ определить точность данных ГПС: проведите 2-3 съёмки одних и тех же точек, но в разное время, с интервалом не менее 3х часов. Разница - примерная точность геопозиционирования прибора.
Подобным способом Вы наверняка выявите временные "отскоки" сигналов спутника на десятки метров...
Если Вы собираетесь писать программу для отводов леса (судя по задаче), то точность в 1м на 300 м по длине и +3 % по площади, в лесу, Вам не даст ни один бытовой навигатор.
Способ определить точность данных ГПС: проведите 2-3 съёмки одних и тех же точек, но в разное время, с интервалом не менее 3х часов. Разница - примерная точность геопозиционирования прибора.
Подобным способом Вы наверняка выявите временные "отскоки" сигналов спутника на десятки метров...
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Поиск подхода к решению задачи
Можно решить вопрос полупрофессиональным оборудованием вроде такого http://www.onetalent-gnss.com/ideas/wir ... nga10logwi
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Re: Поиск подхода к решению задачи
Просто я слышал, что при использовании, например программы НАВИТЕЛ, метка пользователя не скачет как сумашедшая по округе даже на смартфонах с GPS. Сам я пока не имел возможности это проверить.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Поиск подхода к решению задачи
Натравить на координаты рекурсивный фильтр или включить режим прилипания к дорогам в навигационной программе - не сложно. Только точность от этого, естественно, не увеличивается.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Поиск подхода к решению задачи
Для получения "официальных" значений площади лучше считать в официальной СК, например в этих: http://www.mapbasic.ru/msksolutions
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Re: Поиск подхода к решению задачи
Чет голова кругом идет от всех этих проекций... Может кто поскажет проекцию в которой можно нормально отображать путь и считать площадь? Т.е. чтобы если я, например повернул направо, перпендикулярно своей предыдущей траектории - то оно так и нарисовалось. А когда я доехал - взял все точки и по ним посчитал площадь.
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 06 фев 2006, 20:16
- Репутация: 39
Re: Поиск подхода к решению задачи
Если нужно на маршруте безошибочно видеть направления движения (как в этом примере), то проекцию надо ставить равноугольную. А потом, когда уже надо считать площадь, делать это в равноплощадной, перекинув точки туда. Но вообще-то на маршруте эта разница в отображении пути при обычной работе на глаз видна просто не будет.StVort писал(а):Чет голова кругом идет от всех этих проекций... Может кто поскажет проекцию в которой можно нормально отображать путь и считать площадь? Т.е. чтобы если я, например повернул направо, перпендикулярно своей предыдущей траектории - то оно так и нарисовалось. А когда я доехал - взял все точки и по ним посчитал площадь.
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 06 май 2013, 13:21
- Репутация: 0
Re: Поиск подхода к решению задачи
Ну я так понимаю водить лучше в Меркаторе, а площадь считать в Альбере. Формулами перевода в Альбера не поделитесь?
И еще... Нельзя ли как-нибудь использовать для повышения точности фактор HDOP из строки $GPGGA?
И еще... Нельзя ли как-нибудь использовать для повышения точности фактор HDOP из строки $GPGGA?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя