OpenMeteoによる気温,日射量取得
天気予報の取得
今日も今日とて、まぁ暑い。。
思わず体力づくりのために焼肉食べに行った。
さて、前回は室内の話だったので、今回はお天気取得。
天気予報のAPIは調べるとたくさんあるわけだが、
今回は面白いものがあったので、備忘録。
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いじり初心者でも、たった数十行のコードで気温と日射量の予測を
簡単に抽出できる。
無料で引き続き使います。
おわり