ArcGIS では、Python を使って処理を自動化することが出来ます。Python コード上で、フィーチャクラスを作成する手法が一般的に使われますが、一時的にジオメトリを作成することも可能です。 具体的には、Geometry や Multipoint、PointGeometry、Polygon、Polyline などのクラスを使用して処理します。
この手法を利用すれば、実データではなくテンポラル(一時的な)フィーチャクラスを生成できるので、処理時間が短縮できます。
それでは、ジオプロセシング ツールで Geometry オブジェクトをパラメータとして使った 1 例を紹介します。
(実際に使用する際には Geometry の空間参照にも気を付けて処理しなければなりません)
下記のコードを実行すると、バッファが自動的に作成されて、その面積が出力されます。
※ 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 文” を使用する