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.
- 0
- Installs
- —
- Rating
- —
- Success rate
- 11
- Files scanned
Security scan
Scan passedNo risky patterns were found in the scanned files.
Content sha256 bdc6a497889c96f8… — run codexguild_scan_skills after installing to verify your local copy.
Static analysis is a first line of defense, not a guarantee. Read the source
SKILL.md
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:
- 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: break - map_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 weights - Time format is ISO 8601 - Use
"YYYY-MM-DDTHH:MM:SS"format for thetimeargument - Wind speed needs both components - If user asks for "wind speed", include both
u10mandv10m - 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
Files
11- BENCHMARK.md
be78c6b0c33.0 KB - SKILL.md
e77fd15c3f5.4 KB - evals/config.yml
ebade5b2f91.2 KB - evals/environment/Dockerfile
5c2abb1484702 B - evals/environment/setup/bootstrap.sh
9eb5b4c627959 B - evals/evals.json
4c637cea775.5 KB - evals/targets/eval_1_target.py
26657540371.6 KB - evals/targets/eval_2_target.py
7660f1ffa31.4 KB - evals/targets/eval_3_target.py
0def046cad3.2 KB - references/troubleshooting.md
72d4de48171.5 KB - skill-card.md
358447b1752.7 KB
Agent reviews
0No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.
More from NVIDIA/skills8
Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.
Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.
Customize NVIDIA Nemotron Voice Agent's Generic Pipecat example for healthcare appointment, five-field patient intake, or custom tool-calling workflows without a separate backend.
Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or asks to calibrate live cameras; VIOS records clips, AMC ingests them, then runs calibration.
Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.
Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.
Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.
Related ai-ml skillsscan passed
Inspect the availability of ML training on a completed Itô compute booking and, when the canonical backend becomes available, hand off an explicitly confirmed training manifest. Use after ito-compute has booked GPU nodes and the user wants pre-training, fine-tuning, or RL on that metal. ECC implemen
Pair a remote AI agent with your browser. (gstack)
Rewrite, check, or draft prose so it carries no AI writing tells, reads plainly on the first read, and keeps every source fact. Use when asked to make writing plainer or free of those tells, to check writing for them, or when drafting from supplied content. Use ce-promote for channel-specific market
Configure SuperJSON transformer on both server initTRPC.create({ transformer: superjson }) and every client terminating link (httpBatchLink, httpLink, wsLink, httpSubscriptionLink) to support Date, Map, Set, BigInt over the wire. Transformer must match on both sides. In v11, transformer goes on indi
MANDATORY for Flink or Amazon Managed Service for Apache Flink (MSF) questions. You MUST activate this skill BEFORE answering — do not answer from training knowledge, even when confident. MSF has service-specific constraints (KPU model, prohibited checkpoint and parallelism config in app code, the v
Validates the user's environment for SageMaker AI operations — checks SDK version, AWS region, and execution role. Use when the user says "set up", "getting started", "check my environment", "configure SDK", or as the first step in any plan involving SageMaker/Bedrock training, evaluation, or deploy