Привязка топографических карт в SAGA: различия между версиями
Darsvid (обсуждение | вклад) |
Darsvid (обсуждение | вклад) |
||
(не показаны 62 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
{{Статья| | {{Статья|Опубликована|georef-saga}} | ||
{{Аннотация|Последовательность шагов по привязке листа топокарты в географической системе координат (ГСК Pulkovo 42) и последующему переходу из нее – в спроецированную (ПСК UTM WGS 84)}} | {{Аннотация|Последовательность шагов по координатной привязке листа топокарты в географической системе координат (ГСК Pulkovo 42) и последующему переходу из нее – в спроецированную (ПСК UTM WGS 84)}} | ||
Цель координатной привязки изображений – | Цель координатной привязки изображений – установление связи между локальной (файловой) и географической системами координат. Благодаря этому изображение получает пространственную привязку, а значит может быть переведено из географической в спроецированную систему координат, использоваться совместно с уже имеющими привязку данными, выступать основой для векторизации. | ||
Традиционно процесс координатной привязки состоит из | В статье рассмотрен вариант привязки листа топокарты для которого известны как исходная система координат, так и точные координаты нескольких точек (углы и центр рамки)<ref>Альтернативный вариант, когда в качестве источника координатной информации для некоторых точек выступает уже привязанное изображение (карта, снимок), рассмотрен в параграфе 1.1 [http://switch.dl.sourceforge.net/project/saga-gis/SAGA%20-%20Documentation/Tutorials/Noise_Tutorial/NoiseTutorial.pdf учебного пособия]</ref>. | ||
Инструменты координатной привязки изображений и перепроецирования в ГИС SAGA реализованы встроенными библиотеками Proj.4 и GeoTRANS. Традиционно процесс координатной привязки состоит из [http://gis-lab.info/docs/giscourse/18-rasterwork.html шести этапов]: | |||
# Расстановка точек привязки | # Расстановка точек привязки | ||
Строка 13: | Строка 15: | ||
# Осуществление трансформации | # Осуществление трансформации | ||
Рассмотрим особенности реализации этих этапов пошагово. Используемый в качестве примера лист топокарты М-37-121 можно скачать [http://sunsite.berkeley.edu/EART/x-ussr/100k/M-37-121.jpg здесь]. | |||
== Импорт отсканированных материалов == | == Импорт отсканированных материалов == | ||
Для начала импортируем в рабочую среду SAGA отсканированные материалы, которые могут предоставляться в таких форматах как *.jpeg, *.tif, *.bmp и других, т.е. переведем их в собственный растровый формат данной ГИС. | |||
Запустите GUI SAGA и загрузите файл отсканированной топографической карты (в нашем случае ''М-37-12.jpeg''). Для этого в библиотеке модулей (вкладка <tt>Modules</tt> рабочей области или элемент <tt>Modules</tt> панели меню) выберите <tt>Import/Export – Images => Import Image (bmp, jpeg, png, tif, gif, pnm, xpm)</tt> двойным кликом. После этого в диалоговом окне модуля укажите путь к файлу и нажмите <tt>Okay</tt>. | |||
[[Файл:saga_georef_01.png||750px|thumb|center]] | |||
После появления в окне сообщений <span style="color:green">''Module execution succeeded''</span> перейдите на вкладку рабочей области <tt>Data</tt> и дважды кликните по элементу ''М-37-121'', чтобы он отобразился в главном окне в виде карты. Сохраните импортированный файл – кликните на элементе ''М-37-121'' правой кнопкой мыши, в контекстном меню выберите <tt>Save As…</tt>, а в диалоге <tt>Save Grid</tt> укажите путь к папке проекта (например – ''\georeferencing''). Обратите внимание, что теперь файл по умолчанию сохраняется в собственном растровом формате SAGA Grid - *.sgrd. | |||
Для удобства дальнейшей работы создайте файл проекта - он объединит все файлы, которыми вы будете оперировать. Последовательно выберите на панели меню <tt>File => Project => Save Project As…</tt> и сохраните файл проекта в рабочей папке ''\georeferencing''. Собственный формат файлов проектов SAGA Project - *.sprj предлагается по умолчанию. | |||
<span style="color:red">'''NB'''</span> При наименовании рабочих файлов и папок необходимо следить, чтобы в названиях и путях отсутствовала кириллица, хотя присутствие в них пробелов SAGA допускает. Однако, с учетом того, что вы скорее всего будете использовать эти же файлы и папки в работе с другими ГИС, которые могут оказаться чувствительными и к пробелам, лучше заменять пробел знаком нижнего подчеркивания "_". | |||
<span style="color:red">'''NB'''</span> При наименовании рабочих файлов и папок необходимо следить, чтобы | |||
== Расстановка точек привязки: этапы 1-2 == | |||
Для введения точек привязки из библиотеки модулей выберите <tt>Projection – Georeferencing => Create reference points [interactive]</tt>, двойным кликом активизируйте модуль и не меняя параметров диалогового окна нажмите <tt>Оkay</tt>. | Для введения точек привязки из библиотеки модулей выберите <tt>Projection – Georeferencing => Create reference points [interactive]</tt>, двойным кликом активизируйте модуль и не меняя параметров диалогового окна нажмите <tt>Оkay</tt>. | ||
[[Файл: | [[Файл:saga_georef_07.png||750px|thumb|center]] | ||
После активизации модуля в окне сообщений появится предложение <span style="color:green">Interactive module execution has been started</span>, после чего можно приступить к непосредственному вводу точек привязки. | После активизации модуля в окне сообщений появится предложение <span style="color:green">''Interactive module execution has been started''</span>, после чего можно приступить к непосредственному вводу точек привязки. | ||
* Увеличьте необходимый фрагмент карты (например, верхний левый угол), используя инструмент панели меню [[Файл:saga_georef_zoom.png]] – ''Zoom''. Лист карты удобнее двигать инструментом [[Файл:saga_georef_pan.png]] – ''Pan'', а для возвращения к первичному размеру используйте кнопку [[Файл:saga_georef_fullext.png]] – ''Zoom To Full Extent''; | * Увеличьте необходимый фрагмент карты (например, верхний левый угол), используя инструмент панели меню [[Файл:saga_georef_zoom.png]] – ''Zoom''. Лист карты удобнее двигать инструментом [[Файл:saga_georef_pan.png]] – ''Pan'', а для возвращения к первичному размеру используйте кнопку [[Файл:saga_georef_fullext.png]] – ''Zoom To Full Extent''; | ||
Строка 71: | Строка 43: | ||
* Используя инструмент [[Файл:saga_georef_action.png]] – ''Action'' поставьте двойным кликом точку на карте, а в появившемся диалоговом окне <tt>Point Position</tt> введите координаты точки в [http://gis-lab.info/qa/dms2dd.html десятичных градусах], используя в качестве разделителя знак <span style="color:red">'''.'''</span> «точка», а не ''',''' «<s>запятая</s>». | * Используя инструмент [[Файл:saga_georef_action.png]] – ''Action'' поставьте двойным кликом точку на карте, а в появившемся диалоговом окне <tt>Point Position</tt> введите координаты точки в [http://gis-lab.info/qa/dms2dd.html десятичных градусах], используя в качестве разделителя знак <span style="color:red">'''.'''</span> «точка», а не ''',''' «<s>запятая</s>». | ||
[[Файл: | [[Файл:saga_georef_08.png|750px|thumb|center]] | ||
* Чтобы в дальнейшем видеть поставленные точки нужно открыть рабочий файл с точками привязки в компоновку-вид с топографической картой. Для этого на вкладке <tt>Data</tt> дважды кликните по ''Reference points (Origin)'' и в диалоговом окне <tt>Add layer to selected map</tt> выберите уже имеющуюся ''01. М-37-121'' и нажмите | * Чтобы в дальнейшем видеть поставленные точки нужно открыть рабочий файл с точками привязки в компоновку-вид с топографической картой. Для этого на вкладке <tt>Data</tt> дважды кликните по элементу ''Reference points (Origin)'' и в диалоговом окне <tt>Add layer to selected map</tt> выберите уже имеющуюся ''01. М-37-121'' и нажмите <tt>Оkay</tt>. | ||
[[Файл: | [[Файл:saga_georef_09.png|750px|thumb|center]] | ||
Чтобы убедиться что все сделано верно, перейдите на вкладку <tt>Maps</tt>, которая должна иметь следующий вид: | Чтобы убедиться что все сделано верно, перейдите на вкладку <tt>Maps</tt>, которая должна иметь следующий вид: | ||
[[Файл: | [[Файл:saga_georef_10.png|400px|thumb|center]] | ||
Обратите внимание на то, что поставленная вами точка привязки теперь стала видимой. | Обратите внимание на то, что поставленная вами точка привязки теперь стала видимой. | ||
* Аналогичным образом проставьте следующие точки по углам рамки и центру листа | * Аналогичным образом проставьте следующие точки по углам рамки и центру листа - 5 точек будет вполне достаточно. При расстановке последующих точек в окне будут автоматически прописываться расчетные координаты, которые следует корректировать в соответствии с значениями на карте. После этого остановите модуль расстановки точек привязки – в меню <tt>Modules</tt> уберите галочку рядом с <tt>Create Reference Points</tt>. | ||
[[Файл:saga_georef_11.png| | [[Файл:saga_georef_11.png|400px|thumb|center]] | ||
SAGA позволяет рассчитать ошибку трансформации на основании [http://gis-lab.info/qa/rmse.html RMSE] и оценить качество расстановки точек, записывая результат в поле атрибутивной таблицы RESID. | |||
[[Файл:saga_georef_111.png|400px|thumb|center]] | |||
Используя файл с введенными точками привязки переведем карту из локальной в географическую систему координат на основании известных координат точек. Для этого активизируйте модуль привязки растров <tt>Projection – Georeferencing => | * Сохраните файл с расставленными точками привязки. Для этого на вкладке <tt>Data</tt> выберите элемент ''Reference Point (Origin)'' и в контекстном меню укажите <tt>Save As…</tt> . В окне диалога <tt>Save Shapes</tt> сохраните файл в рабочую папку (в нашем случае как - ''reference_points_pnt.shp''). | ||
== Переход из локальной (файловой) в географическую систему координат: этапы 4-6 == | |||
Используя файл с введенными точками привязки переведем карту из локальной в географическую систему координат на основании известных координат точек. Для этого активизируйте модуль привязки растров <tt>Projection – Georeferencing => Rectify Grid</tt> и установите в диалоговом окне следующие параметры: | |||
* выберите в качестве файла точек привязки созданный ранее шейп-файл; | * выберите в качестве файла точек привязки созданный ранее шейп-файл; | ||
* | * в качестве координат точек привязки укажите введенные с карты Х_MAP и Y_MAP; | ||
* укажите растр для которого будет проводится операция; | * укажите растр для которого будет проводится операция; | ||
* в качестве метода передискретизации выберите <tt>Nearest Neighbor</tt>. | * выберите метод трансформации, в данном случае - <tt>Spline</tt><ref>Обратите внимание, что начиная с версии 2.1.1 набор доступных методов существенно расширился: <tt>Automatic</tt>, <tt>Triangulation</tt>, <tt>Spline</tt>, <tt>Affine</tt>, <tt>1<sup>st</sup> Order Polynomial</tt>, <tt>2<sup>nd</sup> Order Polynomial</tt>, <tt>3<sup>rd</sup> Order Polynomial</tt>, <tt>Polynomial Order</tt></ref>; | ||
* в качестве метода передискретизации выберите <tt>Nearest Neighbor</tt><ref>Кроме <tt>Nearest Neighbor</tt> доступны также <tt>Bilinear Interpolation</tt>, <tt>Inverse Distance Interpolation</tt>, <tt>Bicubic Spline Interpolation</tt>, <tt>B-Spline Interpolation</tt>. В данном случае мы устанавливаем <tt>Nearest Neighbor</tt>, т.к. этот метод не изменяет исходного значения ячейки растра, а значит может быть использован для категориальных данных, каковыми и является сканированная карта</ref>. | |||
[[Файл:saga_georef_12.png|750px|thumb|center]] | [[Файл:saga_georef_12.png|750px|thumb|center]] | ||
После нажатия <tt>Okay</tt> появится окно с расчетными параметрами нового растра (охват, размер ячейки, ряды и колонки). На данном этапе есть возможность установить необходимый размер ячейки результирующего изображения с последующим перерасчетом зависимых параметров. | |||
[[Файл:saga_georef_121.png|750px|thumb|center]] | |||
По окончании работы модуля будет выведено сообщение <span style="color:green">''Module execution succeeded''</span>, на вкладке <tt>Data</tt> появится новый элемент М-37-121 - в его системе координат значения ''х'' и ''у'' будут соответствовать значениям географических координат введенных ранее. Двойным кликом откройте его в новую карту - вы увидите, что изображение теперь имеет прямоугольную форму (в соответствии с неодинаковой протяженностью по широте и долготе). Для корректного цветового отображения на вкладке <tt>Settings</tt> (справа) в блоке <tt>Colors - Type</tt> выберите <tt>RGB</tt> и нажмите <tt>Apply</tt>. | |||
[[Файл:saga_georef_24.png|750px|thumb|center]] | |||
Для проверки качества привязки рекомендуется воспользоваться [http://gis-lab.info/qa/topogrids.html сетками разграфки] соответствующего масштаба. | |||
== Назначение известной системы координат (ГСК Pulkovo 1942) == | == Назначение известной системы координат (ГСК Pulkovo 1942) == | ||
Строка 106: | Строка 93: | ||
# записать в формате кода библиотеки Proj.4; | # записать в формате кода библиотеки Proj.4; | ||
# установить вручную, воспользовавшись диалогом из 30 исходных параметров; | # установить вручную, воспользовавшись диалогом из 30 исходных параметров; | ||
# импортировать из | # импортировать информацию о проекции из растрового файла; | ||
# | # импортировать информацию о проекции из шейп-файла; | ||
# импортировать из текстового файла (например, *.prj); | |||
# установить код EPSG: | |||
::''a.'' выбрать соответствующий код EPSG из имеющегося списка географических систем координат; | |||
::''b.'' выбрать соответствующий код EPSG из имеющегося списка спроецированных систем координат. | |||
[[Файл:saga_georef_13.png|750px|thumb|center]] | [[Файл:saga_georef_13.png|750px|thumb|center]] | ||
=== Способ 1 - строка аргументов Proj.4 === | |||
В данном случае нам известно, что исходная карта использует систему координат 1942 года, базирующуюся на эллипсоиде Красовского, т.е. мы имеем дело с ГСК Pulkovo 1942. Выбрав соответствующий код EPSG из имеющегося списка географических систем координат (опция 5), мы получим следующую запись в формате кода Proj.4: | В данном случае нам известно, что исходная карта использует систему координат 1942 года, базирующуюся на эллипсоиде Красовского, т.е. мы имеем дело с ГСК Pulkovo 1942. Выбрав соответствующий код EPSG из имеющегося списка географических систем координат (опция 5), мы получим следующую запись в формате кода Proj.4: | ||
Строка 119: | Строка 109: | ||
<pre>+proj=longlat +ellps=krass +no_defs</pre> | <pre>+proj=longlat +ellps=krass +no_defs</pre> | ||
Поскольку в дальнейшем планируется переход от | Поскольку в дальнейшем планируется переход от Pulkovo 1942 к WGS 84, зададим параметры этой трансформации на основании [http://gis-lab.info/docs/law/gost51794-2008.7z ГОСТ Р 51794-2008], дополнив код группой значений towgs84: | ||
<pre>+proj=longlat +ellps=krass +towgs84=23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22 +no_defs</pre> | <pre>+proj=longlat +ellps=krass +towgs84=23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22 +no_defs</pre> | ||
Строка 125: | Строка 115: | ||
[[Файл:saga_georef_14.png|750px|thumb|center]] | [[Файл:saga_georef_14.png|750px|thumb|center]] | ||
Аналогичным образом можно описать проекцию и через диалог из 30-ти параметров (опция 2), который | === Способ 2 - выбор предустановленных параметров в диалоговом режиме === | ||
Аналогичным образом можно описать проекцию и через диалог из 30-ти параметров (опция 2), который будет иметь следующий вид | |||
[[Файл:saga_georef_15.png|750px|thumb|center]] | [[Файл:saga_georef_15.png|750px|thumb|center]] | ||
После того, как вы удобным для вас способом описали проекцию и в поле <tt>Data Objects => Grids</tt> указали соответствующий файл, можно присваивать проекцию. По окончании работы модуля появится | После того, как вы удобным для вас способом описали проекцию и в поле <tt>Data Objects => Grids</tt> указали соответствующий файл, можно присваивать проекцию, нажав <tt>Оkay</tt>. По окончании работы модуля появится сообщение <span style="color:green">''Module execution succeeded''</span>. Если теперь перейти на вкладку <tt>Description</tt> окна <tt>Object Properties</tt>, то можно увидеть, что информация о системе координат файла выглядит следующим образом: | ||
[[Файл:saga_georef_16.png|| | [[Файл:saga_georef_16.png||400px|thumb|center]] | ||
Не забудьте сохранить изменения, нажав <tt>Save</tt> в контекстном меню файла. | Не забудьте сохранить внесенные изменения, нажав <tt>Save</tt> в контекстном меню файла. | ||
== Переход из географической системы координат (Pulkovo 1942) в спроецированную (UTM WGS 84) == | == Переход из географической системы координат (ГСК Pulkovo 1942) в спроецированную (ПСК UTM WGS 84) == | ||
Переходы между системами координат и проекциями в SAGA, реализуемые | Переходы между системами координат и проекциями в SAGA, реализуемые Proj.4, возможно осуществить несколькими альтернативными способами: | ||
# <tt>Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid)</tt> - параметры перехода задаются в виде командной строки в формате Proj.4; | # <tt>Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid)</tt> - параметры перехода задаются в виде командной строки в формате Proj.4; | ||
# <tt>Projection - Proj.4 => Proj.4 (Dialog, Grid)</tt> - параметры перехода задаются в диалоговом режиме на основании | # <tt>Projection - Proj.4 => Proj.4 (Dialog, Grid)</tt> - параметры перехода задаются в диалоговом режиме на основании предустановленных показателей. | ||
Аналогичные модули реализованы для шейп-файлов (<tt>Proj.4 (Dialog, Shapes)</tt> или <tt>Proj.4 (Command Line Arguments, Shapes)</tt>), а также нескольких файлов (<tt>Proj.4 (Command Line Arguments, List of Shapes Layers)</tt>, <tt>Proj.4 (Dialog, List of Shapes Layers)</tt>, <tt>Proj.4 (Command Line Arguments, List of Grids)</tt>, <tt>Proj.4 (Dialog, List of Grids)</tt>). | Аналогичные модули реализованы для шейп-файлов (<tt>Proj.4 (Dialog, Shapes)</tt> или <tt>Proj.4 (Command Line Arguments, Shapes)</tt>), а также нескольких файлов (<tt>Proj.4 (Command Line Arguments, List of Shapes Layers)</tt>, <tt>Proj.4 (Dialog, List of Shapes Layers)</tt>, <tt>Proj.4 (Command Line Arguments, List of Grids)</tt>, <tt>Proj.4 (Dialog, List of Grids)</tt>). | ||
Строка 146: | Строка 138: | ||
=== Способ 1 - строка аргументов Proj.4 === | === Способ 1 - строка аргументов Proj.4 === | ||
В диалоговом окне | В диалоговом окне модуля <tt>Projection - Proj.4 => Proj.4 (Command Line Arguments, Grid)</tt> сначала выбираем файл, которому ранее мы уже присвоили ГСК Pulkovo 1942 - в таком случае информация о проекции в строке ее описания появится автоматически. Далее, описываем параметры новой проекции: | ||
<pre>+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs</pre> | <pre>+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs</pre> | ||
В качестве метода интерполяции указываем <tt>Nearest Neighbor</tt> и жмем Okay. После этого появится окно с информацией об основных параметрах получаемого растра, согласившись с которыми вы запустите процесс трансформации. | В качестве метода интерполяции указываем <tt>Nearest Neighbor</tt> и жмем <tt>Okay</tt>. После этого появится окно с информацией об основных параметрах получаемого растра, согласившись с которыми вы запустите процесс трансформации. При желании, в расчетных параметрах нового растра также можно изменить размер ячейки. | ||
{|align="center" | {|align="center" | ||
|-valign="center" | |-valign="center" | ||
|[[Файл:saga_georef_17.png|thumb| | |[[Файл:saga_georef_17.png|thumb|575px]] | ||
|[[Файл:saga_georef_18.png|thumb| | |[[Файл:saga_georef_18.png|thumb|175px]] | ||
|} | |} | ||
По окончании во вкладке <tt>Data</tt> появится новый элемент к названию которого будет добавлено ''[Universal Transverse Mercator (UTM)]''. Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем. | По окончании во вкладке <tt>Data</tt> появится новый элемент к названию которого будет добавлено ''[Universal Transverse Mercator (UTM)]''. Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем. | ||
=== Способ 2 - выбор предустановленных параметров в диалоговом режиме === | |||
= | В диалоге <tt>Projection - Proj.4 => Proj.4 (Dialog, Grid)</tt> сначала описываем параметры исходной проекции <tt>Source Projection Parameters</tt> аналогично тому, как это делалось при назначении ГСК Pulkovo 1942. В результате диалог должен выглядеть следующим образом: | ||
[[Файл:saga_georef_19.png|650px|thumb|center]] | |||
Блок <tt>General Settings</tt> остается без изменений. Исходным файлом устанавливается растр в ГСК Pulkovo 1942. | |||
Далее описываем целевую проекцию <tt>Target Projection Parameters</tt>: | |||
[[Файл:saga_georef_20.png|650px|thumb|center]] | |||
В этом случае в <tt>General Settings</tt> в соответствии с зоной UTM задаются значения центрального меридиана, ложное смещение на восток, масштабный коэффициент. Разобравшись с целевой проекцией снова возвращаемся в главное окно диалога, устанавливаем <tt>Nearest Neighbor</tt> в качестве метода интерполяции и нажатием <tt>Okay</tt> запускаем процесс трансформации. | |||
[[Файл:saga_georef_21.png|650px|thumb|center]] | |||
После этого перед вами сначала появится окно для ввода зоны UTM, а затем - окно с параметрами создаваемого растра. | |||
{|align="center" | {|align="center" | ||
|-valign="center" | |-valign="center" | ||
|[[Файл:saga_georef_22.png|thumb| | |[[Файл:saga_georef_22.png|thumb|350px]] | ||
|[[Файл:saga_georef_23.png|thumb| | |[[Файл:saga_georef_23.png|thumb|290px]] | ||
|} | |} | ||
Последовательное нажатие <tt>Okay</tt> в каждом из них позволит завершить трансформацию. | |||
Последовательное нажатие <tt>Okay</tt> в каждом из них позволит завершить трансформацию. По окончании во вкладке <tt>Data</tt> появится новый элемент к названию которого будет добавлено ''[Universal Transverse Mercator (UTM)]'' - в его системе координат значения ''х'' и ''у'' будут соответствовать спроецированным координатам. Двойным кликом откройте его в новую карту - вы увидите, что изображение вновь изменило форму (в соответствии с параметрами заданной проекции). Для корректного цветового отображения на вкладке <tt>Settings</tt> (справа) в блоке <tt>Colors - Type</tt> выберите <tt>RGB</tt> и нажмите <tt>Apply</tt>.Воспользовавшись контекстным меню, сохраните новый файл под удобным для вас именем. | |||
[[Файл:saga_georef_25.png|750px|thumb|center]] | |||
<span style="color:red">'''NB'''</span> Помните, что совершая трансформацию, SAGA не присваивает файлу информацию о проекции автоматически, поэтому для ее добавления вновь воспользуйтесь модулем <tt>Projection - Proj.4 => Set Coordinate Reference System</tt>. | |||
== Ссылки по теме == | |||
Общая информация:<br /> | |||
[http://saga-gis.org/ SAGA Home]<br /> | |||
[http://gis-lab.info/qa/saga-intro.html Открытая настольная ГИС SAGA - общая характеристика]<br /> | |||
[http://gis-lab.info/qa/datum-transform-sets.html Переход от одной системы координат к другой - наборы параметров]<br /> | |||
[http://gis-lab.info/qa/proj-sk-faq.html Часто задаваемые вопросы по координатам, проекциям, системам координат]<br /> | |||
[http://gis-lab.info/qa/topogrids.html Разграфка и номенклатура топографических карт 1км, 2км, 5км, 10км масштаба]<br /> | |||
[http://spatialreference.org/ Информация о привязке в различных форматах]<br /> | |||
[http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system Universal Transverse Mercator coordinate system] | |||
Привязка в другом ПО ГИС:<br /> | |||
[http://gis-lab.info/qa/georef-qgis.html Географическая привязка данных в QGIS]<br /> | |||
[http://gis-lab.info/qa/georef-ag.html Координатная привязка карты в ArcMap]<br /> | |||
[http://gis-lab.info/qa/topogeoref.html Привязка топографических карт в ERDAS IMAGINE]<br /> | |||
[http://gis-lab.info/qa/imagewarp.html Географическая привязка растровых данных в ImageWarp (ArcView)]<br /> | |||
[http://gis-lab.info/qa/georef-gdal.html Использование GDAL для привязки растровых материалов]<br /> | |||
<references/> |
Текущая версия от 08:41, 29 апреля 2014
по адресу http://gis-lab.info/qa/georef-saga.html
Последовательность шагов по координатной привязке листа топокарты в географической системе координат (ГСК Pulkovo 42) и последующему переходу из нее – в спроецированную (ПСК UTM WGS 84)
Цель координатной привязки изображений – установление связи между локальной (файловой) и географической системами координат. Благодаря этому изображение получает пространственную привязку, а значит может быть переведено из географической в спроецированную систему координат, использоваться совместно с уже имеющими привязку данными, выступать основой для векторизации.
В статье рассмотрен вариант привязки листа топокарты для которого известны как исходная система координат, так и точные координаты нескольких точек (углы и центр рамки)[1].
Инструменты координатной привязки изображений и перепроецирования в ГИС SAGA реализованы встроенными библиотеками Proj.4 и GeoTRANS. Традиционно процесс координатной привязки состоит из шести этапов:
- Расстановка точек привязки
- Проверка точности и правильности расстановки точек
- Выбор метода передискретизации элементов изображения
- Выбор модели трансформации
- Выбор размера ячейки результирующего изображения
- Осуществление трансформации
Рассмотрим особенности реализации этих этапов пошагово. Используемый в качестве примера лист топокарты М-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 допускает. Однако, с учетом того, что вы скорее всего будете использовать эти же файлы и папки в работе с другими ГИС, которые могут оказаться чувствительными и к пробелам, лучше заменять пробел знаком нижнего подчеркивания "_".
Расстановка точек привязки: этапы 1-2
Для введения точек привязки из библиотеки модулей выберите 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, которая должна иметь следующий вид:
Обратите внимание на то, что поставленная вами точка привязки теперь стала видимой.
- Аналогичным образом проставьте следующие точки по углам рамки и центру листа - 5 точек будет вполне достаточно. При расстановке последующих точек в окне будут автоматически прописываться расчетные координаты, которые следует корректировать в соответствии с значениями на карте. После этого остановите модуль расстановки точек привязки – в меню Modules уберите галочку рядом с Create Reference Points.
SAGA позволяет рассчитать ошибку трансформации на основании RMSE и оценить качество расстановки точек, записывая результат в поле атрибутивной таблицы RESID.
- Сохраните файл с расставленными точками привязки. Для этого на вкладке 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].
После нажатия Okay появится окно с расчетными параметрами нового растра (охват, размер ячейки, ряды и колонки). На данном этапе есть возможность установить необходимый размер ячейки результирующего изображения с последующим перерасчетом зависимых параметров.
По окончании работы модуля будет выведено сообщение 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:
- a. выбрать соответствующий код EPSG из имеющегося списка географических систем координат;
- b. выбрать соответствующий код 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 учебного пособия
- ↑ Обратите внимание, что начиная с версии 2.1.1 набор доступных методов существенно расширился: Automatic, Triangulation, Spline, Affine, 1st Order Polynomial, 2nd Order Polynomial, 3rd Order Polynomial, Polynomial Order
- ↑ Кроме Nearest Neighbor доступны также Bilinear Interpolation, Inverse Distance Interpolation, Bicubic Spline Interpolation, B-Spline Interpolation. В данном случае мы устанавливаем Nearest Neighbor, т.к. этот метод не изменяет исходного значения ячейки растра, а значит может быть использован для категориальных данных, каковыми и является сканированная карта