10.20. Привязка растров

С помощью данного инструмента пользователь QGIS получает возможность привязывать растры к координатам.

Доступен в меню Слой Привязка растров скошенная сетка.

Этот инструмент предоставляет графический интерфейс, в котором пользователь указывает общие опорные точки (традиционно называются gcp, ground control points) на растре и на карте в основном окне NextGIS QGIS. Также координаты опорных точек можно вводить цифрами с клавиатуры, если на карте есть координатная сетка, и пользователь представляет её код EPSG. Затем при расчёте генерируется новый файл в формате GeoTIFF, с информацией о привязке внутри.

../../_images/ngqgis_georeferencer_ru.png

Рис. 10.340. Интерфейс инструмента Привязка растров

10.20.1. Примеры операций

  • Привязать советскую топокарту к слою openstreetmap.

  • Привязать топокарту с сеткой, введя её координаты с клавиатуры, это будет более точно, чем привязывать по точкам.

  • Привязать 1-2 снимка поверхности с летательного аппарата по визуальным ориентирам.

  • Допривязать полученный из другого софта ортофотоплан к точной карте.

  • Привязать сфотографированную распечатку карты OSM с отметками ручкой, чтобы потом оцифровать эти отметки.

  • Привязать старинную карту, у которой сетка в неизвестной системе координат или отсутствует.

10.20.2. Параметры трансформации

Задаются в диалоговом окне, которое можно вызвать кнопкой с желтой шестеренкой или через меню Параметры ‣ Параметры трансформации.

../../_images/georeference_settings_ru_2.png

Рис. 10.341. Диалоговое окно Параметры трансформации

Тип трансформации

Указывает, каким алгоритмом будут перемещаться пиксели и растягиваться карта. Алгоритм выбирается в зависимости от того, насколько сильно отличаются проекция исходной карты и та, в которую её будут трансформировать.

Подробнее о том, чем отличаются типы трансформации и как выбрать подходящий, см. Типы трансформации

Метод передискретизации

Определяет, как вычисляются значения пикселей при их распределении по новой сетке. Для индексированных растров (например, топокарт) следует использовать только алгоритм ближайший сосед, для цветных и многоканальных спутниковых снимков лучше всего подойдет линейная. Подробнее об алгоритмах передискретизации.

Целевая система координат

Выберите предварительно установленную СК проекта.

Целевой растр

Также можно указать путь для нового файла (по умолчанию - исходная папка).

Сжатие

По умолчанию выбрано значение «None» - после привязки растр получается несжатый, и занимает много места на диске.

Доступны три алгоритма сжатия:

  • LZW - сильное сжатие без потери информации. Быстрое сохранение в файл, но медленная распаковка.

  • Packbits - слабое сжатие без потери информации, быстрая упаковка/распаковка . Не во всем ПО работает.

  • Deflate - сильное сжатие с частичной потерей исходных данных, можно использовать для картинок, но не для ЦМР. Медленно сжимает, но распаковывается быстрее, чем LZW

После привязки вы можете запустить Растр Извлечение Обрезка, и обрезать растр по альфа-каналу, затем Растр ‣ Преобразование ‣ Преобразовать формат и сохранить его в GeoTIFF с сжатием JPEG. Это заметно уменьшит размер файлов.

Можно включить следующие опции:

  • Сохранить контрольные точки - тогда их можно будет загрузить и попробовать другие параметры трансформации для сравнения.

  • Только создать world-файл - при выборе линейной трансформации можно не изменять исходный растр, а только приложить к нему файл с информацией о том, как нужно сдвинуть изображение.

  • Использовать 0 для прозрачности при необходимости

  • Установить выходное разрешение

Также при трансформации можно создать Отчет и сохранить полученную карту в PDF.

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

10.20.3. Подготовка растра

Если карта, которую вы будете привязывать, в формате GIF, то сконвертируйте её в TIFF, JPEG или PNG, используя инструмент Растр Преобразование Преобразовать формат (подробнее) или любой графический редактор.

