Blog Post
Call for Code: The Weather Company と開発者
気象条件を理解することが、災害前、災害時、災害後の被災者数の大幅な減少につながる理由について説明します。
毎年のように、異常気象と自然災害の発生件数は記録を更新しているようです。これらの事象の頻度は年々増加しています。そして、被災者の数と損害規模は増え続けるばかりです。
破壊的な異常気象が減少する気配はありません。それどころか、National Climate Assessment によると悪化の一途を辿っています。さらに、Centre for Research の災害疫学に関する調査によると、昨年 1 年間で異常気象の影響を受けた人数は 6,000 万人を超えています。
Call for Code
Call for Code は、世界中の開発者に向けたチャレンジです。その目的は、開発者が自然災害について考え、自然災害による影響を軽減するソリューションを作成してポジティブな変化を推進することにあります。Call for Code では、開発のスキルを人命救助に活用するよう、開発者に呼び掛けています。
Call for Code に応募するソリューションでは、次のような面に取り組むことができます。
- 災害事前対策の強化
- 異常気象による影響の軽減
- 自然災害後の復旧支援
昨年優勝したチーム Project Owl は、インターネットに接続不可能になったときに、通信被災者と緊急救援隊員をつなぐオフライン通信ネットワークを開発しました。
The Weather Company
私たちは気象をコントロールできませんが、気象に関する理解を深めることはできます。そうすることで、データとアナリティクスを使用して事前に対策を講じ、異常気象がコミュニティーに与える影響を軽減することができます。正しい知識があれば、異常気象や自然災害をより正確に予測し、事前対策を強化して、災害からより迅速に復旧できるのです!
気象が関わってくる問題を解決するには (つまり、より具体的に言うと気象条件を考慮したアプリケーションを作成するには)、気象データ自体にアクセスできなければなりません。
今回も地球気象データにアクセスできます
The Weather Company® は今回も、Call for Code Global Challenge に参加する開発者たちに Weather Data API を開放しています。開発者は Call for Code に応募するソリューションを構築する際に、これらの API を無料で使用できます。
The Weather Company のよく使われている 25 を超える重要な API エンドポイントを利用することができます。これらのエンドポイントは、次のデータ・パッケージを網羅しています。
- Core Weather Data Package (中心となる気象データのパッケージ): 現在の気象条件、予報、レーダー・データ、衛星データなど、最も重要な気象 API が含まれています。
- Enhanced Current Conditions Weather Data Package (現在の高度な条件の気象データのパッケージ): 200,000 箇所を超える PWS (Personal Weather Station) に基づく、この分野で最も高解像度の気象観測ネットワークの 1 つが含まれています。
- Enhanced Forecast Weather Data Package (高度な予測による気象データのパッケージ): IBM による最先端の予測モデル、200 人の気象学者および気象関連のサイエンティストによる専門知識、観測所、レーダー、衛星を統合した IBM のネットワークとモデリング機能を使用して作成されています。このパッケージは地球全体にわたり、500 平方メートルの解像度で最も正確な予測を実現します。
- Severe Weather Data Package (厳しい天候の気象データのパッケージ): 異常気象の予測データ、リアルタイム・データ、事後推定データが含まれています。ひょう、雷、暴風、竜巻をはじめとするさまざまな気象条件がこのパッケージにまとめられています。
開発者は革新的かつ潜在的な人命救助ソリューションに、異常気象アラート、熱帯性低気圧予報、停電指数などの気象データを簡単に追加できます。
Weather API の使用方法
Weather API にアクセスして使用するには、まず、API キーを登録する必要があります。登録は無料です。いったん登録すると、Call for Code Challenge の開催期間中は Weather API を無料で使用できます。登録フォームを送信すると、登録した e-メール・アドレスに API キーが送られてきます。
利用可能な各エンドポイントの詳細は、このリンク先の API ドキュメントで確認できます。このドキュメントは、作成するアプリケーションに適したエンドポイントを判断する上でも役立ちます。
API を使用するには、適切なエンドポイントに GET
リクエストを送信する必要があります。リクエストには API キーとそのエンドポイントで必要とするパラメーターを含めることが要件となります。例えば、ニューヨーク州ローリー (緯度: 35.843686、経度: -78.78548) の短期 「15 分予報」を取得するには、次のようなリクエストを送信します (curl
を使用)。
curl -X GET "https://api.weather.com/v1/geocode/35.843686/-78.78548/forecast/fifteenminute.json?units=m&language=en-US&apiKey=WXYZ" -H "accept: application/json" -H "Accept-Encoding: gzip"
ここで、WXYZ
は登録後に受け取った API キーです。
実践から学習する
Weather API エンドポイントを使用するサンプル・アプリケーションが含まれている GitHub リポジトリーがオンラインで用意されています。これらのリポジトリーから発想を得たり、API の動作を確認したりできるだけでなく、アプリケーションを作成する際の出発点としてリポジトリーを使用することもできます。サンプル・コードに、以下のエンドポイントに対してクエリーを実行し、エンドポイントから返されたレスポンスを処理する具体的な方法が示されています。
- Weather Alerts – Headlines API: 米国国立気象局 (NWS)、カナダ環境省、MeteoAlarm から発行された気象の観測データ、警告、声明、勧告を取得できます。
- Daily Forecast API: 当日のジオコードによる気象予報を API エンドポイントから取得できます。
- Severe Weather Power Disruption Index 15 Day v2.0: 気象による停電の可能性を示す統計情報を取得できます。
- Tropical -Forecast – Projected Path: 活発な状態の暴風雨ごとに 1 つの予想進路のクエリーを実行できます。
- Weather Alerts Detail: 米国国立気象局 (NWS)、カナダ環境省、MeteoAlarm から発行された気象の観測データ、警告、声明、勧告の詳細を取得できます。
GitHub 上には、サンプル・アプリケーションの Node.js 実装と Python 実装が用意されています。サンプル・コードを実行することで、エンドポイントをアプリケーションに統合する方法を確認できます。また、サンプル・コードを調べると、他の利用可能なエンドポイントを使用する方法も理解できるようになるはずです。サンプル・コードを取得して実行する手順は、Node.js 実装と Python 実装の両方のリポジトリーに含まれています。
サンプル・コードを実行するのは簡単です。大まかな流れとして以下の手順に従うだけで、Node.js または Python を使用したサンプルをローカルで実行できます。
- 目的の GitHub リポジトリー (Node.js および Python) を複製します。
WEATHER_API_KEY
環境変数を作成して、その値を API キーに設定します。npm
(Node.js の場合) またはpip
(Python の場合) を使用して依存関係をインストールします。app.js
(Node.js の場合) またはapp.py
(Python の場合) を起動します。
IBM Cloud Developer Tools を使用してサンプルを IBM Cloud にデプロイする手順は次のとおりです。
- 目的の GitHub リポジトリー (Node.js および Python) を複製します。
manifest.yml
内のWEATHER_API_KEY
変数を更新します。ibmcloud cf push
を使用してアプリケーション/リポジトリーを IBM Cloud にプッシュします。- IBM Cloud アプリケーションを起動します
(IBM Cloud アカウントをまだお持ちでない場合は、このリンク先のページで無料のアカウントを登録してください)。
詳しい手順は、両方のサンプル・コード実装の README で説明されています。
開発者が世界を変える手段
効果的な異常気象対策システムとなるソリューションはありますか?自然災害後の健康上の懸念を軽減したいですか?どのようなアイデアであるかに関わらず、このイニシアチブに参加してください。
直接的な影響を持続できるソリューションを構築することに興味がありますか?このチャレンジに参加するには、まだ遅くありません。Call for Code 2019 への応募締め切りは 2019 年 7 月 29 日です。
開発者として世界を変えることができます!
Raj Singh がこのブログに貢献してくれました。