Skip to content
Development
Skill

/earth2studio-deterministic-forecast

Build deterministic forecast scripts with Earth2Studio (model, data source, IO, inference). Do NOT use for ensemble, diagnostics, data-only fetch, or install.

From plugin
skills
3.8k200 skills

Claude Code

$ npx -y skills add NVIDIA/skills --skill earth2studio-deterministic-forecast --agent claude-code

SKILL.md

earth2studio-deterministic-forecast.SKILL.md
name: earth2studio-deterministic-forecast
version: 0.16.0
license: Apache-2.0
metadata:
  author: NVIDIA Earth-2 Team
  tags:
    - earth2studio
    - earth2
    - python
    - inference
    - forecast
    - deterministic
description: >
  Build deterministic forecast scripts with Earth2Studio (model, data source,
  IO, inference). Do NOT use for ensemble, diagnostics, data-only fetch, or
  install.

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 size
  • **Save 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:

1. **fetch_data** - Get initial conditions: `x, coords = fetch_data(data, time, model.input_coords, device)` 2. **Setup total_coords** - Build coordinate arrays for time and lead_time dimensions 3. **io.add_array** - Initialize IO backend with total_coords before loop 4. **create_iterator** - Create prognostic iterator: `model_iter = model.create_iterator(x, coords)` 5. **Loop through nsteps** - `for step, (x, coords) in enumerate(model_iter): if step >= nsteps: break` 6. **map_coords** - Filter output variables if needed: `x_out, coords_out = map_coords(x, coords, output_coords)` 7. **split_coords** - Prepare for IO write: `x_out, coords_out = split_coords(x_out, coords_out)` 8. **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 weights
  • **Time format is ISO 8601** - Use `"YYYY-MM-DDTHH:MM:SS"` format for the `time` argument
  • **Wind speed needs both components** - If user asks for "wind speed", include both `u10m` and `v10m`
  • **nsteps is integer division** - `nsteps = total_hours // model_step_hours`
  • **ZarrBackend is the default** - Only suggest alternatives if user has specific requirements
  • **GPU is required** - All prognostic models require CUDA; CPU inference is not supported
Read more
@nvidia
Ships withskills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

3.8k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of NVIDIA/skills on GitHub, a chart by star-history.com

Other skills on skills.

nvidia-skill-finder

nvidia-skill-finder

Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA…

@nvidia@nvidiaInstall Skill
accelerated-computing-cudf

accelerated-computing-…

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby,…

@nvidia@nvidiaInstall Skill
amc-run-rtsp-calibration

amc-run-rtsp-calibrati…

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or…

@nvidia@nvidiaInstall Skill
amc-run-sample-calibration

amc-run-sample-calibra…

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice.…

@nvidia@nvidiaInstall Skill
amc-run-video-calibration

amc-run-video-calibrat…

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live…

@nvidia@nvidiaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about earth2studio-deterministic-forecast.

Which coding agents can use earth2studio-deterministic-forecast?
earth2studio-deterministic-forecast installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.