リアルタイムの波浪データを取得するには

リアルタイムの波浪データを取得するには、ECMWFのAPIや他の無料で提供されているAPIを利用することが一般的です。以下はECMWFのERA5波浪データを取得するためのPython関数の例です。ただし、ECMWFのAPIは無料枠がありますが、一定の制限があるため注意が必要です。

import requests
import pandas as pd

def get_wave_data(latitude, longitude):
    # ECMWF APIのアクセス情報
    api_url = "https://api.ecmwf.int/v1"
    resource = "data"
    product_type = "reanalysis"
    dataset = "era5"
    stream = "moda"
    variable = "swh"  # 有義波の有義波高
    date = "2023-11-25/to/2023-11-25"
    
    # APIキーの取得(ECMWFのウェブサイトでアカウントを作成し、APIキーを取得してください)
    api_key = "YOUR_API_KEY"
    
    # APIにリクエストを送信してデータを取得
    request_url = f"{api_url}/{resource}/{product_type}/{dataset}/{stream}/{variable}?latitude={latitude}&longitude={longitude}&date={date}"
    headers = {"Content-Type": "application/json"}
    params = {"key": api_key}
    
    response = requests.get(request_url, headers=headers, params=params)
    
    if response.status_code == 200:
        # レスポンスデータをPandas DataFrameに変換
        data = response.json()["data"]
        df = pd.DataFrame(data)
        return df
    else:
        print(f"Error: {response.status_code}, {response.text}")
        return None

# 例として東京湾の座標を使用
latitude = 35.6895
longitude = 139.6917

# データ取得
wave_data = get_wave_data(latitude, longitude)

# 結果表示
if wave_data is not None:
    print(wave_data)

このコードでは、ECMWFのERA5データセットから指定した緯度・経度の有義波高(significant wave height)データを取得します。APIキーはECMWFのウェブサイトでアカウントを作成し、APIキーを取得してください。また、APIの制限に注意してください。

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