The KAGAMI mark КАГАМИ
kagami.bg/academy · lesson · machine-readable viewUPDATED 2026-10-03
IDENTITY
module
GX10-04-49 · FourCastNet 3 forecasting with Earth2Studio
series
GX10 (local AI server class: NVIDIA GB10, e.g. ASUS Ascent GX10 / DGX Spark)
level
Intermediate
duration
1-2 h plus downloads
prerequisites
GB10-class machine with DGX OS (Ubuntu 24.04, Arm64), working PyTorch with GPU, uv, Python 3.13 recommended, CUDA 13.0 recommended, about 128 GB disk, free Copernicus CDS account (optional)
trust_label
UPDATED 2026-10-03 · checked against Earth2Studio and Copernicus documentation · NOT TESTED (no GB10 machine available)
versions
Earth2Studio 0.19.0 (Apache 2.0) · FCN3 (0.25 deg grid, 72 variables, probabilistic) · FCN (26 variables, 6 h step)
language
human view: bg · english edition: /en/academy/gx10/ (same file name)
previous / next
04-48_Spark_Reachy_Robot.html / 04-50_CorrDiff_Downscaling.html
PURPOSE

Run a first AI global forecast on a GB10-class machine: FourCastNet 3 through the Earth2Studio deterministic workflow with GFS initial data and a Zarr output; optionally fetch ERA5 from Copernicus CDS; inspect and crop the result. METHOD LESSON ONLY: this is not an official forecast. Official forecasts and warnings for Bulgaria are issued by NIMH (meteo.bg; warnings: weather.bg/obshtini).

KEY CONCEPTS
COMMANDS / PATHS
CHECKLIST
NEXT MODULE

04-50 · CorrDiff with Earth2Studio (04-50_CorrDiff_Downscaling.html) · previous: 04-48 (04-48_Spark_Reachy_Robot.html) · series index: kagami.bg/academy/gx10/ · offer: Quick experiment (kagami.bg/stalbata/)

SOURCES
TAGS
gx10nvidia-gb10earth2studiofourcastnetweather-aiera5copernicusnot-an-official-forecast
UPDATED · 03.10.2026

FourCastNet on GB10: AI Weather Forecasting with Earth2Studio

FourCastNet is NVIDIA's family of AI models for global weather forecasting. We run the newest one — FourCastNet 3 — through the open Earth2Studio library on a local server of the NVIDIA GB10 class: initial data, a few steps forward and a map. The lesson is about the method, not about a forecast.

⏱ 1–2 hIntermediateGX10Earth2Studio 0.19.0 · FourCastNet 3Python · PyTorch · Zarr
Earth2Studio and the models on your machine🔒 localCopernicus CDS and GFS (initial-state data)🌐 global
⛈️
Meteorology: not an official forecast
This lesson does not give an official forecast and does not replace one. It shows how an AI weather model works. Official forecasts and warnings for Bulgaria are issued by NIMH (the National Institute of Meteorology and Hydrology): meteo.bg; warnings by municipality are at weather.bg/obshtini, and for Europe at meteoalarm.org. Do not make decisions about safety, farming, events or energy from this lesson's output.
🔄
UPDATED · 03.10.2026 — what changed
The lesson has been reworked. We could not match the old route through a "fourcastnet:1.0.0" container with /v1/forecast addresses to public documentation — NVIDIA lists the model in its catalogue as "downloadable", and the current way to use it is the open Earth2Studio library (version 0.19.0). So we now use it, with the newest model, FourCastNet 3. We removed the figures without a source: "45 times faster than ECMWF", "~2 minutes on GX10", the table of other models' run times and the error (RMSE) table — we have no measurement or published source for them. We also removed uses tied to specific organisations and the automatic alerts. We copied the example from the documentation and fixed the Copernicus access: the address is https://cds.climate.copernicus.eu/api and a personal token is used (the old /api/v2 address with "UID:key" is not in today's documentation).
⚠️
What we have not run ourselves
We had no GB10-class machine. Not one command in this lesson was run by us — they were checked against the Earth2Studio and Copernicus documentation as of 03.10.2026, which is why there is no "TESTED" label. Also unchecked: installing Earth2Studio and PyTorch on Arm64 and CUDA 13 on GB10, the names of the extra package groups for FCN3, compute speed and the exact variable names in the output file.
💡
Which FourCastNet?
Earth2Studio has two: FCN — the older version (0.25° grid, 26 variables, 6-hour step), and FCN3 — FourCastNet 3, a probabilistic global model on the same grid with 72 variables. The lesson uses FCN3 because it is in the library's main example.

