添加几何属性 (数据管理)

摘要

向表示各要素空间或几何特性和位置的输入要素添加新的属性字段,如长度或面积或 x、y、z 和 m 坐标。

旧版本:

此工具已弃用。 此功能已被计算几何属性工具取代。

使用情况

  • 它会向输入要素添加一个或多个属性字段,具体视几何属性参数中指定的选项而定。 当输入要素中已经存在这些字段时,这些字段值将被覆盖。 使用下表来确定要为各几何属性添加的字段:

    几何属性添加字段

    AREA

    POLY_AREA- 面的面积

    AREA_GEODESIC

    AREA_GEO- 面的形状不变的测地线面积。

    CENTROID

    CENTROID_X- 质心点的 x 坐标。

    CENTROID_Y- 质心点的 y 坐标。

    CENTROID_Z- 质心点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    CENTROID_M- 质心点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

    CENTROID_INSIDE

    INSIDE_X- 输入要素内或输入要素上中心点的 x 坐标。

    INSIDE_Y- 输入要素内或输入要素上中心点的 y 坐标。

    INSIDE_Z- 输入要素内或输入要素上中心点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    INSIDE_M- 输入要素内或输入要素上中心点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

    范围

    EXT_MIN_X- 要素的最小 x 坐标值。

    EXT_MIN_Y- 要素的最小 y 坐标值。

    EXT_MAX_X- 要素的最大 x 坐标值。

    EXT_MAX_Y- 要素的最大 y 坐标值。

    长度

    LENGTH- 线的长度。

    LENGTH_GEODESIC

    LENGTH_GEO- 线的形状不变的测地线长度。

    LENGTH_3D

    LENGTH_3D- 线的 3D 长度。

    LINE_BEARING

    BEARING- 线的起始-结束方位角。 值范围介于 0 至 360 之间,其中 0 表示北,90 表示东,180 表示南,270 表示西。

    LINE_START_MID_END

    START_X- 线或面边框第一个点的 x 坐标。

    START_Y- 线或面边框第一个点的 y 坐标。

    START_Z- 线或面边框第一个点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    START_M- 线或面边框第一个点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

    MID_X- 线或面边框长度中点的 x 坐标。

    MID_Y- 线或面边框长度中点的 y 坐标。

    MID_Z- 线或面边框长度中点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    MID_M- 线或面边框长度中点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

    END_X- 线或面边框最后一个点的 x 坐标。

    END_Y- 线或面边框最后一个点的 y 坐标。

    END_Z- 线或面边框最后一个点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    END_M- 线或面边框最后一个点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

    PART_COUNT

    PART_COUNT- 要素包含的部分数量。

    PERIMETER_LENGTH

    PERIMETER- 面周长或边界长度。

    PERIMETER_LENGTH_GEODESIC

    PERIM_GEO- 面周长或边界的形状不变的测地线长度。

    POINT_COUNT

    PNT_COUNT- 要素包含的点数量。

    POINT_X_Y_Z_M

    POINT_X- 点的 x 坐标。

    POINT_Y- 点的 y 坐标。

    POINT_Z- 点的 z 坐标。 只有在输入要素启用了 z 值时,才会添加此字段。

    POINT_M- 点的 m 坐标。 只有在输入要素启用了 m 值时,才会添加此字段。

  • 如果已指定了坐标系,则长度和面积将以该坐标系的单位进行计算,除非在长度单位面积单位参数中选择了不同的单位。

  • 由此工具添加的属性字段与向要素层添加的字段相似。 您可以覆盖字段值,也可以删除或重命名字段。 编辑后,这些字段中的值不会自动重新计算。 如果对要素进行了编辑,那么您需要再次运行此工具来更新字段值。

  • 如果输入要素具有选择内容,则在添加的字段中,仅所选要素具有计算值;其余所有要素的值均为空。

  • 此工具适用于点、多点、折线、面和注记要素类。 注记被视为面要素类。

参数

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

将向输入要素添加新的属性字段以存储各种属性,如长度、面积或 x、y、z 和 m 坐标。

Feature Layer
几何属性

指定将在新属性字段中进行计算的几何属性或形状属性。

  • 面积将添加用于存储各个面要素面积的属性。
  • 测地线面积将添加属性以存储各个面要素的形状不变的测地线面积。
  • 质心坐标将添加属性以存储每个要素的质心坐标。
  • 中心点坐标将添加用于存储各个要素内或要素上中心点坐标的属性。
  • 范围坐标将添加属性以存储各个要素的范围坐标。
  • 长度将添加用于存储各个线要素长度的属性。
  • 测地线长度将添加属性以存储各个线要素的形状不变的测地线长度。
  • 3D 长度将添加用于存储各个线要素 3D 长度的属性。
  • 线方位角将添加用于存储各个线要素线段起始-结束方位角的属性。 值范围介于 0 至 360 之间,其中 0 表示北,90 表示东,180 表示南,270 表示西。
  • 线起点、中点和终点坐标将添加用于存储各个要素起点、中点和终点坐标的属性。
  • 部分数量将添加用于存储包含各个要素的部分数量的属性。
  • 周长将添加用于存储各个面要素周长或边界长度的属性。
  • 测地线周长将添加属性以存储各个面要素周长或边界的形状不变的测地线长度。
  • 折点数量将添加用于存储包含各个要素的点或折点数量的属性。
  • 点 x、y、z 和 m 坐标将添加用于存储各个点要素 x、y、z 和 m 坐标的属性。
String
长度单位
(可选)

