Как стать автором
Обновить

Как высчитать ключи перехода от любой системы координат к WGS с сантиметровой точностью?

Время на прочтение5 мин
Количество просмотров24K
Всего голосов 10: ↑8 и ↓2+6
Комментарии31

Комментарии 31

Классика жанра: задача, решаемая данным программным средством — узкоспециальная и тем, кто не связан со всем этим многообразием МСК, не нужна совершенно, но в статье, зачем-то, есть претензия на "ликбез". Как говорится, "или трусы наденьте, или крестик снимите".

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

Поясню. Это как если бы в статье про тонкости работы с памятью на C++ половина текста была бы про то, как включать компьютер.

либо берем спутниковый приемник, и просто замеряем эти известные в плоских координатах точки

у которого точность +- 10 метров…
Имелось в виду, спутниковый приемник геодезического класса, или бытовой с наблюдением на точке в несколько суток.
Не надо несколько суток. На Алиэкспресс продаются GPS-мышки на чипе SiRFstar IV, в котором с завода есть фазовые измерения, даже патчить не прийдётся (в отличие от u-Blox). А дальше работаем как с обычным приёмником L1 — собираем RINEX, обрабатываем. Цена вопроса около 2000 р.
Любопытно, можно ссылочку, куплю себе поиграться )
SiRF Star III USB GPS: www.aliexpress.com/item/32897115936.html
SiRF Star IV USB GPS: www.aliexpress.com/item/32732379778.html

У меня есть оба, у каждого свои достоинства.

В сёрфе 3 есть сырые данные, но из коммерческих соображений обнулена фаза. Несколько лет назад её разлочили (сайт — кладезь информации по сёрфам, второго такого в мире нет). Главное достоинство — приёмник встраивался во многие наладонники и навигаторы, т.е. можно сделать портативное решение и даже с разъёмом для внешней антенны. Кроме того он отлично прошивается, загрузчик неубиваемый.

В четвёртом сёрфе фаза уже есть, но он вообше не прошивается. Зато есть разные плюшки типа отслеживание помех и пр.

Моя небольшая программа для сбора RINEX есть на сайте геодезистов, там же есть альтернатива от sklimkim
Нет, андроидные приложения не тестировал ввиду отсутствия совместимого девайса.
Я не верю в смартфонные антенны и, как следствие, в фазовые измерения на них, но надо понимать, что фазовые измерения это нестандартное использование GNSS, они появились как побочный результат изначальной задумки — кодовых измерений. Поэтому сырые данные, скорректированные по коду, будут вполне себе точными, думаю дециметровая точность вполне достижима. Этого недостаточно для кадастра, но вполне нормально для ГИС с постобработкой.
«плоской, метровой» системы координат


Вообще-то, это называется проекцией.

Т.е. есть система координат (WGS84, ПГС90, Пулково-1942, СК63 и еще куча всяких), есть проекции — Меркатора (в различных вариациях), Гаусса-Крюгера и т.п. Их тоже много всяких.

И задача перехода от «плоской системы координат» к WGS84 делится на две части — сначала переход от проекции к той системе координат из которой она получена, а потом уже переход из той системы координат к WGS84 (если изначальная система координат была иной).

То, чем вы занимаетесь в прямом смысле есть натягивание совы на глобус.
Если зайдете на веб форму, там есть как выбор датума, если Вы его знаете или хотябы предпологаете, а сама форма считает комформное преобразование (натягивание «вашей» МСК на датум исходной).

Есть ощущение, что точность вычислений при отображении на лефлетовской карте нивелируется точностью картографической подложки.

Да там все вообще никак. Привязка по трем точкам это очень мало. Любая проекция — это искажения. Причем, каждая проекция искажает по-своему (если почитать про разные проекции, то становится понятно что каждая из них создавалась под свои цели).

Притянув проекцию к СК за три точки, мы получим (почти наверняка) неплохое совпадение в этих трех точках и большие расхождения во всех остальных.

Даже в приснопамятном ОзиЭксплорере рекомендовалось привязывать карты по пяти точкам минимум (углы + центр). И указывать при этом СК и проекцию карты.

Как-то пробовал привязать старые (примерно сразу послевоенных времен) американские военные карты — пока не нашел какая там СК и проекция используется (а там было что-то очень специфическое и сейчас не используемое), то даже по многим точкам (порядка десятка) получалась ерунда. Что в Озике, что в ОкМап.

В общем, классический подход дилетанта — попытка импользовать фреймворк (в данном случае projlib), абсолютно не понимая ни предметной области, ни как все это работает. А что — там еже есть все нужные функции, просты вызовем их и получим результат…
В веб форме можно применить бесконечное количество контрольных гео пунктов. Три это минимум.

Область совпадения не сложным путем вычисляется, в следующим релизе планируется обозначить её на карте полигоном.

Зайдите на вебформу перед тем как потридится столько написать, увидете все необходимые Вам инструменты о которых пишите.

По остальному спорить не планирую )
Тогда скажите, чем ваша вебформа отличается от привязки изображения карты к координатам в любой из существующих программ (от OziExplorer и OkMap до более сложных типа QGIS)?
Это совершенно двух разных назначений инструменты.
Это как сравнивать бульдога с апельсином.

По поводу совпадения в трех точках:

