IBM Developer Japan Webサイトは2021年3月15日をもって終了となり、日本語コンテンツの一部は、オープンソースとして、提供予定です。 URLはこちら

Node-RED COVID-19 ダッシュボードを作成する

コロナ・ウィルス (COVID-19) の感染がどこで広がっているのかを追跡することは、このウィルスと戦う上で重要な対策です。このチュートリアルでは、The Weather Company (TWC) が提供している API を使用して COVID-19 の感染場所と感染状況に関するデータにアクセスし、そのデータを Node-RED ダッシュボード、グラフ、表に取り込む方法を説明します。Node-RED を使用してデータを分析し、国、州、郡での COVID-19 の感染状況を視覚化します。

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 感染追跡ダッシュボードを作成する

前提条件

所要時間

このチュートリアルの所要時間は約 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 オブジェクトで渡すための手法を確認します。

node-red-contrib-twc-covid19-tracker ノードのプロパティーを示す画面のスクリーンショット

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 のそれぞれをテストしてください。

COVID API テストの例を示す画面のスクリーンショット

  • 以下に示すサンプル Node-RED ダッシュボードには、過去 60 日分の COVID-19 履歴データが表とグラフに表示されます。このフローを使用するには、node-red-dashboard と node-red-node-ui-table が必要です。この Node-RED-covid19-dashboard.json フローをインポートしてください。

COVID-19 ダッシュボードのスクリーンショット

Node-RED フローをデプロイする

Node-RED フローをデプロイするには、UI にある赤色の「Deploy (デプロイ) 」ボタンをクリックします。

Node-RED ダッシュボードを起動するには、右側のサイドバーにある「dashboard (ダッシュボード) 」タブをクリックし、右上隅にある矢印アイコンをクリックします。

Node-RED COVID-19 ダッシュボードのスクリーンショット

Call for Code COVID-19 ダッシュボード・ソリューションを作成する

このチュートリアルを完了した今、これらのサンプル・フローに変更を加えて独自の Node-RED ダッシュボードを作成し、Call for Code COVID データ視覚化ソリューションを構築する準備が整いました。機能を拡張するには、感染ホットスポットを表示する地図を追加したり、ユーザーが特定の国の情報を入力、選択、または表示できるようにしたりするのも一考です。