Python を使ってリアルタイム解析を監視してみよう! ~ ArcGIS Notebooks を利用した ArcGIS Velocity の監視 ~

2566
0
07-24-2023 05:56 PM
Labels (1)

Python を使ってリアルタイム解析を監視してみよう! ~ ArcGIS Notebooks を利用した ArcGIS Velocity の監視 ~

はじめに

 

今回は、IoT センサーなどからのリアルタイム データの取り込み、およびリアルタイムの解析処理を Python で定期的に監視し、動作していない場合は Microsoft Teams へ通知する方法をご紹介します。リアルタイム データは ArcGIS Velocity で作成したフィードを利用して取り込み、そのデータを使ってリアルタイム解析を実施している前提とします。一方、フィードやリアルタイム解析を監視する Python の実行環境には、ArcGIS Notebooks を利用します。

KojiKUROSAWA_0-1690242933578.png

 

ArcGIS Velocity とは

ArcGIS Velocity は、リアルタイム データの解析やビッグデータの解析を行うことができる ArcGIS Online のエクステンション製品で、SaaS (Software-as-a-Service) として提供しています。

KojiKUROSAWA_1-1690242975837.png

 

フィードやリアルタイム解析の作成、利用方法については、過去のブログ ( ArcGIS Velocity でリアルタイム データをマップに表示してみよう ) を合わせてご覧ください。

 

ArcGIS Notebooks とは

ArcGIS Notebooks ( 以降、ノートブック と表記します ) は、Web ベースの対話形式のコンピューティング環境で、ノートブック エディターと呼ばれるインターフェースを提供しています。ノートブックは、Python コードの実行を行い、データ操作や分析、可視化などの様々な作業を行うことができます。

ArcGIS Online の組織のバナー上部にある [ノートブック] タブから利用することが可能です ( 表示されていない場合は組織の管理者へ連絡し、ノートブックへのアクセスを有効にしてください )

KojiKUROSAWA_2-1690243043726.png

 

ノートブックの使い方については、過去のブログ ( はじめてのArcGIS API for Python : Notebook の紹介 ) を合わせてご覧ください。

 

監視対象の確認

 

それでは、監視対象となるフィードやリアルタイム解析を確認するところから始めていきましょう。

ArcGIS Online へログインし、組織のバナー上部にある [コンテンツ] タブから監視対象となるアイテムの詳細ページを表示します。

KojiKUROSAWA_3-1690243108325.png

 

ArcGIS Velocity で作成したフィードの 詳細ページから ID を取得しておきます。この ID は後ほど使用するため、コピーして控えておきます。

KojiKUROSAWA_4-1690243143322.png

 

同じように、リアルタイム解析の詳細ページを表示して、ID を取得して控えておきます。

KojiKUROSAWA_5-1690243173246.png

 

Microsoft Teams の設定

 

次に、通知先となる Microsoft Teams の設定を行っていきます ( Microsoft Teams のご利用には Microsoft アカウントが必要となります ) Microsoft Teams との連携については、過去のブログ ( Microsoft Teams の Webhook と ArcGIS API for Python を連携してみる ) を合わせてご覧ください。

Microsoft Teams へサインインし、通知を送信したい Microsoft Teams のチャネルを選択します。チャネルのコンテキスト メニューから [コネクタ] を選択します。

KojiKUROSAWA_6-1690243225606.png

 

コネクタの中から Incoming Webhook を探し、[構成] をクリックします。

KojiKUROSAWA_7-1690243248604.png

 

Incoming Webhook の設定画面では、Webhook の名前を入力し、[作成] をクリックします ( 必要に応じてアイコン画像も設定します )

KojiKUROSAWA_8-1690243271259.png

 

URL は後ほど使用するため、コピーして控えておきます。[完了] をクリックし、通知先の設定は完了となります。

KojiKUROSAWA_9-1690243295741.png

 

ノートブックの作成

 

ここからは、Python を使った監視処理を実装していきます。

ArcGIS Online の組織のバナー上部にある [ノートブック] タブから [新しいノートブック] [Standard] を選択し、新しいノートブックを作成します (この時点で使用しているノートブックのランタイムは「ArcGIS Notebook Python 3 Standard – 8.0」となります )

