Сравнить таблицы (Управление данными (Data Management))
Краткая информация
Сравнивает две таблицы или два представления таблицы. Этот инструмент может сообщать о различиях и сходствах в табличных значениях и определениях полей.
Использование
-
Этот инструмент выдает сообщение с результатами сравнения. По умолчанию, этот инструмент завершает работу и выдает результат после обнаружения первого несоответствия при сравнении. Чтобы получить информацию о всех различиях, отметьте параметр Продолжить сравнение (Continue Comparison).
-
Могут быть определены несколько полей для сортировки. И Исходная таблица (Input Base Table) и Тестовая таблица (Input Test Table) сортируются на основе заданных полей. Сортируется первое поле, затем второе, и т.д. в порядке возрастания. Сортировка по общему полю и в исходной и в тестовой таблице гарантирует, что вы сравниваете ту же строку из каждого набора данных.
-
По умолчанию установлен тип сравнения ALL. Это означает, что будут проверены все свойства сравниваемых таблиц, включая такие, как свойства и атрибуты полей. Однако, вы можете выбрать другой тип сравнения, чтобы проверять только конкретные свойства сравниваемых таблиц.
-
Параметр Игнорировать (Ignore Options) позволяет пропускать определенные свойства при сравнении. К ним относятся свойства расширения (extension properties), подтипы (subtypes) и классы отношений (relationship classes).
-
При пропуске, поля, которые не включены в сравнение подсчета полей, а также определения полей и табличные значения для этих полей игнорируются.
-
Атрибутивные допуски могут быть определены только для числовых типов полей.
-
Выходной файл сравнения (Output Compare File) будет содержать все сходства и различия между Исходной таблицей (Input Base Table) и Тестовой таблицей (nput Test Table). Этот файл - текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. Например, эта таблица может требоваться для получения значений ObjectID для всех строк, которые различаются.
-
При использовании этого инструмента в Python вы можете получить статус инструмента, используя синтаксис result.getOutput(1). Значение будет равно 'true', если не было найдено различий, и 'false' – если различия были обнаружены.
Дополнительные сведения об использовании инструментов в Python
Синтаксис
Параметр | Объяснение | Тип данных |
in_base_table |
С Исходной таблицей (Input Base Table) сопоставляется Тестовая таблица (Input Test Table). Исходная таблица (Input Base Table) соответствует данным, которые считаются корректными. Исходная таблица - это таблица, имеющая корректный набор атрибутивных полей и их значений. | Table View; Raster Layer |
in_test_table |
Тестовая таблица (Input Test Table) сопоставляется с Исходной таблицей (Input Base Table). Тестовая таблица (Input Test Table) соответствует данным, в которые внесены изменения при редактировании или компиляции новых полей, новых записей или новых значений атрибутов. | Table View ; Raster Layer |
sort_field [sort_field,...] |
Одно или несколько полей, используемые для сортировки записей в Исходной таблице (Input Base Table) и Тестовой таблице. Записи сортируются по возрастанию. Сортировка по общему для обеих таблиц (Исходной таблицы (Input Base Table) и Тестовой таблицы (Input Test Table)) полю гарантирует, что сравнивается одна и та же строка из каждой входной базы данных. | Value Table |
compare_type (дополнительно) |
Тип сравнения. ALL используется по умолчанию. По умолчанию будут сравниваться все свойства таблиц.
| String |
ignore_options (дополнительно) |
Отмеченные свойства будут проигнорированы при сравнении.
| String |
attribute_tolerances [[Field, {Tolerance}],...] (дополнительно) |
Допустимое отклонение атрибутивных значений числовых полей.Диапазон, в котором значения будут считаться идентичными. Используется только для числовых полей. | Value Table |
omit_field [omit_field,...] (дополнительно) |
Одно или несколько полей, которые будут пропущены в процессе сравнения. Свойства и значения данных полей будут проигнорированы. | String |
continue_compare (дополнительно) |
Определяет необходимость продолжения сравнения после обнаружения первого несовпадения.
| Boolean |
out_compare_file (дополнительно) |
Данный файл будет хранить информацию обо всех совпадениях и отличиях исходной и тестовой таблиц. Этот файл - текстовый файл с запятой в качестве разделителя, который можно просмотреть и использовать как таблицу в ArcGIS. | File |
Пример кода
На примере следующего скрипта Python демонстрируется, как использовать функцию Сравнение таблиц (Table Compare) с запуском из окна Python в ArcGIS.
import arcpy
from arcpy import env
arcpy.TableCompare_management(r'c:\Workspace\wells.dbf', r'c:\Workspace\wells_new.dbf', 'WELL_ID', 'ALL', 'IGNORE_EXTENSION_PROPERTIES', 'WELL_DEPTH 0.001', '#', 'CONTINUE_COMPARE', r'C:\Workspace\well_compare.txt' )
Пример использования инструмента Сравнение таблиц (Table Compare) в автономном скрипте.
# Name: TableCompare.py
# Description: Compare two dBASE tables and return comparison result.
# Author: ESRI
# import system modules
import arcpy
try:
# Set local variables
base_table= "C:/Workspace/wells.dbf"
test_table = "C:/Workspace/wells_new.dbf"
sort_field = "WELL_ID"
compare_type = "ALL"
ignore_option = "IGNORE_EXTENSION_PROPERTIES"
attribute_tolerance = "WELL_DEPTH 0.001"
omit_field = "#"
continue_compare = "CONTINUE_COMPARE"
compare_file = "C:/Workspace/well_compare.txt"
# Process: FeatureCompare
compare_result = arcpy.TableCompare_management(base_table, test_table, sort_field, compare_type, ignore_option, 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()