Как посмотреть, какие строки изменились в обновленном Shapefile?

15

я использую данные ГИС моего округа, чтобы обновить дороги в OpenStreetMap. У меня есть копия, которую они опубликовали в прошлом году, и копия, которая была только что опубликована, и я хотел бы найти все строки строк, у которых либо были изменены свои атрибуты, либо изменена их геометрия. Это поможет мне убедиться, что все новые и измененные улицы обновлены в OpenStreetMap.

Я хотел бы сделать это с помощью программного обеспечения FOSS, такого как QGIS или Python / OGR. Сегменты улиц должны иметь уникальный идентификатор, поэтому моя единственная мысль - написать скрипт Python, который открывает оба шейп-файла, находит любые сегменты в новом, которых нет в старых (добавленные сегменты), и наоборот (удаленные сегменты) , а затем переберите соответствующие пары, сравнивая их составляющие координаты, чтобы увидеть, изменилось ли что-нибудь.

Это хороший подход? Есть ли более простой способ?

joshdoe
источник
3
Похоже, вы ищете QGIS, эквивалентный ArcGIS Feature Compare
PolyGeo
+1 - действительно интересный вопрос. Я взглянул на сравнение шейп-файлов в QGIS, выбрав их в таблице атрибутов, скопировав (ctrl-C / cmd-C) и вставив в текстовом редакторе, чтобы напрямую сравнить текст WKT, но это не делает его сегментированием по сегмент и, очевидно, утомительно. Очень интересно увидеть хорошее решение этого вопроса. Для данных OSM вы также можете загружать историю для отдельных функций, но было бы неплохо иметь общее решение.
Симбамангу

Ответы:

8

То, что вам нужно сделать, это временной анализ. Как вы сказали, у вас есть две векторные данные (shp) разных времен. Вы можете найти изменение с помощью обработки геометрии. В QGIS загрузить два вектора и GoTo Vector-> GeoProcessing, и оттуда вы можете использовать функцию Difference, которая в результате придаст другую форму.

надеюсь, это поможет

РКМ
источник
+1 - это хорошо работает для двух наборов данных OSM с интервалом в месяц, в результате чего получается слой, который сохраняет атрибуты измененных объектов.
Симбамангу
1
но это будет работать, только если геометрия была изменена. как насчет изменения атрибута?
sweet.sugar.cola