Деякі надані тут відповіді більше не є варіантами QGIS 3, та / або дозволяють лише лінійні перетворення векторного файлу, який геореференгується. Це може відповісти на питання ОП, але інші, хто переглядає цю публікацію, можуть захотіти інших варіантів перетворення для геореференційних векторних файлів.
Проблеми з деякими рішеннями для геореференційних векторних файлів:
Плагін qgsAffine дозволяє проводити лише лінійні перетворення. Це означає, що він може масштабувати, обертати та переміщувати векторний файл, але він не може згинати чи перекручувати векторний файл. Georeferencer для растрових файлів надає більше варіантів і дозволяє проводити різноманітні перетворення, включаючи поліноми другого порядку та сплайс тонкої пластини. Крім того, не видається, що плагін qgsAffine все ще доступний у QGIS 3.
Модуль GRASS v.transform схожий на плагін qgsAffine і дозволяє лише лінійні перетворення.
Плагін Vector Bender виглядає як хороший варіант, але він не повністю перенесений на QGIS 3, тому наразі це не варіант. Схоже, це вже не підтримується.
Використання ogr2ogr, як це пропонується у посту HeikkiVesanto, є хорошим варіантом. Це дозволяє використовувати GCP (точки наземного контролю) та вказати, який тип трансформації ви б хотіли. Я не могла знайти інструкцій, як це зробити, тому я включила кілька інструкцій нижче:
Створіть набір пар GCP, причому одна точка є оригінальним розташуванням у негеореференційованому векторному файлі, а інша точка - бажане місце у вашій робочій області геореференції.
Існує безліч способів генерування GCP. Я використовував плагін Georeferencer GDAL в QGIS. Це доступно у спадному меню Raster після його встановлення за допомогою диспетчера плагінів. Він працює лише у растрових файлах, тому спочатку потрібно перетворити векторний файл у растровий файл. Це можливо за допомогою "Обробляти панель інструментів: GDAL: Перетворення вектора: Розпарити (векторний до растрового)". Встановіть роздільну здатність на число, яке все ще дозволяє бачити особливості векторного файлу.
Georeferencer має приємний інтерфейс, який дозволяє додавати багато GCP-балів. Ви також можете перевірити різні перетворення та побачити, що найкраще працює. І ви можете побачити, чи є хтось із ваших пунктів GCP, помилившись, переглянувши їх залишки. Після того, як ви додали всі свої точки GCP і переконалися, що вам подобається вихід, ви можете експортувати файл GCP з Georeferencer, щоб використовувати його для геореференції вихідного векторного файлу.
Файл GCP потрібно змінити, щоб він був у наступному форматі. Ви можете додати стільки GCP-точок, скільки вам подобається, кожен з них виконує -gcp і розділений пробілом. Я провів це з 800+ балами GCP, і це було чудово.
-gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
Існує безліч способів змінити точки GCP у потрібний формат. Я імпортував їх у Excel у вигляді CSV-файлу та створив стовпчик для виведення потрібного формату для кожної точки. Потім я вставив цей стовпець у TextEdit і замінив кінці рядка пробілами.
Векторний файл, який ви хочете зробити геореференцією, слід імпортувати у вашу робочу область, використовуючи той самий SRS, який ви хочете для остаточного файлу геореференції, який повинен бути таким же SRS, як і ваша робоча область. Це може бути довгим шляхом, де він повинен бути, якщо він спочатку використовував інший SRS, але перетворення перемістить його в правильне місце.
Отримайте доступ до ogr2ogr через "Обробку інструментів: GDAL: Перетворення вектор: Перетворення формату". Це дозволяє вибрати векторний файл, який ви хочете зробити геореференцією, і вихідний файл. У полі "Додаткові параметри створення" додайте команду, яка вказує, який тип трансформації ви хочете, а потім рядок з усіма своїми точками GCP.
Команди для різних типів перетворення включають:
- "-порядок 1" для лінійного
- "-порядок 2" для многочлена другого порядку
- "-порядок 3" для полінома третього порядку
- "-tps" для сплайну тонкої пластини
Наприклад, код, доданий у поле "Додаткові параметри створення", може виглядати так:
-order 2 -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>