arcpy.management.CalculateGeometryAttributes(in_features, geometry_property, {length_unit}, {area_unit}, {coordinate_system}, {coordinate_format})名称说明数据类型in_features将使用几何计算进行更新的带有字段的要素。
Feature Layergeometry_property[[Field, Property],...]将在其中计算指定几何属性的字段。
您可以选择现有字段或提供新的字段名称。 如果提供了新的字段名称,则字段类型将由写入该字段的值的类型确定。 计数属性将被写入长整型字段,面积、长度和 x、y、z 坐标和 m 值属性将被写入双精度字段,而坐标记法(例如度分秒或 MGRS)将被写入文本字段。
除非另有说明,否则面积和长度属性是使用 2D 笛卡尔算法的平面测量值。
AREA - 将添加用于存储各个面要素面积的属性。AREA_GEODESIC - 将添加属性以存储各个面要素的形状不变的测地线面积。CENTROID_X - 将添加用于存储各个要素的质心 x 坐标的属性。CENTROID_Y - 将添加用于存储各个要素的质心 y 坐标的属性。CENTROID_Z - 将添加用于存储各个要素的质心 z 坐标的属性。CENTROID_M - 将添加用于存储各个要素的质心 m 值的属性。INSIDE_X - 将添加用于存储各个要素内部或之上的中心点的 x 坐标的属性。 如果质心位于要素内,则此点与质心相同,否则,此点为内标记点。INSIDE_Y - 将添加用于存储各个要素内部或之上的中心点的 y 坐标的属性。 如果质心位于要素内,则此点与质心相同,否则,此点为内标记点。INSIDE_Z - 将添加用于存储各个要素内部或之上的中心点的 z 坐标的属性。 如果质心位于要素内,则此点与质心相同,否则,此点为内标记点。INSIDE_M - 将添加用于存储各个要素内部或之上的中心点的 m 值的属性。 如果质心位于要素内,则此点与质心相同,否则,此点为内标记点。CURVE_COUNT - 将添加用于存储各个要素中的曲线数量的属性。 曲线包括椭圆弧、圆弧和贝塞尔曲线。HOLE_COUNT - 将添加用于存储各个面要素内的内部孔洞数量的属性。EXTENT_MIN_X - 将添加用于存储各个要素范围的最小 x 坐标的属性。EXTENT_MIN_Y - 将添加用于存储各个要素范围的最小 y 坐标的属性。EXTENT_MIN_Z - 将添加用于存储各个要素范围的最小 z 坐标的属性。EXTENT_MAX_X - 将添加用于存储各个要素范围的最大 x 坐标的属性。EXTENT_MAX_Y - 将添加用于存储各个要素范围的最大 y 坐标的属性。EXTENT_MAX_Z - 将添加用于存储各个要素范围的最大 z 坐标的属性。LENGTH - 将添加用于存储各个线要素长度的属性。LENGTH_GEODESIC - 将添加属性以存储各个线要素的形状不变的测地线长度。LENGTH_3D - 将添加用于存储各个线要素 3D 长度的属性。LINE_BEARING - 将添加用于存储各个线要素线段起始-结束方位角的属性。 值范围介于 0 至 360 之间,其中 0 表示北,90 表示东,180 表示南,270 表示西,以此类推。LINE_START_X - 将添加用于存储各个线要素起点的 x 坐标的属性。LINE_START_Y - 将添加用于存储各个线要素起点的 y 坐标的属性。LINE_START_Z - 将添加用于存储各个线要素起点的 z 坐标的属性。LINE_START_M - 将添加用于存储各个线要素起点的 m 值的属性。LINE_END_X - 将添加用于存储各个线要素终点的 x 坐标的属性。LINE_END_Y - 将添加用于存储各个线要素终点的 y 坐标的属性。LINE_END_Z - 将添加用于存储各个线要素终点的 z 坐标的属性。LINE_END_M - 将添加用于存储各个线要素终点的 m 值的属性。PART_COUNT - 将添加用于存储包含各个要素的部分数量的属性。POINT_COUNT - 将添加用于存储包含各个要素的点或折点数量的属性。PERIMETER_LENGTH - 将添加用于存储各个面要素周长或边界长度的属性。PERIMETER_LENGTH_GEODESIC - 将添加属性以存储各个面要素周长或边界的形状不变的测地线长度。POINT_X - 将添加用于存储各个点要素的 x 坐标的属性。POINT_Y - 将添加用于存储各个点要素的 y 坐标的属性。POINT_Z - 将添加用于存储各个点要素的 z 坐标的属性。POINT_M - 将添加用于存储各个点要素的 m 值的属性。POINT_COORD_NOTATION - 将添加属性以存储格式化为指定坐标记法的各个点要素的 x 和 y 坐标。Value Tablelength_unit(可选)指定将用于计算长度的单位。
KILOMETERS—长度单位将为千米。METERS—长度单位将为米。MILES_INT—长度单位将为法定英里。NAUTICAL_MILES_INT—长度单位将为国际海里。YARDS_INT—长度单位将为国际码。FEET_INT—长度单位将为国际英尺。MILES_US—长度单位将为美国测量英里。NAUTICAL_MILES—长度单位将为美国测量海里。YARDS—长度单位将为美国测量码。FEET_US—长度单位将为美国测量英尺。Stringarea_unit(可选)指定将用于计算面积的单位。
SQUARE_KILOMETERS—面积单位将为平方千米。HECTARES—面积单位将为公顷。SQUARE_METERS—面积单位将为平方米。SQUARE_MILES_INT—面积单位将为法定平方英里。SQUARE_NAUTICAL_MILES—面积单位将为国际平方海里。ACRES—面积单位将为国际英亩。SQUARE_YARDS—面积单位将为国际平方码。SQUARE_FEET_INT—面积单位将为国际平方英尺。SQUARE_MILES_US—面积单位将为美国测量平方英里。SQUARE_NAUTICAL_MILES_US—面积单位将为美国测量平方海里。ACRES_US—面积单位将为美国测量英亩。SQUARE_YARDS_US—面积单位将为美国测量平方码。SQUARE_FEET_US—面积单位将为美国测量平方英尺。Stringcoordinate_system(可选)用于计算坐标、长度和面积的坐标系。 默认使用输入要素的坐标系。
Coordinate Systemcoordinate_format(可选)指定将用于计算 x 和 y 坐标的坐标格式。 默认情况下,将使用与输入要素的空间参考单位匹配的坐标格式。
包括“度分秒”、“十进制度分”等在内的多种坐标格式需要在文本字段中执行计算。
SAME_AS_INPUT—输入要素的空间参考单位将用于坐标格式化。 这是默认设置。DD—坐标格式将为十进制度。DMS_DIR_LAST—坐标格式将为末尾带有主方向分量的度分秒 (DDD° MM' SSS.ss"
Feature Layer代码示例CalculateGeometryAttributes 示例(Python 窗口)
以下 Python 窗口脚本演示了如何使用 CalculateGeometryAttributes 函数。
import arcpy
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.management.CalculateGeometryAttributes("roads", [["Length_mi", "LENGTH"], ["Stops", "POINT_COUNT"]], "MILES_US")CalculateGeometryAttributes 示例(独立脚本)
获取各个要素的范围矩形。
# Name: ExtentCreation.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"
# Generate the extent coordinates using CalculateGeometry
arcpy.management.CalculateGeometryAttributes(in_features, [["Left", "EXTENT_MIN_X"],
["Bottom", "EXTENT_MIN_Y"],
["Right", "EXTENT_MAX_X"],
["Top", "EXTENT_MAX_Y"]])