Привязка топографических карт в SAGA

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/georef-saga.html


Последовательность шагов по координатной привязке листа топокарты в географической системе координат (ГСК Pulkovo 42) и последующему переходу из нее – в спроецированную (ПСК UTM WGS 84)

Цель координатной привязки изображений – установление связи между локальной (файловой) и географической системами координат. Благодаря этому изображение получает пространственную привязку, а значит может быть переведено из географической в спроецированную систему координат, использоваться совместно с уже имеющими привязку данными, выступать основой для векторизации.

В статье рассмотрен вариант привязки листа топокарты для которого известны как исходная система координат, так и точные координаты нескольких точек (углы и центр рамки)[1].

Инструменты координатной привязки изображений и перепроецирования в ГИС SAGA реализованы встроенными библиотеками Proj.4 и GeoTRANS. Традиционно процесс координатной привязки состоит из шести этапов:

  1. Расстановка точек привязки
  2. Проверка точности и правильности расстановки точек
  3. Выбор метода передискретизации элементов изображения
  4. Выбор модели трансформации
  5. Выбор размера ячейки результирующего изображения
  6. Осуществление трансформации

Рассмотрим особенности реализации этих этапов пошагово. Используемый в качестве примера лист топокарты М-37-121 можно скачать здесь.

Импорт отсканированных материалов

Для начала импортируем в рабочую среду SAGA отсканированные материалы, которые могут предоставляться в таких форматах как *.jpeg, *.tif, *.bmp и других, т.е. переведем их в собственный растровый формат данной ГИС.

Запустите GUI SAGA и загрузите файл отсканированной топографической карты (в нашем случае М-37-12.jpeg). Для этого в библиотеке модулей (вкладка Modules рабочей области или элемент Modules панели меню) выберите Import/Export – Images => Import Image (bmp, jpeg, png, tif, gif, pnm, xpm) двойным кликом. После этого в диалоговом окне модуля укажите путь к файлу и нажмите Okay.

Saga georef 01.png

После появления в окне сообщений Module execution succeeded перейдите на вкладку рабочей области Data и дважды кликните по элементу М-37-121, чтобы он отобразился в главном окне в виде карты. Сохраните импортированный файл – кликните на элементе М-37-121 правой кнопкой мыши, в контекстном меню выберите Save As…, а в диалоге Save Grid укажите путь к папке проекта (например – \georeferencing). Обратите внимание, что теперь файл по умолчанию сохраняется в собственном растровом формате SAGA Grid - *.sgrd.

Для удобства дальнейшей работы создайте файл проекта - он объединит все файлы, которыми вы будете оперировать. Последовательно выберите на панели меню File => Project => Save Project As… и сохраните файл проекта в рабочей папке \georeferencing. Собственный формат файлов проектов SAGA Project - *.sprj предлагается по умолчанию.

NB При наименовании рабочих файлов и папок необходимо следить, чтобы в названиях и путях отсутствовала кириллица, хотя присутствие в них пробелов SAGA допускает. Однако, с учетом того, что вы скорее всего будете использовать эти же файлы и папки в работе с другими ГИС, которые могут оказаться чувствительными и к пробелам, лучше заменять пробел знаком нижнего подчеркивания "_".

Расстановка точек привязки: этапы 1-2

Для введения точек привязки из библиотеки модулей выберите Projection – Georeferencing => Create reference points [interactive], двойным кликом активизируйте модуль и не меняя параметров диалогового окна нажмите Оkay.

Saga georef 07.png

После активизации модуля в окне сообщений появится предложение Interactive module execution has been started, после чего можно приступить к непосредственному вводу точек привязки.

  • Увеличьте необходимый фрагмент карты (например, верхний левый угол), используя инструмент панели меню Saga georef zoom.pngZoom. Лист карты удобнее двигать инструментом Saga georef pan.pngPan, а для возвращения к первичному размеру используйте кнопку Saga georef fullext.pngZoom To Full Extent;
  • Используя инструмент Saga georef action.pngAction поставьте двойным кликом точку на карте, а в появившемся диалоговом окне Point Position введите координаты точки в десятичных градусах, используя в качестве разделителя знак . «точка», а не , «запятая».
Saga georef 08.png
  • Чтобы в дальнейшем видеть поставленные точки нужно открыть рабочий файл с точками привязки в компоновку-вид с топографической картой. Для этого на вкладке Data дважды кликните по элементу Reference points (Origin) и в диалоговом окне Add layer to selected map выберите уже имеющуюся 01. М-37-121 и нажмите Оkay.
Saga georef 09.png

Чтобы убедиться что все сделано верно, перейдите на вкладку Maps, которая должна иметь следующий вид:

Saga georef 10.png

