LoginSignup
3
2

More than 3 years have passed since last update.

RubyでOpenWeatherMapを使って天気を取得してみた

Posted at

はじめに

Rubyを使って何かできないか考え、ふと天気が取得できたらいいなと思ったのがきっかけです。

環境

macOS Mojave(10.14.4)
Ruby 2.6.3

OpenWeatherMapについて

現在の天気と天気予報を行ってくれるサイトです。
またAPIを利用することで、以下機能を無料で実行できます。

  • 20万以上の都市を含む、あらゆる場所の現在の天気データにアクセス
  • 4万以上の気象観測所からのデータと、グローバルモデルに基づいて天気を頻繁に更新
  • JSON、XML、HTMLフォーマットでデータを取得可能
  • 3時間毎の天気を5日後まで取得可能

API Key取得

OpenWeatherMapにアクセスします。
スクリーンショット 2019-05-02 21.35.16.png

Sign upをクリックし、アカウントを作成します。
CreateAccount.png

アカウントを作成すると、登録したメールアドレス宛にメールが届きます。
その中に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%となっているので、ちぎれ雲のようなものが空のほとんどを占めているようです。

比較のためにヤフー天気を見てみました。
スクリーンショット 2019-05-02 22.18.09.png
雲ひとつないですね、全く逆ですね。。。

まとめ

予報は外れているものの、APIを使用した取得は面白かったです。
他にも天気予報のAPIを公開しているところがあるようなので、OpenWeatherMapと他を組み合わせながら出力すると面白いと思います。

またOpenWeatherMapは都市のIDや、郵便番号や緯度経度も指定できるようなのでそちらも試してみます。

その際には天気のアイコンも出したいですね。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2