ArcGIS Notebooks では、合理化されたセルベースのワークスペースを提供する Jupyter ノートブック環境を実行します。 このトピックでは、ショートカットやベスト プラクティスなど、Notebooks の操作に使用される基本的なコマンドと要素について説明します。
セルのタイプの指定
ノートブックでは、3 種類のセルを使用できます。 ポインターを使ってセルを選択すると、ツールバーのドロップダウン リストでセルのタイプを変更できるようになります。
使用できる 3 つのタイプは次のとおりです。
- [コード]: ノートブックは、コード セル内のすべてのコンテンツを Python 言語で解釈します。 Python コードを記述する際、特定の文字列 (from や等号 (=) など) を入力すると、自動的に色を付けなおすか、わかりやすくハイライト表示するようノートブックに指示します。 冒頭に数字記号 (#) が付くコード行はコメントとして解釈され、緑で色付けされて斜体になります。ノートブックはこれをコードとして実行しません。
- [Markdown]: ノートブックは、Markdown セルのすべてのコンテンツを Markdown 言語で解釈します。 Markdown とは、リッチ テキストの書式設定に使用されるシンプルな言語であり、インターネットでは GitHub などのクライアントによって使用されています。 Markdown の使用方法については、オンラインの Markdown ガイドをご参照ください。 Markdown セルを実行すると、そのコンテンツがリッチ テキストに変換されます。 冒頭に 1 つまたは複数の数字記号 (#) が付く行は見出しとして書式設定されます。 Markdown セルには、未加工の HTML コードも追加できます。
- [Raw NBConvert]: ノートブックは、Raw NBConvert セルのコンテンツを処理しません。 このセル タイプはめったに使われません。
メモ:
[見出し] セル タイプはドロップダウン リストにもあります。 ただし、このセル タイプは現在は Jupyter ノートブック環境では使われていません。 このセル タイプをクリックすると、セルは Markdown セルに変換され、数字記号 (#) が付加されます。これは、Markdown の上位レベルの見出しであることを意味します。
リッチ テキストとコード コメントを使用すると、ノートブックを共有しているユーザーが読みやすくなるため便利です。
セルの操作
ノートブックでコードを実行するには、セルにコードを含める必要があります。 セル内のコードによって、変数を定義すること、Python ライブラリに含まれる関数を実行することが可能になります。
変数を定義するには、等号 (=) も含めて変数ステートメントを含むセルを実行します。 たとえば、デフォルト ノートブック テンプレートは、gis 変数を定義すると起動します。 その変数名 (gis) しか含まれないセルを実行すると、ノートブックは ArcGIS Enterprise ポータル の URL を出力として返します。
メモ:
コマンド ラインからディレクトリを変更する !cd <directory> などの、感嘆符を使用する IPython コマンドは、ArcGIS Notebooks では機能しません。 代わりに、cd <directory> などの感嘆符を伴わないコマンドを使用します。
メモ:
ノートブックを作成する際は、ワークスペース ディレクトリ内のディレクトリやファイルの完全パスを使用します。
たとえば、home/test.gdb ではなく /arcgis/home/test.gdb を使用します。
Python 関数を実行するには、関数の構文と、関数に必要な引数や、関数で使用できる引数を指定します。 詳細については、以下の「セルでの関数の使用」セクションをご参照ください。
セルを作成するには、Shift + Enter キーを押すか、メニュー リボンの [挿入] をクリックします。これにより、選択中のセルの上か下に新しいセルを挿入できるようになります。
セル ツールバーのオプション
セル ツールバーのオプションを使用して、個別のセルに関する追加情報をノートブックに含めることができます。
- [なし]: セル ツールバーを表示しません。
- [メタデータの編集] - JSON を使用して各セルのメタデータを入力します。
- [未加工のセル形式]: 未加工のセルは、出力を直接書き込むことができます。ノートブックは、これらのセルのコンテンツを評価しません。
- [スライドショー] - 各セルがスライド ショーに表示される方法を指定します。 コードを表示する際に便利です。
- [添付ファイル] - ノートブックのワークスペースの各セルに含まれる、関連添付ファイルを管理します。
- [タグ] - ノートブックのワークスペースに含まれる各セルのタグを作成し、管理します。
これらのオプションのいずれかがオンである場合、ノートブック内の各セルの上にバーが表示されます。 同時にオンにできるオプションは 1 つのみですが、ツールバーに追加したすべての情報は、オフにしても残ります。 セル ツールバーのオプションを変更するには、[表示] > [セル ツールバー] の順にクリックします。
リモートで実行されたり、スケジュールされたりするノートブックを作成するときに、[タグ] オプションを使用できます。 ノートブック実行操作は、実行時に、アカウントの認証情報や定義するための変数などのパラメーターを新しいセルとして挿入するオプションを提供します。 parameters タグをノートブック内のセルに追加することによって、この新しいセルを追加するノートブック内の場所を指定できます。 新しいセルは、このセルの後ろに挿入されます。 この操作によって認識される parameters タグ付きのセルは、1 つのみです。
ライブラリとモジュールのインポート
デフォルト ノートブック テンプレートでは、ArcGIS Notebooks は ArcGIS API for Python からのみ gis モジュールをインポートします。 通常、ノートブックのランタイムで使用できる、追加の Python ライブラリを使用します。 これらのライブラリにアクセスするには、import コマンドを実行します。
ArcGIS Notebooks で使用できるすべての Python ライブラリを見る
セルを作成して「import <library>」と入力し、セルを実行します。
ArcGIS API for Python と ArcPy、およびその他のいくつかのケースでは、Python ライブラリはモジュールに分類されています。 モジュール内のライブラリにアクセスするには、アクセスするモジュールを from ステートメントで宣言し、import ステートメントでライブラリを宣言します。 たとえば、ArcGIS API for Python の mapping モジュールから WebScene ライブラリを呼び出すには、セルで次のコマンドを実行します。
from arcgis.mapping import WebScene
ArcGIS Notebooks では、セルの実行時にオートコンプリート機能を使用できます。 この機能は、必要なライブラリやモジュールを見つける際に役立てることができます。 コマンドの最初の部分をセルに入力して Tab キーを押すと、オートコンプリート機能が有効になります。 コマンドの残りの部分が表示されます。
たとえば、「arcgis.」と入力して Tab キーを押すと、ノートブックは ArcGIS API for Python で使用可能なすべてのモジュールのドロップダウン リストを示します。 上矢印や下矢印を使用してリスト内を移動できます。探しているオプションが見つかったら、Enter キーを押してコードの行に挿入します。
ノートブックでの ArcGIS API for Python および ArcPy の操作について詳しくは、次のトピックをご参照ください。
セルでの関数の使用
解析を実行し、ノートブックでデータを操作するには、Python 関数を使用します。 関数は Python ライブラリに含まれています。ほとんどの場合は、関数の実行方法や、関数を実行するコンテンツを指定する入力引数を取ります。
ノートブックのオートコンプリート ツールを使用し、使用可能な関数のドロップダウン リストを表示すると、関数が見つかりやすくなります。 任意のライブラリの bar で「bar.」と入力し、Tab キーを押すと、そこで使用できる関数が表示されます。
たとえば、arcgis.features モジュールのデータの集約ライブラリで使用できるツールを表示するには、次のコードを入力し、Tab キーを押します。
features.summarize_data.
オートコンプリート ツールにより、ライブラリで使用できるツールのドロップダウン リストが表示されます。
多くの場合、ノートブックのコマンドには必須の引数や任意の引数があります。引数とは、コマンドを実行するための情報を提供するパラメーターのことです。 コマンドの構文の末尾が空白の括弧 (()) である場合、そのコマンドには引数が必要であるか、または必要に応じて引数を追加することができます。
括弧の中に引数を入力します。複数の引数がある場合は、カンマで区切ります。 関数の必須の引数または任意の引数の文字列を見るには、空白のかっこを疑問符に置換し、セルを実行します。 この操作により、関数の docstring が表示され、ここにすべての引数がリストされます。
たとえば、ノートブック エディターの [解析] ウィンドウから使用できるすべてのツールには引数が必要です。 このウィンドウからセルにツールを追加すると、そのツールの ArcGIS API for Python 構文が挿入され、末尾は空白の括弧になります。 1 つ以上の引数を指定せずに、セルでこの構文を実行しようとすると、セルは失敗してエラー メッセージが返されます。
データの集約ライブラリで [ポイントの集約] ツールを実行するには、[解析] ウィンドウでツールを探し、それを新しいセルに追加するか、ツールの構文を次のように入力します。
features.summarize_data.aggregate_points()
ツールの引数のリストを表示するには、構文を次のように変更し、セルを実行します。
features.summarize_data.aggregate_points?
これにより、ツールの docstring 参照ウィンドウが開きます。 この参照ウィンドウの右上隅には、ウィンドウを拡大したり閉じたりするためのボタンがあります。
セルを操作する場合は、次の点に留意してください。
- foo() 関数で「foo?」と入力し、Enter キーを押すと、関数を説明する docstring が表示されます。
- セルの冒頭を ! にすると、セルのコンテンツがノートブック コンテナーで bash コマンドとして実行されます。
セルの実行
セルを実行すると、コードが実行され、その中にあるすべての操作が行われます。 セルのサブセクションや、コードの特定行ではなく、セル全体のみを実行できます。 セルは、1 行または複数行のコードで構成されます。
選択したセルを実行するには、ツールバーの [実行] ボタンをクリックするか、[セル] > [セルの実行] をクリックします。 また、マウス ポインターが置かれているセルを実行するには、Ctrl + Enter キーを押します。
実行中のセルを手動で停止するには、[カーネル] > [中断] をクリックします。 または、ツールバーにある四角形の停止ボタンをクリックします。
各コード セルの左側には In [ ] 要素があります。 セルがまだ実行されていない場合、または以前実行されたセルの出力がクリアされた場合は、角括弧の中は空白です。 セルの実行中には、アスタリスクが含まれます (In [*])。 セルの実行が終了すると、In [ ] 角括弧にはセルの実行順を表す数字が示されます。 ノートブックのセルは任意の順序で、かつ複数回実行できるため、ノートブックのセルの In [ ] の数字は連番ではないことがあります。
メモ:
Markdown セルは、セルが実行されるまで In [ ] 要素を保持します。セルが実行されると要素はなくなり、セルのコンテンツはリッチ テキストになります。
実行したセルのコード行が出力を生成した場合、その出力は、ノートブックの中で実行されたセルの下に表示されます。 出力の隣には Out [ ] 要素があります。これは、対応するセルの In [ ] 要素の中身と一致します。
カーネルの操作
新しいノートブックを起動すると、カーネルも一緒に起動します。 このカーネルは、ノートブックで実行されるコードを実行します。 ノートブックのセルを実行すると (In [ ] 要素を設定すると)、実行したセルで定義した変数がカーネルのメモリに保存されます。
ノートブックのカーネルを再開し、メモリ内の変数をクリアするには、[カーネル] > [再開] をクリックします。 カーネルを再開し、メモリ内の変数をクリアし、ノートブックのすべてのセルを順番に実行するには、[カーネル] > [再開してすべて実行] をクリックします。
ノートブックのアクティブな使用を終了する場合は、[カーネル] > [シャットダウン] をクリックし、ノートブックのカーネルをシャットダウンし、すべてのメモリ内変数をクリアします。 カーネルの実行は停止しますが、実行済みのセルの出力は消去されません。
ノートブックが長時間にわたってアイドル状態になった場合、カーネルはシャットダウンし、メモリ内の値は自動的にクリアされます。 この期間はデフォルトでは 24 時間に設定されていますが、サイト管理者であれば短くすることも長くすることもできます。