KojiKUROSAWA_10-1690243321250.png

 

1 つ目のコードセルでは、ArcGIS API for Python から GIS モジュールを呼び出し、ArcGIS Online の組織に接続をしています。ここで Run をクリックして実行してみます ( 管理者ロールでログインしている場合は、注意して実行する旨の警告文が出る場合がありますが、実行する上で問題はありません )

KojiKUROSAWA_11-1690243351149.png

 

2 つ目のコードセルでは、以下のようなコードを入力し、監視対象となるフィードの状態を取得します。gis.velocity.feeds.get のパラメータには、前々章で取得したフィードの ID を指定します。

KojiKUROSAWA_12-1690243373226.png

 

Run をクリックして実行してみます。フィードの情報と状態が表示されれば OK です。

KojiKUROSAWA_13-1690243398805.png

 

3 つ目のコードセルでは、以下のようなコードを入力し、監視対象となるリアルタイム解析の状態を取得します。gis.velocity.realtime_analytics.get のパラメータには、前々章で取得したリアルタイム解析の ID を指定します。

KojiKUROSAWA_14-1690243421243.png

 

Run をクリックして実行してみます。リアルタイム解析の情報と状態が表示されれば OK です。

KojiKUROSAWA_15-1690243443239.png

 

4 つ目のコードセルでは、以下のようなコードを入力し、フィードとリアルタイム解析の状態が started ではない場合に Microsoft Teams へ通知を送信するようにします。Microsoft Teams へのメッセージ送信は、pymsteams というライブラリを利用します。

pymsteams.connectorcard のパラメータには、前章で取得した Webhook URL を指定します。通知メッセージには、フィード、およびリアルタイム解析の状態を入れており、addLinkButton ArcGIS Velocity へ直接アクセスできるボタンも追加しています。

KojiKUROSAWA_16-1690243489853.png

 

Run をクリックして実行してみます。フィード、もしくはリアルタイム解析が停止している場合は、以下のように Microsoft Teams へ通知メッセージが送信されます。

KojiKUROSAWA_17-1690243512067.png

 

最後に名前を付けてノートブックを保存しておきます。監視処理の実装はここまでとなります。

KojiKUROSAWA_18-1690243558738.png

 

タスクの設定

 

最後に、監視処理を定期的に実行するタスクを作成していきます。

先ほど保存したノートブックの画面上部にある [タスク] タブから [タスクの作成] をクリックします。定期的なタスクの実行はクレジットを消費しますので、予めクレジットをご確認の上、ご利用ください。

KojiKUROSAWA_19-1690243589693.png

 

タイトルを入力し、[次へ] をクリックします。今回はパラメータの使用はしないため、空欄のままとします。

KojiKUROSAWA_20-1690243612103.png

 

今回は以下のような設定でタスクを作成してみます。

KojiKUROSAWA_21-1690243638806.png

 

繰り返し間隔を 12 時間間隔とした場合、協定世界時 ( UTC ) 0 時と 12 時に動作するようになります ( 日本標準時では 9 時と 21 時となります )

KojiKUROSAWA_22-1690243669129.png

 

保存したノートブックの詳細画面にある [タスク] […] [詳細の表示] からタスクの実行状況や結果を確認することができます。

KojiKUROSAWA_23-1690243723370.png

 

タスクが定期的に実行されていれば OK です。

KojiKUROSAWA_24-1690243745196.png

 

まとめ

 

Python (ノートブック) を利用したリアルタイム データの取り込み、およびリアルタイム解析処理の定期監視をご紹介しました。今回は、状態を取得して監視を行っていますが、1 秒あたりのイベント数やキロバイト数などのメトリクス情報を取得し、データが実際に流れているか監視することも可能です。そのほかにも、データの分析やグラフ化、自動検証など、幅広い GIS タスクで利用することができますので、是非ノートブックをご活用ください。

 

関連リンク

ArcGIS Velocity:

ArcGIS Notebooks:

Esri ジャパン製品サポート:

Labels (1)
Version history
Last update:
‎07-24-2023 06:03 PM
Updated by:
Contributors