Сравнить пространственные объекты (Feature Compare) (Управление данными)
Резюме
Сравнивает два класса пространственных объектов или слоя. Инструмент Сравнить пространственные объекты (Feature Compare) позволяет выявить отличия в типе геометрии, табличных значениях, пространственной привязке и атрибутивных полях.
Использование
-
Инструмент выдает сообщение с результатами сравнения. По умолчанию, инструмент завершает работу и выдает результат после обнаружения первого несоответствия при сравнении. Чтобы получить информацию о всех различиях, отметьте опцию Продолжить сравнение.
-
Могут быть определены несколько полей для сортировки. Сортируется первое поле, затем второе, и т.д. в порядке возрастания. Сортировка по общему и для Исходных объектов (Input Base Features) и для Тестовых объектов (Input Test Features) полю обеспечивает проверку идентичных строк в входных наборах данных.
-
По умолчанию, установлен тип сравнения ALL. Это означает, что будут сравнены все свойства проверяемых пространственных объектов, включая такие, как пространственная привязка, свойства поля, атрибуты и геометрия. Однако, вы можете выбрать другую опцию, чтобы сравнить только конкретные свойства сопоставляемых пространственных объектов.
-
Параметр Игнорировать опции (Ignore Options) позволяет исключить такие свойства, как атрибуты измерения, z атрибуты, атрибуты идентификаторов точек и дополнительные свойства. Два класса пространственных объектов могут быть идентичными, но один имеет измерения и координаты по z, а другой - нет. Вы можете игнорировать эти свойства при сравнении. Опция IGNORE_EXTENSION_PROPERTIES обращается к дополнительной информации, добавленной к классу пространственных объектов или таблице. Например, пространственные объекты двух классов объектов аннотаций могут быть идентичными, но классы пространственных объектов имеют различные дополнительные свойства, например, разные символы в наборе символов и разное поведение при редактировании.
-
Допуск XY по умолчанию устанавливается по значению допуска в свойствах Исходных объектов . Для снижения вероятности ошибки выбирайте значение минимально возможное значение допуска. Если введен 0 в качестве Допуска XY, выполняется точное сопоставление.
-
Допуск M по умолчанию и Допуск Z по умолчанию определяется соответствующими установками для Исходных объектов (Input Base Features). При этом используются те же единицы что и у Исходных объектов (Input Base Features). Если вы вводите 0 для допуска M и Z, то будет выполнено точное сопоставление.
-
Если выбран тип сравнения GEOMETRY_ONLY, пространственные привязки должны совпадать. Если пространственные привязки отличаются, появится сообщение о несовпадении. Если входные системы координат отличаются, объекты не будут совпадать. Данный инструмент не проецирует на лету
-
Параметр Пропустить поля (Omit Fields) - это перечень полей, которые не будут включены в сравнение пересчета полей, определения этих полей и табличные значения игнорируются.
-
Атрибутивные допуски могут быть определены только для числовых типов полей.
-
Выходной файл сравнения (Output Compare File) будет содержать все сходства и различия между Исходными объектами (Input Base Features) и Тестовыми объектами (Input Test Features). Этот файл - текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. Например, эта таблица может требоваться для получения значений ObjectID для всех строк, которые различаются. Поле «has_error» указывает, что запись содержит ошибку. True указывает, что есть различие.
Одним из первых сравниваем число объектов. Если число пространственных объектов отличается, а параметру Продолжить сравнение присвоено значение TRUE, последующие сообщения о сравнении могут некорректно отображать дополнительные различия между Исходными объектами и Тестовыми объектами. Это происходит потому, что инструменту Сравнить пространственные объекты (Feature Compare) не удается определить, какие объекты добавлены в Тестовые объекты (Input Test Features), а какие объекты удалены из них, поэтому он просто переходит на следующую строку в каждой таблице атрибутов. В той позиции в таблице атрибутов, где объект был добавлен или удален, инструмент переходит на следующую строку и сравнивает базовый объект с некорректным тестовым объектом, потому что корректный объект во Входных базовых данных (Input Test Data) был удален или объект был добавлен до этого.
-
Объекты, полученные в результате использования инструментов сравнения, являются корректными, если не было найдено никаких отличий, и некорректными — в случае обнаружения различий.
Синтаксис
Параметр | Объяснение | Тип данных |
in_base_features |
С исходными объектами сопоставляются тестовые объекты. Исходные объекты соответствуют данным, которые считаются корректными. Они имеют корректную геометрию, поля и пространственную привязку. | Feature Layer |
in_test_features |
Тестовые объекты сопоставляются с исходными объектами. Тестовые объекты соответствуют данным, в которые внесены изменения при редактировании или компиляции новых объектов. | Feature Layer |
sort_field [sort_field,...] |
Одно или несколько полей, используемые для сортировки записей в исходной (Input Base Table) и тестовой таблицах (Input Test Table). Записи сортируются по возрастанию. Сортировка по общему для обеих таблиц полю обеспечивает проверку идентичных строк во входном наборе данных. | Value Table |
compare_type (дополнительно) |
Тип сравнения. ALL используется по умолчанию. В этом случае сравниваются все свойства сопоставляемых пространственных объектов.
| String |
ignore_options [ignore_option,...] (дополнительно) |
Отмеченные свойства будут проигнорированы при сравнении.
| String |
xy_tolerance (дополнительно) |
Расстояние, в пределах которого объекты будут считаться идентичными. Для снижения вероятности ошибки выбирайте значение минимально возможное значение допуска. По умолчанию, в качестве этого параметра устанавливается допуск XY исходных объектов. | Linear unit |
m_tolerance (дополнительно) |
Минимальное расстояние между измерениями. На меньшем расстоянии измерения будут считаться идентичными. | Double |
z_tolerance (дополнительно) |
Допуск Z - это минимальное расстояние между координатами Z, до того, как они будут считаться равными. | Double |
attribute_tolerances [[Field, {Tolerance}],...] (дополнительно) |
Допустимое отклонение атрибутивных значений числовых полей.Диапазон, в котором значения будут считаться идентичными. Используется только для числовых полей. | Value Table |
omit_field [omit_field,...] (дополнительно) |
Одно или несколько полей, которые будут пропущены в процессе сравнения. Свойства и значения данных полей будут проигнорированы. | String |
continue_compare (дополнительно) |
Определяет необходимость продолжения сравнения после обнаружения первого несовпадения.
| Boolean |
out_compare_file (дополнительно) |
Данный файл будет хранить информацию обо всех совпадениях и отличиях исходных и текстовых объектов. Это текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. | File |
Пример кода
Пример скрипта Python для выполнения функции Сравнить пространственные объекты (Feature Compare) с запуском из окна Python в ArcGIS.
import arcpy
arcpy.FeatureCompare_management(r'C:/Workspace/baseroads.shp', r'C:/Workspace/newroads.shp', 'ROAD_ID', 'ALL', 'IGNORE_M;IGNORE_Z', '0.001 METERS', 0, 0, 'Shape_Length 0.001', '#', 'CONTINUE_COMPARE', e = r'C:/Workspace/roadcompare.txt')
Пример использования инструмента Сравнить пространственные объекты (Feature Compare) в автономном скрипте.
# Name: FeatureCompare.py
# Description: Compare two feature classes and return comparison result.
# import system modules
import arcpy
try:
# Set local variables
base_features = "C:/Workspace/baseroads.shp"
test_features = "C:/Workspace/newroads.shp"
sort_field = "ROAD_ID"
compare_type = "ALL"
ignore_option = "IGNORE_M;IGNORE_Z"
xy_tolerance = "0.001 METERS"
m_tolerance = 0
z_tolerance = 0
attribute_tolerance = "Shape_Length 0.001"
omit_field = "#"
continue_compare = "CONTINUE_COMPARE"
compare_file = "C:/Workspace/roadcompare.txt"
# Process: FeatureCompare
compare_result = arcpy.FeatureCompare_management(base_features, test_features, sort_field, compare_type, ignore_option, xy_tolerance, m_tolerance, z_tolerance, attribute_tolerance, omit_field, continue_compare, compare_file)
print compare_result
print arcpy.GetMessages()
except:
# Print error message if an error occurs
print arcpy.GetMessages()