Jupyter Notebook で GIS を操作する

ArcGIS Pro には Python パッケージ マネージャーが標準搭載されており、Python との連携が強化されています。ここ数年データサイエンス分野を中心にここ数年利用が拡大している Jupyter Notebook も利用しやすくなりました。今回は利用メリットと利用手順を紹介していきたいと思います。

Jupyter Notebook の特徴
Jupyter Notebook では、ノートブックというドキュメントにプログラム、メモ、実行結果をまとめて保存し、共有できます (図1)。「セル」と呼ばれる単位でコードを記述していくスタイルが他の開発環境 (IDE) にない特徴です。プログラムの一部を変更して、変更部分のみを再実行できるため、コードの変更 → 実行 → 結果の確認を繰り返す作業に適しています。これが試行錯誤を繰り返すデータサイエンス分野のユーザーなどに支持されている理由の一つだと思います。

プログラムとメモと結果を一緒に保存できる図1 プログラムとメモと結果を一緒に保存できる

ArcGIS ユーザーのメリット
ArcGIS ユーザーにとっても Jupyter Notebook を利用することで、次のようないくつかのメリットが得られます。

1.試行錯誤のしやすさ
GIS の作業・分析では、初めてのケースなど試行錯誤しながら処理フローを固めていくことがあると思います。前述したセル単位のコーディングが非常に役立ちます。特定セルだけ再実行できるため、試行中に他のセルを実行する必要がありません。作業者の無駄な待ち時間が発生しないため思考に集中できるメリットが生まれます。さらにセルは任意の場所に自由に挿入できるため、処理結果を確認したいときにセルを追加して確認用のコードを記述、実行。確認後にセルを削除するといった感覚で柔軟に作業を進められる点もメリットと筆者は考えます。

2.Pandas Dataframes による効率向上
Pandas (Python Data Analysis Library) では、パフォーマンスと使い勝手を兼ね備えたデータ処理が実現できます。GIS ユーザーにとってもデータ処理時間の短縮やコードがシンプルになり保守性が向上する等のメリットがあります。テーブルの個別レコードの処理についても従来の ArcPy では 1 レコードづつ逐次処理していたものが、Pandas Dataframe は、メモリー内に取込んだデータを一括処理したり、インデックスを利用して必要部分のみを簡易に抽出する等の便利な機能が提供されるため効率が飛躍的に向上します。

3.パッケージの統合利用による効率と品質の向上
ArcGIS プラットフォーム、Python いずれにも豊富な機能を備えたパッケージがあります。それらの機能を Jupyter Notebook から呼出して統合して利用できます (図2)。各パッケージの長所を組合せた利用により、効率と成果の品質を向上できます。
例えば、ArcPy で GIS の空間解析で実行し、結果を Python のパッケージで可視化し、確認するといったことが簡易にできます。

パッケージの長所を生かした統合利用図2 パッケージの長所を生かした統合利用

ArcGIS での利用ケース
ArcGIS の利用ケースと Python の利用例を整理しました (表1)。日々繰り返す業務のコスト削減や品質確保のための自動化やプロセスの標準化を進めるための試行段階で今回紹介した Jupyter Notebook を利用を検討してはいかがでしょうか。

表1 ArcGIS の利用ケースと Python の利用例
ArcGISの利用ケースとPythonの利用例

Jupyter Notebook の利用方法
Jupyter Notebook を利用するには、Add Packages から iPython Notebook (Jupyter Notebook の前身の名称) をインストールすることで利用可能となります。標準インストールでは、C:\ProgramFiles\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts に jupyter-notebook.exe ファイルが配置されます。これをダブルクリックすることで Jupyter Notebook を起動できます。

ArcGIS Proに標準搭載されたPython パッケージマネージャ図3 ArcGIS Pro に標準搭載された Python パッケージマネージャ

筆者のお勧めになりますが、Jupyter Notebook の作業フォルダを指定する方法としてショートカットを利用する方法をご紹介します。前述した jupyter-notebook.exe のショートカットを作成し、プロパティで作業フォルダのパスを指定します。ここで指定したフォルダーがこのショートカットから起動した際の Jupyter Notebook の作業フォルダーになります。

ArcGIS API for Python図4 サンプルの入手ができる ArcGIS API for Python のホームページ

Sample Notebook から Esri 社が提供するサンプルコードを入手できます。サンプルファイル (拡張子: .ipynb) を作業フォルダーにコピーすると利用できます。

さいごに
筆者が Jupyter Notebook を利用した感想は、「もっと早く知っていればよかった」です。便利で快適で思考も作業もはかどります。この便利さを読者の皆様にも体験いただきたく、今回ご紹介いたしました。機会がありましたらぜひお試しください。