Skip to main content
skill CX Codex

earth2studio-deterministic-forecast — Claude Code skill for weather

A skill that walks you through building a deterministic weather forecast script with Earth2Studio: model, data source, IO backend and inference.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NVIDIA/skills --skill earth2studio-deterministic-forecast -a claude-code
Open on GitHub

What earth2studio-deterministic-forecast does

The skill gathers requirements first — forecast horizon, variables, region, available VRAM — then picks a prognostic model, a data source and an IO backend. The result is a script that calls earth2studio.run.deterministic.

Before recommending components it fetches the live Earth2Studio docs, since APIs shift between releases. Model and data source compatibility is checked against the lexicon: every model input variable has to exist in the source's vocabulary. ZarrBackend is the default; alternatives come up only when you have a specific reason.

A CUDA-capable GPU is required. All prognostic models run on GPU only, CPU inference is not supported. You also need Python 3.10+ and network access for model weights and data. Ask for a manual loop instead of run.deterministic and you get an eight-step checklist, from fetch_data through io.write.

What it helps with

  • build a deterministic forecast script with Earth2Studio
  • pick a model that fits your horizon and VRAM budget
  • confirm the data source supplies every model input variable
  • work out nsteps from forecast hours and model step size
  • choose an IO backend and filter the variables you actually need

Example prompts for the agent

  • build a 5-day temperature forecast script with Earth2Studio
  • I need a deterministic wind forecast, include u10m and v10m
  • do the same but with a manual loop instead of run.deterministic

How to install earth2studio-deterministic-forecast

1Skills CLI (Vercel)

npx skills add NVIDIA/skills --skill earth2studio-deterministic-forecast -a claude-code

2Manually: put the files in place

~/.claude/skills/earth2studio-deterministic-forecast/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/earth2studio-deterministic-forecast/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about earth2studio-deterministic-forecast

How do I install earth2studio-deterministic-forecast in Claude?

Run npx skills add NVIDIA/skills --skill earth2studio-deterministic-forecast -a claude-code. The skill lands in ~/.claude/skills/earth2studio-deterministic-forecast/SKILL.md.

What does earth2studio-deterministic-forecast do?

It guides you through a single-member weather forecast script: model selection, data source, IO backend and nsteps calculation. You end up with code calling earth2studio.run.deterministic.

What do I need before using it?

Earth2Studio installed, a CUDA-capable GPU, Python 3.10+ and network access for model weights and data. Prognostic models do not run on CPU.

Source text

SKILL.md · Apache-2.0
---
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

```python
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

© NVIDIA Earth-2 Team · Apache-2.0 · NVIDIA/skills

Similar skills

Everything for AI and ML →

From the same set178

nemo-rl-auto-research Automates hypothesis testing and training loops in NeMo-RL and NeMo-gym. Keeps experiments tracked through dedicated git branches and TSV logs. CX Codex +1 1,900installs nemo-automodel-launcher-config Configures NeMo AutoModel launches for interactive runs, Slurm clusters, and SkyPilot. Use it when launch YAML or multi-node settings need to be worked out. CX Codex +1 1,900installs nemo-automodel-model-onboarding Walks you through adding a new model architecture to NeMo AutoModel, from reading config.json to registering the class and writing tests. CX Codex +1 1,900installs nemo-automodel-recipe-development Guides the agent in creating and editing NeMo AutoModel training and evaluation recipes. It covers YAML configuration, builder functions, and CLI execution flow. CX Codex +1 1,900installs earth2studio-data-fetch Maps a weather data request onto Earth2Studio sources: checks the lexicon for variable support and writes a Python script returning an xarray DataArray. CX Codex +1 1,900installs earth2studio-discover Finds compatible Earth2Studio models, data sources, and gallery examples for climate workflows. It focuses on discovery, not inference code or data downloads. CX Codex +1 1,900installs earth2studio-install Walks you through installing Earth2Studio and picking the model extras you need. Useful when the environment has to be right before any forecasting work starts. CX Codex +1 1,900installs digital-health-clinical-asr-finetune Skill for running stock NeMo SFT on Parakeet TDT v2 and measuring post-training KER. Useful at Stage 4 when priority Keyword Error Rate exceeds 0.3. CX Codex +1 1,900installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor