Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build deterministic forecast scripts with Earth2Studio (model, data source, IO, inference). Do NOT use for ensemble, diagnostics, data-only fetch, or install.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 196% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 70% | 0% |
Guide users through building deterministic (single-member) weather forecast inference scripts using earth2studio.run.deterministic.
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> |
Fetch prognostic models page. Filter by time horizon, region, VRAM. Note model's:
input_coords["variable"])output_coords["lead_time"])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.
Default: ZarrBackend. Use NetCDF4Backend for legacy tools, XarrayBackend for in-memory/small runs.
nsteps = forecast_hours / model_step_hours
Example: 5-day forecast with 6h step → nsteps = 120 / 6 = 20
output_coords) when user requests specific variables (e.g., "t2m and wind") - reduces output sizeoutput_coords) when user says "all variables" or doesn't specify - preserves full model outputpythonfrom 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"), )
When user explicitly requests manual implementation (NOT using earth2studio.run.deterministic), follow this checklist in order:
x, coords = fetch_data(data, time, model.input_coords, device)model_iter = model.create_iterator(x, coords)for step, (x, coords) in enumerate(model_iter): if step >= nsteps: breakx_out, coords_out = map_coords(x, coords, output_coords)x_out, coords_out = split_coords(x_out, coords_out)xr.open_zarr(...))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.
See references/troubleshooting.md for common errors and solutions.
load_default_package() - This is the standard pattern for loading model weights"YYYY-MM-DDTHH:MM:SS" format for the time argumentu10m and v10mnsteps = total_hours // model_step_hoursOther measured skills in the registry, with their headline benchmark lift.