earth2studio-deterministic-forecast について
earth2studio-deterministic-forecast は、Earth2Studio で決定論的な気象予報の推論スクリプトを作成するスキルです。モデル、入力データソース、出力バックエンドの選定を案内し、予報ステップ数を計算してスクリプトを用意します。
主な機能
- 01予報モデルの選定支援
- 02データソースとの互換性確認
- 03IO バックエンドの選択
- 04予報ステップ数の計算
- 05決定論的推論スクリプトの作成
- 06手動推論ループの案内
活用シーン
- 01単一メンバーの気象予報の構築
- 02モデル入力用データソースの選定
- 03適切なバックエンドでの予報出力保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nvidia/ skills --skill earth2studio-deterministic-forecastインストール後、Claude Code で/earth2studio-deterministic-forecastを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/config.ymlevals.jsonevals/environment/Dockerfileevals/environment/setup/bootstrap.shevals/targets/eval_1_target.pyeval_2_target.pyeval_3_target.pyreferences/troubleshooting.md詳細
Earth2Studio 決定論的予報スキル
earth2studio.run.deterministic を使用して、決定論的(単一メンバー)気象予報の推論スクリプトを作成する方法をユーザーに案内します。
前提条件
- CUDA 対応 GPU に Earth2Studio がインストールされていること
- Python 3.10 以降。モデルの重みとデータを取得するためのネットワークアクセスがあること
最新ドキュメントの参照先
コンポーネントを推奨する前に、関連ドキュメントを取得して現在の API を確認してください。
ワークフロー
1. 要件を確認する(すでに提示されている内容は省略)
- 予報期間(時間/日/週)
- 関心のある変数(t2m、風、ジオポテンシャルなど)
- 地域(全球または CONUS のような特定地域)
- 利用可能な GPU/VRAM
2. モデルを選択する
予測モデルのページを取得します。予報期間、地域、VRAM に基づいて絞り込みます。モデルの以下の項目を確認します。
- 入力変数(
input_coords["variable"]) - 時間ステップの長さ(
output_coords["lead_time"])
3. データソースを選択する
データソースは、モデルの入力変数をすべて提供する必要があります。earth2studio/lexicon/<source>.py のレキシコンで確認します。一般的な組み合わせは、全球モデル → GFS/ARCO/IFS、地域モデル → HRRR です。
4. IO バックエンドを選択する
デフォルトは ZarrBackend です。レガシーツールには NetCDF4Backend、メモリ内処理や小規模な実行には XarrayBackend を使用します。
5. nsteps を計算する
nsteps = forecast_hours / model_step_hours
例:6 時間ステップで 5 日間の予報 → nsteps = 120 / 6 = 20
6. 出力座標のフィルタリングを決める
- 変数をフィルタリングする(
output_coords):ユーザーが特定の変数(例:「t2m と風」)を指定した場合に使用します。出力サイズを削減できます。 - すべての変数を保存する(
output_coordsを省略):ユーザーが「すべての変数」と指定した場合、または指定がない場合に使用します。モデルの出力全体を保持できます。
7. スクリプトを生成する
from collections import OrderedDict
import numpy as np
import torch
from earth2studio.models.px import <ModelClass>
from earth2studio.data import <DataSourceClass>
from earth2studio.io import <IOBackendClass>
from earth2studio.run import deterministic
model = <ModelClass>.load_model(<ModelClass>.load_default_package())
data = <DataSourceClass>()
io = <IOBackendClass>("<output_path>")
# Include output_coords ONLY if user requested specific variables
output_coords = OrderedDict({"variable": np.array(["t2m", "u10m"])})
io = deterministic(
time=["YYYY-MM-DDTHH:MM:SS"],
nsteps=<N>,
prognostic=model,
data=data,
io=io,
output_coords=output_coords, # omit if saving all variables
device=torch.device("cuda"),
)
8. 手動ループの代替方法
ユーザーが手動での実装(earth2studio.run.deterministic を使用しない方法)を明示的に求めた場合は、次のチェックリストに順番どおりに従います。
- fetch_data - 初期条件を取得します:
x, coords = fetch_data(data, time, model.input_coords, device) - total_coords を設定する - time 次元と lead_time 次元の座標配列を構築します
- io.add_array - ループの前に total_coords を使って IO バックエンドを初期化します
- create_iterator - 予測イテレーターを作成します:
model_iter = model.create_iterator(x, coords) - nsteps 分ループする -
for step, (x, coords) in enumerate(model_iter): if step >= nsteps: break - map_coords - 必要に応じて出力変数をフィルタリングします:
x_out, coords_out = map_coords(x, coords, output_coords) - split_coords - IO 書き込み用に準備します:
x_out, coords_out = split_coords(x_out, coords_out) - io.write - 各ステップをバックエンドに書き込みます
9. 次のステップを説明する
- 予報時刻を変更する方法、または複数の初期化を実行する方法
- 出力を読み込む方法(
xr.open_zarr(...)) - 後処理用の診断ワークフローを案内する
担当範囲
担当する内容: モデルの選択、データソースとの互換性、IO バックエンドの選択、nsteps の計算、earth2studio.run.deterministic スクリプトの生成。
担当しない内容: アンサンブルのワークフロー、診断、データのみの取得、インストール、モデルのトレーニング。
トラブルシューティング
一般的なエラーと解決策については、references/troubleshooting.md を参照してください。
リマインダー
- モデルやデータソースを推奨する前に、必ず最新のドキュメントを取得してください - APIはリリースごとに変更されます
- 語彙の互換性を確認してください - モデルの入力変数がデータソースのVOCABに存在する必要があります
load_default_package()を使用してください - これはモデルの重みを読み込む標準的なパターンです- 時刻の形式はISO 8601です -
time引数には"YYYY-MM-DDTHH:MM:SS"形式を使用してください - 風速には両方の成分が必要です - ユーザーが「風速」を尋ねた場合は、
u10mとv10mの両方を含めてください - nstepsは整数除算です -
nsteps = total_hours // model_step_hours - ZarrBackendがデフォルトです - 特定の要件がある場合にのみ、代替手段を提案してください
- GPUが必要です - すべての予報モデルにはCUDAが必要です。CPUでの推論はサポートされていません