Comment voir quelles lignes ont changé dans un Shapefile mis à jour?

15

J'utilise les données SIG de mon comté pour mettre à jour les routes dans OpenStreetMap. J'ai une copie qu'ils ont publiée l'année dernière et une qui vient d'être publiée, et j'aimerais trouver toutes les chaînes de lignes dont les attributs ou la géométrie ont été modifiés. Cela m'aidera à m'assurer que toutes les rues nouvelles et modifiées sont mises à jour dans OpenStreetMap.

Je voudrais le faire en utilisant un logiciel FOSS, tel que QGIS ou Python / OGR. Les segments de rue doivent avoir un identifiant unique, donc ma seule pensée est d'écrire un script Python qui ouvre les deux Shapefiles, trouve tous les segments dans le nouveau qui ne sont pas présents dans l'ancien (segments ajoutés) et l'inverse (segments supprimés) , puis bouclez sur des paires appariées en comparant leurs coordonnées constitutives pour voir si quelque chose a changé.

Est-ce une bonne approche? Existe-t-il un moyen plus simple?

joshdoe
la source
3
Il semble que vous recherchiez un équivalent QGIS à ArcGIS Feature Compare
PolyGeo
+1 - question vraiment intéressante. J'ai regardé la comparaison des fichiers de formes dans QGIS en les sélectionnant dans la table des attributs, en copiant (ctrl-C / cmd-C) et en les collant dans un éditeur de texte pour comparer directement le texte WKT, mais cela ne le fait pas segmenter par segment et est évidemment fastidieux. Très intéressé de voir une bonne solution sortir de cette question. Pour les données OSM, vous pouvez également télécharger l'historique des fonctionnalités individuelles, mais ce serait bien d'avoir une solution générique .
Simbamangu

Réponses:

8

La chose que vous devez faire est une analyse temporelle. Comme vous l'avez dit, vous disposez de deux données vectorielles (shp) de temps différents. vous pouvez trouver le changement en utilisant le traitement de la géométrie. Dans QGIS, chargez deux vecteurs et GoTo Vector-> GeoProcessing et à partir de là, vous pouvez utiliser la fonction Différence qui donnera une autre forme en conséquence.

J'espère que cela pourra aider

rkm
la source
+1 - cela fonctionne bien pour deux ensembles de données OSM à un mois d'intervalle, ce qui donne une couche qui préserve les attributs des objets modifiés.
Simbamangu
1
mais cela ne fonctionnerait que si la géométrie était modifiée. qu'en est-il du changement d'attribut?
sweet.sugar.cola