Конформное преобразование: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Строка 236: Строка 236:
|Ссылка = left
|Ссылка = left
|Выравнивание_заголовка = left
|Выравнивание_заголовка = left
|Заголовок = shiftxy.c
|Заголовок = findkey.c
|Фон_заголовка = #ccccff
|Фон_заголовка = #ccccff
|Содержание =  
|Содержание =  

Версия от 07:41, 24 апреля 2014

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/helmert2d.html


Конформное преобразование на плоскости широко используется в геодезии при создании местных координатных систем на небольшие территории, ограниченные размерами населённого пункта.

Введение

Следующие формулы связывают координаты точек x, y, заданные в местной системе координат (МСК), и координаты X, Y, заданные в государственной системе координат (ГСК):

где m — масштабный множитель, θ — угол разворота, X0, Y0, x0, y0 — координаты одного из геодезических пунктов в ГСК и МСК, как правило. Этот набор параметров называется «ключ».

Исходный материал для определения ключа — пары координат пунктов геодезической сети, полученные из независимого уравнивания одних и тех же измерений в МСК и в ГСК[1]. В зависимости от класса пунктам (вернее, соответствующим парам уравнений) назначаются веса p.

Алгоритм нахождения параметров

Конформное преобразование представляется следующей математической моделью:

Определению подлежат четыре параметра: a0, b0, a1, b1,.

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

Шаг 1: вычисление взвешенных средних

Шаг 2: перенос осей в центр масс

Шаг 3: вычисление a1 и b1

Шаг 4: вычисление a0 и b0

Шаг 5: вычисление невязок

Невязки позволяют выявить точки, плохо укладывающиеся в полученную модель. Классическая процедура удаляет такие «отлетающие» точки, после чего вычисление параметров повторяется без них. Робастные процедуры переназначают веса уравнениям в соответствии с невязками, и повторное вычисление повторяется с полным набором точек при том, что «отлетающие» влияют на результат незначительно.

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

Шаг 6: вычисление ключа

Вычислим масштабный множитель и угол разворота:

Выберем j-й пункт с малыми невязками по возможности в середине массива точек. Его координаты в обеих системах Xj, Yj, xj, yj становятся параметрами X0, Y0, x0, y0.

Пример вычисления параметров

Даны координаты четырёх пунктов x, y в исходной системе, X, Y в конечной системе с весами p:

i xi yi Xi Yi pi
1 1334.71 285.94 83477.64 87377.60 1.0
2 563.67 −5197.34 82557.14 81916.51 1.0
3 4444.27 1153.79 86610.19 88160.39 1.0
4 −252.07 2881.90 81962.05 90016.34 1.0
p = 4.0
i pixi piyi piXi piYi
1 1334.71 285.94 83477.64 87377.60
2 563.67 −5197.34 82557.14 81916.51
3 4444.27 1153.79 86610.19 88160.39
4 −252.07 2881.90 81962.05 90016.34
∑ = 6090.58 −875.71 334607.02 347470.84

Взвешенные средние:

xc yc Xc Yc
1522.645 −218.9275 83651.755 86867.71

Перенос осей в центр масс:

i xi yi Xi Yi
1 −187.935 504.8675 −174.115 509.89
2 −958.975 −4978.4125 −1094.615 −4951.20
3 2921.625 1372.7175 2958.435 1292.68
4 −1774.715 3100.8275 −1689.705 3148.63
i pixiXi piyiYi pixiYi piyiXi pi (∆xi2 + ∆xi2)
1 32722.3 257426.9 −95826.2 −87905.0 290210.8
2 1049708.4 24649116.0 4748077.0 5449445.0 25704224.1
3 8643437.7 1774484.5 3776726.2 4061095.5 10420246.0
4 2998744.8 9763358.5 −5587920.9 −5239483.7 12764744.5
∑ = 12724613.2 36444385.8 2841056.2 4183151.8 49179425.3
  S1 S2 S3 S4 S5

Параметры конформного преобразования:

a1 b1
0.99978799 −0.02728978
a0 b0
82135.407 87128.144

Невязки:

i vxi vyi
1 0.002 0.001
2 0.016 −0.013
3 −0.032 −0.016
4 0.013 0.028

Масштаб и разворот:

m θ
1.00016037 −1°33′48.72″

Сконструируем ключ на основе первого геодезического пункта:

X0 Y0 x0 y0 m θ
83477.64 87377.60 1334.71 285.94 1.00016037 −1°33′48.72″

Пример программной реализации

Вот листинг простой утилиты на языке C:


Сохраним код в файл findkey.c. Исполняемый модуль можно создать, например, компилятором gcc:

$ gcc -o findkey findkey.c -lm

Для MS Windows можно загрузить уже скомпилированную программу.

Утилита findkey запускается в командной строке с именами трёх файлов в качестве аргументов: входной файл данных, выходные файл параметров и файл невязок.

Подготовим файл данных data.dat, структура которого соответствует таблице исходных данных, т. е. содержит в колонках названия пунктов, входные координаты x, y, выходные координаты X, Y, веса:

1 1334.71   285.94 83477.64 87377.60 1.0
2  563.67 -5197.34 82557.14 81916.51 1.0
3 4444.27  1153.79 86610.19 88160.39 1.0
4 -252.07  2881.90 81962.05 90016.34 1.0

После запуска программы

$ findkey data.dat key.dat var.dat

получим параметры key.dat

82135.407
87128.144
0.9997879942
-0.0272897781
1.0001603698
-1.56353244

и невязки var.dat

1 1334.710 285.940 83477.640 87377.600 1 0.002 0.001
2 563.670 -5197.340 82557.140 81916.510 1 0.016 -0.013
3 4444.270 1153.790 86610.190 88160.390 1 -0.032 -0.016
4 -252.070 2881.900 81962.050 90016.340 1 0.013 0.028

Заключение

Положенные в основу статьи формулы называются в учебниках геодезии «неполными» в противоположность «полным». Дело в том, что при большом удалении объекта от осевого меридиана исходной проекции Гаусса-Крюгера возникает значительный градиент масштаба изображения в направлении запад-восток. Чтобы компенсировать возникающие при этом специфические искажения конформного отображения, в «полные» выражения добавляют необходимые члены разложений формул проекций. Разумеется, такой подход несовершенен, как любые ограниченные разложения. В статье Добавление местной координатной системы в GIS в качестве альтернативы предлагается переход от ГСК к проекции с нулевым градиентом масштаба в центре объекта или вблизи него, что делает «полные» формулы ненужными.

Примечания

  1. ГКИНП (ОНТА)-01-271-03 Руководство по созданию и реконструкции городских геодезических сетей с использованием спутниковых систем ГЛОНАСС/GPS.

Ссылки