Обратите внимание на то, что поставленная вами точка привязки теперь стала видимой.

  • Аналогичным образом проставьте следующие точки по углам рамки и центру листа - 5 точек будет вполне достаточно. При расстановке последующих точек в окне будут автоматически прописываться расчетные координаты, которые следует корректировать в соответствии с значениями на карте. После этого остановите модуль расстановки точек привязки – в меню Modules уберите галочку рядом с Create Reference Points.
Saga georef 11.png

SAGA позволяет рассчитать ошибку трансформации на основании RMSE и оценить качество расстановки точек, записывая результат в поле атрибутивной таблицы RESID.

Saga georef 111.png
  • Сохраните файл с расставленными точками привязки. Для этого на вкладке Data выберите элемент Reference Point (Origin) и в контекстном меню укажите Save As… . В окне диалога Save Shapes сохраните файл в рабочую папку (в нашем случае как - reference_points_pnt.shp).

Переход из локальной (файловой) в географическую систему координат: этапы 4-6

Используя файл с введенными точками привязки переведем карту из локальной в географическую систему координат на основании известных координат точек. Для этого активизируйте модуль привязки растров Projection – Georeferencing => Rectify Grid и установите в диалоговом окне следующие параметры:

  • выберите в качестве файла точек привязки созданный ранее шейп-файл;
  • в качестве координат точек привязки укажите введенные с карты Х_MAP и Y_MAP;
  • укажите растр для которого будет проводится операция;
  • выберите метод трансформации, в данном случае - Spline[2];
  • в качестве метода передискретизации выберите Nearest Neighbor[3].
Saga georef 12.png

После нажатия Okay появится окно с расчетными параметрами нового растра (охват, размер ячейки, ряды и колонки). На данном этапе есть возможность установить необходимый размер ячейки результирующего изображения с последующим перерасчетом зависимых параметров.

Saga georef 121.png

По окончании работы модуля будет выведено сообщение Module execution succeeded, на вкладке Data появится новый элемент М-37-121 - в его системе координат значения х и у будут соответствовать значениям географических координат введенных ранее. Двойным кликом откройте его в новую карту - вы увидите, что изображение теперь имеет прямоугольную форму (в соответствии с неодинаковой протяженностью по широте и долготе). Для корректного цветового отображения на вкладке Settings (справа) в блоке Colors - Type выберите RGB и нажмите Apply.

Saga georef 24.png

Для проверки качества привязки рекомендуется воспользоваться сетками разграфки соответствующего масштаба.

Назначение известной системы координат (ГСК Pulkovo 1942)

Для прописывания уже известной системы координат воспользуемся модулем Projection – Proj.4 => Set Coordinate Reference System, который позволяет сделать это несколькими альтернативными способами:

  1. записать в формате кода библиотеки Proj.4;
  2. установить вручную, воспользовавшись диалогом из 30 исходных параметров;
  3. импортировать информацию о проекции из растрового файла;
  4. импортировать информацию о проекции из шейп-файла;
  5. импортировать из текстового файла (например, *.prj);
  6. установить код EPSG:
a. выбрать соответствующий код EPSG из имеющегося списка географических систем координат;
b. выбрать соответствующий код EPSG из имеющегося списка спроецированных систем координат.


Saga georef 13.png

Способ 1 - строка аргументов Proj.4

В данном случае нам известно, что исходная карта использует систему координат 1942 года, базирующуюся на эллипсоиде Красовского, т.е. мы имеем дело с ГСК Pulkovo 1942. Выбрав соответствующий код EPSG из имеющегося списка географических систем координат (опция 5), мы получим следующую запись в формате кода Proj.4:

+proj=longlat +ellps=krass +no_defs

Поскольку в дальнейшем планируется переход от Pulkovo 1942 к WGS 84, зададим параметры этой трансформации на основании ГОСТ Р 51794-2008, дополнив код группой значений towgs84:

+proj=longlat +ellps=krass +towgs84=23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22 +no_defs
Saga georef 14.png

Способ 2 - выбор предустановленных параметров в диалоговом режиме

Аналогичным образом можно описать проекцию и через диалог из 30-ти параметров (опция 2), который будет иметь следующий вид

Saga georef 15.png

После того, как вы удобным для вас способом описали проекцию и в поле Data Objects => Grids указали соответствующий файл, можно присваивать проекцию, нажав Оkay. По окончании работы модуля появится сообщение Module execution succeeded. Если теперь перейти на вкладку Description окна Object Properties, то можно увидеть, что информация о системе координат файла выглядит следующим образом:

Saga georef 16.png

Не забудьте сохранить внесенные изменения, нажав Save в контекстном меню файла.

Переход из географической системы координат (ГСК Pulkovo 1942) в спроецированную (ПСК UTM WGS 84)

Переходы между системами координат и проекциями в SAGA, реализуемые Proj.4, возможно осуществить несколькими альтернативными способами:

  1. Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid) - параметры перехода задаются в виде командной строки в формате Proj.4;
  2. Projection - Proj.4 => Proj.4 (Dialog, Grid) - параметры перехода задаются в диалоговом режиме на основании предустановленных показателей.

Аналогичные модули реализованы для шейп-файлов (Proj.4 (Dialog, Shapes) или Proj.4 (Command Line Arguments, Shapes)), а также нескольких файлов (Proj.4 (Command Line Arguments, List of Shapes Layers), Proj.4 (Dialog, List of Shapes Layers), Proj.4 (Command Line Arguments, List of Grids), Proj.4 (Dialog, List of Grids)).

Способ 1 - строка аргументов Proj.4

В диалоговом окне модуля Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid) сначала выбираем файл, которому ранее мы уже присвоили ГСК Pulkovo 1942 - в таком случае информация о проекции в строке ее описания появится автоматически. Далее, описываем параметры новой проекции:

+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

В качестве метода интерполяции указываем Nearest Neighbor и жмем Okay. После этого появится окно с информацией об основных параметрах получаемого растра, согласившись с которыми вы запустите процесс трансформации. При желании, в расчетных параметрах нового растра также можно изменить размер ячейки.

Saga georef 17.png
Saga georef 18.png

По окончании во вкладке Data появится новый элемент к названию которого будет добавлено [Universal Transverse Mercator (UTM)]. Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем.

Способ 2 - выбор предустановленных параметров в диалоговом режиме

В диалоге Projection - Proj.4 => Proj.4 (Dialog, Grid) сначала описываем параметры исходной проекции Source Projection Parameters аналогично тому, как это делалось при назначении ГСК Pulkovo 1942. В результате диалог должен выглядеть следующим образом:

Saga georef 19.png

Блок General Settings остается без изменений. Исходным файлом устанавливается растр в ГСК Pulkovo 1942.

Далее описываем целевую проекцию Target Projection Parameters:

Saga georef 20.png

В этом случае в General Settings в соответствии с зоной UTM задаются значения центрального меридиана, ложное смещение на восток, масштабный коэффициент. Разобравшись с целевой проекцией снова возвращаемся в главное окно диалога, устанавливаем Nearest Neighbor в качестве метода интерполяции и нажатием Okay запускаем процесс трансформации.

Saga georef 21.png

После этого перед вами сначала появится окно для ввода зоны UTM, а затем - окно с параметрами создаваемого растра.

Saga georef 22.png
Saga georef 23.png

Последовательное нажатие Okay в каждом из них позволит завершить трансформацию. По окончании во вкладке Data появится новый элемент к названию которого будет добавлено [Universal Transverse Mercator (UTM)] - в его системе координат значения х и у будут соответствовать спроецированным координатам. Двойным кликом откройте его в новую карту - вы увидите, что изображение вновь изменило форму (в соответствии с параметрами заданной проекции). Для корректного цветового отображения на вкладке Settings (справа) в блоке Colors - Type выберите RGB и нажмите Apply.Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем.

Saga georef 25.png

NB Помните, что совершая трансформацию, SAGA не присваивает файлу информацию о проекции автоматически, поэтому для ее добавления вновь воспользуйтесь модулем Projection - Proj.4 => Set Coordinate Reference System.

Ссылки по теме

Общая информация:
SAGA Home
Открытая настольная ГИС SAGA - общая характеристика
Переход от одной системы координат к другой - наборы параметров
Часто задаваемые вопросы по координатам, проекциям, системам координат
Разграфка и номенклатура топографических карт 1км, 2км, 5км, 10км масштаба
Информация о привязке в различных форматах
Universal Transverse Mercator coordinate system

Привязка в другом ПО ГИС:
Географическая привязка данных в QGIS
Координатная привязка карты в ArcMap
Привязка топографических карт в ERDAS IMAGINE
Географическая привязка растровых данных в ImageWarp (ArcView)
Использование GDAL для привязки растровых материалов

  1. Альтернативный вариант, когда в качестве источника координатной информации для некоторых точек выступает уже привязанное изображение (карта, снимок), рассмотрен в параграфе 1.1 учебного пособия
  2. Обратите внимание, что начиная с версии 2.1.1 набор доступных методов существенно расширился: Automatic, Triangulation, Spline, Affine, 1st Order Polynomial, 2nd Order Polynomial, 3rd Order Polynomial, Polynomial Order
  3. Кроме Nearest Neighbor доступны также Bilinear Interpolation, Inverse Distance Interpolation, Bicubic Spline Interpolation, B-Spline Interpolation. В данном случае мы устанавливаем Nearest Neighbor, т.к. этот метод не изменяет исходного значения ячейки растра, а значит может быть использован для категориальных данных, каковыми и является сканированная карта