Если исходный файл большой, то он долго будет рисоваться на экране. В этом случае нажмите «Параметры ‣ Свойства растра ‣ Пирамиды», выделите в списке все строки, выберите тип «внешние», и нажмите «Создать пирамиды». Получится отдельный файлик с уменьшенными копиями растра, который будет использоваться автоматически для более быстрой отрисовки.

Привязать изображение можно двумя способами: по точкам на карте и по числовым значениям координат.

10.20.4. Привязка растра по точкам на карте

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

Определение системы координат

Откройте в QGIS подложку, к которой вы будете привязывать растр. Добавить подложку можно при помощи модуля QuickMapServices.

Решите, в какой системе координат нужна конечная карта и установите эту систему координат для проекта.

Распространённые подложки, такие как OpenStreetMaps, Google Maps и Yandex Maps 22, имеют проекцию Псевдомеркатор, EPSG:3875.

Добавление опорных точек

Запустите инструмент привязки растров: Растр Привязка растров скошенная сетка. Далее описываются команды инструмента Привязка Растров.

Откройте подготовленное изображение, нажав кнопку mActionAddRasterLayer или через меню Файл Открыть растр.

../../_images/georef_open_raster_ru_2.png

Рис. 10.342. Открытие растра

Добавьте точки. Нажмите кнопку button_georef_add_point на панели инструментов или выберите Правка Добавить точку.

При привязке ставить точки следует как можно шире, в идеале в углах карты, затем добавить контрольные точки внутри.

В качестве опорных точек выбирайте объекты, постоянные во времени (не подойдёт береговая линия или точки впадения рек) - капитальные сооружения или асфальтовые дороги.

Поставьте точку на карту. Появится окно с полями ввода координат.

В выпадающем списке систем координат выберете СК, которая установлена у вас в проекте.

../../_images/georef_coord_from_map_ru_2.png

Рис. 10.343. Окно ввода координат при добавлении точки. Кружком отмечена добавляемая точка

Нажмите кнопку С карты. Откроется основное окно QGIS, поставьте точку на это же место на карте.

../../_images/georef_select_on_map_ru_2.png

Рис. 10.344. Выбор соответствующей точки на карте

../../_images/georef_coord_result_ru_2.png

Рис. 10.345. Полученные с карты координаты точки

Нажмите Ок для завершения добавления точки.

Минимально необходимое количество точек зависит от типа трансформации. Если их будет недостаточно, то появится предупреждение.

В качестве контрольной добавьте на карту ещё одну точку, например, по центру, затем снимите галочку в списке. Эта точка не будет учитываться при трансформации растра, но невязка для неё будет посчитана, что позволит оценить точность привязки.

Точки можно сохранить отдельно на случай сбоев, нажав кнопку mActionSaveGCPpointsAs или командой «Файл ‣ Сохранить контрольные точки как». Сохраните их в путь по умолчанию, и они будут подтягиваться автоматически при следующем запуске инструмента Привязка растров.

Проверка параметров трансформации

Проверьте параметры трансформации, нажав кнопку с желтой шестеренкой или выбрав в меню Параметры Параметры трансформации.

В этом окне можно указать название и путь для нового файла (по умолчанию - исходная папка). Чтобы готовый растр сразу открывался в окне QGIS, поставьте флажок Открыть в QGIS .

Для привязки спутниковых снимков к подложке в проекции Псевдомерактор рекомендуются следующие параметры:

  • тип трансформации - Полиноминальная 1 или Проективная;

  • метод интерполяции - линейная;

  • система координат - EPSG:3857.

Закройте окно параметров трансформации и посмотрите на значения в колонке «Невязка (пиксели)». Допустимая невязка зависит о ряда параметров, таких как размер пикселя исходного растра, масштаб карты и др.

Можно сравнить несколько вариантов перепроецирования и посмотреть, какой даёт меньшую погрешность в точках.

Запустите привязку растра, нажав кнопку с зеленой стрелкой зеленая стрелка на панели инструментов или Файл Начать привязку растра.

Проверка результата

Привязанный растр будет добавлен в проект (если не снят флажок Добавить в проект после завершения).

../../_images/georef_result_ru_2.png

Рис. 10.346. Результат привязки растра

Вы можете проанализировать точность привязки визуально, изменяя настройки прозрачности и режим смешивания в свойствах слоя.

