0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【OpenWeatherAPI】リクエスト・レスポンスの項目に関するメモ書き

Last updated at Posted at 2022-04-22

概要

天気の情報を取得できるAPIとして、けっこう挙がるのがOpenWeatherAPIでしょう。無料枠もあるので試しに使ってみたのですが、レスポンス項目について調べないとピンとこないのがあったので、今回メモ書きします。

前提

  • 今回使用するAPIは無料プランで使える3-hour Forecast 5 daysです。無料プランで使えるAPIはこちらを参照ください。(おそらく他のAPIもほぼ同様の形式だと思いますが)
  • 3-hour Forecast 5 daysのAPIの仕様については、こちらのドキュメントを参照ください。
  • 前提とするAPIの仕様について、2022年4月時点のものとします。
  • APIのメモ書きについて、主に使われそうな項目をピックアップして取り上げます。(全項目は触れません)
  • API 送信時に使用するappidの取得については、世界の天気API「OpenWeatherMap」の無料APIキー発行・取得、リクエスト方法の記事を参照ください。

メモ書き

<リクエスト>

リクエスト項目で主に指定するのはappidlat(緯度)lon(経度)units(単位)だと思います。
unitsの詳細についてはこちらで解説されてます。基本的には気温の単位を設定するものになっていて、日本では摂氏での表記が一般的だと思うのでmetricを指定すれば良いと思います。
というわけで、リクエストのURLは以下の通りに投げれば、ほぼほぼ問題ないかなと思います。

https://api.openweathermap.org/data/2.5/forecast?lat=35.6806429&lon=139.7599219&appid=xxxxxxxxxxxxxxxx&units=metric

<レスポンス>

上記のURLでリクエストを投げると、以下のようなレスポンスが得られると思います。

{
  "cod": "200",
  "message": 0,
  "cnt": 40,
  "list": [
    {
      "dt": 1650790800,
      "main": {
        "temp": 17.04,
        "feels_like": 16.39,
        "temp_min": 17.04,
        "temp_max": 17.04,
        "pressure": 1014,
        "sea_level": 1014,
        "grnd_level": 1013,
        "humidity": 61,
        "temp_kf": 0
      },
      "weather": [
        {
          "id": 500,
          "main": "Rain",
          "description": "light rain",
          "icon": "10d"
        }
      ],
      "clouds": { "all": 100 },
      "wind": { "speed": 2.46, "deg": 15, "gust": 2.72 },
      "visibility": 10000,
      "pop": 0.54,
      "rain": { "3h": 0.2 },
      "sys": { "pod": "d" },
      "dt_txt": "2022-04-24 09:00:00"
    },
    
    
    
  ]
}

ざっくりと項目毎に内容を以下で補足します。

【天気】
weather項目に入ってるのが天気の情報です。main項目にざっくりとした天気の文字が入っています。idiconの意味合いについては、Weather condition codesのドキュメントを参照ください。
【日時】
dt項目にUnixtimeが入っています。一応、dt_txtでテキスト形式の項目もありますが、上記のリクエスト形式で投げるとUTCで返ってきます。

【気温】
temp(気温)feels_like(体感気温)temp_min(最低気温)temp_max(最高気温)が摂氏で取得できます。

【気圧】
pressure(気圧)sea_level(海面気圧)grnd_level(地点気圧)がヘクトパスカル(hpa)の単位で取得できます。気圧の詳細については気圧と高さ・高度の関係【気象予報士が解説】を参照頂きたいのですが、基本的にpressureにはsea_levelが設定されるようです。

【湿度】
humidityの項目でにて、%表記で取得できます。

【雲】
cloudsの項目で、雲が覆われてる度合いが%表記で取得できます。

【降水量】
天気がRainの時だけ、降水量がrainの項目で取得できます。3時間単位でミリメートルで設定されます。

【風】
windの項目にて、speed(風速)deg(方位角)gust(最大瞬間風速)が取得できます。風速の単位はメートル/秒になります。方位角の詳細については方位角・仰角・偏波角の解説を参照ください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?