重新计算要素类范围 (数据管理)

摘要

可基于要素类中的各个要素重新计算要素类的 xy、z 和 m 范围属性。

要素类的空间范围取决于要素类中的所有坐标。 要重新居中且显示范围内的所有要素而向地图中添加要素类时,将会使用空间范围。 要素类的范围属性将包含上一个已知空间范围,而不会在每次向地图中添加要素类时检查此要素类中的每一个要素(这个过程可能会很长)。 但是,在对要素类中的要素进行编辑时,将不会始终更新此范围属性。 这意味着范围属性中的值可能不包含要素的实际空间范围。 重新计算要素类范围工具将读取所有要素并更新范围属性。

注:

XY、Z 和 M 范围与空间参考域有所不同。空间参考中的 XY、Z 和 M 域用于定义可存储在要素类中的坐标值的有效范围。要素类范围反映了存在于要素类中的坐标值的实际范围。这些范围不能大于域。

使用情况

  • 此工具用于更新地理数据库要素类或 shapefile(点、多点、线或面)。

  • 在企业级地理数据库中,范围是要素类方案的属性,需要运行独占方案锁。

  • 如果在将企业级地理数据库要素类作为输入的情况下使用此工具,则将根据该要素类中所有版本的要素计算范围。 除非在数据库已压缩后运行此工具,否则范围不会扩充或减小。

  • 数据库或企业级地理数据库中未注册的空间表支持存储范围参数。 如果选中该参数,则新范围将存储在基础表的形状列元数据上。 如果未选中该参数,则将重新计算范围,但不会存储值,当基础数据频繁更新时,此功能将非常有用。

  • 如果您不具备编辑要素类的权限,则此工具将失败。

  • 重新计算要素类范围的操作无法撤销。

  • 范围的值将通过 arcpy.Describe 函数的 extent 属性返回。

  • 警告:

    此工具会修改输入数据。 有关详细信息以及避免数据被意外更改的策略,请参阅修改或更新输入数据的工具

参数

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

将要更新的 shapefile 或地理数据库要素类。

Feature Layer
存储范围
(可选)

用于指定是否将为未注册的要素类存储范围。 仅当输入要素类是数据库或企业级地理数据库中未注册的空间表时,此参数才有效。

如果输入要素类经常更新,您可以选择不存储重新计算的范围值。 如果您选择存储范围,则系统将不会在每次将要素类添加到地图时重新计算范围。

  • 选中 - 将为输入要素类存储范围。
  • 未选中 - 将不会为输入要素类存储范围。 这是默认设置。
Boolean

派生输出

标注说明数据类型
已更新的要素类

已更新的要素类。

Feature Class

arcpy.management.RecalculateFeatureClassExtent(in_features, {store_extent})
名称说明数据类型
in_features

将要更新的 shapefile 或地理数据库要素类。

Feature Layer
store_extent
(可选)

用于指定是否将为未注册的要素类存储范围。 仅当输入要素类是数据库或企业级地理数据库中未注册的空间表时,此参数才受支持。

如果输入要素类经常更新,您可以选择不存储重新计算的范围值。 如果您选择存储范围,则系统将不会在每次将要素类添加到地图时重新计算范围。

  • STORE_EXTENT将为输入要素类存储范围。
  • DO_NOT_STORE_EXTENT将不会为输入要素类存储范围。 这是默认设置。
Boolean

派生输出

名称说明数据类型
out_features

已更新的要素类。

Feature Class

代码示例

RecalculateFeatureClassExtent 示例(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 RecalculateFeatureClassExtent 函数。 它将重新计算要素类的 xy、z 或 m 范围。

import arcpy
feature_class = r"C:\Data\europe.gdb\norway_cities"
arcpy.management.RecalculateFeatureClassExtent(feature_class)