新しい IBM Developer JP サイトへようこそ!サイトのデザインが一新され、旧 developerWorks のコンテンツも統合されました。 詳細はこちら

超地域密着型の気象ダッシュボードを構築する

パーソナル・ウェザー・ステーション、Node-RED、Weather Underground、The Weather Company API、node-red-contrib-twc-weather ノードを利用して気象ダッシュボードを構築する方法を学んでください。このチュートリアルでは、居住地域や農業地帯にある気象観測点から超地域密着型の気象情報を取得して表示する例を説明します。

学習の目的

このチュートリアルの目的は次のとおりです。

  • パーソナル・ウェザー・ステーション (PWS) の基本を学ぶ
  • PWS を Weather Underground (WU) に接続して、WU 上に PWS データを表示する
  • Weather Company (TWC) API 鍵を登録する
  • TWC API ドキュメントを確認する
  • (ローカルおよび IBM Cloud 上の) Node-RED について学ぶ
  • node-red-contrib-twc-weather Node-RED PWS ノードのサンプルを探索する
  • サンプル気象ダッシュボードをインポート/デプロイする
  • 気象ダッシュボード内に PWS データを表示する
  • TWC API を使用して悪天候アラート地図 Node-RED ダッシュボードを作成する
  • Call for Code 水資源維持ソリューションを構築する

前提条件

npm install node-red-contrib-twc-weather node-red-dashboard node-red-node-ui-table node-red-contrib-web-worldmap
  • PWS データを http://www.wunderground.com に送信して、PWS API 鍵を取得します。
  • PWS を所有していないとしても、Call for Code に参加すれば、時間制限付きで TWC API 鍵を取得できます (これを使用して、ほとんどの TWC PWS API にアクセスできます)。

所要時間

このチュートリアルの所要時間は約 30 分です。

手順

パーソナル・ウェザー・ステーションの概要

Wikipedia でのパーソナル・ウェザー・ステーションの定義は、個人、クラブ、組合、または企業が運用している気象計測器一式 (事業運営の一環としてではなく気象データを取得して配布する場所) となっています。今ではパーソナル・ウェザー・ステーションが進化し、気象条件を測定する各種のセンサーを組み込めるようになっています。こうしたセンサーは、モデルによって違いはあるものの、大抵は風速、風向、屋外と屋内の温度、湿度、気圧、降水量、UV、または太陽熱の放射を測定します。土壌水分、土壌温度、木の葉の湿り気を測定できるセンサーもあります。

十分に正確なパーソナル・ウェザー・ステーションでも、そのコストは 200 米ドル未満です。民間科学者や気象ファンにも手頃な価格になっています。

PWS を Weather Underground に接続する

多くの PWS ブランドでは、クラウド・ベースのサービスに接続して気象データを送信できるようになっています。The Weather Company の一部となっている Weather Underground という IBM ビジネスでは、PWS を登録してそのデータを http://www.wunderground.com WeatherUnderground PWS デバイス に送信するよう、メンバーを促しています。

メンバーは自分の PWS データを Weather Underground 上で表示できます。 Weather Underground PWS データ

TWC API 鍵を取得して TWC API ドキュメントを確認する

PWS データは wunderground.com ダッシュボードだけでなく、API 鍵と一連の堅牢な TWC Restful API を使用して取得することもできます。API 鍵をコピーして、「View API Documentation (API ドキュメントを表示)」ボタンをクリックします。

Weather Underground API鍵

TWC API 鍵を登録する

PWS を所有していなくても、Call for Code 2020 に参加すれば、時間制限付きの TWC API 鍵を登録できます。その場合の API 鍵は 2020年3月1日から10月15日まで有効です。この API 鍵を使用して、ほとんどの TWC Personal Weather Station API にアクセスできるので、このチュートリアルを完了できます。

Node-RED について理解する

Node-RED は、ハードウェア・デバイス、API、オンライン・サービスを新しい興味深い方法で結び付けることができる、オープンソースのプログラミング・ツールです。Node-RED では、ブラウザー・ベースのエディターを使って、ランタイムにデプロイできる幅広いノードをパレットから選択し、シングルクリックで簡単に接続してフローを作成できます。

Node-RED をローカルにインストールする場合、または IBM Cloud 内で Node-RED スターター・アプリケーションを作成する場合は、それぞれのリンク先のページで説明している手順に従ってください。

node-red-contrib-twc-weather ノードをインストールする

Node-RED がインストールされたら、このチュートリアルで必要となる以下の依存関係を追加します。

node-red-contrib-twc-weather GitHub リポジトリーに、Node-RED PWS API のそれぞれを演習するサンプル・フローが格納されています。各ノードをクリックすると、そのノードに関する包括的な情報を表示するタブが開きます。この情報を読むことで、ノードとその構成方法について理解できます。この PWS-Examples.json フローを Node-RED エディターにインポートして、フローをデプロイします。その際は、必ず実際の TWC PWS API 鍵を貼り付けてください。PWS データを探索したくても、独自の PWS を所有していない場合は、StationID として KNJRIDGE9 を使用して Ridgewood Fire Headquarters にある気象観測点データのクエリーを実行できます。

PWS サンプル・フロー

サンプル気象ダッシュボードをインポート/デプロイする

Node-RED node-red-contrib-twc-weather ノードに対してクエリーを実行できるようになったので、サンプル Weather Node-RED ダッシュボードを構築しましょう。このダッシュボードで、PWS の現在のデータと履歴データを地図、表、ゲージ、グラフ上に表示できるようにします。PWS API 鍵を使用すると、TWC の 5 日間の気象予報にアクセスして Weather Icons Lite を表示できます。このフローを使用するには、node-red-dashboard、node-red-node-ui-table、node-red-contrib-web-worldmap が必要です。この PWS-Dashboard.json フローをインポートしてデプロイしてください。

気象ダッシュボード内に PWS データを表示する

Node-RED ダッシュボードを起動して、現在の気象の状態、気象予報、地図を表示して、いろいろと試してみます。Call for Code の TWC API 鍵では、非公開の PWS 履歴データにアクセスできない場合があります。

PWS ダッシュボード

TWC API を使用して悪天候アラート地図 Node-RED ダッシュボードを作成する

node-red-contrib-twc-weather Node-RED ノードの他に、TWC Severe Weather API ドキュメントを参考にして、http request ノードと API 鍵を使って直接呼び出しを行うこともできます。

The Weather Company API の 1 つとして、National Weather Service で現在発令されているすべての悪天候アラートのクエリーを実行するための API があります。次の例では、これらの悪天候アラートを Node-RED ダッシュボード上にプロットします。

このサンプル・フローと Node-RED ダッシュボードは、Call for Code ソリューションの一部として役立つ可能性があります。

悪天候アラートを地図上に表示する

悪天候アラート・ダッシュボード

コードを入手する: 悪天候アラート用の Node-RED フロー

悪天候アラート・フロー

まとめ

Call for Code 水資源維持ソリューションを構築してください!

このチュートリアルで学んだ知識を生かし、次はサンプル・フローと Node-RED ダッシュボードに変更を加えて、Call for Code 水資源維持ソリューションを構築してください。