Jak zobaczyć, które linie zmieniły się w zaktualizowanym pliku kształtu?

15

Korzystam z danych GIS mojego hrabstwa do aktualizacji dróg w OpenStreetMap. Mam kopię, którą opublikowali w zeszłym roku, i jedną, która właśnie została opublikowana, i chciałbym znaleźć wszystkie LineStrings, które miały zmienione atrybuty lub geometrię. Pomoże mi to upewnić się, że wszystkie nowe i zmodyfikowane ulice są aktualizowane w OpenStreetMap.

Chciałbym to zrobić za pomocą oprogramowania FOSS, takiego jak QGIS lub Python / OGR. Segmenty ulic powinny mieć unikalny identyfikator, więc moją jedyną myślą jest napisanie skryptu w języku Python, który otworzy oba pliki Shapefiles, znajdzie w nowym segmencie wszystkie segmenty, które nie są obecne w starych (dodane segmenty) i odwrotnych (usunięte segmenty) , a następnie zapętlić pasujące pary, porównując ich współrzędne składowe, aby sprawdzić, czy coś się zmieniło.

Czy to dobre podejście? Czy istnieje prostszy sposób?

joshdoe
źródło
3
Wygląda na to, że szukasz QGIS odpowiadającego ArcGIS Feature Compare
PolyGeo
+1 - naprawdę interesujące pytanie. Przyjrzałem się porównywaniu plików kształtów w QGIS, wybierając je w tabeli atrybutów, kopiując (ctrl-C / cmd-C) i wklejając w edytorze tekstu, aby bezpośrednio porównywać tekst WKT, ale nie robi to segmentacji według segment i jest oczywiście żmudny. Bardzo chciałbym zobaczyć dobre rozwiązanie tego pytania. W przypadku danych OSM możesz także pobrać historię poszczególnych funkcji, ale byłoby miło mieć ogólne rozwiązanie.
Simbamangu

Odpowiedzi:

8

Musisz jedynie dokonać analizy czasowej. Jak powiedziałeś, masz dwa dane wektorowe (shp) z różnych czasów. zmianę można znaleźć za pomocą przetwarzania geometrii. W QGIS załaduj dwa wektory i GoTo Vector-> GeoProcessing, a stamtąd możesz użyć funkcji Różnica, która da inny kształt.

Mam nadzieję, że to pomaga

rkm
źródło
+1 - działa to dobrze dla dwóch zestawów danych OSM w odstępie miesięcznym, co daje warstwę, która zachowuje atrybuty zmienionych obiektów.
Simbamangu,
1
ale działałoby to tylko, gdyby zmieniła się geometria. co ze zmianą atrybutu?
sweet.sugar.cola