标注 | 说明 | 数据类型 |
输入要素 | 将处理的要素类或图层。 | Feature Layer |
输出表 (可选) | 所发现问题的报告(作为表的形式)。 | Table |
验证方法 (可选) | 指定用于识别几何问题的几何验证方法。
| String |
派生输出
标注 | 说明 | 数据类型 |
包含几何错误 | 指示该工具是否已标识任何几何问题。 | Boolean |
有效的输入格式包括 shapefile 以及存储在文件地理数据库、企业级数据库、企业级地理数据库、GeoPackage 或 SpatiaLite 数据库中的要素类。 对于存储在企业级数据库或企业级地理数据库中的要素类,支持以下空间类型:
不支持存储在企业级地理数据库中并注册为版本的要素类。
输出表参数值将包含发现的每个几何问题的记录。 如果未发现任何问题,则该表为空。
输出表参数值的内容(包括 PROBLEM 字段代码)用英文编写。
对于点要素,只会存在空几何问题。
要查看报告存在几何问题的要素,可使用添加连接工具以及输入的 OBJECTID 或 FID 字段和输出表的 FEATURE_ID 字段将输入要素参数值连接到输出表参数值。 如果任何输入要素参数值存储在企业级地理数据库、企业级数据库、GeoPackage 或 SpatiaLite 数据库中,则输出表还将包含 TEXT_ID 字段,用于基于非整数的 OBJECTID 列。
Esri 验证选项通过 Esri 简化方法确保几何在拓扑上是正确的。 仅 Esri 验证适用于存储在企业级地理数据库中的数据。
开放地理空间联盟 OGC 验证方法确保几何符合地理信息的 OpenGIS 执行标准(简单要素访问)第 1 部分:公用架构中定义的 OGC 规范。
使用 OGC 选项修复要素的几何后,任何后续的编辑或修改都可能导致几何不再符合 OGC 规范。
修改要素后,重新运行检查几何工具以检查新几何问题。 如有必要,请运行修复几何工具。
使用 OGC 选项验证或修复后的几何将适用于 Esri 选项。 要了解有关这两种方法的详细信息,请参阅什么是简单面。
该工具识别出的问题可通过以下方式得到解决:
输出表参数值包含以下字段:
PROBLEM 字段将包含下列代码之一:
对于存储在企业级地理数据库中的数据,PROBLEM 字段将包含以下代码之一:
标注 | 说明 | 数据类型 |
输入要素 | 将处理的要素类或图层。 | Feature Layer |
输出表 (可选) | 所发现问题的报告(作为表的形式)。 | Table |
验证方法 (可选) | 指定用于识别几何问题的几何验证方法。
| String |
标注 | 说明 | 数据类型 |
包含几何错误 | 指示该工具是否已标识任何几何问题。 | Boolean |
arcpy.management.CheckGeometry(in_features, {out_table}, {validation_method})
名称 | 说明 | 数据类型 |
in_features [in_features,...] | 将处理的要素类或图层。 | Feature Layer |
out_table (可选) | 所发现问题的报告(作为表的形式)。 | Table |
validation_method (可选) | 指定用于识别几何问题的几何验证方法。
| String |
名称 | 说明 | 数据类型 |
problems_found | 指示该工具是否已标识任何几何问题。 | Boolean |
以下 Python 窗口脚本演示了如何在文件地理数据库以即时模式使用 CheckGeometry 函数:
import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.management.CheckGeometry(["contours", "roads", "vegetation"], "CheckGeom_Result")
以下独立脚本通过在文件地理数据库的所有要素类中循环来使用 CheckGeometry 函数。
# BatchCheckGeometry.py
# Description: Loop through all the feature classes in a geodatabase, and
# generate a report of the problems encountered with feature
# geometry.
# Import modules
import arcpy
import os
# The geodatabase in which the feature classes will be checked
arcpy.env.workspace = "C:\\data\\St_Lucia.gdb"
out_table = "checkGeometryResult"
# A variable that will hold the list of all the feature classes
# in the geodatabase
fc_list = []
# Identify all feature classes in the geodatabase
for path, dirnames, fcs in arcpy.da.Walk(arcpy.env.workspace,
datatype='FeatureClass'):
for fc in fcs:
fc_list.append(os.path.join(path, fc))
print("Running the check geometry tool on {} feature classes".format(
len(fc_list)))
arcpy.management.CheckGeometry(fc_list, out_table)
print("{} geometry problems found, see {} for details.".format(
arcpy.management.GetCount(out_table)[0], out_table))
以下脚本将使用 CheckGeometry 函数并检查派生输出以确定是否发现任何问题
import arcpy
result = arcpy.management.CheckGeometry('c:/data/data.gdb/badgeometryfc')
if result[1] == 'true':
# Geometry problems found, print the tool messages.
print(result.getMessages())
else:
# No problems found
print("No problems Found")
如果环境未设置(默认值)或者设置为 0,则将禁用并行处理。 如果已设置为 100,则该工具尝试将工作分配给计算机上的所有逻辑内核。 在 1 到 99 之间指定一个因子时,工具将通过应用公式(并行处理因子 / 100 * 逻辑内核数)确定要使用的逻辑内核的百分比,其结果将向上舍入到最近的整数值。 如果此公式的结果是 0 或 1,则将不启用并行处理。