Python コード例(その4):ArcPy で Geometry オブジェクトを使用する方法

ArcGIS では、Python を使って処理を自動化することが出来ます。Python コード上で、フィーチャクラスを作成する手法が一般的に使われますが、一時的にジオメトリを作成することも可能です。 具体的には、Geometry や Multipoint、PointGeometry、Polygon、Polyline などのクラスを使用して処理します。

この手法を利用すれば、実データではなくテンポラル(一時的な)フィーチャクラスを生成できるので、処理時間が短縮できます。

それでは、ジオプロセシング ツールで Geometry オブジェクトをパラメータとして使った 1 例を紹介します。
(実際に使用する際には Geometry の空間参照にも気を付けて処理しなければなりません)

下記のコードを実行すると、バッファが自動的に作成されて、その面積が出力されます。

Buffer_5000

※ 5000m バッファのイメージ(実際にはテンポラリ データが作成されるので、マップに追加されません)
※ バッファ処理をするには、マップを投影座標系にしておく必要があります。

■サンプル ポイントから 5000m のバッファを作成し面積を計算

SamplePoint = arcpy.Point(-6037.492967,35.170266)
SamplePointGeometry = arcpy.PointGeometry(SamplePoint)
outGeom = arcpy.Geometry()
outGList = arcpy.Buffer_analysis(SamplePointGeometry,outGeom,"5000 Meters")
print str(outGList[0].area) + " m2 "78539816.3397 m2

ツールの実行によって複数のGeometry オブジェクトが出力された場合は、
ツールの戻り値で Geometry オブジェクトの配列が作成される事にご注意ください。
特定のフィーチャを参照するためには、配列内での位置を番号で指定することが必要になります。

このように ArcPy の Geometry オブジェクトを使用して処理することもできるので、
覚えておくと便利です。是非ご活用ください。

[注意事項]
本記事に関するご質問は、保守 Q&A サポート サービス以外の有償サービスにて対応いたします。
本記事に関して生じたいかなる損害についても、弊社では責任を負いかねますことを予めご了承願います。

参考ヘルプ
Geometry オブジェクト
バッファ ツール

■関連リンク
Python コード例(その1):表紙つきPDFを作成する方法
Python コード例(その2):時系列マップをPDF に出力する方法
Python コード例(その3):フィールド演算を使用して昇順で ID を割り当てる方法
Python コード例(その5):ModelBuilder で Python の “If 文” を使用する