Анализируя различия между двумя шейп-файлами, чтобы поместить результаты в новый шейп-файл?


9

У меня есть два многоугольных шейп-файла одного и того же региона за два разных года (1985 и 1997), и мне нужно проанализировать различия между двумя шейп-файлами, в результате чего у третьего многоугольного шейп-файла отображаются только различия.

Шейп-файлы покрывают городскую территорию со зданиями, парками, закрытыми / незапечатанными участками и акваториями. Мне нужно выяснить, например, было ли здание разрушено / построено или парк был перенесен или закрыт или что-то в этом роде. Любые различия между формами.

Мне нужно, чтобы вывод был в третьем, новом шейп-файле. Есть ли автоматизированный способ добиться этого?

Я работаю с файловой базой геоданных proprietery в ArcGIS 10.1, поэтому я бы предпочел решения в ArcGIS. Но если в QGIS есть простой способ сделать это, я бы тоже приветствовал это.

Я подумал, что можно было бы работать с анализом топологии в ArcGIS, но я не совсем уверен, например, как сравнивать фигуры по атрибутам: у каждой фигуры есть поле «тип» в таблице атрибутов, и мне нужно сравнивать не только фигуры но типы полигонов.

Обратите внимание, как найти различия между шейп-файлами с помощью ArcGIS for Desktop? звучит похоже, но я ищу вывод в формате файла многоугольника.

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


1
Когда вы говорите, различие, вы имеете в виду различие в геометрии, атрибут или оба? Это процесс обнаружения изменений?
Райан Гарнетт

Да, это процесс обнаружения изменений. Сначала мне нужны изменения в геометрии, вторичные мне нужны изменения в атрибутах. Но геометрия важнее, так как вывод должен быть визуализирован каким-то образом.
Afr

Ответы:


2

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

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

У этого процесса есть несколько ограничений:

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

  • Вы найдете много осколков полигонов на выходе.

  • Для этого необходимо, чтобы ваши классы пространственных объектов полностью покрывали вашу область интересов и чтобы не было пробелов.


Это делает работу, спасибо! Это довольно простое решение, но с этим я могу работать.
Afr

6

Есть несколько способов сделать это. Я завершил это в прошлом с отличными результатами, используя комбинацию атрибутов и растровую обработку. Предпосылкой процесса является присвоение каждой функции значения n (1, 2, 4, 8, 16, 32, 64 и т. Д.). Присвоение этих значений гарантирует, что при вычитании слоя 1 (1985 г.) из слоя 2 (1997 г.) вы получите уникальное значение, которое определяет, на что оно изменилось. Например, если 1 = здания, 2 = парки, 4 = печать / незапечатано и 8 = вода; вычитая значения, невозможно получить одно и то же значение. Когда вы добавите этот столбец значений, вы захотите преобразовать полигоны в растр, используя ArcGIS или QGIS. Я бы порекомендовал установить небольшой размер растрового пикселя (т. Е. Если данные были получены из изображений Quickbird, то установите для них размер пикселя изображений Quickbird). Используя Raster Calculator (в ArcGIS или QGIS) вычтите Layer2 из Layer1. Это приведет к Layer3, измененному на слой. Вы можете преобразовать эти данные обратно в слой многоугольника для дальнейшего анализа ГИС. Если вам нужна дополнительная информация или подробности, я могу поделиться с вами более подробной информацией.


Это очень хороший подход, но я не собираюсь преобразовывать свои фигуры в растровые данные и обратно, поскольку потеряю слишком много информации. Можно ли это как-то достичь только с помощью векторных слоев?
Afr

Вы могли бы сделать что-то подобное с векторами, но это не использует ценностный подход. Возможно, вы захотите поиграть с инструментом Symmetric Difference, доступным в ArcGIS и QGIS. Я не знаю о векторном подходе, который имитирует подход, который я изложил.
Райан Гарнетт

Ваш подход напоминает мне об использовании побитовых операций, как описано здесь blog.millermedeiros.com/…
geogeek

Есть ли в ARCGIS 9.2 симметрический разностный инструмент? Я не могу найти. Какую версию ARCGIS можно использовать для анализа симметричных разностей?
Bandrush Barda

Я считаю, что вам нужна лицензия ArcInfo. Если у вас нет такого типа лицензии, вы можете скачать ETGeoWizards. Симметричная разница - это доступный инструмент на вкладке Геообработка. QGIS также имеет симметричную разницу в инструментах Vector, которая является бесплатной.
Райан Гарнетт

0

Для обнаружения изменений в ArcGIS из двух файлов полигонов используйте операцию наложения (UNION). Это дает вам матрицу перехода, показывающую детали изменений (может быть в земном покрове).


Я думаю, что это всего лишь вариант принятого ответа, но с менее подробными инструкциями. Кроме того, хотя Union и Intersect являются операциями наложения полигонов, в этом случае я бы использовал Intersect для минимизации размера выходных данных и любых промежуточных наборов данных.
PolyGeo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.