見出し画像

OpenMeteoによる気温,日射量取得

天気予報の取得

今日も今日とて、まぁ暑い。。
思わず体力づくりのために焼肉食べに行った。
さて、前回は室内の話だったので、今回はお天気取得。

天気予報のAPIは調べるとたくさんあるわけだが、
今回は面白いものがあったので、備忘録。

OpenMeteo

OpenMeteo公式サイト 日本語訳

・無料 & APIキーなしで利用できる!!(非営利目的のみ)
・National Weather Service(アメリカ国立気象局)のデータ
・めちゃ使いやすい

これはなかなか強い。
これ以上最強のものを探すのはなかなか難儀なのではと思ってしまう。
早速、APIいじりをおこなった。
OpenMeteoのAPI Documentationがあるので、そちらを参考。

# 日射量取得(shortwave radiation)の取得
##### Forecast_radiation.py #####

# API Documentation: https://open-meteo.com/en/docs#api-documentation

import requests
import pandas as pd

# 緯度:$$$, 経度:###
latitude   = $$$
longtitude = ###
para_def1   = "temperature_2m"
para_def2   = "shortwave_radiation"

url = f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longtitude}&hourly={para_def1},{para_def2}&timezone=Asia%2FTokyo"
response = requests.get(url)

data = response.json()

# dataframeの列名設定
df = pd.DataFrame(columns=['date_hour', f'{para_def1}', f'{para_def2}'])

for i in range(len(data["hourly"]["time"])):
    date = str(data["hourly"]["time"][i])
    date = date[:-6]

    hour = str(data["hourly"]["time"][i])
    hour = hour[-5:]

    date_hour = date + " " + hour

    temp = float(data["hourly"][f"{para_def1}"][i])

    radiation = float(data["hourly"][f"{para_def2}"][i])

    df = df.append({'date_hour':date_hour, f'{para_def1}':temp, f'{para_def2}':radiation}, ignore_index=True)

df.to_csv(f'data_{para_def1}_{para_def2}.csv')

APIいじり初心者でも、たった数十行のコードで気温と日射量の予測を
簡単に抽出できる。

OpenMeteo 気温,日射量予測 1hrごとで抽出できる

無料で引き続き使います。

おわり

この記事が気に入ったらサポートをしてみませんか?