ロケの日の天気や予報をOpenWeatherMapのAPIを使ってチェック!

ロケの日の天気や予報をOpenWeatherMapのAPIを使ってチェック!

自然界の収録等ロケの日はとにかく天気に左右されます。

OpenWeatherMapのAPIを使えばPythonで簡単に天気や天気予報を取得できますので、コードをメモしておきます。

OpenWeatherMapのAPIは無料版で1分間に60回まで取得できますので、必要十分な機能ですね。

地域の現在の天気を取得

OpenWeatherMapには各エリアで都市コードというものが割り当てられており、それを指定して情報を取得します。

今回はタンゴ部門からサイトに現在の天気をいつでも表示するプログラムを実装してほしいと依頼があったので、ブエノスアイレスの天気を取得してみます。

import requests
import json

# OpenWeatherMap APIキー
api_key = "ここにあなたのAPIキーを入力"

# ブエノスアイレスの都市ID
city_id = 3435910

# APIエンドポイントURL
url = f"http://api.openweathermap.org/data/2.5/weather?id={city_id}&appid={api_key}&units=metric"

# APIリクエストを送信してレスポンスを受信
response = requests.get(url)

# JSONデータを解析
data = json.loads(response.text)

# 天気情報を取得
description = data['weather'][0]['description']
temperature = data['main']['temp']
humidity = data['main']['humidity']
wind_speed = data['wind']['speed']

# 結果を表示
print(f"天気: {description}")
print(f"気温: {temperature}℃")
print(f"湿度: {humidity}%")
print(f"風速: {wind_speed}m/s")
icon image

ちなみにAPIキーは登録後のマイページでも見れますし、メールでわざわざ届けてくれるので便利!

明日の天気予報

import requests
import json
from datetime import datetime, timedelta

# OpenWeatherMap APIキー
api_key = "ここにあなたのAPIキーを入力"

# ブエノスアイレスの都市ID
city_id = 3435910

# 明日の日付を取得
tomorrow = datetime.now() + timedelta(days=1)
tomorrow_str = tomorrow.strftime('%Y-%m-%d')

# APIエンドポイントURL
url = f"http://api.openweathermap.org/data/2.5/forecast?id={city_id}&appid={api_key}&units=metric"

# APIリクエストを送信してレスポンスを受信
response = requests.get(url)

# JSONデータを解析
data = json.loads(response.text)

# 明日の天気情報を取得
forecast_data = None
for item in data['list']:
    if item['dt_txt'].startswith(tomorrow_str):
        forecast_data = item
        break

if forecast_data is None:
    print("明日の天気情報が見つかりませんでした。")
else:
    description = forecast_data['weather'][0]['description']
    temperature = forecast_data['main']['temp']
    humidity = forecast_data['main']['humidity']
    wind_speed = forecast_data['wind']['speed']

    # 結果を表示
    print(f"天気: {description}")
    print(f"気温: {temperature}℃")
    print(f"湿度: {humidity}%")
    print(f"風速: {wind_speed}m/s")

ちなみに無料版では3日先まで天気予報を表示できます。

import requests
import json
from datetime import datetime, timedelta

# OpenWeatherMap APIキー
api_key = "ここにあなたのAPIキーを入力"

# ブエノスアイレスの都市ID
city_id = 3435910

# 取得したい日付を指定(YYYY-MM-DD形式)
target_date_str = "2023-02-20"

# APIエンドポイントURL
url = f"http://api.openweathermap.org/data/2.5/forecast?id={city_id}&appid={api_key}&units=metric"

# APIリクエストを送信してレスポンスを受信
response = requests.get(url)

# JSONデータを解析
data = json.loads(response.text)

# 指定した日の天気情報を取得
forecast_data = None
for item in data['list']:
    if item['dt_txt'].startswith(target_date_str):
        forecast_data = item
        break

if forecast_data is None:
    print(f"{target_date_str}の天気情報が見つかりませんでした。")
else:
    description = forecast_data['weather'][0]['description']
    temperature = forecast_data['main']['temp']
    humidity = forecast_data['main']['humidity']
    wind_speed = forecast_data['wind']['speed']

    # 結果を表示
    print(f"{target_date_str}の天気: {description}")
    print(f"{target_date_str}の気温: {temperature}℃")
    print(f"{target_date_str}の湿度: {humidity}%")
    print(f"{target_date_str}の風速: {wind_speed}m/s")
icon image

風速なんかも一発表示なので、M5Stackなどのマイコンに書き込んでドローンでのロケなんかに随時チェックしたりといろいろなアイディアが考えられますね!

プロフィール

こうたろう
こうたろう
音大を卒業後ピアニストとして活動。
日本で活動後北欧スウェーデンへ。
アーティストLindha Kallerdahlと声帯とピアノによる即興哲学を研究。
その後ドイツ・ケルンに渡りAchim Tangと共にアルバム作品制作。
帰国後、金田式DC録音の第一人者:五島昭彦氏のスタジオ「タイムマシンレコード」にアシスタントとして弟子入り。
独立後音楽レーベル「芸術工房Pinocoa(現:Kotaro Studio)」を結成。
タンゴやクラシックなどアコースティック音楽作品を多数プロデュース。
大阪ベンチャー研究会にて『芸術家皆起業論~変化する社会の中、芸術家で在り続けるために』を講演。
その後、秋山庄太郎氏後継の写真スタジオ「村上アーカイブス」でサウンドデザイナー兼音響担当として映像制作チームに参加。
村上宏治氏の元で本格的に写真、映像技術を学ぶ。
祖父母の在宅介護をきっかけにプログラムの世界に興味を持ち、株式会社 ジオセンスの代表取締役社長:小林一英氏よりプログラムを学ぶ。
現在はKotaro Studioにて『あなたのためのアートスタジオ』音と絵をテーマに芸術家として活動中。
2023年より誰かのための癒しの場所『Curanz Sounds』をプロデュース。

Share this post