Каждый месяц мне приходится проверять данные улиц по всему графству (более 47 000 записей). Первый шаг - сравнить два файла. В настоящее время я использую инструмент, который был создан в домашних условиях с помощью VBA около 5 лет назад. Он работает, сравнивает два файла и сообщает о различиях, основываясь на нескольких факторах (добавленные записи, удаленные записи, изменения адреса, изменения города, длина сегмента / изменения вершин). Затем я экспортирую их в отдельные шейп-файлы. Кроме того, инструмент работает, ArcGIS 9.3
но больше не будет работать вArcGIS 10.1
Инструмент отлично работает, но на его завершение требуется около часа.
Я начал работать над улучшением этого инструмента для повышения производительности. Я изучил различные методы, включая Compare Feature Tool
и Select by Location
.
Оба эти инструмента работают значительно быстрее, однако, похоже, они не отражают все, что мне нужно. Большая проблема, с которой я столкнулся, Compare Feature Tool
заключается в том, что я не могу выбрать, по какому полю сравнивать. По умолчанию это ObjectID, когда мне нужно сравнить по Segment_ID. Нет возможности выбрать это.
У кого-нибудь есть хорошее решение или идеи о том, как добиться полного сравнения, как я описал?
По какой-то причине ArcGIS не распознает соединение, которое я пытаюсь выполнить согласно ответу RyanDalton.
Но
Следуя совету объединения, я выяснил, как найти различия между добавленными и удаленными записями в двух файлах:
- Присоединение шейп-файла за предыдущий месяц к шейп-файлу за текущий месяц через поле Segment_ID
- Выполнение запроса определения, где Segment_ID IS NULL
- Экспорт этого в новый шейп-файл (дополнительные функции)
Затем я отменяю соединения и нахожу Удаленные
Все еще работаем над тем, чтобы найти другие различия и перечислить их все вместе в модели.
Я могу найти все записи, которые изменились, выполнив выборку по местоположению записей из одного из наборов данных, которые идентичны другому набору данных. Затем я переключаю выбор, и он дает мне все записи, которые не идентичны.
Я положу все это в модель, и надеюсь, что это работает так же хорошо.
Segment_ID
в вашу выходную таблицу.В моем опыте Feature Compare всегда использует FID или ObjectID в качестве основы для сравнения, даже если в качестве поля сортировки выбрано сегмент_идентификатор. FID шейп-файлов перерабатываются (переупорядочиваются), поэтому после нескольких изменений многие, если не все FID, различаются для своих соответствующих географических регионов. Таким образом, они будут иметь «истинную» ошибку сравнения функций. Если вы используете ObjectID из GeoDatabase или GISquirrel, то идентификаторы не перерабатываются, и вы можете положиться на этот инструмент. Вы должны хранить базы данных в течение определенного периода времени, чтобы идентификаторы объектов никогда не переупорядочивались.
Независимо от того, что описание поля сортировки в справке инструмента GP ОЧЕНЬ вводит в заблуждение. Этот инструмент был бы потрясающим, если основой сравнения мог бы быть сегмент_ID.
источник