要素比较 (数据管理)

摘要

比较两个要素类或图层并返回比较结果。

使用情况

  • 此工具将返回显示比较结果的消息。 默认情况下,在找到输入之间的第一个差异时,该工具将停止运行。 要报告所有差异,请选中继续比较参数。

  • 如果报告的输入数据集差异由记录的增加或删除导致,则仅报告的第一个差异有效。 在此工具遇到增加或删除的记录后,报告的所有差异均由比较错位导致。 比较工具在遇到新增或删除的记录后,不会尝试查找下一组匹配的记录。

  • 此工具可以对几何、表格值、空间参考和字段定义方面存在的差异进行报告。

  • 可以指定多个排序字段。 先排序第一个字段,然后排序第二个字段,依此类推(以升序排列)。 在两个输入数据集中均按公用字段进行排序,可确保对每个输入数据集中相同的行进行比较。

  • 默认情况下,比较类型参数设置为全部。 这表示进行比较的要素的所有属性都将被选中,包括空间参考、字段属性、特性和几何。 指定不同的比较类型,以对要素的特定属性进行比较。

  • 忽略选项参数为操作提供了灵活性,使用户可以忽略诸如测量特性、z 特性、点 ID 特性和扩展属性之类的属性。 这两个要素类可能是相同的,但一个具有测量值和 z 坐标,而另一个没有。 忽略扩展属性选项可显示添加到要素类或表的其他信息。 例如,两个注记要素类的要素可能相同,但要素类可能具有不同的扩展属性,如符号集中的符号不同并且编辑行为不同。

  • 默认的 XY 容差参数值根据输入基础要素参数值的默认 xy 容差确定。 要使误差最小,所使用的比较容差值应尽量小。 如果您指定了值 0,则系统将执行精确匹配。

  • 默认的 M 容差Z 容差参数值,由输入基础要素参数值的默认 m 容差和 z 容差确定。 单位与输入基础要素参数值的单位相同。 如果您指定了值 0,则系统将执行精确匹配。

  • 比较类型参数选择仅限几何选项时,空间参考必须匹配。 如果输入的空间参考不相同,系统将会报告输入之间的差异。 如果输入的坐标系不相同,这些要素将被视为不同。 此工具不会对要素动态投影。

  • 忽略字段参数用于提供不包含在比较字段计数内的字段列表,这些字段的字段定义和表格值均被忽略。

  • 仅可为数值字段类型指定属性容差。

  • 输出比较文件参数值将包含输入数据集之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。 例如,您可通过查询该文件,获得存在差异的所有行的所有 ObjectID 值。 has_error 字段指示记录包含误差。 True 值指示存在差异。

  • Python 中使用此工具时,通过返回的 Result 对象(使用索引位置 1)获取比较状态。(result[1])。 此工具未检测到差异时将显示 'true' 值,检测到差异时将显示 'false' 值。

    了解有关使用 Python 中工具的详细信息。

参数

标注说明数据类型
输入基础要素

这是将与输入测试要素参数值进行比较的数据。 此参数值是您已声明为有效的数据。 此基础数据包含正确的内容和信息。

Feature Layer
输入测试要素

这是将与输入基础要素参数值进行比较的数据。 此参数值是因编辑或编译新信息而进行更改的数据。

Feature Layer
排序字段

这是将用于对输入记录进行排序的一个或多个字段。 记录将以升序进行排序。 在两个输入中均按公用字段进行排序,可确保对每个输入数据集中相同的行进行比较。

Value Table
比较类型
(可选)

指定将使用的比较类型。

  • 全部将比较要素类的所有属性。 这是默认设置。
  • 仅几何仅比较要素类的几何。
  • 仅属性仅比较要素类的属性及其值。
  • 仅方案仅比较要素类的方案。
  • 仅空间参考仅比较两个要素类的空间参考。
String
忽略选项
(可选)

指定不会比较的属性。

  • 忽略 M 值测量属性将不会比较。
  • 忽略 Z 值高程属性将不会比较。
  • 忽略 PointID点 ID 属性将不会比较。
  • 忽略扩展属性扩展属性将不会比较。
  • 忽略子类型子类型将不会比较。
  • 忽略关系类关系类将不会比较。
  • 忽略表达类表达类将不会比较。
  • 忽略字段别名字段别名将不会比较。
String
XY 容差
(可选)

落在此距离范围内的要素视为相同。 要使误差降至最小,参数值应尽量小。 默认情况下,比较容差就是输入基础要素的 xy 容差。

Linear Unit
M 容差
(可选)

在将两个测量值视为相同测量值之前,它们之间的最小距离。

Double
Z 容差
(可选)

在将两个 z 坐标视为相同 z 坐标之前,它们之间的最小距离。

Double
属性容差
(可选)

在该数值范围内的属性值将被视作相同。 此参数仅适用于数值字段类型。

Value Table
忽略字段
(可选)

在比较过程中将被忽略的一个或多个字段。 这些字段的字段定义和表格值将被忽略。

String
继续比较
(可选)

指定在找到输入之间的第一个差异后,是否继续比较。

  • 未选中 - 该工具将在找到第一个差异后停止。 这是默认设置。
  • 选中 - 该工具将在找到第一个差异后继续运行。

Boolean
输出比较文件
(可选)

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

File

派生输出

标注说明数据类型
比较状态

未找到差异时,比较状态将为 'true',找到差异时,比较状态将为 'false'

Boolean

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})
名称说明数据类型
in_base_features

这是将与 in_test_features 参数值进行比较的数据。 此参数值是您已声明为有效的数据。 此基础数据包含正确的内容和信息。

Feature Layer
in_test_features

这是将与 in_base_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_options,...]
(可选)

指定不会比较的属性。

  • 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
(可选)

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

File

派生输出

名称说明数据类型
compare_status

未找到差异时,比较状态将为 'true',找到差异时,比较状态将为 'false'

Boolean

代码示例

FeatureCompare 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 FeatureCompare 函数。

import arcpy
arcpy.management.FeatureCompare(
    'C:/Workspace/baseroads.shp', 'C:/Workspace/newroads.shp', 'ROAD_ID', 
    'ALL', ['IGNORE_M', 'IGNORE_Z'], '0.001 METERS', 0, 0,
    [['Shape_Length', 0.001]], '#', 'CONTINUE_COMPARE',
    '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.management.FeatureCompare(
    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())

环境

此工具不使用任何地理处理环境。

相关主题