Сравнить пространственные объекты (Управление данными)

Сводка

Сравнивает два класса пространственных объектов или слоя.

Использование

  • Этот инструмент выдает сообщение с результатами сравнения. По умолчанию этот инструмент завершает работу и выдает результат после обнаружения первого несоответствия при сравнении. Чтобы получить информацию о всех различиях, отметьте параметр Продолжить сравнение.

  • Инструмент Сравнить пространственные объекты позволяет выявить отличия в типе геометрии, табличных значениях, пространственной привязке и атрибутивных полях.

  • Могут быть определены несколько полей для сортировки. Сортируется первое поле, затем второе, и т.д. в порядке возрастания. Сортировка по общему и для Исходных объектов и для Тестовых объектов полю обеспечивает проверку идентичных строк в входных наборах данных.

  • По умолчанию установлен тип сравнения All (ALL в Python). Это означает, что будут сравниваться все свойства проверяемых пространственных объектов, включая, например, пространственную привязку, свойства поля, атрибуты и геометрию. Однако, вы можете выбрать другую опцию, чтобы сравнить только конкретные свойства сопоставляемых пространственных объектов.

  • Параметр Игнорировать опции позволяет исключить такие свойства, как атрибуты измерения, z атрибуты, атрибуты идентификаторов точек и свойства расширения. Два класса пространственных объектов могут быть идентичными, но один имеет измерения и координаты по z, а другой – нет. Вы можете игнорировать эти свойства при сравнении. Опция Не сравнивать свойства расширения (IGNORE_EXTENSION_PROPERTIES в Python) обращается к дополнительной информации, добавленной к классу пространственных объектов или таблице. Например, пространственные объекты двух классов объектов аннотаций могут быть идентичными, но классы пространственных объектов могут иметь различные дополнительные свойства, например, разные символы в наборе символов и разное поведение при редактировании.

  • Допуск XY по умолчанию устанавливается по значению допуска в свойствах Входных базовых объектов. Для минимизации ошибок выбранное вами значение допуска сравнения должно быть настолько мало, насколько это возможно. Если введен 0 в качестве Допуска XY, выполняется точное сопоставление.

  • Допуск M по умолчанию и Допуск Z по умолчанию определяется соответствующими установками для Входных базовых объектов. При этом используются те же единицы что и у Исходных объектов. Если вы вводите 0 для допуска M и Z, то будет выполнено точное сопоставление.

  • Если выбран тип сравнения Только геометрия (GEOMETRY_ONLY в Python), пространственные привязки должны совпадать. Если пространственные привязки отличаются, появится сообщение о несовпадении. Если входные системы координат отличаются, объекты не будут совпадать. Данный инструмент не проецирует на лету.

  • Параметр Пропустить поля – это перечень полей, которые не будут включены в сравнение пересчета полей, определения этих полей и табличные значения игнорируются.

  • Атрибутивные допуски могут быть определены только для числовых типов полей.

  • Выходной файл сравнения будет содержать все сходства и различия между Исходными объектами и Тестовыми объектами. Этот файл – текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. Например, эта таблица может требоваться для получения значений ObjectID для всех строк, которые различаются. Поле has_error указывает, что запись содержит ошибку. True указывает, что есть различие.

  • Одним из первых сравниваем число объектов. Если число пространственных объектов отличается, а параметру Продолжить сравнение присвоено значение True, последующие сообщения о сравнении могут некорректно отображать дополнительные различия между Входными базовыми объектами и Входными тестовыми объектами. Это происходит потому, что инструменту Сравнить пространственные объекты не удается определить, какие объекты добавлены во Входные тестовые объекты, а какие объекты удалены из них, поэтому он просто переходит на следующую строку в каждой таблице атрибутов. В той позиции в таблице атрибутов, где объект был добавлен или удален, инструмент переходит на следующую строку и сравнивает базовый объект с некорректным тестовым объектом, потому что корректный объект во Входных базовых данных был удален или объект был добавлен до него.

  • При использовании этого инструмента в Python вы можете получить статус инструмента, используя синтаксис result.getOutput(1). Значение будет равно 'true', если не было найдено различий, и 'false' – если различия были обнаружены.

    Дополнительные сведения об использовании инструментов в Python

