Привязка топографических карт в SAGA
по адресу http://gis-lab.info/qa/georef-saga.html
Последовательность шагов по координатной привязке листа топокарты в географической системе координат (ГСК Pulkovo 42) и последующему переходу из нее – в спроецированную (ПСК UTM WGS 84)
Цель координатной привязки изображений – установление связи между локальной (файловой) и географической системами координат. Благодаря этому изображение получает пространственную привязку, а значит может быть переведено из географической в спроецированную систему координат, использоваться совместно с уже имеющими привязку данными, выступать основой для векторизации.
В статье рассмотрен вариант привязки листа топокарты для которого известны как исходная система координат, так и точные координаты нескольких точек (углы и центр рамки)[1].
Инструменты координатной привязки изображений и перепроецирования в ГИС SAGA реализованы встроенными библиотеками Proj.4 и GeoTRANS. Традиционно процесс координатной привязки состоит из шести этапов, но в SAGA она происходит по несколько упрощенной схеме:
- Расстановка точек привязки
Проверка точности и правильности расстановки точек- SAGA не позволяет рассчитать ошибку трансформации на основании RMSE и оценить качество расстановки точек- Выбор метода передискретизации элементов изображения
Выбор модели трансформации- в SAGA реализована только наиболее простая модель линейной (аффинной) трансформации, которая минимально искажает растр (изменения масштаба, сдвиг и поворот без учета кривизны линий)- Выбор размера ячейки результирующего изображения
- Осуществление трансформации
Таким образом, мы имеем дело с несколько "урезанным" вариантом привязки, который не дает возможности реализовывать сложные модели трансформации на основании большого количества точек. Поэтому, в случае неудовлетворительного качества сканирования исходных материалов, неопределенности информации о системе координат и проекции, рекомендуется воспользоваться инструментарием других ГИС, позволяющих более тонкую коррекцию благодаря полной реализацию процедуры привязки. Однако, при качественно отсканированных материалах, достоверности информации о системе координат и проекции, изложенный алгоритм позволяет добиться приемлемого результата.
Рассмотрим процедуру пошагово. Используемый в качестве примера лист топокарты М-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.
После появления в окне сообщений 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 допускает. Однако, с учетом того, что вы скорее всего будете использовать эти же файлы и папки в работе с другими ГИС, которые могут оказаться чувствительными и к пробелам, лучше заменять пробел знаком нижнего подчеркивания "_".
Расстановка точек привязки
Для введения точек привязки из библиотеки модулей выберите Projection – Georeferencing => Create reference points [interactive], двойным кликом активизируйте модуль и не меняя параметров диалогового окна нажмите Оkay.
После активизации модуля в окне сообщений появится предложение Interactive module execution has been started, после чего можно приступить к непосредственному вводу точек привязки.
- Увеличьте необходимый фрагмент карты (например, верхний левый угол), используя инструмент панели меню – Zoom. Лист карты удобнее двигать инструментом – Pan, а для возвращения к первичному размеру используйте кнопку – Zoom To Full Extent;
- Используя инструмент – Action поставьте двойным кликом точку на карте, а в появившемся диалоговом окне Point Position введите координаты точки в десятичных градусах, используя в качестве разделителя знак . «точка», а не , «
запятая».
- Чтобы в дальнейшем видеть поставленные точки нужно открыть рабочий файл с точками привязки в компоновку-вид с топографической картой. Для этого на вкладке Data дважды кликните по элементу Reference points (Origin) и в диалоговом окне Add layer to selected map выберите уже имеющуюся 01. М-37-121 и нажмите Оkay.
Чтобы убедиться что все сделано верно, перейдите на вкладку Maps, которая должна иметь следующий вид:
Обратите внимание на то, что поставленная вами точка привязки теперь стала видимой.
- Аналогичным образом проставьте следующие точки по углам рамки и центру листа - 4-5 точек будет вполне достаточно. После этого остановите модуль расстановки точек привязки – в меню Modules уберите галочку рядом с Create Reference Points.
- Сохраните файл с расставленными точками привязки. Для этого на вкладке Data выберите элемент Reference Point (Origin) и в контекстном меню укажите Save As… . В окне диалога Save Shapes сохраните файл в рабочую папку (в нашем случае как - reference_points_pnt.shp).
Переход из локальной (файловой) в географическую систему координат
Используя файл с введенными точками привязки переведем карту из локальной в географическую систему координат на основании известных координат точек. Для этого активизируйте модуль привязки растров Projection – Georeferencing => Georeferencing Grids и установите в диалоговом окне следующие параметры:
- выберите в качестве файла точек привязки созданный ранее шейп-файл;
- проставьте координаты Х и У;
- укажите растр для которого будет проводится операция;
- в качестве метода передискретизации выберите Nearest Neighbor[2].
По окончании работы модуля будет выведено сообщение Module execution succeeded, на вкладке Data появится новый элемент М-37-121 - в его системе координат значения х и у будут соответствовать значениям географических координат введенных ранее. Двойным кликом откройте его в новую карту - вы увидите, что изображение теперь имеет прямоугольную форму (в соответствии с неодинаковой протяженностью по широте и долготе). Для корректного цветового отображения на вкладке Settings (справа) в блоке Colors - Type выберите RGB и нажмите Apply.
Назначение известной системы координат (ГСК Pulkovo 1942)
Для прописывания уже известной системы координат воспользуемся модулем Projection – Proj.4 => Set Coordinate Reference System, который позволяет сделать это несколькими альтернативными способами:
- записать в формате кода библиотеки Proj.4;
- установить вручную, воспользовавшись диалогом из 30 исходных параметров;
- импортировать из уже готового текстового .prj-файла;
- записать код EPSG;
- выбрать соответствующий код EPSG из имеющегося списка географических систем координат;
- выбрать соответствующий код EPSG из имеющегося списка спроецированных систем координат;
- импортировать данные о системе координат из растра;
- импортировать данные о системе координат из шейп-файла.
Способ 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
Способ 2 - выбор предустановленных параметров в диалоговом режиме
Аналогичным образом можно описать проекцию и через диалог из 30-ти параметров (опция 2), который будет иметь следующий вид
После того, как вы удобным для вас способом описали проекцию и в поле Data Objects => Grids указали соответствующий файл, можно присваивать проекцию, нажав Оkay. По окончании работы модуля появится сообщение Module execution succeeded. Если теперь перейти на вкладку Description окна Object Properties, то можно увидеть, что информация о системе координат файла выглядит следующим образом:
Не забудьте сохранить внесенные изменения, нажав Save в контекстном меню файла.
Переход из географической системы координат (ГСК Pulkovo 1942) в спроецированную (ПСК UTM WGS 84)
Переходы между системами координат и проекциями в SAGA, реализуемые Proj.4, возможно осуществить несколькими альтернативными способами:
- Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid) - параметры перехода задаются в виде командной строки в формате Proj.4;
- 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. После этого появится окно с информацией об основных параметрах получаемого растра, согласившись с которыми вы запустите процесс трансформации.
По окончании во вкладке Data появится новый элемент к названию которого будет добавлено [Universal Transverse Mercator (UTM)]. Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем.
Способ 2 - выбор предустановленных параметров в диалоговом режиме
В диалоге Projection - Proj.4 => Proj.4 (Dialog, Grid) сначала описываем параметры исходной проекции Source Projection Parameters аналогично тому, как это делалось при назначении ГСК Pulkovo 1942. В результате диалог должен выглядеть следующим образом:
Блок General Settings остается без изменений. Исходным файлом устанавливается растр в ГСК Pulkovo 1942.
Далее описываем целевую проекцию Target Projection Parameters:
В этом случае в General Settings в соответствии с зоной UTM задаются значения центрального меридиана, ложное смещение на восток, масштабный коэффициент. Разобравшись с целевой проекцией снова возвращаемся в главное окно диалога, устанавливаем Nearest Neighbor в качестве метода интерполяции и нажатием Okay запускаем процесс трансформации.
После этого перед вами сначала появится окно для ввода зоны UTM, а затем - окно с параметрами создаваемого растра.
Последовательное нажатие Okay в каждом из них позволит завершить трансформацию. По окончании во вкладке Data появится новый элемент к названию которого будет добавлено [Universal Transverse Mercator (UTM)] - в его системе координат значения х и у будут соответствовать спроецированным координатам. Двойным кликом откройте его в новую карту - вы увидите, что изображение вновь изменило форму (в соответствии с параметрами заданной проекции). Для корректного цветового отображения на вкладке Settings (справа) в блоке Colors - Type выберите RGB и нажмите Apply.Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем.
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 учебного пособия
- ↑ Кроме Nearest Neighbor доступны также Bilinear Interpolation, Inverse Distance Interpolation, Bicubic Spline Interpolation, B-Spline Interpolation. В данном случае мы устанавливаем Nearest Neighbor, т.к. этот метод не изменяет исходного значения ячейки растра, а значит может быть использован для категориальных данных, каковыми и является сканированная карта