Лаб. 3 - методичка по привязке растров

advertisement
Привязка растров.
Растровые данные обычно получаются путем сканирования бумажных карт или обработки
аэрофотоснимков или спутниковых снимков. Наборы данных, полученные путем сканирования
карт, обычно не имеют пространственной привязки, то есть это просто картинки, технически не
ассоциированные с реальным пространством в какой-нибудь принятой системе координат. У
пикселей нет географических координат и размеров, и интерпретировать такие данные, конечно,
затруднительно. Это ещё не геоинформация с точки зрения компьютера.
Для того, чтобы растровое изображение обрело пространственный/географический смысл,
существует процедура «привязки растровых изображений».
Общий смысл её таков: мы сопоставляем набору пикселей на нашем растровом изображении
реальные координаты тех точек, которые там изображены. Имея некоторое количество (чем
больше, тем лучше и точнее) таких сопоставленных точек, геоинформационная система может
рассчитать некоторое среднее математическое преобразование такое, чтобы каждому пикселю
растра назначить его вероятное географическое положение. Конечно, успех подобного
мероприятия напрямую зависит от свойств и качества исходного картографического изображения,
от того, как оно было отсканировано и в каком формате сохранено (сжатие с потерями или без) и
так далее.
Какие же точки подлежать сопоставлению? Вспомните топографические карты – на них всех в
обязательном порядке присутствует координатная сетка. Узлы этой сетки – точки с вполне
конкретными координатами, которые на самой карте и написаны. Таким образом можно
сопоставить все пиксели, в которых пересекаются линии сетки с реальными их координатами. В
случае отсутствия сетки можно использовать выдающиеся части географических элементов,
изображенных на картах. Например, мысы, пересечения дорог, острые углы линий гос. границ и
т.д. (но в этом случае нужно иметь под рукой источник координат этих выдающихся точек – уже
привязанный набор геоданных на эту территорию или хотя бы google maps).
Посмотрим на процедуру привязки растров на примере карты Архангельской области из
национального атласа России в программе Quantum GIS.
Вот так выглядит растр:
Это самая обыкновенная картинка в формате .jpg, полученная путём сканирования (или
фотографирования) бумажного атласа. Наша задача: превратить эту картинку в набор реальных
геоданных, т.е. определить её пространственно, присвоить каждому пикселю правильные
географические координаты. Для этого запускаем QGIS (версии 2.0 и выше), заходим в меню
модули – управление модулями:
И убеждаемся в том, что в подразделе «Установленные» стоит флаг у модуля «Привязка растров
(GDAL)». Если нет, то необходимо его (флаг) поставить.
После этого в нужно меню Растр выбрать привязка растров – привязка растров (georeferencer):
Откроется новое окно – «привязка растров». В нём следует выбрать пункт «открыть растр»:
И в открывшемся диалоге выбрать растр, который нужно привязать (в примере будет использован
растр с именем NA_68-69.jpg):
Он добавится в окно просмотра:
Теперь нужно создать набор точек, которые будут связывать точки на растре с их
реальным географическим положением. В нашем случае есть подробная подписанная
сетка, узлы которой и следует использовать в качестве источника данных о положении
пикселей. Выбираем инструмент «добавить точку»:
И, масштабируясь близко к одному из узлов сетки, щелкаем мышкой точно на
пересечение линий сетки, предварительно посмотрев на рамке карты значения широты и
долготы в этой точке.
При нажатии левой кнопки мыши появится окно:
Программа ожидает введение вами долготы в графу «X / Восток» и широты в графу «Y / Север» в
десятичных градусах. Указанная выше точка имеет координаты 48 градусов восточной долготы
(если западной, то значение вводится отрицательное) и 76 градусов северной широты (если
южной, то значение вводится отрицательное):
После нажатия кнопки ОК на карте появится красная точка. Также она появится в списке точек в
нижней части окна.
Теперь нужно собрать большое количество таких точек, равномерно распределив их по карте и
уделяя особое внимание краям и углам растра (это поможет программе более точно рассчитать
необходимые преобразования). Достаточно 12-18 точек, но большее количество повысит
точность. В итоге получаем что-то вроде:
Теперь нужно настроить параметры привязки в соответствующем пункте меню
Важно задать имя нового (привязанного) изображения, а также тип трансформации. Для
привязки таких карт по набору точек в узлах сетки рекомендуется использовать
трансформацию «Полиномиальная 2». Также необходимо указать систему координат
(поле целевая система координат), в которой вводились координаты, и в которую будет
пересчитан ваш растр. Учитывая, что карта Российская и мы использовали простые
географические координаты (широта-долгота), разумным выбором будет Pulkovo 42
(EPSG:4284). Для быстрого её поиска введите в поле поиск слово pulkovo или сразу код
(4284)
В итоге окно настроек может выглядеть примерно так:
Новый растр будет храниться в формате tif, так как он поддерживает хранение информации о
географическом положении.
Теперь можно запускать трансформацию с помощью кнопки «начать привязку».
Окно «привязка растров» можно закрыть.
Теперь в дереве слоёв основного окна QGIS появился привязанный слой
А в окне просмотра появится что-то вроде этого:
Не пугайтесь! Именно так выглядит изображенная на карте территория в Географической СК
«Пулково 42» (Обратите внимание, что сетка стала прямоугольной!). В Геоинформационной
системе можно на лету перерисовывать карты в различные проекции.
Поводите мышью по карте и посмотрите в нижнюю часть интерфейса qgis: там можно наблюдать
текущие координаты указателя (долгота-широта):
Картинка стала сильно искажена, ведь надписи и прочие вспомогательные элементы были
интерпретированы программой как географические объекты. (Бумажная карта и помыслить не
могла, что подвергнется подобным издевательствам).
В Pulkovo 42 разглядеть что-либо становится весьма затруднительно, поэтому её можно
отобразить в какой-то другой СК, например, Pseudo Mercator (EPSG:3857). Для этого в нижнем
правом углу интерфейса программы нажмите серую кнопку в форме планеты:
И в уже попадавшемся вам окне выберите проекцию WGS 84 / Pseudo Mercator (EPSG:3867)
Нажмите ОК и посмотрите, что станет с вашим изображением:
Скорее всего, оно вытянется и станет несколько более читаемым.
Сейчас вы привязывали топографическую карту по действительному положению
местности, на ней отображаемой. Это обеспечило пространственное подобие местности и
изображения, а также возможность совместной интерпретации вашей топографической
карты и геоданных из любых других источников.
Однако иногда возникает потребность привязки изображений не к истинному их
положению, а в некоторое условное пространство, в котором метрика не очень важна. В
данном случае можно воспользоваться таким приёмом, привязав одно изображение к
другому, чтобы их содержание геометрически стало друг другу соответствовать.
Конечно, привязка всех изображений в действительное пространство это более
правильный и универсальный способ (ведь тогда они автоматически начнут
соответствовать и друг другу), но время от времени к вам в руки будут попадать наборы
данных, которые не могут быть просто и адекватно привязаны в абсолютные координаты.
Представьте, к примеру, что на картах выше нет сетки, а географические объекты были
подвержены неизвестному типу искажений. Это не позволит вам корректно привязать их
(Несмотря на кажущуюся нелепость такой гипотезы, подобные данные встречаются
гораздо чаще, чем хотелось бы). Однако в данном случае приоритетной задачей является
сравнение изображенных явлений между собой, безотносительно их географического
положения. Это хороший повод попробовать относительную, а не абсолютную, привязку
изображения.
В первую очередь нужно выбрать изображение-ориентир, к которому будет привязано
второе. Выбор произволен, пусть это будет Skorost_zvuka_2000.jpg.
Добавим его в qgis как источник растровых данных
Если внимательно посмотреть на координаты в области добавленного изображения,
легко заметить, что они не имеют никакого отношения к реальным. Об этом нужно
помнить.
Теперь запускаем модуль привязки растров (Растр – привязка растров)
В открывшемся окне используем кнопку «добавить растр»
И выбираем второе изображение, которое необходимо привязать.
Оно добавится в окно просмотра. Теперь нужно создать набор точек, которые будут
связывать два изображения. Для этого следует воспользоваться функцией «добавить
точку».
Программа переходит в режим ожидания выбора вами точки на привязываемом
изображении. Это должна быть некоторая ключевая точка, которую легко найти и на
изображении ориентире. Так как в данном случае у нас есть сетка, разумно использовать
её. При выборе одного из её узлов появится окно:
Оно предлагает вам либо ввести координаты вручную, либо взять их из основной карты
(для этого следует нажать кнопку «с карты»). При её нажатии в фокусе окажется основное
окно qgis, в котором вы должны указать соответствующую точку на изображенииориентире.
После выбора точки в основном окне, поля с координатами в модуле привязки
заполнятся автоматически. Нужно нажать ОК для утверждения и сохранения точки.
Таким образом следует выбрать как можно больше точек по периметру и внутри
территории интереса.
Если сетки нет (что бывает часто), то можно в качестве ключевых точек использовать, к
примеру, однозначно выделяемые точки на государственных границах, береговых линиях
и т.п.
Теперь нужно настроить параметры привязки в соответствующем пункте меню
Важно задать имя нового (привязанного) изображения, а также тип трансформации. Для
относительной привязки рекомендуется использовать трансформацию Гельмерта.
Теперь можно запускать трансформацию с помощью кнопки «начать привязку».
Теперь в дереве слоёв основного окна QGIS появился привязанный слой
Можно поэксперементировать, включая и отключая верхний слой – вы увидите, что
изображения хорошо соответствуют друг другу. Если это не так, значит, вы ошиблись с
привязкой.
Download