ジオメトリ属性の追加(Add Geometry Attributes) (データ管理)
サマリ
空間特性またはジオメトリック特性および各フィーチャの位置(長さや面積、X、Y、Z、M 座標など)を示す新しい属性フィールドを入力フィーチャに追加します。
使用法
-
このツールは、[ジオメトリ演算] ダイアログ ボックスまたは [フィールド演算(Calculate Field)] ジオプロセシング ツールでも実行できるタスクを自動化するための簡単かつ効率的な方法を提供します。
-
[ジオメトリ プロパティ] パラメータに指定されているオプションに応じて、1 つまたは複数の属性フィールドが入力フィーチャに追加されます。入力フィーチャにそのフィールドがすでに存在している場合、そのフィールドの値が上書きされます。各ジオメトリ プロパティについて、追加されるフィールドを確認するには、次の表をご参照ください。
Geometry property
追加されるフィールド
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 です。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 値対応である場合にのみ追加されます。
-
座標系が指定されている場合は、[長さの単位] および [面積単位] パラメータで違う単位が選択されていない限り、長さと面積の計算はその座標系の単位となります。
-
このツールによって追加される属性フィールドは、フィーチャ レイヤに追加できるフィールドによく似ています。フィールド値を上書きしたり、フィールドを削除したり、フィールド名を変更したりできます。これらのフィールドの値は、編集後に自動的に再計算されません。フィーチャを編集する場合は、このツールを再度実行して、フィールド値を更新する必要があります。
-
入力フィーチャに選択セットがある場合、選択されたフィーチャだけが追加フィールド内で計算された値を持ち、他のすべてのフィーチャは NULL 値を持ちます。
-
このツールは、ポイント、マルチポイント、ポリライン、ポリゴン、アノテーション フィーチャクラスに対して機能します。アノテーションは、ポリゴン フィーチャクラスとして扱われます。
このツールを使用すると入力データが変更されます。詳しい説明および不適切なデータ変更を防ぐための方法については、「出力を伴わないツール」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
Input_Features |
長さ、面積、X、Y、Z、M 座標などのプロパティを格納するため、新しい属性フィールドがこの入力フィーチャに追加されます。 | Feature Layer |
Geometry_Properties [Geometry_Properties,...] |
計算して新しい属性フィールドに入力される、ジオメトリまたは形状のプロパティを特定します。
| String |
Length_Unit |
長さを計算する単位。
| String |
Area_Unit |
面積を計算する単位。
| String |
Coordinate_System |
座標、長さ、および面積が計算される座標系。デフォルトでは、入力フィーチャの座標系が使用されます。 | Coordinate System |
コードのサンプル
次の Python ウィンドウ スクリプトは、AddGeometryAttributes(ジオメトリ属性の追加)ツールを使用する方法を示しています。
import arcpy
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.AddGeometryAttributes_management("roads", "LENGTH;LINE_START_MID_END")
各ライン フィーチャの表示範囲枠を取得し、その範囲内で 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.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")