Расчет параметров местной системы координат по геодезическим пунктам с сантиметровой точностью с помощью бесплатного ПО, Открытый код вебформы для расчета параметров перехода систем координат
Для использования в QGIS, ArcGis, MapInfo, AutoCadMap3D и т. д. Данных в местной системе координат, необходимо получить параметры местной системы координат. Мы создали веб форму расчёта таких параметров. Для получения параметров МСК с сантиметровой точностью, необходимо знать не менее трёх опорных точек. Параметры перехода основываются на сопоставлении градусных координат опорных точек геоцентрической СК к местной прямоугольной МСК.
Немного терминологии:
Скрытый текст
Геоцентрическая система координат, это система где есть три пространственные координатные оси проходящие через центр земли. Координаты в такой системе имеют вид x,y,z или привычные нам широта и долгота измеряемые градусами угла от нулевой точки через землю lat long h. При этом высота h отсчитывается не от центра земли как в первом случае, а от эллипсоида, сферы, геоида (упрощённой модели поверхности земли). Прямоугольная система координат — система координат построенная на поверхности земли пренебрегающая её «округлостью». Такие системы координат очень удобны в использовании на небольших расстояниях, позволяют не проводить сложных математических операций для расчёта привычных нам расстояний на поверхности земли. Такие СК часто применяются в строительстве, картографии, геодезии. Местная система координат (МСК) — как правило прямоугольная система координат, обслуживающая небольшую локальныю территорию. Часто распостраняется на территорию района или города, где её искажения не критичны для точности строительства, кадастра и т.д.
Параметры системы координат состоят из нескольких отдельных параметров, опишем каждый из них. Возьмём строку параметров PROJ4 (MapInfp, ArcGIS и т. д. Так же используют эти параметры, только структура записи иная): +proj=omerc +lat_0=59.8338730825 +lonc=33 +alpha=-0.0001 +gamma=-1.771957267229058 +k=0.9996584453038837 +x_0=2365031.423134961 +y_0=426397.2888527482 +ellps=krass
Модель земного шара (+ellps=krass)— в нашем случае это эллипсоид Красовского. Под этим названием эллипсоида скрывается параметры примерного описания земного шара: направление координатных осей и углы между осями, диаметр, сжатие на полюсах и т. д. Выбрать необходимый эллипсоид можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с эллипсоидом Красовского.
Проекция земного шара на плоскость (+proj=omerc) — метод с помощью которого прямоугольные координаты проецируются за круглую землю. Самый распространённый алгоритм это «апельсиновые дольки», если порезать апельсин по долькам, отделить от долек шкурки. Расправленную шкурку положить на лист в клетку и получится проекция Меркатора. Бывают разные проекции с разными направлениями и размерами долек, бывают цилиндрические проекции, это когда апельсин превращают в цилиндр и раскатывают кожуру на плоскость, конические и т. д. Выбрать необходимую можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с проекцией Меркатора. Для точных локальных параметров МСК на малых территориях рекомендуем применять косую проекцию Меркатора (omerc).
Центр проекции в градусах (+lat_0=59.8338730825 +lonc=33) - это то место, где расправленная «шкурка апельсина» меньше меньше всего растягивается для достижения плоскости (обычно серединка шкурки дольки), место с наименьшими искажениями. Грубо говоря место где плоский лист МСК прикасается к шарику нашей планеты. Часто для центральной точки выбирают точку центра района геодезических работ.
Развороты (+alpha=-0.0001 +gamma=-1.771957267229058) разворот осей координат МСК относительно меридиана.
Масштабный коэффициент (+k=0.9996584453038837), в идеале должен быть единицей. Показывает, на сколько реальное расстояние отличается от координатного. С помощью масштаба можно сразу прикинуть, как увеличивается искажение размеров при отдалении от центральной точки МСК.
Координаты центра проекции в метрах (+x_0=2365031.423134961 +y_0=426397.2888527482), можно рассматривать как значение смещения начала отсчёта координат в плоской МСК.
Обнаружилась проблема с проекциями кроме omerc, подозреваю всему виной proj4js, попробуем переделать пересчёт в промежуточную мск с помощью projbin. По результатам сообщим тут.
Здравствуйте, очень интересует ваша программа, т.к. использую в своем проекте Proj. Есть два вопроса: 1) Для геодезии необходима возможность получить параметры (строку Proj) с определением и высоты, а не только плана. 2) По измерениям реальных геодезических пунктов калибровка в вашей программе составила территорию не более 20 км (поправка до 0.1 м), тогда как при расчетах в сторонних геод.ПО путем определения семи параметров территория достигает и 40 км.
Спасибо за такое ПО, как раз использую в своем проекте Proj, однако не могу найти прогу для определения параметров под него. Но все же остаются вопросы: 1) Полученный результат в вашем ПО при невязке на пункте до 0.1м достигается на территории протяженностью не более 15 км, тогда как при определении 7 параметров в геод.ПО контроллера при тех же измерениях покрывается территория в 30 км. 2) В работе геодезиста зачастую еще необходимо определять высоту, а вашем ПО пока не предусмотрено это.
написал: Полученный результат в вашем ПО при невязке на пункте до 0.1м достигается на территории протяженностью не более 15 км, тогда как при определении 7 параметров в геод.ПО контроллера при тех же измерениях покрывается территория в 30 км.
давайте попробуем выяснить в чем разница, предлагаю выложить примеры исходных параметров, возможно совместными усилиями увеличим охват. Алгоритм в нашей веб форме использует единое конформное преобразование "пропорциональное по всему полигону" (надеюсь понятно о чем я, к сожалению на столько не обладаю математической грамотностью, чтобы описать это правильными терминами) на все исходные точки. В общем то несколько преобразований в proj4 и не записать, проще поделить большую зону на несколько отдельных полигонов действия proj4 основанных на одном наборе исходных точек но с разными "весами" точек и разной центральной точкой. Могу подозревать, что ПО на контроллере по калибровке считает для каждой точки пересчета своими параметрами преобразования созданными на лету из набора калибрующих точек с смещением "центра" конформного преобразования к точке пересчета (это все догадки, реальные программные реализации не изучал). Можно предположить, что ПО контроллера не знает параметры системы координат, а высчитывает более подходящие для текущей задачи (текущей точки съема). Могу предположить, что при таком подходе к преобразованию координат относительная точность каждой точки выше, но при этом сильнее нарушается линейность объектов съемки и координатной сетки. Можно попробовать реализовать такой алгоритм, но его придется встраивать непосредственно в ГИС, так как для каждой точки на карте будет свой proj4. Еще есть мысли по изучать параметры proj4 на возможность задания не линейного преобразования, возможно это увеличит охват территории, для чего и прошу исходники.
Цитата
написал: В работе геодезиста зачастую еще необходимо определять высоту, а вашем ПО пока не предусмотрено это.
С высотой одновременно и сложно и просто. Высота считается от эллипсоида или геоида, зная высоту например от эллипсоида wgs84 не представляет труда пересчитать в любую другую высоту зная эллипсоид требуемой системы и возможное смещение по высоте. Так как разница в высоте систем на разных эллипсоидах не линейна, вычислить по точкам закономерность изменения высоты, смещение, возможные наклоны (ошибки в исходных данных) задача почти невозможная. Но приятная сторона дела, в том, что зная на каком эллипсоиде (или геоиде) базируется изучаемая система координат (на территории РФ подавляющее большинство на эллипсоиде Красовского), можно с помощью любого открытого ПО пересчитать высоту полученную приемником (можно и в приемнике указать эллипсоид Красовского и ничего не пересчитывать) и при дальнейших измерениях учитывать получившуюся дельту между измерениями известного по высоте пункта и его каталожным значением.
по поводу Высоты: мне как пользователю удобно иметь такое решение (строку Proj), чтобы не учитывать получившуюся дельту каждый раз и тем более менять настройки приемника, ведь по умолчанию все приемники работают на wgs. Хорошо, когда в одной программе получил готовое решение плана и высоты, все сохранено в строке Proj и можно забыть о всех деталях, а только используй нужную строку (калибровку).
написал: по поводу Высоты: мне как пользователю удобно иметь такое решение (строку Proj), чтобы не учитывать получившуюся дельту каждый раз и тем более менять настройки приемника, ведь по умолчанию все приемники работают на wgs. Хорошо, когда в одной программе получил готовое решение плана и высоты, все сохранено в строке Proj и можно забыть о всех деталях, а только используй нужную строку (калибровку).
Теоретически сделать можно, попробуем реализовать в будущих редакциях, напишем тут, если столкнемся с проблемами. Большая благодарность за рекомендации.
Цитата
написал: вот пример калибровки на большую территорию (порядка 30 км)
Вы пробовали из этих параметров собрать proj4 ? Если да, то можно его опубликовать? Точность на территорию 30км при пересчете точек была с использованием параметров или применяя именно калибровку внутри приложения в которой эта калибровка создана?
Как видно из отчета при подсчете параметров точность получилась не более 0.1м (Residual E [m] Residual N [m] Residual Height [m]), далее используя эту калибровку внутри ПО в которой она была создана такая точность подтвердилась в результате полевых работ.