Краткая информация
Добавляет новые поля атрибутов ко входным объектам, отображающие пространственные или геометрические характеристики и местоположение каждого объекта, например, длину, площадь, координаты x, y, z и m.
Использование
Инструмент предоставляет простой и эффективный способ автоматизации задачи, которая может также быть выполнена с помощью диалогового окна Вычислить геометрию (Calculate Geometry) или инструмента геообработки Вычислить поле (Calculate Field).
Одно или несколько атрибутивных полей будут добавлены ко входным объектам, в зависимости от опций, указанных в параметре Свойства геометрии. Если поля уже присутствуют во входных объектах, значения в них будут перезаписаны. Воспользуйтесь следующей таблицей для определения полей, которые будут добавлены к каждому свойству геометрии:
Свойство геометрии Добавленные поля 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.
EXTENT
EXT_MIN_X: Минимальная координата x объекта.
EXT_MIN_Y: Минимальная координата y объекта.
EXT_MAX_X: Максимальная координата x объекта.
EXT_MAX_Y: Максимальная координата y объекта.
LENGTH
LENGTH: Длина линии.
LENGTH_GEODESIC
LENGTH_GEO: Геодезическая длина линии.
LENGTH_3D
LENGTH_3D: 3D-длина линии.
LINE_BEARING
BEARING: Азимут линии. Значения находятся в диапазоне от 0 до 360, причем нулю соответствует северное направление, 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.
Если указана координатная система, длина и площадь будет вычисляться в единицах этой системы, если другие единицы измерения не будут указаны в качестве параметров Единицы измерения длины (Length Unit) и Единицы измерения площади (Area Unit).
Поля атрибутов, добавленные данным инструментом, являются такими же, как и все поля, которые вы можете добавить к векторному слою. Вы можете перезаписать значения в поле, удалить или переименовать поля. Значение в этих полях автоматически не пересчитываются после внесения изменений. При редактировании вами объектов необходимо еще раз запустить инструмент, чтобы обновить значения полей.
Если во входных объектах сделана выборка, только выбранные объекты получат вычисленные в добавленных полях значения, а все остальные объекты – нулевые значения.
Этот инструмент работает с точечными, мультиточечными, полилинейными, полигональными классы, а также классами объектов-аннотаций. Аннотации рассматриваются как класс полигональных объектов.
Синтаксис
AddGeometryAttributes_management (Input_Features, Geometry_Properties, {Length_Unit}, {Area_Unit}, {Coordinate_System})
Параметр | Объяснение | Тип данных |
Input_Features | Новые поля атрибутов будут добавлены ко входным объектам для сохранения таких свойств, как длина, площадь, координаты x, y, z и m. | Feature Layer |
Geometry_Properties [Geometry_Properties,...] | Определяет свойства геометрии и формы, которые будут вычислены в новых полях атрибутов.
| String |
Length_Unit (дополнительно) | Единица измерения для вычисления длины.
| String |
Area_Unit (дополнительно) | Единица измерения для вычисления площади.
| String |
Coordinate_System (дополнительно) | Система координат, в которой будут вычислены координаты, длина и площадь. По умолчанию используется система координат входных объектов. | Coordinate System |
Пример кода
Пример AddGeometryAttributes (окно Python)
Следующий скрипт окна Python демонстрирует, как использовать инструмент AddGeometryAttributes.
import arcpy
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.AddGeometryAttributes_management("roads", "LENGTH;LINE_START_MID_END")
AddGeometryAttributes, пример (автономный скрипт)
Берет прямоугольник экстента каждой линии и строит сетку 10х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.AddGeometryAttributes_management(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.CreateFishnet_management("fishnet_{0}".format(row[0]),
number_rows = 10,
number_columns = 10,
template = "{0} {1} {2} {3}".format(minX, maxX, minY, maxY),
origin_coord = "{0} {1}".format(minX, minY),
y_axis_coord = "{0} {1}".format(minX, maxY),
corner_coord = "{0} {1}".format(maxX, maxY),
geometry_type = "POLYGON",
labels = "NO_LABELS")