Ну вообще, любые подобные преобразования делаются как раз, чтобы работать в пределах этих трех(пяти, десяти) точек. Даже локализация/калибровка в спец ПО на контроллерах к GPS приемникам при условии указания точных параметров перехода от СК к WGS84 и вводе координат исходных пунктов, позволяет работать внутри полигона образованного исходными пунктами и при незначительном "выходе" за его границы. Но при дельнейшем уходе от границы этого полигона будем получать нарастающие погрешности. Так что именно эта проблема надумана.

Да собственно даже при трансформации/калбировке/приведению в плоскость отсканированных планов все нормально внутри границ образованных точками трансформации, и искажения за пределами.

P.S. А в целом по теме написал ниже комментарий.

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

Зачем вам geophp, когда вся индустрия де-факто работает на JS (и немного Python)? Сделайте пакет на JS, и его можно будет использовать и на фронте (даже в виде плагина LeafLet), и в NodeJS, если вдруг понадобится.

Полностью на js не получается, так как есть проблемы с proj4js в коде есть ссылки на обсуждения этих проблем. Часть преобразований работает на сервере на projbin.
А почему еще и geophp, это наверно просто от лени искать чем заменить его на js для работы с полигонами. Планируется подсветить на карте облость действия вычисленных параметров полигонами с предполагаемыми откланениями (погрешностями).
Кстати, вроде как параметры пересчета некоторых систем координат как бы не секретны ли случаем? Помятуя, что даже за сканы древнего генштаба народ уезжает запросто на зону, стоило бы сперва изучить этот вопрос, чтобы не попасть впросак.

Так речь не о распространении "секретных" параметров, а о вычислении (весьма приблизительном). А отправиться в тюрьму можно и без всяких нарушений, главное — наступить кому-нибудь на хвост не очень удачно.

Да, это всего лишь инструмент для расчета. Ка Вы будете его применять, дело Ваше )

Формулы перехода к СК описаны в ГОСТ-е на эти самые СК. Да именно параметры некоторых СК секретны, но парадокс в том, что формулы по которым можно пересчитать - не секретны. Да и не могут быть они секретны, тут математику надо запрещать тогда.

Координаты пунктов в региональных МСК и СК42 так же выдают с пометкой ДСП.

Я топограф, хотя сейчас перешёл в it. И могу сказать что у автора есть неточности в статье.
В целом сервис может быть полезен. Редко, но такие задачи могут появляться. Хотя обычно у кого появляются такие задачи, обычно являются обладателями лицензии тех самых профессиональных софтов. Ещё одна проблема, в том что для использования необходимо провести цикл испытании, что сервис корректно делает расчеты и выдает то что ожидается.

Спасибо за коммент от коллеги )
Думаю скоро выкачу бету ГИС на параметрах полученных описанным инструментом, там и посмотрите точность.
Могу сказать, что в геоедзических работах при выносе границ, параметры показывают субдоцеметровые погрешности. При качественных исходных данных, даже сантиметровую точность.
Лет 6 назад мне захотелось сделать тайловые карты для османд из генштабовских. Программа в результате обросла еще несколькими проекциями, сделал тайлы из гуляющих по сети, кажется в масштабе 1:2000, планшетов Киева. Добавил раскраску по высотам и тени (по данным SRTM). Библиотек типа proj4 не использовал, т.к. скорость конвертации карт была бы очень низкой. Алгоритм примерно такой: координаты в WebMercator -> координаты в WGS -> координаты в локальную СК преобразование Хелмерта -> плоские координаты проекции -> афинные повороты/сдвиги -> координаты пикселя и файла карты -> интерполяция цвета точки. Можно было бы написать статью целую в нескольких частях.
Был бы рад почитать подробности
Первая часть уже опубликована, читайте)

Инструмент конечно полезный, но область применения очень узкая. Если нужна точность, то параметры как минимум региональных МСК есть в доступе, и они забиваются в Mapinfo и прочее ПО, которое позволяет работать с несколькими проекциями/СК.

Если точность не нужна, то и обойтись можно без этого инструмента.

По поводу точности координат пунктов ГГС, тут тоже тема скользкая. Как правильно было написано, создавалась она при СССР, и после этого очень мало какие пункты переопределялись. А там как минимум есть движение грунта, выдавливание пунктов вследствии промерзания и т.д. Плюс есть просто погрешности привнесенные ошибками вычислений. Есть населенные пункты, внутри которых пункты между собой имеют минимальну погрешность, а относительно пунктов в 500-1000 метрах от населенного пункта, уже имеют погрешность в несколько метров. При это пункты за пределами населенного пункта, тоже имеют небольшую погрешность взаимного местоположения.

Ну и сейчас многие профессиональные приемники имеют контроллеры на базе андроида, а соотвественно их ПО можно установить и на обычный телефон(при условии приобретения лицензии, и она не настолкьо дорагая, если все таки это необходимость). В данное ПО уже можно внести параметры МСК, импортировать свои координаты в МСК и использовать телефон/контроллер как навигатор.

Я в работе использую следующую цепочку:
1) Берем координаты в МСК(проект, выписка с координатами участка, пункты ГГС).
2) Импортируем в Mapinfo, куда уже добавлена нужная МСК.
3) Преобразуем координаты из МСК в WGS84 с помощью бесплатного расширения(правда там ограничение на количество слоев/таблиц за раз, но это не мешает).
4) Делаем экспорт из Mapinfo в kml/kmz.

Это обеспечивает предсказуемую точность. Пересчет же с помощью вычисления параметров зная координаты пунктов в двух системах должен включать в себя еще и оценку точности взаимного местоположения пунктов ГГС, чтобы исключать те, которые вносят грубую ошибку(а такие будут).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории