Як повернути геореференцію за допомогою QGIS?


16

У мене є карта з "дивною" проекцією (в основному вона намальована вручну, не точна). Я можу з легкістю відрегулювати його в QGIS, використовуючи плагін Georeferencer та перетворення тонкої пластини сплайну з набором приблизно 2000-3000 контрольних точок у просту проекцію WGS 84 (EPSG: 4326) та "обробляти / покращувати її далі з іншими даними" як з Natural Earth або OpenStreetMap.

Тепер я хотів би виконати зворотну операцію: Перетворіть один з цих растрових шарів (або растризовані векторні шари) назад в розписану вручну квазіпроекцію, в ідеалі, використовуючи той самий набір контрольних точок, щоб зображення збігалися при накладанні в графічний редактор. Як це зробити?


8
цікава ситуація. Можливо, ви зовсім не орієнтуєтесь на мальовану карту. Використовуйте намальовану вручну карту як "землю-правду" та отримайте свої контрольні точки на основі локальної системи координат (скажімо, верхній лівий кут карти, намальованої вручну, становить 0,0, а кожен піксель - одиниця). Потім "георегулюйте" свої растри до цієї локальної системи координат.
spatialthoughts

1
@spatialthoughts: Це спрацювало б для растерів досить добре, однак я також втратив би точність векторних шарів та можливість робити обчислення з ними (область функції, довжина сегмента тощо). Це, звичайно, не нездоланна проблема. Бути в змозі змінити геореференціювання не мало б цих обмежень.
Мартін Сойка

@Martin Ви хочете, щоб векторні обчислення в WGS84 або в ручно розписаних координатах зображень? Якщо перше звучить як ваша потреба перетворити вектори на ручні намальовані координати, зовсім окремо від вашої необхідності робити обчислення за вектором - і я б запропонував другу пропозицію про спатіалхофф. Просто означає, що потрібно виконувати ці завдання в окремих проектах QGIS.
Джефф G

1
Взагалі не гарантується наявність зворотного для всіх перетворень. За допомогою поліноміальних перетворень, якщо ви могли отримати плагін для реєстрації використовуваних ним коефіцієнтів, ви могли обчислити обернене математично. З тонким сплайном пластини можливо також зворотний: функція GDALCreateTPSTransformer приймає аргумент "bReversed": gdal.org/gdal__alg_8h.html#a245802b88a8126c138d24febe6c9822a
Jeff G

Відповіді:


1

Якщо ви використовували ArcGIS, ви використовуєте панель інструментів просторового регулювання. Однак QGIS пропонує аналогічну функціональність за допомогою плагінів.

Перейдіть до менеджера плагінів та встановіть "Affine Transformations"

Також встановіть "Вектор Бендер"

Домашня сторінка: https://github.com/trenneman/qgsAffine ;

https://plugins.qgis.org/plugins/VectorBender/

Оскільки у вас вже є контрольні точки, ви повинні мати змогу перетворити свої дані назад у початкову "проекцію". Завантажте свої контрольні точки в плагін і виконайте перетворення. Я ще цього не пробував, тому вам, можливо, доведеться грати з контрольними точками. Плагін афінних перетворень використовує константи для здійснення перетворення. Оскільки у вас вже є контрольні точки, вам потрібно скористатися векторним згином, щоб виконати "гумовий лист".
Векторний Бендер не знаходиться у сховищі плагінів, тому його потрібно встановити вручну, додавши його до C: \ Users.qgis2 \ python \ plugins \ VectorBender.


Другий варіант (може працювати лише для растерів, не перевірений векторами) - У геореференторі ви можете зберегти свої контрольні точки у файл. Ви також можете завантажити контрольні точки з файлу.

Ось що вам потрібно зробити:

Збережіть файл cpg. Змініть розширення на .csv. Відкрийте файл у excel. Обміняйте значеннями в стовпцях до / з. Зберегти. Змініть розширення назад на .points.

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


Хіба панель інструментів просторового регулювання не є частиною Arcgis Desktop? Я не впевнений, що в QGIS є щось подібне.
AndreJ

@AndreJ Будь ласка, дивіться мої зміни.
jbalk

0

Я повинен був зробити це один раз для растрового шару, і мені знадобилося певний час, щоб зрозуміти, що мені не потрібно зворотне. Щоб зображення збігалися з оригінальною дивною проекцією, напишіть сценарій, щоб створити сітку в цій проекції, що відповідає пікселям у вашому графічному редакторі. Трансформуйте вперед для кожної точки в сітці, щоб отримати значення шару, який ви маєте в WGS 84. (подібно до коментаря spatialthoughts )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.