Как сделать обратную привязку с QGIS?

16

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

Теперь я хотел бы выполнить обратную операцию: преобразовать один из этих растровых слоев (или растеризованных векторных слоев) обратно в нарисованную вручную квазипроекцию, в идеале используя тот же набор контрольных точек, чтобы изображения совпали при наложении в графический редактор. Как это сделать?

Мартин Сойка
источник
8
интересная ситуация. Может быть, вы вообще не привязываете карту, нарисованную вручную. Используйте раскрашенную вручную карту как «наземную правду» и получите контрольные точки на основе локальной системы координат (скажем, верхний левый угол раскрашенной вручную карты равен 0,0, а каждый пиксель - единица измерения). Затем «привязать» ваши растры к этой локальной системе координат.
spatialthoughts
1
@spatialthoughts: Это очень хорошо подойдет для растров, однако я бы также потерял точность векторных слоев и возможность выполнять с ними вычисления (площадь объекта, длина сегмента и т. д.). Это не непреодолимая проблема, конечно. Возможность изменения географической привязки просто не будет иметь этих ограничений.
Мартин Сойка
@Martin Вы хотите векторные вычисления в WGS84 или в раскрашенных вручную координатах изображения? Если первое из них звучит так, как будто вам нужно преобразовать векторы в нарисованные вручную координаты, полностью отделено от необходимости выполнять вычисления по вектору - и я бы поддержал предложение spatialthoughts. Просто означает, что вам нужно выполнять эти задачи в отдельных проектах QGIS.
Джефф Дж.
1
В общем, не гарантируется, что для всех преобразований существует обратное. С помощью полиномиальных преобразований, если бы вы могли заставить плагин регистрировать используемые им коэффициенты, вы могли бы вычислить обратное математически. В случае сплайна с тонкими пластинами возможна и обратная задача: функция GDALCreateTPSTransformer принимает аргумент "bReversed": gdal.org/gdal__alg_8h.html#a245802b88a8126c138d24febe6c9822a
Джефф Дж.

Ответы:

1

Если вы использовали ArcGIS, вы используете панель инструментов пространственной регулировки. Тем не менее, QGIS предлагает аналогичные функции с помощью плагинов.

Зайдите в менеджер плагинов и установите «Affine Transformations»

Также установите «Вектор Бендер»

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

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

Поскольку у вас уже есть контрольные точки, вы сможете преобразовать свои данные обратно в исходную «проекцию». Загрузите ваши контрольные точки в плагин и выполните преобразование. Я еще не пробовал, так что, возможно, вам придется играть с контрольными точками. Плагин аффинных преобразований использует константы для выполнения преобразования. Так как у вас уже есть контрольные точки, вы можете использовать векторный изгиб для создания «резинового листа».
Vector bender отсутствует в хранилище плагинов, поэтому вам нужно установить его вручную, добавив его в C: \ Users.qgis2 \ python \ plugins \ VectorBender.


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

Вот что вам нужно сделать:

Сохраните файл cpg. Измените расширение на .csv. Откройте файл в Excel. Поменяйте местами значения в столбцах to / from. Сохранить. Измените расширение обратно на .points.

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

jbalk
источник
Разве панель инструментов пространственной регулировки не является частью Arcgis Desktop? Я не уверен, что есть что-то похожее в QGIS.
AndreJ
@AndreJ Пожалуйста, смотрите мои правки.
jbalk
0

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

Ник Мулган
источник