У меня есть два многоугольных шейп-файла одного и того же региона за два разных года (1985 и 1997), и мне нужно проанализировать различия между двумя шейп-файлами, в результате чего у третьего многоугольного шейп-файла отображаются только различия.
Шейп-файлы покрывают городскую территорию со зданиями, парками, закрытыми / незапечатанными участками и акваториями. Мне нужно выяснить, например, было ли здание разрушено / построено или парк был перенесен или закрыт или что-то в этом роде. Любые различия между формами.
Мне нужно, чтобы вывод был в третьем, новом шейп-файле. Есть ли автоматизированный способ добиться этого?
Я работаю с файловой базой геоданных proprietery в ArcGIS 10.1, поэтому я бы предпочел решения в ArcGIS. Но если в QGIS есть простой способ сделать это, я бы тоже приветствовал это.
Я подумал, что можно было бы работать с анализом топологии в ArcGIS, но я не совсем уверен, например, как сравнивать фигуры по атрибутам: у каждой фигуры есть поле «тип» в таблице атрибутов, и мне нужно сравнивать не только фигуры но типы полигонов.
Обратите внимание, как найти различия между шейп-файлами с помощью ArcGIS for Desktop? звучит похоже, но я ищу вывод в формате файла многоугольника.
Это процесс обнаружения изменений векторных данных (без проблем дистанционного зондирования). В этом ответе есть несколько хороших комментариев, но никаких решений вообще нет.
Ответы:
Хотя я думаю, что ответ Райана является наиболее разумным вариантом действий, вы можете использовать инструмент пересечения геообработки, используя оба ваших классов объектов в качестве входных данных.
Вывод, который вы получите, будет содержать атрибуты обоих входов. Вы можете проверить наличие объектов с разными значениями в двух полях типа.
У этого процесса есть несколько ограничений:
Во-первых, инструмент пересечения, как и все чрезмерно инструменты, может работать только с ограниченным количеством вершин . Если у вас слишком много вершин в ваших данных, вам придется разбивать свои данные на части и выполнять процесс поэтапно.
Вы найдете много осколков полигонов на выходе.
Для этого необходимо, чтобы ваши классы пространственных объектов полностью покрывали вашу область интересов и чтобы не было пробелов.
источник
Есть несколько способов сделать это. Я завершил это в прошлом с отличными результатами, используя комбинацию атрибутов и растровую обработку. Предпосылкой процесса является присвоение каждой функции значения 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, измененному на слой. Вы можете преобразовать эти данные обратно в слой многоугольника для дальнейшего анализа ГИС. Если вам нужна дополнительная информация или подробности, я могу поделиться с вами более подробной информацией.
источник
Для обнаружения изменений в ArcGIS из двух файлов полигонов используйте операцию наложения (UNION). Это дает вам матрицу перехода, показывающую детали изменений (может быть в земном покрове).
источник