【WebAPI】OpenWeatherMapAPIで5日間の天候の予報情報を取得する(1)

   


今回は、5日間の天候の予報情報をWebAPIで取得してみたいと思います。

現在の気象状況の取得では、ZIPコードでの指定や、複数の都市をまとめて取得することもできましたが予報情報の取得ではそれらは対応していないようです。

一つの都市の気象予報情報を取得する方法

5日間の気象情報を3時間置きに取得できる。

取得するには、URL末尾に「forecast?」を付け、続けて条件毎にパラメータを付ける。
また、appid={APIKEY}を付けなければいけない。
※{APIKEY} はアカウントを登録して取得したキー

都市名、または都市名と国名コードで検索する

forecast?q={city name}
forecast?q={city name},{country code}

例:都市名「東京」で検索する
http://api.openweathermap.org/data/2.5/forecast?q=tokyo&appid={APIKEY}

例:都市名「東京」と国名コード「JP」で検索する
http://api.openweathermap.org/data/2.5/forecast?q=tokyo,jp&appid={APIKEY}

※国名コードはwikipediaのISO 3166-1の以下のサイトを参考。
https://ja.wikipedia.org/wiki/ISO_3166-1

都市IDで検索する

forecast?id={city id}

例:東京の都市ID「1850147」で検索する
http://api.openweathermap.org/data/2.5/forecast?id=1850147&appid={APIKEY}

都市IDは以下のページで、都市の一覧が載っているファイル(city.list.json.gz)をダウンロードできる。
※明確な結果を得るために、都市IDでの検索を推奨しているとのこと。
http://bulk.openweathermap.org/sample/

city.list.json.gz を解凍すると以下のようなテキストファイルになっている。(東京の行を抜粋)
{"_id":1850147,"name":"Tokyo","country":"JP","coord":{"lon":139.691711,"lat":35.689499}}

_idの値が、都市IDに該当する。

緯度、経度で検索する

forecast?lat={lat}&lon={lon}

例:東京の緯度、経度「35.69, 139.69」で検索する
http://api.openweathermap.org/data/2.5/forecast?lat=35.69&lon=139.69&appid={APIKEY}

取得するファイル形式の選択

取得するファイルの形式を、JSON、XMLから選択できる。

mode=xml を指定すると、XML
省略すると、JSON形式
で取得する。

※mode=html に関しては、予報情報の取得には対応していないようだ。以下のようなエラーが表示された。
{"cod":"400","message":"Error: mode isn't supported"}

使用例:
XML
http://api.openweathermap.org/data/2.5/forecast?q=tokyo&appid={APIKEY}&mode=xml

HTML(未対応)
http://api.openweathermap.org/data/2.5/forecast?q=tokyo&appid={APIKEY}&mode=html

JSON
http://api.openweathermap.org/data/2.5/forecast?q=tokyo&appid={APIKEY}

都市名の完全一致と部分一致

都市名の検索において、完全一致した都市を取得するのか、部分一致した都市を取得するのかを指定できる。

type=accurate ・・・ 完全一致
http://api.openweathermap.org/data/2.5/forecast?q=London&type=accurate&mode=xml&appid={APIKEY}&type=like

type=like ・・・ 部分一致
http://api.openweathermap.org/data/2.5/forecast?q=London&type=like&mode=xml&appid={APIKEY}&type=like

指定しない ・・・ 部分一致(と思う。実行結果がtype=likeと同じなので。)
http://api.openweathermap.org/data/2.5/forecast?q=London&mode=xml&appid={APIKEY}&type=like

気温の単位の指定

気温の単位を指定できる。

指定しない ・・・ ケルビン
api.openweathermap.org/data/2.5/forecast?q=London&appid={APIKEY}

units=metric ・・・ 摂氏
api.openweathermap.org/data/2.5/forecast?q=London&appid={APIKEY}&units=metric

units=imperial ・・・ 華氏
api.openweathermap.org/data/2.5/forecast?q=London&appid={APIKEY}&units=imperial

まとめ

指定できる条件が現在の気象状況より少ないだけで、ほとんど取得方法は変わりないですね。

 - OpenWeatherMap , , , , ,