はじめに
この記事は ArcPy を使った処理の基本を紹介する「Python を使って作業の効率化を図ろう!」のシリーズ記事です。本シリーズ記事で使用するデータや関連資料は ESRI ジャパンの GitHub で公開していますので是非ご覧ください。また、本シリーズ記事では ArcGIS Desktop (ArcMap) を利用した操作をご紹介します。
前回の記事では ArcPy を使ったマップとレイヤーの操作についてご紹介しました。
第 3 回目となる今回は ArcPy を使ったジオプロセシング ツールの操作についてご紹介します。
ジオプロセシング ツールとは
ジオプロセシング(Geoprocessing)とは、GIS データに何らかの処理を行い、新しいデータを出力する一連の流れを指します。この処理を実行する機能を ArcGIS では、ジオプロセシング ツールと呼び、データの解析や管理、別のデータ形式へ変換する処理を行うことが可能です。ジオプロセシングの詳細は、弊社ホームページのGIS 基礎解説にある ジオプロセシング とは? を参照ください。
ジオプロセシング ツールは ArcGIS Desktop が提供するツールボックスに、データ管理ツールや解析ツールなどのようにカテゴリごとに格納されています。
ジオプロセシング ツールの実行
ArcPy からもジオプロセシング ツールを実行することができます。
使い方は arcpy.<ツール名>_<ツールボックスのエイリアス名>(ツールに必要なパラメータ) で実行することができます。ツール名やエイリアス名は、ツールボックスやツールのプロパティから確認することができます (下図)。
GIS ではよく使う属性検索と空間検索を実行する例をご紹介します。
ジオプロセシング ツールの実行:属性検索
属性検索 (Select Layer By Attribute) ツールは、属性値の指定した条件をもとに、フィーチャの選択を行うことができます。
次の例では、tokyo レイヤーから新宿区の属性を持つフィーチャを選択しています。
# tokyo レイヤーから新宿区のフィーチャを選択
arcpy.SelectLayerByAttribute_management (“tokyo”, “NEW_SELECTION”, “CITY1 = ‘新宿区‘“)
ジオプロセシング ツールの実行:空間検索
空間検索 (Select Layer By Location) ツールは、別のレイヤーのフィーチャに対する空間的な関係性に基づいて、フィーチャを選択することができます。
次の例では、千葉駅から一定の距離内(500メートル)にある建物を選択しています。
# 千葉駅から 500 メートル以内にある建物を検索
arcpy.SelectLayerByLocation_management(“building“, “WITHIN_A_DISTANCE”,“ChibaStation“, “500 meters”, “NEW_SELECTION”)
このように、ArcPy からもジオプロセシング ツールを簡単なコーディングで実行することができました。また、前回の記事でご紹介した、取得したオブジェクトをジオプロセシング ツールの引数として解析などに使用することもできますので、是非試してみてください。
おわりに
本記事では ArcPy を使ったジオプロセシング ツールの操作ついてご紹介しました。
次回は、ArcPyを使ったデータの操作についてご紹介します。
関連リンク
ArcPy
ArcPy 関数一覧
ArcPy クラス一覧
ジオプロセシング (GIS 基礎解説)