FAQ
ArcPy: ポイントを中心としたポリゴンを作成する

ナレッジ番号:3157 | 登録日:2023/05/29 | 更新日:2023/06/21

概要

ポイント フィーチャを中心としたポリゴンを、サイズ指定で一括作成するためのサンプル コードを紹介いたします。

Python サンプル コード

ポイントの座標からポリゴンの四隅の座標を取得し、それらを囲むポリゴンを反復処理で作成します。

import arcpy

# 入力ポイント フィーチャ(あらかじめ投影座標系に変換しておきます。)
inFC = r"C:\Project\_Forums\pointInterpol\fgdb\test.gdb\points"
# 作成する四角形のサイズ
h = 1000 # 高さ
w = 1500 # 幅
# 出力フィーチャクラス
outFC = r"C:\Project\_Forums\pointInterpol\fgdb\test.gdb\diamonds01"

# ポイントの XY 座標
pXY = ("SHAPE@XY")

features = []
with arcpy.da.SearchCursor(inFC, pXY) as cursor:
    for row in cursor:
        arrPnts = arcpy.Array()
        X = row[0][0]
        Y = row[0][1]

        # ポイント 1 点目(始点)
        pnt = arcpy.Point(X-w/2,Y-h/2)
        arrPnts.add(pnt)

        # ポイント 2 点目
        pnt = arcpy.Point(X-w/2,Y+h/2)
        arrPnts.add(pnt)

        # ポイント 3 点目
        pnt = arcpy.Point(X+w/2,Y+h/2)
        arrPnts.add(pnt)

        # ポイント 4 点目
        pnt = arcpy.Point(X+w/2,Y-h/2)
        arrPnts.add(pnt)

        # ポイント 5 点目 (始点と同じ座標)
        pnt = arcpy.Point(X-w/2,Y-h/2)
        arrPnts.add(pnt)

        pol = arcpy.Polygon(arrPnts)
        features.append(pol)

# 出力
arcpy.CopyFeatures_management(features, outFC)

メタデータ

種類

製品