Як побачити, які рядки змінилися в оновленому Shapefile?


15

Я використовую дані ГІС мого округу для оновлення доріг у OpenStreetMap. У мене є примірник, який вони опублікували минулого року, і щойно опублікований, і я хотів би знайти всі рядки LineStrings, які або мали свої атрибути, або змінили геометрію. Це допоможе мені забезпечити оновлення всіх нових та модифікованих вулиць у OpenStreetMap.

Я хотів би зробити це за допомогою програмного забезпечення FOSS, такого як QGIS або Python / OGR. Вуличні сегменти повинні мати унікальний ідентифікатор, тому моя єдина думка - написати сценарій Python, який відкриє обидва Shapefiles, знаходить будь-які сегменти в новому, яких немає в старих (додані сегменти), і зворотні (видалені сегменти) , а потім переведіть курсор на відповідні пари, порівнюючи їх складові координати, щоб побачити, чи щось змінилося.

Це хороший підхід? Чи є простіший спосіб?


3
Здається, ви шукаєте QGIS, еквівалентний порівнянню особливостей
PolyGeo

+1 - дійсно цікаве запитання. Я переглядав порівняння файлів форм у QGIS, вибираючи їх у таблиці атрибутів, копіюючи (ctrl-C / cmd-C) та вставляючи в текстовий редактор для прямого порівняння тексту WKT, але це не робить це сегментом за сегмент і, очевидно, нудна. Дуже зацікавлено, щоб з цього питання вийшло гарне рішення. Для даних OSM ви можете також завантажувати історію для окремих функцій, але було б непогано мати загальне рішення.
Simbamangu

Відповіді:


8

Що вам потрібно зробити - це тимчасовий аналіз. Як ви сказали, у вас є дві векторні дані (shp) різних часів. ви можете знайти зміни за допомогою обробки геометрії. У QGIS завантажують два вектори та GoTo Vector- > GeoProcessing, а звідти ви можете використовувати функцію Difference, яка надасть іншу форму в результаті.

Сподіваюся, що це допомагає


+1 - це чудово працює для двох наборів даних ОСМ на місяць один від одного, внаслідок чого утворюється шар, який зберігає атрибути змінених об'єктів.
Simbamangu

1
але це спрацювало б лише за умови зміни геометрії. як щодо зміни атрибутів?
sweet.sugar.cola
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.