指定计算长度时将采用的单位。

  • 英尺(美国)长度单位为英尺(美国)
  • 长度单位为米
  • 千米长度单位为千米
  • 英里(美国)长度单位为英里(美国)
  • 海里(美国)长度单位为海里(美国)
  • 码(美国)长度单位为码(美国)
String
面积单位
(可选)

指定计算面积时将采用的单位。

  • 英亩面积单位为英亩
  • 公顷面积单位为公顷
  • 平方英里(美国)面积单位为平方英里(美国)
  • 平方千米面积单位为平方千米
  • 平方米面积单位为平方米
  • 平方英尺(美国)面积单位为平方英尺(美国)
  • 平方码(美国)面积单位为平方码(美国)
  • 平方海里(美国)面积单位为平方海里(美国)
String
坐标系
(可选)

用于计算坐标、长度和面积的坐标系。 默认使用输入要素的坐标系。

Coordinate System

派生输出

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

更新后的输入要素。

Feature Layer

arcpy.management.AddGeometryAttributes(Input_Features, Geometry_Properties, {Length_Unit}, {Area_Unit}, {Coordinate_System})
名称说明数据类型
Input_Features

将向输入要素添加新的属性字段以存储各种属性,如长度、面积或 x、y、z 和 m 坐标。

Feature Layer
Geometry_Properties
[Geometry_Properties,...]

指定将在新属性字段中进行计算的几何属性或形状属性。

  • AREA将添加用于存储各个面要素面积的属性。
  • AREA_GEODESIC将添加属性以存储各个面要素的形状不变的测地线面积。
  • CENTROID将添加属性以存储每个要素的质心坐标。
  • CENTROID_INSIDE将添加用于存储各个要素内或要素上中心点坐标的属性。
  • EXTENT将添加属性以存储各个要素的范围坐标。
  • LENGTH将添加用于存储各个线要素长度的属性。
  • LENGTH_GEODESIC将添加属性以存储各个线要素的形状不变的测地线长度。
  • LENGTH_3D将添加用于存储各个线要素 3D 长度的属性。
  • LINE_BEARING将添加用于存储各个线要素线段起始-结束方位角的属性。 值范围介于 0 至 360 之间,其中 0 表示北,90 表示东,180 表示南,270 表示西。
  • LINE_START_MID_END将添加用于存储各个要素起点、中点和终点坐标的属性。
  • PART_COUNT将添加用于存储包含各个要素的部分数量的属性。
  • PERIMETER_LENGTH将添加用于存储各个面要素周长或边界长度的属性。
  • PERIMETER_LENGTH_GEODESIC将添加属性以存储各个面要素周长或边界的形状不变的测地线长度。
  • POINT_COUNT将添加用于存储包含各个要素的点或折点数量的属性。
  • POINT_X_Y_Z_M将添加用于存储各个点要素 x、y、z 和 m 坐标的属性。
String
Length_Unit
(可选)

指定计算长度时将采用的单位。

  • FEET_US长度单位为英尺(美国)
  • METERS长度单位为米
  • KILOMETERS长度单位为千米
  • MILES_US长度单位为英里(美国)
  • NAUTICAL_MILES长度单位为海里(美国)
  • YARDS长度单位为码(美国)
String
Area_Unit
(可选)

指定计算面积时将采用的单位。

  • ACRES面积单位为英亩
  • HECTARES面积单位为公顷
  • SQUARE_MILES_US面积单位为平方英里(美国)
  • SQUARE_KILOMETERS面积单位为平方千米
  • SQUARE_METERS面积单位为平方米
  • SQUARE_FEET_US面积单位为平方英尺(美国)
  • SQUARE_YARDS面积单位为平方码(美国)
  • SQUARE_NAUTICAL_MILES面积单位为平方海里(美国)
String
Coordinate_System
(可选)

用于计算坐标、长度和面积的坐标系。 默认使用输入要素的坐标系。

Coordinate System

派生输出

名称说明数据类型
Modified_Input_Features

更新后的输入要素。

Feature Layer

代码示例

AddGeometryAttributes 示例(Python 窗口)

以下 Python 窗口脚本演示了如何使用 AddGeometryAttributes 函数。

import arcpy
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.management.AddGeometryAttributes("roads", "LENGTH;LINE_START_MID_END")
AddGeometryAttributes 示例(独立脚本)

获取各个线要素的范围矩形,并在该范围内构建一个 10 x 10 的栅格。

# Name: GridCreation.py

# import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.env.outputCoordinateSystem = arcpy.Describe("roads").spatialReference

# Set local variables
in_features = "roads"
properties = "EXTENT"
length_unit = ""
area_unit = ""
coordinate_system = ""

# Generate the extent coordinates using Add Geometry Properties tool
arcpy.management.AddGeometryAttributes(in_features, properties, length_unit,
                                       area_unit, coordinate_system)

# Use Search Cursor to walk through each feature and generate grids
with arcpy.da.SearchCursor(in_features, ["OID@", "EXT_MIN_X", "EXT_MIN_Y",
                                         "EXT_MAX_X", "EXT_MAX_Y"]) as sCur:
    for row in sCur:
        minX, minY, maxX, maxY = row[1], row[2], row[3], row[4]
        arcpy.management.CreateFishnet("fishnet_{0}".format(row[0]),
                    number_rows = 10,
                    number_columns = 10,
                    template = "{} {} {} {}".format(minX, maxX, minY, maxY),
                    origin_coord = "{} {}".format(minX, minY),
                    y_axis_coord = "{} {}".format(minX, maxY),
                    corner_coord = "{} {}".format(maxX, maxY),
                    geometry_type = "POLYGON",
                    labels = "NO_LABELS")