📢 ~2022年10月現在のArcGIS Online での操作に対応した新しい記事がありますので、これからArcGIS API for Python を学ぶ方は「はじめてのArcGIS API for Python 2022 : ノートブック集の公開」をご参照ください~
ArcGIS ブログでお知らせしたように、ArcGIS Online の2020年 6月のアップデートからリリース版としてArcGIS Notebooks が利用できるようになり、環境を構築することなく、より手軽にArcGIS API for Python を利用可能な環境が整ってきています(詳細は「ArcGIS Online (2020 年 6 月アップデート) の新機能」をご参照ください)。
また、ArcGIS Online ヘルプから「ノートブックの基本操作」が参照できたり、Learn ArcGIS のレッスンギャラリーに「ArcGIS Notebooks を使用した教育」のレッスンが公開されたことにより、ArcGIS API for Python を使った空間データ サイエンスを学びはじめる、オンラインの情報が充実してきています。
今回は、先日の「第29回 地理情報システム学会 学術研究発表大会GIS:【ハンズオンセッション】A25-2:ArcGIS API for Python 体験」用に、上記レッスン資料の「② Notebook の紹介」と「③ ArcGIS Notebooks を使用して、Web GIS を教える」のPDFを日本語化したものをもとに、記事を掲載しております。
組織のバナーの上部にノートブック と表示されている場合は、ArcGIS Notebooks でノートブックを作成および編集することが可能です。 バナーにノートブック と表示されていない場合は、組織の管理者と協力してArcGIS Notebooks へのアクセスを有効にしてください。アクセスを有効にしたら、最初のノートブックを作成して、ArcGIS Notebooks を使用した空間データ サイエンスを学び始めることができます。
バナーにノートブック と表示されノートブックを使える状態になったら、最初のノートブックを作成してみましょう。
組織のバナーの上部のノートブック をクリックし、ArcGIS Notebooks で最初のノートブックを開きます。 ノートブックを開く前に、新しいノートブックで使用するランタイムを選択するプロンプトが表示されます。メモリや CPU などのリソース割り当てと、どの Python パッケージが使用されているかが表示されます。 ランタイムにはStandard、Advanced、GPUサポート付きAdvancedの3つのオプションがあります。これらのオプションの後には、そのランタイムに含まれるPython ライブラリやパッケージのバージョンに対応するバージョン番号が付けられます。常に最新のバージョンを使用することをお勧めします。このレッスンでは、Standard ランタイムを使用します。
ArcGIS Notebooks へようこそ のウィンドウで、ArcGIS Notebook Python 3 Standard - 4.0 を選択し、開く をクリックします。
このランタイムには、標準のオープン ソース Python ライブラリと ArcGIS API for Python が含まれており、この最初のノートブックで使用するものはこれだけです。ArcGIS Notebook Python 3 Advanced - 4.0 ランタイム オプションには、Standard ランタイムに含まれるライブラリに加えて ArcPy が含まれており、より多くのメモリと CPU が搭載されているため、より大きな解析や処理タスクを処理することができます。ArcGIS Notebook Python 3 Advanced with GPU サポート - 4.0 オプションには、Advanced ランタイムと同じライブラリが含まれており、機械学習やディープラーニングを含む計算量の多いワークフローのための専用 GPU インフラストラクチャが提供されます。
新しいノートブックには、ArcGIS API for Python を呼び出すためのコード セルが 1 つずつ用意されています。その後、コード セルとマークダウン セルを追加して、ワークフローを作成します。
これはマークダウン セルです。マークダウンは、インターネット上で広く使われている軽量でプレーンテキスト形式の構文です。
最初のセルが実行され、ヘッダー行に変わります。 注: キーボードの Shift+Enter キーを押してセルを実行することもできます。Shift+Enter は、ノートブックでセルを実行するためのキーボード ショートカットです。すべてのキーボード ショートカットのリストを表示するには、ノートブックの上部にあるOpen the command palette をクリックします。コマンド パレットにキーボード ショートカットのリストが表示されます。
同じセルをダブルクリックして編集します。セル内のWelcome to your notebook. の前のシャープ記号(#)を2つ挿入します。 これでシャープ記号(#)が 4 つになりました。シャープ記号(#)を追加すると、ヘッダーのサイズが変わります。
Run をクリックします。 ヘッダーが小さくなっていることに気づくと思います。
再度同じセルをダブルクリックし、ヘッダーから2つのシャープ記号(#)を削除し、Enter キーを押し、2行目に”はじめてのノートブック” と入力します。
2 番目のマークダウン セルは、最初のコード セルを説明しています(Run this cell to connect to your GIS and get started: の文言)。このコード セルは、Python API から GIS モジュールを呼び出し、ArcGIS Online の組織に接続します。
今、あなたはマークダウン に精通し、既存のコードを実行しているので、今度はあなた自身のコードを書いて実行してみましょう。
下の空のセルに、"### はじめてのマップ" と入力してください。
リボン上で、Code をクリックし、Markdown に変更します。工夫して、ヘッダーの下に書くコードを説明するテキストを追加してください。
Run をクリックします。 マークダウン セルの下に新しい行が追加されます。ここにマップを追加します。 注: リボンの [+] ボタンをクリックするか、[Insert] メニューをクリックして、ノートブック内の任意の場所にセルを追加することもできます。 次に、ノートブックにマップを作成します。そのためには、マップを表す変数を定義し、ArcGIS API for Python を使用して、特定の場所を中心とした Web マップに変数を設定します。
my_first_map という名前の変数を作成し、それをカリフォルニア州ロサンゼルスを中心としたウェブ マップと=で結びます。
my_first_map = gis.map("Los Angeles, CA")
Run をクリックします。 定義した変数を呼び出して、マップを作成します。
コード セルに定義した変数を呼び出すコードを書いて、そのセルをRun で実行します。
my_first_map
実行されるとノートブックに、最初の地図が表示されます。前のセルに戻って、"Los Angeles, CA"を別の場所に変更し(例えば、”Yokohama”、”横浜市”、”Tokushima”、"徳島市" など)、再度、セルを実行することで、地図の中心の位置を変更することができます。
ArcGIS Notebooks では、レイヤーを検索し、マップに追加することができます。次に、ロサンゼルスと重なるレイヤーを検索し、マップに追加します。
リボンで 追加 をクリックします。 コンテンツの追加 ウィンドウにコンテンツが表示されます。ArcGIS Online または ArcGIS Notebooks にコンテンツを保存している場合は、そのコンテンツをノートブックで使用できます。また、組織に共有されているコンテンツ、ArcGIS Online に共有されているコンテンツ、または ArcGIS Living Atlas からアクセスすることもできます。この場合、Living Atlas を使用します。
マイ コンテンツ をクリックし、Living Atlas を選択します。USA Traffic Counts と入力して、Enter キーで検索します。 一番上に表示されるアイテムは 2020 USA Traffic Counts レイヤーです。
2020 USA Traffic Counts レイヤーで、ノートブックに追加 ボタンをクリックします。
マップの下のノートブックにコードスニペットを含む新しいセルが追加されます。このセルは、アイテムとしてtraffic counts レイヤーを呼び出し、そのメタデータをロードします。
そのコード セルを実行します。 アイテムのメタデータがオブジェクトとしてセルの下のノートブックに追加されますが、マップにはまだ追加されていません。
前の手順で表示されたアイテムの下にコード セルを作成し、マップ 変数を呼び出します。 ヒント: my_ と入力して Tab キーを押します。ノートブックのコード補完は、Tab キーによって呼び出されます。行の入力を完了し、my_first_map が読み込まれます。
次に、my_first_map の後にピリオドを付けて、my_first_map. と表示されるようにして、Shift+Tab キーを押します。 Shift+Tab を押すと関数シグネチャが開きます。関数シグネチャは、作業している要素の種類を知る必要がある場合に便利です。これを使って、関数が何をするのか、入力変数と出力変数をどのように定義するのかを理解してください。
関数シグネチャを閉じます。
add_layer(item) 関数を呼び出してセルを実行します。
my_first_map.add_layer(item)
2020 USA Traffic Counts のレイヤーが、Step 3 の 6. で表示したマップに追加されます。
ArcGIS Notebooks を使用して、最初のマップを作成し、そのマップにレイヤーを追加しました。マップには、拡大・縮小 ボタン、コンパス、およびマップ ビューからシーン ビューに変更するオプションが含まれていることに気づくと思います。マップをパンしたり、ズームしたりといった操作にこれらのボタンが使用できます。これは、ArcGIS Online で使用するマップと同じ機能を持つ live web マップです。
数行のコードで、作成したマップを ArcGIS Online に保存することができます。Web マップは、タイトル、スニペット、タグなどの特定のプロパティによって定義されます。Web の詳細については、Web map specification を参照してください。Pythonのコードでプロパティを格納した辞書を作成することで、プロパティを定義することができます。そして、マップをWeb マップとして保存します。
webmap_properties = {
'title':'はじめてのマップ',
'snippet':'私のはじめてのマップは私の最初のノートブックから',
'tags':['ArcGIS Notebooks', 'Los Angeles', 'traffic']
}
my_first_map.save(webmap_properties)
実行結果はアクティブなリンクです。はじめてのマップ をクリックして、ArcGIS Online でアイテムを確認します。
マップとノートブックは別々に保存する必要があります。ノートブックを閉じる前に、ArcGIS Online に保存します。
リボンで保存 をクリックし、名前を付けて保存 を選択します。
アイテムのメタデータを入力し、ノートブックを保存します。
このレッスンでは、ArcGIS Notebooks で初めてノートブックを作成しました。ノートブックのコンテンツ セルについて学びました。ArcGIS Notebooks と ArcGIS API for Python を使用して、マップを作成し、そのマップにレイヤーを追加し、ArcGIS Online に保存するという一般的な GIS ワークフローを完了させる方法を学びました。基本を学んだところで、ArcGIS API for Python samples の探索を開始し、他に何ができるのかを確認してみましょう。
ArcGIS Online ヘルプ
Learn ArcGIS
Esri Canada | Education & Research
シリーズ ブログ