Earth2studio Deterministic Forecast
NVIDIAOfficialCreated by NVIDIA Earth-2 Team
- Skill
- Tool integration
- Science and research
- Apache-2.0
- Medium risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to creating single-member deterministic weather forecast scripts using Earth2Studio. It guides users through the selection of prognostic models, compatible data sources, and appropriate IO backends, while ensuring correct calculation of forecast steps and output configuration. The skill focuses exclusively on inference workflows, ensuring users follow best practices for model loading and data handling within the Earth2Studio ecosystem.
What it does
- Selects appropriate prognostic models based on time horizon and region.
- Verifies compatibility between model input requirements and data source lexicons.
- Calculates the required number of inference steps based on forecast duration and model resolution.
- Configures IO backends for saving forecast results.
- Generates Python scripts utilizing the earth2studio.run.deterministic interface.
- Provides a manual loop implementation path for custom inference requirements.
When to use it
- When you need to run a single-member deterministic weather forecast.
- When integrating specific prognostic models with Earth2Studio data sources.
- When you need to automate the generation of inference scripts for weather modeling.
- When you need to select the correct IO backend for your forecast output storage.
Advantages
- Ensures compatibility between models and data sources through lexicon verification.
- Standardizes the script generation process for deterministic inference.
- Provides clear guidance on IO backend selection for different storage needs.
- Reduces errors in step calculation and coordinate filtering.
Usage examples
- “Create a 3-day deterministic forecast script using the Pangu model and GFS data.”
- The agent will generate a Python script using earth2studio.run.deterministic, selecting the Pangu model class, GFS data source, and configuring the nsteps for a 72-hour forecast.
- “How do I save only temperature and wind data from my forecast?”
- The agent will provide the code to configure the output_coords parameter in the deterministic run function to filter for specific variables, reducing output file size.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/earth2studio-deterministic-forecast/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip earth2studio-deterministic-forecast.zip -d .agents/skills
Documentation by NVIDIA Earth-2 Team
Earth2Studio Deterministic Forecast Skill
Guide users through building deterministic (single-member) weather forecast
inference scripts using earth2studio.run.deterministic.
Prerequisites
Earth2Studio installed with CUDA-capable GPU
Python 3.10+, network access for model weights and data
Live Doc References
Fetch relevant docs to verify current APIs before recommending components:
| Component | URL |
|---|---|
| Prognostic models | https://nvidia.github.io/earth2studio/modules/models_px.html |
| Data sources (analysis) | https://nvidia.github.io/earth2studio/modules/datasources_analysis.html |
| Data sources (forecast) | https://nvidia.github.io/earth2studio/modules/datasources_forecast.html |
| IO backends | https://nvidia.github.io/earth2studio/modules/io.html |
run.deterministic | https://github.com/NVIDIA/earth2studio/blob/main/earth2studio/run.py |
Workflow
1. Gather Requirements (skip what's already provided)
Time horizon (hours/days/weeks)
Variables of interest (t2m, wind, geopotential, etc.)
Region (global or specific like CONUS)
GPU/VRAM available
2. Select Model
Fetch prognostic models page. Filter by time horizon, region, VRAM. Note model's:
Input variables (
input_coords["variable"])Time step size (
output_coords["lead_time"])
3. Select Data Source
Data source must provide all model input variables. Verify via lexicon at
earth2studio/lexicon/<source>.py. Common pairings: Global models → GFS/ARCO/IFS;
Regional → HRRR.
4. Select IO Backend
Default: ZarrBackend. Use NetCDF4Backend for legacy tools, XarrayBackend
for in-memory/small runs.
5. Calculate nsteps
nsteps = forecast_hours / model_step_hours
Example: 5-day forecast with 6h step → nsteps = 120 / 6 = 20
6. Decide: output_coords Filtering
Filter variables (
output_coords) when user requests specific variables (e.g., "t2m and wind") - reduces output sizeSave all variables (omit
output_coords) when user says "all variables" or doesn't specify - preserves full model output
7. Generate Script
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. Manual Loop Alternative
When user explicitly requests manual implementation (NOT using earth2studio.run.deterministic), follow this checklist in order:
fetch_data - Get initial conditions:
x, coords = fetch_data(data, time, model.input_coords, device)Setup total_coords - Build coordinate arrays for time and lead_time dimensions
io.add_array - Initialize IO backend with total_coords before loop
create_iterator - Create prognostic iterator:
model_iter = model.create_iterator(x, coords)Loop through nsteps -
for step, (x, coords) in enumerate(model_iter): if step >= nsteps: breakmap_coords - Filter output variables if needed:
x_out, coords_out = map_coords(x, coords, output_coords)split_coords - Prepare for IO write:
x_out, coords_out = split_coords(x_out, coords_out)io.write - Write each step to backend
9. Explain Next Steps
How to change forecast time or run multiple initializations
How to read output (
xr.open_zarr(...))Point to diagnostic workflow for post-processing
Ownership
Owns: Model selection, data source compatibility, IO backend selection,
nsteps calculation, generating earth2studio.run.deterministic scripts.
Does not own: Ensemble workflows, diagnostics, data-only fetch, installation, model training.
Troubleshooting
See references/troubleshooting.md for common errors and solutions.
Reminders
Always fetch live docs before recommending models or data sources - APIs change between releases
Verify lexicon compatibility - Model input variables must exist in data source's VOCAB
Use
load_default_package()- This is the standard pattern for loading model weightsTime format is ISO 8601 - Use
"YYYY-MM-DDTHH:MM:SS"format for thetimeargumentWind speed needs both components - If user asks for "wind speed", include both
u10mandv10mnsteps is integer division -
nsteps = total_hours // model_step_hoursZarrBackend is the default - Only suggest alternatives if user has specific requirements
GPU is required - All prognostic models require CUDA; CPU inference is not supported
Files
- ATTRIBUTION.mdAdded by AutoGineer976 B
- BENCHMARK.md3.0 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md5.4 KiB
- evals/config.yml1.2 KiB
- evals/environment/Dockerfile702 B
- evals/environment/setup/bootstrap.shScript959 B
- evals/evals.json5.5 KiB
- evals/targets/eval_1_target.pyScript1.6 KiB
- evals/targets/eval_2_target.pyScript1.4 KiB
- evals/targets/eval_3_target.pyScript3.2 KiB
- references/troubleshooting.md1.5 KiB
- skill-card.md2.7 KiB
- skill.oms.sig6.2 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA Earth-2 Team
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/earth2studio-deterministic-forecast · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA Earth-2 Team or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download earth2studio-deterministic-forecast.zip