../../_images/georef_result_multiply_ru.png

Рис. 10.347. Для спутникового снимка, наложенного на подложку OSM, выбран режим смешивания «Умножение»

Здесь был описан процесс привязки карт по точкам. Если у карты есть зарамочное оформление с отметками координат, можно привязать её по числовым координатам, см. http://docs.nextgis.ru/docs_howto/source/topo_georef.html.

10.20.5. Привязка топокарт по координатам

Привязать по координатам можно отсканированную топокарту, у которой есть зарамочное оформление.

../../_images/topo_smallmap1.png

Рис. 10.348. Пример карты, подходящей для привязки по данной инструкции

Определение координат

Откройте карту в любой программе просмотра изображений.

  • Координаты X (долгота) написаны за верхней и нижней рамками карты;

  • Координаты Y (широта) - за правой и левой.

Координаты могут быть записаны в градусах или в миллионах метров.

../../_images/topo_corner_degrees_ru.png

Рис. 10.349. Выделены координаты в градусах: это координаты угла карты. В данном случае долгота 60°00“, широта 57°00“

Чтобы вводить координы в градусах, используйте СК Pulkovo 42 (EPSG: 4284). Также можно использовать WGS-84, но в этом случае будет некоторая погрешность из-за несовпадения эллипсоида (СК Pulkovo 42 использует эллипсоид Красовского).

Если используются миллионы метров, то вводить с клавиатуры это число нужно с тремя нулями:

../../_images/topo_corner_meters_ru.png

Рис. 10.350. Выделены координаты в метрах: это координаты перекрестья сетки. В данном случае X 11320000, Y 6322000

Для использования координат в метрах нужно определить проекцию карты.

Определение проекции

Наиболее распространённые карты - позднесоветские карты Генштаба - имеют проекцию Pulkovo 1942 / Gauss-Krugger zone * (вместо звездочки подставляется номер зоны), код EPSG:284XX, где ХХ - номер зоны. В проекции Гаусс-Крюггера земной шар разделён на зоны по мередианам через каждые 6 градусов. Чтобы узнать номер зоны, нужно приблизительно знать координаты места, изображённого на карте.

