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?
źródło
Odpowiedzi:
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
źródło