コロナ・ウィルス (COVID-19) の感染がどこで広がっているのかを追跡することは、このウィルスと戦う上で重要な対策です。このチュートリアルでは、The Weather Company (TWC) が提供している API を使用して COVID-19 の感染場所と感染状況に関するデータにアクセスし、そのデータを Node-RED ダッシュボード、グラフ、表に取り込む方法を説明します。Node-RED を使用してデータを分析し、国、州、郡での COVID-19 の感染状況を視覚化します。
学習の目的
このチュートリアルの目的は次のとおりです。
- Node-RED の概要と、ローカルおよび IBM Cloud 上で Node-RED を使用する方法を学ぶ
- node-red-contrib-twc-covid19-tracker Node-RED ノードを調べる
- TWC Disease Tracker API ドキュメントを確認する
- node-red-dashboard グラフと node-red-node-ui-table 表でデータ視覚化を実験する
- TWC Disease Tracker API を使用して Call for Code COVID-19 感染追跡ダッシュボードを作成する
前提条件
- Node-RED をローカルにインストールするか、IBM Cloud 内で Node-RED スターター・アプリケーションを作成します。
- The Weather Company の COVID-19 Disease Tracking API を使用するには、API 鍵が必要です。Call for Code に参加する場合は、利用規約を読んで Call for Code 2020 COVID Challenge に参加登録し、この Node-RED ノードで使用する TWC API 鍵を callforcode.weather.com に要求することができます。
所要時間
このチュートリアルの所要時間は約 30 分です。
手順
Node-RED について理解する
Node-RED は、ハードウェア・デバイス、API、オンライン・サービスを新しい興味深い方法で結び付けることができる、オープンソースのプログラミング・ツールです。Node-RED では、ブラウザー・ベースのエディターを使って、ランタイムにデプロイできる幅広いノードをパレットから選択し、シングルクリックで簡単に接続してフローを作成できます。
Node-RED 依存関係ノードをインストールする
このチュートリアルの手順に従うには、Node-RED をインストールした後、以下の依存関係を追加する必要があります。
ローカルにインストールする場合の手順
ローカルにインストールする場合は、以下のコマンドを使用します。
npm install node-red-node-ui-table node-red-dashboard node-red-contrib-twc-covid19-tracker
IBM Cloud 内にインストールする場合の手順
「Manage Palette (パレットの管理)」を使用してパッケージを追加するのではなく、IBM Cloud 内で IBM Cloud ツールチェーンと git リポジトリーを使用して以下のパッケージを package.json
に追加します。変更をコミットすると、IBM Cloud 継続的デリバリー・ツールチェーンによって Cloud Foundry アプリケーションが作成されてデプロイされます。
"node-red-node-ui-table":"0.x",
"node-red-dashboard":"2.x",
"node-red-contrib-twc-covid19-tracker":"0.x",
node-red-contrib-twc-covid19-tracker Node-RED ノードを調べる
この Node-RED パッケージにより、Node-RED パレット内に「twc covid19 tracker (twc covid19 トラッカー) 」ノードが作成されます。
「twc covid19 tracker (twc covid19 トラッカー) 」ノードは、ジオコード、場所の ID、または郵便番号を基準に、国 (米国)、州、郡レベルで過去 60 日分の COVID-19 統計情報を問い合わせます。
「twc covid tracker (twc covid トラッカー) 」ノードが Node-RED パレット内にインストールされたら、このノードをフローにドラッグしてからダブルクリックします。表示される「Properties (プロパティー) 」ダイアログ・ボックスで、以下の情報を入力します。
- callforcode.weather.com から提供された TWC API 鍵
- ノードで取得する COVID-19 データの範囲として、「Country (国) 」、「State (州) 」、または「County (郡) 」のいずれかを指定します。
- 対象とするロケーションを指定する基準として、「geocode (ジオコード) 」(緯度/経度)、「place ID (場所の ID) 」、または「postal key (郵便番号) 」のいずれかを選択します。
- 緯度/経度、場所の ID、または郵便番号のいずれかを使用してロケーションを指定します。例:
- 40.74,-73.99
- 327145917e06d09373dd2760425a88622a62d248fd97550eb4883737d8d1173b
- 10001:US
Node-RED の右サイドバーに表示されるノードの情報をレビューして、上記のパラメーターをプログラムによって msg.twcparams
JSON オブジェクトで渡すための手法を確認します。
TWC Disease Tracker API ドキュメントを確認する
The Weather Company から、TWC Weather Data Packages を購入できるようになっています。このチュートリアルで Node-RED ノードが実装する Disease Tracking API サービスは、Call for Code の参加者であれば無料で利用できます (利用規約を確認してください)。
TWC Disease Tracker API を使用すると、指定したロケーションでの COVID-19 の感染拡大状況を追跡できます。この API からは、確認された感染症例数、死亡者数、回復者数など、最大で過去 60 日分の現在進行中の感染情報を取得できます。
The Weather Company の感染追跡用の API について詳しくは、オンライン・ドキュメントを参照してください。
この API は、COVID-19 データを含む JSON オブジェクトの配列を返します。この JSON データをダッシュボードやアプリケーションに統合することができます。
Node-RED のグラフと表でデータ視覚化を実験する
ダッシュボードを作成するには、node-red-dashboard パッケージが Node-RED のパレット内に提供するさまざまな UI 要素を使用することができます。ごくわずかなコーディングだけで、UI 要素として提供されるゲージ、グラフ、スライダー、ドロップダウン・リスト、入力フィールド、ボタンを接続して有益なダッシュボードを作成することができます。
node-red-node-ui-table パッケージが Node-RED パレット内に提供する表要素を使用すると、堅牢な表形式データを組み立てることができます。
これらのノードを接続することで、国 (米国) と州のデータをグラフと表で視覚化する COVID-19 データ・ダッシュボードを作成します。
TWC Disease Tracker API を使用して Call for Code COVID-19 感染追跡ダッシュボードを作成する
node-red-contrib-twc-covid19-tracker GitHub リポジトリー内に、COVID-19 統計情報を表示する一連のサンプル Node-RED ダッシュボードが含まれています。
examples フォルダー内には 2 つのサンプルが用意されています。
- この covid19-api-test.json フローをインポートして、TWC COVID-19 API のそれぞれをテストしてください。
- 以下に示すサンプル Node-RED ダッシュボードには、過去 60 日分の COVID-19 履歴データが表とグラフに表示されます。このフローを使用するには、node-red-dashboard と node-red-node-ui-table が必要です。この Node-RED-covid19-dashboard.json フローをインポートしてください。
Node-RED フローをデプロイする
Node-RED フローをデプロイするには、UI にある赤色の「Deploy (デプロイ) 」ボタンをクリックします。
Node-RED ダッシュボードを起動するには、右側のサイドバーにある「dashboard (ダッシュボード) 」タブをクリックし、右上隅にある矢印アイコンをクリックします。
Call for Code COVID-19 ダッシュボード・ソリューションを作成する
このチュートリアルを完了した今、これらのサンプル・フローに変更を加えて独自の Node-RED ダッシュボードを作成し、Call for Code COVID データ視覚化ソリューションを構築する準備が整いました。機能を拡張するには、感染ホットスポットを表示する地図を追加したり、ユーザーが特定の国の情報を入力、選択、または表示できるようにしたりするのも一考です。