FAQ
ArcPy (ArcMap): ポリゴン フィーチャを作成して既存のフィーチャクラスに追加する方法

ナレッジ番号:2889 | 登録日:2023/05/29 | 更新日:2024/11/21

概要

Python スクリプトを使用して、新規にポリゴン フィーチャを作成し、既存のフィーチャクラスに追加する方法をご紹介します。

ここでは  Point と Array オブジェクトから Polygon オブジェクトを作成し、新規フィーチャとして既存のフィーチャクラスに追加しています。作成したフィーチャの追加には、da.InsertCursor を使用しています。たとえば図のように既存のフィーチャクラスにフィーチャを追加します。

Image

サンプル コード

あらかじめ指定ワークスペース内にポリゴン フィーチャクラス (ここでは 「CreatePolygon」)を作成してからお試しください。

# coding:cp932
# Purpose:      新規に作成したポリゴンフィーチャを既存のフィーチャクラスに追加します。

# ArcPy サイトパッケージをインポートします。
import arcpy

# ワークスペースを設定します。
arcpy.env.workspace = r"C:\FAQ\database.gdb"

# Polygon オブジェクトを作成するには、ポリゴンの頂点となる Point オブジェクトと、ポイントを配列する Array オブジェクトを作成する必要があります。
# まず、Point コンストラクタに座標値を設定して Point オブジェクトを作成します。
pointObject1 = arcpy.Point(132.377, 33.529)
pointObject2 = arcpy.Point(134.136, 34.387)
pointObject3 = arcpy.Point(134.698, 33.816)
pointObject4 = arcpy.Point(132.791, 32.747)

# 作成した Point オブジェクトを、Array オブジェクトに追加します。
# Point オブジェクトは時計回りの順番で追加します。
arrayObject = arcpy.Array()
arrayObject.add(pointObject1)
arrayObject.add(pointObject2)
arrayObject.add(pointObject3)
arrayObject.add(pointObject4)

# ポリゴンを閉じるために始点の座標値を再度追加して、ポリゴンを作成します。
arrayObject.add(pointObject1)

# Array オブジェクトを使用して、Polygon オブジェクトを作成します。
polygonFeature = arcpy.Polygon(arrayObject)

# データアクセス モジュールの InsertCursor を取得します。
# InsertCursor クラスの第一引数でフィーチャクラス名を、第二引数に設定したいフィールドをリストで指定します。
cursorObject = arcpy.da.InsertCursor("createPolygon", ["SHAPE@", "REGION", "Shape@AREA", "Shape@LENGTH"])

# InsertCursor クラスの insertRow メソッドを使用して、新規にフィーチャを追加します。
cursorObject.insertRow([polygonFeature, u"四国", polygonFeature.area, polygonFeature.length])

# オブジェクトを削除して、参照を解放します。
del cursorObject

免責事項

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

機能

種類

製品