01What you will learn

02Before you start

WhatValue (per documentation)
LibraryEarth2Studio 0.19.0 · Apache 2.0 licence
ModelFourCastNet 3 (FCN3) · probabilistic · global · 0.25° grid · 72 variables
Data source in the exampleGFS (NOAA)
OutputZarr file (ZarrBackend)
Recommended environmentUbuntu 24.04 · Python 3.13 · CUDA 13.0
Recommended GPU memory for FCN380 GB (Earth2Studio catalogue)

03Steps

  1. How an AI weather model works

    A classic (numerical) model computes the equations of atmospheric physics step by step. An AI model is trained on historical data (the ERA5 reanalysis) and learns how the state of the atmosphere changes over one step; then it repeats that. This does not make it more accurate — it makes it cheap to run and handy for experiments. That is why you always compare it with verified sources.

    In Earth2Studio a workflow is a chain of four parts:

    PartWhat it isIn the example
    Data sourceWhere the initial state of the atmosphere comes fromGFS()
    Prognostic modelTakes a step forward in timeFCN3
    OutputWhere the results are writtenZarrBackend
    WorkflowConnects them and runs the stepsrun.deterministic
  2. Install Earth2Studio

    The documentation recommends uv and a fresh clean environment. The commands are from the official guide (version 0.19.0):

    bash · on the machine
    mkdir earth2studio-project && cd earth2studio-project
    uv init --python=3.13
    uv add "earth2studio @ git+https://github.com/NVIDIA/earth2studio.git@0.19.0"
    
    uv run python -c "import earth2studio; print(earth2studio.__version__)"

    The base install contains only the core — most models and data sources need extra package groups. The guide has an install selector where you choose the model (FCN3) and the data. By analogy with the example for another model (earth2studio[aifs,data]) the groups are probably called fcn3 and data — ⚠️ confirm in the selector, do not take it as true.

    💡
    Alternative: a container
    The documentation also shows a route through NVIDIA's PyTorch container (nvcr.io/nvidia/pytorch:26.04-py3) in which the same library is installed. ⚠️ We have not checked whether this image version has an Arm64 variant or how GPU access is passed — see the guide.
  3. A first forecast

    This is the example from the Earth2Studio home page. Four lines prepare the parts, the fifth runs the workflow: start date, 10 steps forward, model, data, output.

    python · forecast.py
    from earth2studio.models.px import FCN3
    from earth2studio.data import GFS
    from earth2studio.io import ZarrBackend
    from earth2studio.run import deterministic as run
    
    model = FCN3.load_model(FCN3.load_default_package())
    data = GFS()
    io = ZarrBackend("outputs/fcn3_forecast.zarr")
    run(["2025-01-01T00:00:00"], 10, model, data, io)

    First run: the model weights are downloaded. The date 2025-01-01T00:00:00 is from the official example — for another date, check that GFS has data for it (⚠️ we have not checked). How much time one step covers, see like this:

    python
    # how much time one model step covers
    step = model.output_coords(model.input_coords())["lead_time"][0]
    print(step)

    The result is in the folder outputs/fcn3_forecast.zarr.

  4. Optional: ERA5 data from Copernicus

    ERA5 is ECMWF's global reanalysis, provided free by the Copernicus Climate Data Store. You need an account; the token goes in the file ~/.cdsapirc (readable only by you — chmod 600). Do not write it in scripts or Git.

    ~/.cdsapirc
    url: https://cds.climate.copernicus.eu/api
    key: <personal-token-from-CDS>

    The terms of use of each dataset are accepted manually on its page (at the bottom of the download form). The example from the documentation:

    python
    # pip install "cdsapi>=0.7.7"
    import cdsapi
    
    client = cdsapi.Client()
    
    dataset = "reanalysis-era5-pressure-levels"
    request = {
        "product_type": ["reanalysis"],
        "variable": ["geopotential"],
        "year": ["2024"],
        "month": ["03"],
        "day": ["01"],
        "time": ["13:00"],
        "pressure_level": ["1000"],
        "data_format": "grib",
    }
    target = "download.grib"
    
    client.retrieve(dataset, request, target)

    Earth2Studio also has ready-made ERA5 sources — see the catalogue of data sources in its documentation.

  5. Look at the result

    The Zarr file is read with xarray. First print the contents — the variable names follow the Earth2Studio lexicon and may differ from those here.

    python
    import xarray as xr
    import matplotlib.pyplot as plt
    
    ds = xr.open_zarr("outputs/fcn3_forecast.zarr")
    print(ds)   # first see which variables and axes exist
    
    t2m = ds["t2m"].isel(time=0, lead_time=-1) - 273.15   # kelvin -> °C
    t2m.plot(cmap="RdYlBu_r")
    plt.title("Temperature at 2 m, last step (°C)")
    plt.savefig("t2m_last_step.png", dpi=150)

    For Bulgaria, crop a rectangle by coordinates (as a guide: roughly 41–44.5° N and 22–29° E).

    python
    # crop to the area of Bulgaria (if the lat axis is descending, the slice order is reversed)
    bg = t2m.sel(lat=slice(44.5, 41.0), lon=slice(22.0, 29.0))
    bg.plot(cmap="RdYlBu_r")

    ⚠️ The code in this step has not been run; the lead_time axis and the names follow the structure described in the Earth2Studio documentation — if you get an error, start with print(ds).

  6. One forecast is one possible development

    FourCastNet 3 is a probabilistic model: with a different "seed" (the seed parameter) it gives different plausible developments. One run does not tell you how likely something is. For probabilities you run many developments (an ensemble) — Earth2Studio's example gallery has "Running Ensemble Inference". We do not do it here.

  7. What this is not

    Limits you should know: the grid is 0.25° (about 25 km) — mountains, coasts and individual storms stay below it, which is exactly the topic of the next lesson; AI models make mistakes, especially with precipitation and extreme events, and the error grows with time ahead; the initial data (GFS, ERA5) carry errors of their own. For any real decision, read NIMH.

    ⛈️
    Do not make decisions from this output
    This lesson does not give an official forecast and does not replace one. It shows how an AI weather model works. Official forecasts and warnings for Bulgaria are issued by NIMH (the National Institute of Meteorology and Hydrology): meteo.bg; warnings by municipality are at weather.bg/obshtini, and for Europe at meteoalarm.org. Do not make decisions about safety, farming, events or energy from this lesson's output.

04Check

Test

1. What is FourCastNet 3 according to the Earth2Studio documentation?

2. Who issues the official forecasts and warnings for Bulgaria?

3. Where is the right place for the Copernicus token?

4. What does the number 10 mean in run([...], 10, model, data, io)?

05What next

06Sources

  1. NVIDIA Earth2Studio (GitHub) — the FourCastNet 3 example, version and Apache 2.0 licence; checked 03.10.2026.
  2. Earth2Studio: install — uv, version 0.19.0, recommended environment and hardware.
  3. Earth2Studio: the FCN3 model · the FCN model — model descriptions; the paper: arXiv 2507.12144.
  4. Earth2Studio: deterministic workflow — example and parameters of run.deterministic.
  5. build.nvidia.com: fourcastnet 🌐 global — the model page in NVIDIA's catalogue; the model licence is on that page.
  6. Copernicus CDS: API setup 🌐 global — address, personal token, cdsapi.
  7. NIMH: meteo.bg · warnings by municipality · meteoalarm.org — official forecasts and warnings.