В NextGIS QGIS при помощи плагина QuickMapServices добавьте:

  • схему зон Гаусс-Крюггера UTM and Gauss Krueger 6 degree zones (также можно скачать с гис-лаба на странице http://gis-lab.info/qa/kmgrids.html, ищем ссылку «Скачать разграфку в формате: Shape»);

  • знакомую вам картоподложку.

../../_images/qms_gkzones_add_ru.jpg

Найдите на подложке место, которое изображено на топокарте.

Номера зон UTM и Гаусс-Крюггера приведены в атрибутах файла схемы зон. Для их отображения зайдите в Cвойства слоя -> Подписи, включите отображение подписей и выберите в качестве источника подписей поле GK. В разделе «Стиль» сделайте заливку полупрозрачной, чтобы она не закрывала подложку.

../../_images/topo_zone_determine_ru_2.png

Рис. 10.351. Определение зоны в NextGIS QGIS

В примере мы взяли Свердловскую область, она попадает в зону 11, EPSG:28411.

Эту систему координат нужно будет указать в параметрах трансформации и при вводе точек.

Также может пригодиться файл разграфки листов для соответствующего масштаба карты.

Разграфку можно добавить через QMS (поиск по слову «Разграфка») или скачать на странцие http://gis-lab.info/qa/topogrids.html.

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

Добавление опорных точек

Нажмите Слой ‣ Привязка растров.

../../_images/georeferencer_open_ru1.png

Рис. 10.352. Открытие окна привязки растров

В окне привязки растров откройте файл с отсканированной картой mActionAddRasterLayer. Приблизьтесь в левый верхний угол.

Опорные точки должны быть максимально широко разнесены по краям карты, т.к. точность привязки можно гарантировать в пределах фигуры, вершинами которой они являются. Поэтому для ввода координат в метрах мы берём ближайшие к углам перекрестья.

Найдите на перекрестиях отметки метровых координат. Выберите инструмент button_georef_add_point добавить точку, нажмите на перекрестие. В открывшемся окне введите в X и Y.

Примечание

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

Затем выберите координатную систему соответствующей зоны.

../../_images/topo_referencing_add_point_map_ru.png

Рис. 10.353. Ввод координат точки

В примере мы взяли Свердловскую область, она попала в зону 11 - выставляем Pulkovo 1942 / Gauss-Kruger zone 11, EPSG:28411. В списке нужно выбрать вариант без пометки Deprecated.

Таким образом нужно ввести от 4 до 9 точек, в зависимости от типа трансформации.

  • Для карт с прямоугольной проекцией рекомендуем использовать тип трансформации Полиноминальная 1, он требует 4 точки и 1 контрольную.

  • Для карт с конической проекцией (у них заметно схождение меридианов) рекомендуется использовать тип трансформации Полиноминальная 2, он требует 6 точек и 1 контрольную.

Совет

Если СК проекта и привязываемой карты совпадают или если масштаб <50 000, можно использовать самую простую трансформацию - линейную.

Как получить контрольную точку

Добавьте на карту ещё одну точку, например, по центру, затем снимите галочку в списке. Эта точка не будет учитываться при трансформации растра, но для неё будет посчитана невязка, что позволит оценить точность привязки.

Проверка параметров трансформации

После того, как все опорные точки поставлены, откройте панель с желтой шестеренкой Параметры трансформации.

Для топографических карт рекомендуем установить следующие параметры:

../../_images/topo_referencing_settings.png

Рис. 10.354. Параметры трансформации для топокарты в прямоугольной СК

  • Тип трансформации - Полиноминальная 1.

  • Целевая система координат - Pulkovo 1942 / Gauss Krugger Zone - и тот номер зоны, который определили.

  • Целевой растр - имя нового GeoTIFF;

  • Метод передискретизации - Ближайший сосед;

  • Использовать 0 для прозрачности при необходимости;

  • Сохранить контрольные точки.

Примечание

Точки также можно сохранить на диск, на случай сбоев, нажав кнопку mActionSaveGCPpointsAs или командой «Файл ‣ Сохранить контрольные точки как». Сохраните их в путь по умолчанию, и они будут подтягиваться автоматически при следующем запуске модуля Привязки растров.

После указания параметров трансформации нажмите ОК - на экране покажутся ошибки трансформации.

Проверка точности

Чтобы отобразить координаты каждый точки на превью карты, выберите в меню Параметры - Настройки привязки растров - включить идентификаторы.

../../_images/topo_refrencing_errors_ru1.png

Рис. 10.355. Пример привязки с большой ошибкой

На картинке мы наблюдаем длинные красные линиии, а в строке состояния - большую среднюю ошибку. Это произошло из-за неверного ввода цифровых координат.

Внимательно проверьте введёные цифры. После исправления цифр - зайдите снова в окно Параметры трансформации и нажмите OК - средняя ошибка будет пересчитана.

Если координаты введены правильно, но невязка сильная, проверьте установленный тип трансформации.

../../_images/topo_refrencing_errors_method_ru.png

Рис. 10.356. Пример невязки из-за неверно выбранного типа трансформации

Обычно в практике привязки стараются добиться, чтобы ошибка не превышала 1 пикселя.

Допустимая невязка зависит от разрешения растра. Поэтому для растра 10 000 х 10 000 ошибка в 10 пикселей будет нормальной, а для 1000 х 1000 - большой.

../../_images/topo_refrencing_correct_ru.png

Рис. 10.357. Привязка с небольшой ошибкой

После проверки всех параметров можно запустить сам процесс привязки.

Запустите привязку растра, нажав кнопку с зеленой стрелкой зеленая стрелка на панели инструментов или «Файл ‣ Начать привязку растра».

Может появиться всплывающее окно выбора параметров перехода между датумами ( со старого отечественного СК-42 на стандартный WGS 84).

Если всё получилось, то в NextGIS QGIS добавится геопривязанный растр в формате GeoTIFF. Вы можете проверить, как он ложится на слой подложки (или под полупрозрачный слой подложки).

../../_images/topo_refrencing_ok1.png

Рис. 10.358. Карта, привязанная точно