Трансформации — аффинное преобразование в ArcGIS

Популярный вопрос, ответ на который был описан нашим сотрудником. Делимся опытом. Допустим, что есть местная сиcтема координат со следующим форматом записи: «МСК», .., …, .., …, 0, 1, 0, 0 Affine Units «m», A, B, C, D, E, F — можно ли в таком виде с аффинным преобразованием создать в  ArcGIS?

Отвечаем: В ArcGIS аффинное преобразование  недоступно «на лету». Точнее, его нет для данных, которые для ArcGIS являются «родными» — классов в базах геоданных, шейп-файлов и т.д., НО можно «физически» пересчитать координаты, используя метод аффинной трансформации.

Выполняется это следующими инструментами:

В этих инструментах в качестве параметров преобразования указываются входные и выходные координаты. Достаточно двух «линков». Если будет четыре линка, или более – то ArcGIS рассчитает точность такой трансформации. Соответственно, координаты таких точек (входных-выходных) в ArcGIS можно либо ввести вручную с помощью наглядного инструмента, либо импортировать из текстового файла очень простого формата.

Эти инструменты не позволяют задать сами параметры в виде  коэффициентов. Поэтому, чтобы выполнить трансформацию, необходимо получить координаты четырёх требуемых «линков», используя любой доступный инструмент.

Но для данных САПР (AutoCAD или Microstation) можно указывать в качестве привязки в том числе имеющиеся параметры: http://desktop.arcgis.com/en/arcmap/latest/manage-data/cad/defining-a-coordinate-transformation.htm т.е. можно взять шейп-файл с четырьмя известными точками в исходной СК, конвертировать его в DWG. DWG привязать, используя параметры. Конвертировать этот привязанный DWG назад в шейп-файл уже в новой СК. И использовать координаты входного и выходного файлов для создания «таблицы линков». Полученную таблицу потом можно использовать многократно для пересчёта координат в любую сторону. Или как вариант взять ArcObjects и написать инструмент самому, там есть готовый метод, реализующий все возможные виды трансформаций.