Привязка растров
В качестве исходной информации при векторизации, как правило, выступают растровые изображения. Это могут быть отсканированные оригиналы бумажных карт, выдержки из официальной документации, информация с градостроительных порталов, из градостроительной документации, спутниковые снимки или снимки, полученные с беспилотных летательных аппаратов, даже просто скриншоты экрана, а также тайловые подложки (типа той, что мы подгружаем из OpenStreetMap).
Геопривязка растра
Геопривязка растра - это присвоение растровому изображению нужной географической системы координат.
В процессе привязки на растровом изображении для каждого пикселя, у которого есть условные координаты на растре, находится соотвествующая координата в целевой системе координат.
Создадим новый проект (рекомендую либо сразу его создавать в системе координат EPSG:3857, либо сразу после создания перепроецировать на лету в эту систему координат).
Для геопривязки растровых изображений в QGIS существует встроенный инструмент Привязка растров (может называться Геопривязка).

Далее откроется окно геопривязки растра.

В первую очередь нужно задать или проверить параметры трансформации растра (в строке меню Параметры \(\longrightarrow\) Параметры трансформации).

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

Контрольные точки - это точки, по которым будет осуществляться привязка растрового изображения. У этих точек известны координаты на растровом изображении (как правило, в пикселях) и в целевой системе координат, то есть фактически по этим точкам растр “усаживается” в нужное место на карту.
Чтобы поставить контрольную точку, нужно щелкнуть на нее в окне привзяки на растре, а далее указать ее координаты в диалоговом окне.

Координаты можно ввести с клавиатуры (если они у вас есть), либо выбрать вариант С карты и просто щеклнуть на ту же самую точку на карте, после чего эти координаты пропишутся в диалоговом окне автоматически.
В качестве контрольных точек лучше всего использовать какие-то жесткие контура, на которых вы однозначно можете указать конкретную точку: угол дома, перекресток, угол парка и что-нибудь подобное.
Для различных вариантов трансформации рекомендуется разное минимальное число контрольных точек, но, как правило, общая рекомендация использовать не менее 3 точек. Желательно, чтобы эти точки не были расположены на одной линии.
После того, как вы укажете все контрольные точки и их координаты на карте, они будут отображены в таблице под растровым изображением в окне привязки.

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

Этот модифицированный растр уже будет иметь в себе сведения о системе координат и его местоположении, поэтому его потом можно будет использовать в дальнейших проектах уже без процесса привязки.
Автоматическая векторизация
Встроенные стредства QGIS
По умолчанию в QGIS есть инструмент преобразования растра в вектор, то есть автоматической векторизации.
Этот инструмент может быть запущен из строки меню Растр \(\longrightarrow\) Преобразование \(\longrightarrow\) Создание полигонов (растр в вектор).

С документацией можно ознакомиться по ссылке.
Пример работы автоматического векторизатора показан ниже.
Так как автоматическая векторизация здесь осуществляется фактически только по цвету пикселей вашего растра, то идеальным случаем для векторизации будут большие полигоны с равномерной заливкой и без контура, в других случаях вы можете получить слишком много маленьких полигонов, которые будут требовать дополнительной проработки и объединения.
Также следует отметить, что полученные полигоны не будут иметь гладкие и ровные стороны, а будут своеобразными “лесенками”, в силу того, что пиксели напрямую преобразовываются в объекты.
Модуль Bunting labs AI
Страница модуля: https://plugins.qgis.org/plugins/buntinglabs-qgis-plugin/
Сайт модуля: https://buntinglabs.com/solutions/ai-vectorizer-qgis-plugin
Репозиторий с кодом: https://github.com/BuntingLabs/buntinglabs-qgis-plugin
В январе 2024 года компания Bunting Labs выпустила плагин для QGIS Bunting Labs AI Vectorizer, который помогает оцифровывать растры, продолжая линии, начатые пользователем. Разработчики называют это “автозаполнением”, потому что плагин не делает всю работу сразу, а дорисовывает части линий на основе контекста, оставляя пользователю возможность в любой момент перехватить контроль.1
Плагин AI Vectorizer работает так: когда пользователь начинает отрисовывать векторный объект, модель “смотрит” на его действия и продолжает эту линию, независимо от ее значения.
Пользователь начинает оцифровывать линию или полигон по растру, и как только есть первые две вершины, маленький кусочек карты отправляется на сервер. Модель “смотрит” на нарисованный на карте отрезок и выбирает пиксели, по которым должны проходить следующие вершины, после чего плагин дорисовывает 50 следующих точек линии. Этот процесс подходит для любых линий, даже для пунктирных и тех, которые пересекают другие похожие объекты. А если плагин собьется с пути, можно просто отменить последний шаг и не терять при этом много времени.
Перед работой необходимо зарегистрировать аккаунт по ссылке. После этого вам на указанную в форме электронную почту придет письмо для активации аккаунта.
Далее следует установить модуль Bunting Labs AI Vectorizer.
Судя по всему модуль теперь работает бесплатно только в течение 30 дней с момента активации работы с ним.
Также в модуль входит сервис привязки с использованием искусственного интеллекта https://buntinglabs.com/solutions/ai-georeferencer.

В качестве бесплатной альтернативы можно воспользоваться модулем Raster tracer.

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

Сноски
Плагин для AI-оцифровки растров в QGIS - https://cartetika.ru/tpost/4dta8sa621-plagin-dlya-ai-otsifrovki-rastrov-v-qgis↩︎
