表比较 (数据管理)
摘要
对两个表或表视图进行比较并返回比较结果。此工具可以对表格值和字段定义方面存在的异同进行报告。
用法
-
此工具可返回显示比较结果的信息。默认情况下,该工具将在遇到第一个错误比较后停止执行。要报告所有差异,需将继续比较选项设置为“真”。
-
可以指定多个排序字段。输入基础表和输入测试表都根据指定的字段进行排序。先排序第一个字段,然后排序第二个字段,依此类推(以升序排列)。在基础表和测试表中均按共用字段进行排序,可确保对每个输入数据集中相同的行进行比较。
-
默认情况下,比较类型设置为 ALL。这表示进行比较的表的所有属性都将被选中,包括字段属性和特性这些内容。但是,您可以选择其他比较类型,以便仅选中正在进行比较的表的特定属性。
-
如果忽略未包含在字段计数比较中的字段,则会忽略这些字段的字段定义和表格值。
-
只能为数值字段类型指定属性容差。
-
输出比较文件将包含输入基础表和输入测试表之间的所有异同点。该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。例如,可通过查询该表获得存在差异的所有行的所有 ObjectID 值。
-
比较工具结果对象在未找到差异时将为“真”,在检测到差异时则为“假”。
语法
参数 | 说明 | 数据类型 |
in_base_table |
将输入基础表与输入测试表进行比较。输入基础表是指已被声明为有效的表格数据。该基础数据具有正确的字段定义和属性值。 | Table View; Raster Layer |
in_test_table |
将输入测试表与输入基础表进行比较。输入测试表是指已通过编辑或编译新的字段、新的记录或新的属性值而进行更改的数据。 | Table View ; Raster Layer |
sort_field [sort_field,...] |
用于在输入基础表和输入测试表中对记录进行排序的一个或多个字段。记录将以升序进行排序。在输入基础表与输入测试表中均按共用字段进行排序,可确保对每个输入数据集中相同的行进行比较。 | 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 窗口脚本演示了如何在立即模式下使用 TableCompare 函数。
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' )
如何在独立脚本中使用 TableCompare 工具的示例。
# 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()