Упражнение 5 Привязка графических материалов
Внимание! Ваш преподаватель может предоставить вам другие исходные данные для выполнения этого упражнения: листы топографической карты, спутниковые снимки. При возникновении противоречий следуйте указаниям преподавателя!
5.1 Введение
Цель задания — знакомство с привязкой и трансформированием растровых геоизображений.
Необходимая теоретическая подготовка: Системы координат и проекции карт, привязка геоизображений, трансформирование геоизображений. Разграфка, номенклатура и проекция топографических карт. Методы трансформации: аффинное, проективное, полиномиальное, метод резинового листа.
Необходимая практическая подготовка: Знание основных компонент интерфейса QGIS (менеджер источников данных, панель слоёв, фрейм карты), умение выполнять масштабирование и перемещение по карте, определять координаты курсора.
Исходные данные: Растровые изображения листов топографических карт и тематических карт, сканированные космические снимки.
Результат: Привязанные и трансформированные растровые изображения, пригодные для непосредственно использования в ГИС.
Аннотация: Положение точки в пределах растрового изображения может быть определено во внутренней системе координат растра. В этой системе координаты отсчитываются от верхнего левого угла растра по направлению отсчёта строк и столбцов и измеряются, соответственно, в пикселах. Для работы в геоинформационных системах (ГИС) необходимо установить соответствие между внутренней системой координат растра и внешней (целевой) системой координат, применяемой в ГИС-проекте — иными словами, выполнить привязку растра. С точки зрения пользователя ГИС, привязка заключается в определении для некоторого числа точек двух пар координат: 1) пары координат во внутренней системе координат растра и 2) пары координат в целевой системе координат ГИС-проекта. Но если «внутренние» координаты могут быть легко определены, поскольку они непосредственно связаны непосредственно с растром, то целевые координаты необходимо узнавать отдельно. У некоторых видов растров — например, у топографических карт, — координатные метки с их численными значениями нанесены на само изображение (сетки координат). У других — например, у космических снимков, — эту информацию нужно определять с привлечением дополнительных источников.
Точки, используемые для привязки, должны равномерно покрывать всю площадь изображения (или по крайней мере ту его часть, которая будет использоваться в исследовании), а также ни в коем случае не находиться на одной линии.
Привязка часто сопровождается трансформацией. В ходе трансформации растр пересчитывается в новую систему координат таким образом, что направления отсчёта строк и столбцов становятся параллельными осям координат целевой системы.
5.2 Привязка растра по меткам координат
Скачайте архив с исходными данными и распакуйте его в свою рабочую директорию.
Найдите в папке
raw_images
изображениеo38-085.tif
, откройте и изучите его в любой программе просмотра изображений. Это отсканированный лист топографической карты масштаба 1:100 000 на город Кинешма и его окрестности.
Топографические карты на территорию СССР составлялись в проекции Гаусса-Крюгера. Задание проекции позволяет ввести систему плоских прямоугольных координат — соответствующая сетка наносится на лист карты. Когда вы работаете с листом карты в бумажном виде, вы можете определить координаты любой точки, проведя несложные измерения относительно линий сетки, измерить расстояния, углы и площади. Использование ГИС значительно упрощает рутинные операции, поскольку все объекты в ГИС-проекте помещены в некоторую систему координат. Но простые растровые изображения таким функционалом не обладают. Чтобы использовать растр в геоинформационной среде, необходимо выполнить его привязку — то есть задать соотношение между внутренней системой координат растра (связанной с его строками и столбцами) и «внешней» проецированной системой координат.
Для выполнения привязки нам нужно определить целевую систему координат, в которой следует привязать (соориентировать) исходный растр, а затем выбрать несколько пар точек, для которых известны и внутренние координаты (в системе координат растра), и целевые координаты (в целевой системе координат). Точки пересечения линий сетки прямоугольных координат хорошо подходят в этом качестве, поскольку их целевые координаты подписаны вдоль рамок карты.
5.2.1 Определение целевой системы координат
Привязка растра начинается с определения целевой системы координат. Сейчас мы работаем с топографической картой, изданной в 1990 г. в рамках системы топографического картографирования СССР. Топографические карты СССР составлялись в проекции Гаусса-Крюгера на основе датума СК-42, использующего эллипсоид Красовского, с разграфкой по 6-градусным зонам. Описание целевой системы координат должно включать все эти компоненты.
Перейдите на сайт Spatialreference.org
В правом верхнем углу в окне поиска введите
Pulkovo 1942 / Gauss-Kruger
и нажмите Search.Примечание 1: датум СК-42 в англоязычной литературе обозначается как Pulkovo 1942.
Примечание 1: в описаниях систем координат орфография немецкого языка традиционно не соблюдается. Поэтому для поиска систем координат проекции Гаусса-Крюгера следует вводить именно
Gauss-Kruger
, а неGauss-Krüger
илиGauss-Krueger
.В открывшемся окне используйте кнопку Next Page, чтобы переходить на следующие страницы и найти системы координат, соответствующие нужной вам зоне.
Обратите внимание на три важных момента. Первое: для вашего листа карты подходит несколько разных систем координат. Второе: название соответствующей системы координат не обязательно содержит номер зоны. Вместо номера зоны может быть указан средний меридиан зоны (Central Meridian, CM). Центральный меридиан для своего номера зоны вы можете определить самостоятельно. Третье: среди описаний встречаются системы координат 3-градусных зон. Они тоже иногда используются, но ваша карта составлена на основе 6-градусной разграфки.
Найдя нужные системы координат, откройте страницу каждой из них в новой вкладке браузера.
Определите, чем отличаются эти системы координат друг от друга. При необходимости посмотрите описания систем координат в форматах Proj4 или ESRI WKT.
Выберите подходящую систему координат для привязки.
Прямоугольные координаты, подписываемые вдоль северной и южной рамок топографических карт СССР, формируются следующим образом. Берётся фактическое значение прямоугольной координаты, отсчитанное от среднего меридиана зоны, смещённого к востоку на 500 км (например,
348
). Слева к этому номеру приписывается номер зоны (например,8
). Полученные числа (например,8348
) обозначают координаты соответствующих линий сетки в километрах. Они подписываются целиком только в углах карты, а в остальных случаях пишется только последние две цифры числа (например,48
). При описании таких координат в ГИС-среде может использоваться как полная форма записи, включающая номер зоны, так и сокращённая форма записи (англ. truncated), не включающая номер зоны. Отличия между вариантами будут заключаться в единственном параметре: смещении координаты X (x_0
в Proj4,false easting
в WKT). На наш взгляд, удобнее пользоваться полной формой записи.
5.2.2 Привязка листа топографической карты
Запустите QGIS и сохраните проект в вашу рабочую директорию
В QGIS запустите инструмент для привязки растров («Слой» — «Привязка растров»)
Добавьте файл
o38-085.tif
в окно инструмента привязки. Можно перетащить файл из проводника или воспользоваться кнопкой на панели инструментовВ окне привязки по умолчанию активен инструмент добавления опорных точек . С помощью мыши увеличьте изображение северо-западного угла карты, найдите пересечение линий сетки и определите его координаты.
Щёлкните левой кнопкой мыши по пересечению линий сетки, координаты которого вы определили. В появившемся окне введите координаты. Обратите внимание на следующие моменты:
В проекции Гаусса-Крюгера ось X считается направленной на север, ось Y — на восток. В QGIS и большинстве других геоинформационных программ ось X направлена на восток, ось Y — на север.
Координаты, подписанные вдоль рамки карты, измеряются в километрах. Координаты, которые вам нужно ввести для привязки, должны быть измерены в метрах.
Непосредственно под формами ввода координат расположен выпадающий список, позволяющий выбрать систему координат. Убедитесь, что в этом поле выбрана нужная вам система координат.
Сверьтесь с изображением ниже, чтобы убедиться, что вы всё делаете правильно:
Чтобы включить подписи идентификаторов точек, зайдите в «Параметры» — «Настройки привязки растров»
- Аналогичным образом добавьте ещё четыре опорных точки: три точки в других углах листа карты и одну точку в центре листа карты
Изучите информацию, которая отображается в таблице внизу. «X источника» и «Y источника» — это координаты точек привязки на исходном растре, измеренные в пикселях растра от левого верхнего угла. «X назначения» и «Y назначения» — координаты на местности. В столбцах «dX», «dY» и «Невязка» будут отображаться несхождения в определении координат. Сейчас там отображаются нули, поскольку мы ещё не задали настройки трансформации.
Откройте интерфейс настроек трансформации растра, нажав на кнопку . Изучите доступные параметры.
Самостоятельно определите значение параметра «Тип трансформации».
Параметр «Метод интерполяции» установите в значение «Линейная»
Чтобы установить целевую систему координат, нажмите кнопку
Выберите нужную систему координат по её названию или EPSG-коду и закройте окно выбора проекции, нажав OK
Теперь, когда вы задали параметры привязки, нужно указать, куда будет сохранён привязанный файл. Это задаётся настройкой «Целевой растр». Укажите, что растр нужно сохранить в папку
referenced_images
вашей рабочей директории под именемo38-085_modified.tif
. Также нужно отметить опции «Сохранить контрольные точки», чтобы сохранить пары координат в отдельный файл, и «Открыть результат в QGIS», чтобы резульат привязки был автоматически прикреплён к открытому проекту. Остальные параметры оставьте по умолчанию.Закройте окно настроек привязки. Привязка не запустится автоматически: чтобы запустить процедуру, нужно нажать кнопку . Но пока не делайте этого.
Изучите величины ошибок, которые отображаются в таблице внизу. Величины ошибок отображаются в пикселах исходного растра. Обычно в практике привязки стараются добиться, чтобы ошибка не превышала 0,5 пиксела (с рядом оговорок). В нашем же случае исходный картографический материал отсканирован с невысоким разрешением, и такой точности достичь не получится. Для учебного упражнения достаточно добиться точности порядка 1,5-2 пиксела. Если точность привязки какой-либо из ваших точек значительно превышает это пороговое значение, удалите точку и установите её заново.
Когда величины ошибок станут приемлемыми, нажмите кнопку . QGIS выполнит привязку и попытается добавить изображение к карте. Если при этом появится всплывающее окно выбора параметров трансформации, нажмите ОК.
Закройте окно привязки растров. Окно QGIS примет вид, аналогичный представленному ниже:
Примечание: в новых версиях QGIS в момент добавления нового растра в проект может появиться всплывающее окно с запросом выбора параметров трансформации. Оно появляется, если система координат проекта и система координат добавляемого набора данных основаны на разных геодезических датумах (и если этот запрос не отключён в настройках QGIS). Обсуждение точности преобразований датумов выходит за рамки нашего курса. Если вы студент-картограф, обратитесь к преподавателю за более подробными разъяснениями; остальным же достаточночно принять настройки, предагаемые по умолчанию (нажать OK).
5.3 Добавление базовой карты
Мы успешно привязали растровое изображение топографической карты, и теперь можем определять координаты, измерять расстояния и площади по карте при помощи простого ГИС-инструментария. Однако наша карта пока «висит в воздухе». Давайте сравним её с изображением какой-нибудь популярной Интернет-карты, например, Google Maps или OpenStreetMap.
Базовые карты из сети интернет могут быть загружены в настольный ГИС-пакет с использованием протокола WMS, WFS или аналогичных. На базовом уровне знакомства с ГИС нас не интересуют технические подробности реализации, поэтому мы воспользуемся простым инструментом загрузки — подключаемым модулем (плагином) QuickMapService. Он позволяет добавлять многие карты из сети интернет «в один клик».
- Модуль QuickMapService не включается в базовую поставку QGIS, его нужно установить отдельно. Для этого откройте меню «Модули» — «Управление и установка модулей…». Дождитесь, пока сведения о модулях загрузятся.
В открывшемся окне управления модулями начните вводить
QuickMap
в строке поиска. Модули будут отфильтрованы по названию.Выберите модуль QuickMapServices в списке и нажмите кнопку «Установить» внизу окна. Дождитесь, пока модуль загрузится и установится.
- После установки модуля его инструменты появляются в меню «Интернет» — «QuickMapServices». По умолчанию доступно небольшое число источников, но его можно увеличить. Для этого перейдите в настройки модуля и на вкладке «Загрузить сервисы» нажмите «Получить дополнительные источники данных». Подождите, пока дополнительные источники будут добавлены к модулю, и закройте настройки
Теперь вы можете добавить какую-нибудь базовую карту из сети Интернет, просто выбрав её в списке. Добавьте карты Google в проект.
Включая и отключая изображение топографической карты в панели слоёв, оцените, насколько хорошо она ложится на базовую карту Google.
Для любознательных: обратите внимание на настройки прозрачности слоёв, а также на подключаемый модуль MapSwipe Tool.
Удалите из проекта карту Google и загрузите любую другую базовую карту на ваш выбор.
Уберите чёрные рамки вокруг привязанного изображения. Чтобы это сделать, можно воспользоваться следующим способом. Откройте настройки слоя привязанного снимка, перейдите на вкладку «Прозрачность» и введите дополнительное значение «нет данных», равное 0. QGIS будет воспринимать пиксели изображения, имеющие нулевую яркость, как «нет данных», и скроет их при визуализации.
Сохраните проект и сделайте снимок экрана.
Снимок экрана №1. Привязанная топографическая карта на фоне базовой карты из Интернета.
- Закройте проект QGIS.
5.4 Использование координат с базовой карты
Топографические карты — удобный материал для привязки, поскольку нужные системы координат известны, а точные значения координат нанесены непосредственно на карту. Однако в большинстве случаев привязка требуется таким материалам, у которых ни система координат, ни точные их значения не известны заранее — например, архивные аэрофотоснимки и космические снимки. В таком случае придётся не вводить координаты вручную, а считывать их значения из окна карты, используя в качестве опоры какой-либо материал, уже представленный в целевой системе координат.
Создайте новый проект QGIS и сохраните его в вашу рабочую директорию.
добавьте к новому проекту в качестве базовой карты любое покрытие космических снимков (например, Google Satellite). Обратите внимание, как изменилась система координат проекта.
Переместитесь по карте на юг Российской Федерации, в окрестности города Махачкала
Откройте модуль привязки и загрузите в него изображение
DS1023-2087DF131_b_crop.tif
. Это фрагмент космического снимка, полученного в середине 1960-х со спутника системы CORONA (программа Keyhole)Примечание 1: подробнее о спутниках CORONA и программе Keyhole вы можете прочитать по этой ссылке.
Примечание 2: у отдельных снимков со спутников CORONA нет своей «собственной» системы координат, мы привязываем снимок и одновременно трансформируем его в целевую систему координат, определяемую базовой картой привязки.
Изображение на космическом снимке повёрнуто относительно изображения базовой карты. Чтобы облегчить опознавание опорных точек, мы можем повернуть изображение в основном окне QIGS. Для этого найдите в нижней правой части окна QGIS настройку «Угол поворота» и введите значение
30
.
- Начните расстановку контрольных точек. Установите первую точку нажатием левой кнопки мыши. Затем, когда появится окно ввода координат, не вводите координаты вручную, а нажмите кнопку «С карты». Окна привязки и ввода координат будут свёрнуты, давая возможность найти соответственную точку на карте. Найдя точку, кликните по ней левой кнопкой мыши. Координаты точки (в системе координат проекта) будут считаны с карты и подставлены в интерфейс ввода.
Введите таким образом координаты 15-20 точек. Следите, чтобы точки были равномерно распределены по площади снимка и не выстраивались в одну линию.
Настройте параметры привязки. Используйте полиномиальное преобразование 2-й степени. Такое преобразование иногда используется для космических снимков с сильными искажениями геометрии. Укажите, что изображение должно быть сохранено в папку
referenced_images
вашей рабочей директории.Проверьте ошибки положения точек. Поскольку исходное изображение характеризуется высокой зашумленностью и «зернитостью», в этом упражнении не нужно добиваться высокой точности привязки. Ошибка порядка 7-10 пикселов может считаться приемлемой.
Запустите привязку. Когда привязанное изображение добавится в проект, сравните его с базовой картой.
Если привязанное изображение хорошо согласуется с базовой картой, закройте окно привязки. Если вы видите заметные смещения каких-либо элементов на привязанном изображении относительно базовой карты, вернитесь в окно привязки и отредактируйте опорные точки, а затем снова выполните трансформацию изображения.
Верните угол поворота окна карты в исходное значение (0°) и увеличьте изображение до охвата космического снимка.
Сделайте снимок экрана.
Снимок экрана №2. Привязанный космический снимок на фоне базовой карты из Интернета.
- Закройте проект QGIS
При привязке изображения к базовой карте следует соблюдать следующее правило: детальность карты (снимка), используемого в качестве базы, должна быть выше («лучше»), чем детальность (разрешение) привязываемог изображения. В нашем примере разрешение мозаики космических снимков Google в окрестностях Махачкалы составляет примерно 0,4–1 м, а наилучшее разрешение снимков CORONA — 6 футов, или около 1,8 м. Поэтому снимки Google можно использовать в качестве базовой карты для снимков CORONA. Другая ситация может возникнуть в районах, не затронутых хозяйственной деятельностью человека. Мозаики снимков Google для таких районов создаются на основе снимков Landsat и Sentinel, имеющих наилучшее разрешение порядка 10–20 м, что гораздо грубее, чем разрешение снимков CORONA. Выполнять привязку по такой же схеме, как в этом упражнении, будет методически некорректным решением. Следует использовать другие базовые материалы для привязки.
5.5 Оценка точности привязки
В реальных задачах бывает необходимо не только привязать растр, но и оценить точность привязки. Для этого часть опорных точек переводятся в класс контрольных. Эти точки не участвуют в вычислении параметров преобразования, поэтому по ним можно проверять абсолютную точность привязки.
Откройте проект, в котором вы работали с топографической картой.
Откройте окно привязки и снова загрузите в него исходное изображение топографической карты.
Загрузите опорные точки, которые вы использовали ранее для привязки этого листа карты (файл с расширением
*.points
в папкеreferenced_images
).Настройте параметры привязки: алгоритм привязки, алгоритм трансформации, систему координат и т.д.
Теперь добавьте ещё четыре опорные точки между «угловыми» и «центральной».
- Когда вы добавите дополнительные точки, отключите их: снимите галочки в таблице возле их названий. Отключённые опорные точки перейдут в разряд контрольных: они не будут использоваться для вычисления параметров преобразования, но разность между теоретическим и фактическим значением координат для них будет рассчитана.
- Найдите максимальную ошибку привязки по контрольным точкам. Запишите её с точность до второго знака после запятой в отчётный файл.
Обратите внимание, что величина ошибки измеряется в пикселах. Чтобы получить абсолютное значение, нам нужно умножить эту величину на размер пиксела на местности
Запустите привязку растра. Добавьте привязанный растр в проект QGIS, если это не произошло автоматически.
Откройте свойства добавленного растра и выясните (на вкладке «Информация»), каков размер его пикселя в целевой системе координат
Рассчитайте максимальное значение абсолютной ошибки привязки (в метрах) и впишите это значение в отчётный файл.
Сохраните контрольные точки в новый файл и закройте проект QGIS.
5.6 Интерактивная привязка растров на основе аффинного преобразования
В предыдущих разделах упражнения мы рассматривали привязку при помощи опорных точек. Но есть и другой способ, менее точный, но в ряде случаев более быстрый и удобный — интерактивная привязка (freehand georeferencing). Этот способ годится в следующих случаях: когда необходимо ввести в ГИС-проект эскизные материалы, выполненные с невысокой точностью («традиционная» привязка в этом сценарии практически неприменима), или если нужно привязать современные картографические материалы, для которых заранее известна система координат (например, схемы и планы, составленные на основе изображений из картографических веб-сервисов). В этом упражнении мы рассмотрим второй сценарий.
Изучите изображение
20_okrugov_27-04-2020_13-32-09.png
. На какой основе оно составлено?Создайте новый проект QGIS и сохраните его в вашу рабочую директорию.
Добавьте из набора QuickMapServices ту базовую карту, на основе которой составлено изображение из п. 1
Примечание: по техническим причинам эта базовая карта может быть недоступна через QuickMapServices. Если она не загружается, воспользуйтесь любой другой картой общегеографического содержания (например, 2GIS Map, Bing Map, Google Road и др.)
Установите модуль Freehand raster georeferencer.
Увеличьте изображение в окне QGIS таким образом, чтобы охват базовой карты, отображающейся в окне QGIS, примерно соответствовал охвату схемы избирательных округов.
Нажмите кнопку «Add Raster for Interactive Georeferencing» . В открывшемся диалоговом окне с помощью кнопки «Browse…» укажите путь к файлу
20_okrugov_27-04-2020_13-32-09.png
, а затем нажмите «Add New». Полупрозрачное изображнение отобразится поверх базовой карты..
Изучите опции преобразования растра, доступные на панели привязки. Попробуйте двигать, масштабировать и увеличивать/уменьшать изображение. Чтобы отменить последнее действие, нажмите кнопку Undo .
Верните растр в исходное положение и активируйте кнопку «Georeference raster with 2 points» на панели инструментов интерактивной привязки. Будет активирован режим интерактивной привязки по двум точкам.
Опознайте на привязываемом растре и на основе какую-либо общую точку (например, характерный перекрёсток). Затем подведите курсор к этой точке на привязываемом растре, зажмите левую кнопку мыши и передвиньте курсор к той же точке на основе, как показано на изображении ниже:
.
Найдите ещё одну аналогичную пару точек и повторите действия, описанные в предыдущем пункте. Если всё сделано правильно, растр должен, насколько это возможно, совпасть с основой. Если этого не произошло, воспользуйтесь кнопкой Undo , а затем попробуйте ещё раз.
.
Чтобы сохранить результат привязки, нажмите кнопку «Export Raster with World File» . Сохраните результат привязки в папку
georeferenced_images
Сделайте снимок экрана.
Снимок экрана №3. Привязанное изображение схемы избирательных округов..
- Ответьте на вопросы в контрольном листе.