はじめに
Rubyを使って何かできないか考え、ふと天気が取得できたらいいなと思ったのがきっかけです。
環境
macOS Mojave(10.14.4)
Ruby 2.6.3
OpenWeatherMapについて
現在の天気と天気予報を行ってくれるサイトです。
またAPIを利用することで、以下機能を無料で実行できます。
- 20万以上の都市を含む、あらゆる場所の現在の天気データにアクセス
- 4万以上の気象観測所からのデータと、グローバルモデルに基づいて天気を頻繁に更新
- JSON、XML、HTMLフォーマットでデータを取得可能
- 3時間毎の天気を5日後まで取得可能
API Key取得
OpenWeatherMapにアクセスします。
アカウントを作成すると、登録したメールアドレス宛にメールが届きます。
その中にAPI KEYがあります。
取得処理
こちらの記事を参考にさせていただきました。
無料天気予報APIのOpenWeatherMapを使ってみる
調べたい場所は東京を指定しました。
response = open(URL + "?q=Tokyo,jp&APPID=#{API_KEY}")
puts JSON.pretty_generate(JSON.parse(response.read))
取得結果
5/2 22時過ぎごろに実行したときの取得結果です。
{
"cod": "200",
"message": 0.008,
"cnt": 40,
"list": [
・・・略・・・
{
"dt": 1556841600,
"main": {
"temp": 291.03,
"temp_min": 291.03,
"temp_max": 292.081,
"pressure": 1015.3,
"sea_level": 1015.3,
"grnd_level": 1012.9,
"humidity": 40,
"temp_kf": -1.05
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds",
"icon": "04d"
}
],
"clouds": {
"all": 83
},
"wind": {
"speed": 1.19,
"deg": 84.806
},
"sys": {
"pod": "d"
},
"dt_txt": "2019-05-03 00:00:00"
},
・・・略・・・
"city": {
"id": 1850147,
"name": "Tokyo",
"coord": {
"lat": 35.6828,
"lon": 139.759
},
"country": "JP",
"population": 8336599
}
5/2 24時ごろは曇りのようですね。
broken cloudsが83%となっているので、ちぎれ雲のようなものが空のほとんどを占めているようです。
比較のためにヤフー天気を見てみました。
雲ひとつないですね、全く逆ですね。。。
まとめ
予報は外れているものの、APIを使用した取得は面白かったです。
他にも天気予報のAPIを公開しているところがあるようなので、OpenWeatherMapと他を組み合わせながら出力すると面白いと思います。
またOpenWeatherMapは都市のIDや、郵便番号や緯度経度も指定できるようなのでそちらも試してみます。
その際には天気のアイコンも出したいですね。