Синтаксис

arcpy.management.FeatureCompare(in_base_features, in_test_features, sort_field, {compare_type}, {ignore_options}, {xy_tolerance}, {m_tolerance}, {z_tolerance}, {attribute_tolerances}, {omit_field}, {continue_compare}, {out_compare_file})
ParameterОбъяснениеТип данных
in_base_features

Исходные объекты сравниваются с Тестовыми объектами. Исходные объекты соответствуют данным, которые считаются корректными. Они имеют корректную геометрию, поля и пространственную привязку.

Feature Layer
in_test_features

Тестовые объекты сопоставляются с Исходными объектами. Тестовые объекты соответствуют данным, в которые внесены изменения при редактировании или компиляции новых объектов.

Feature Layer
sort_field
[sort_field,...]

Одно или несколько полей, используемые для сортировки записей во Входных базовых объектах и Входных тестовых объектах. Записи сортируются по возрастанию. Сортировка по общему и для Входных базовых объектов и для Входных тестовых объектов полю обеспечивает проверку идентичных строк в каждом из входных наборов данных.

Value Table
compare_type
(Дополнительный)

Тип сравнения. По умолчанию выбран Все, в этом случае сравниваются все свойства сопоставляемых пространственных объектов.

  • ALLСравниваются все свойства классов пространственных объектов. Используется по умолчанию.
  • GEOMETRY_ONLYСравнивается только геометрия классов пространственных объектов.
  • ATTRIBUTES_ONLYСравниваются только атрибуты и их значения.
  • SCHEMA_ONLYСравнивается только схема классов пространственных объектов.
  • SPATIAL_REFERENCE_ONLYСравниваются только пространственные привязки двух классов пространственных объектов.
String
ignore_options
[ignore_option,...]
(Дополнительный)

Эти свойства не будут сравниваться.

  • IGNORE_MСвойства измерений не сравниваются.
  • IGNORE_ZСвойства высот не сравниваются.
  • IGNORE_POINTIDСвойства ID точек не сравниваются.
  • IGNORE_EXTENSION_PROPERTIESНе сравнивать свойства расширения.
  • IGNORE_SUBTYPESНе сравнивать подтипы.
  • IGNORE_RELATIONSHIPCLASSESНе сравнивать классы отношений.
  • IGNORE_REPRESENTATIONCLASSESКлассы представлений не сравниваются.
  • IGNORE_FIELDALIASНе используйте псевдонимы полей.
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
(Дополнительный)

Определяет необходимость продолжения сравнения после обнаружения первого несовпадения.

  • NO_CONTINUE_COMPAREОстанавливается при встрече с первым несоответствием. Используется по умолчанию.
  • CONTINUE_COMPAREСравнивает другие свойства после встречи с первым несоответствием.
Boolean
out_compare_file
(Дополнительный)

Данный файл будет хранить информацию обо всех совпадениях и отличиях Исходного файла (in_base_features) и Тестового файла (in_test_features). Это текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS.

File

Производные выходные данные

NameОбъяснениеТип данных
compare_status

Статус сравнения будет равно 'true', если не было найдено различий, и 'false' – если различия были обнаружены.

Булево

Пример кода

FeatureCompare, пример 1 (окно Python)

Пример скрипта окна Python для использования функции FeatureCompare в режиме прямого запуска.

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', r'C:/Workspace/roadcompare.txt')
FeatureCompare , пример 2 (автономный скрипт)

Пример использования инструмента FeatureCompare в автономном скрипте.

# Name: FeatureCompare.py
# Description: Compare two feature classes and return comparison result.
# import system modules 
import arcpy
# 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[1])
print(arcpy.GetMessages())

Environments

Этот инструмент не использует параметры среды геообработки

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы