¿Cómo ver qué líneas han cambiado en un Shapefile actualizado?

15

Estoy usando los datos SIG de mi condado para actualizar las carreteras en OpenStreetMap. Tengo una copia que publicaron el año pasado y una que acaba de publicarse, y me gustaría encontrar todas las LineStrings que hayan cambiado sus atributos o su geometría. Esto me ayudará a asegurarme de que todas las calles nuevas y modificadas se actualicen en OpenStreetMap.

Me gustaría hacer esto usando el software FOSS, como QGIS o Python / OGR. Los segmentos de la calle deben tener un identificador único, por lo que mi único pensamiento es escribir un script de Python que abra ambos Shapefiles, encuentre cualquier segmento en el nuevo que no esté presente en el viejo (segmentos agregados) y el reverso (segmentos eliminados) , y luego recorre los pares coincidentes comparando sus coordenadas constituyentes para ver si algo ha cambiado.

¿Es este un buen enfoque? ¿Hay una manera más sencilla?

joshdoe
fuente
33
Parece que está buscando un QGIS equivalente a ArcGIS Feature Compare
PolyGeo
+1 - pregunta realmente interesante. He echado un vistazo a la comparación de archivos de formas en QGIS seleccionándolos en la tabla de atributos, copiando (ctrl-C / cmd-C) y pegando en un editor de texto para comparar el texto WKT directamente, pero esto no lo hace segmentar por Segmento y es obviamente tedioso. Muy interesado en ver una buena solución a partir de esta pregunta. Para los datos de OSM, también puede descargar el historial de características individuales, pero sería bueno tener una solución genérica .
Simbamangu

Respuestas:

8

Lo que debes hacer es un análisis temporal. Como dijiste, tienes dos datos vectoriales (shp) de tiempos diferentes. Puede encontrar el cambio utilizando el procesamiento de geometría. En QGIS, cargue dos vectores y GoTo Vector-> GeoProcessing y desde allí puede usar la función Diferencia que dará como resultado otra forma.

Espero que ayude

rkm
fuente
+1: esto funciona bien para dos conjuntos de datos OSM con un mes de diferencia, lo que da como resultado una capa que conserva los atributos de los objetos modificados.
Simbamangu 01 de
1
pero esto solo funcionaría si la geometría fuera cambiada. ¿Qué pasa con el cambio de atributo?
sweet.sugar.cola