FourCastNet на GB10: AI прогноза с Earth2Studio
FourCastNet е семейство AI модели на NVIDIA за глобална прогноза на времето. Пускаме най-новия — FourCastNet 3 — през отворената библиотека Earth2Studio на локален сървър от класа NVIDIA GB10: начални данни, няколко стъпки напред и карта. Урокът е за метода, а не за прогноза.
/v1/forecast не успяхме да сверим с публична документация — NVIDIA описва модела в каталога си като „downloadable“, а текущият начин на ползване е през отворената библиотека Earth2Studio (версия 0.19.0). Затова вече ползваме нея и най-новия модел FourCastNet 3. Махнахме числата без източник: „45 пъти по-бързо от ECMWF“, „~2 минути на GX10“, таблицата за времена на други модели и таблицата с грешки (RMSE) — нямаме измерване нито публикуван източник за тях. Махнахме и приложенията към конкретни организации и автоматичните известия. Копирахме примера от документацията и поправихме достъпа до Copernicus: адресът е https://cds.climate.copernicus.eu/api и се ползва личен токен (старият адрес /api/v2 с „UID:ключ“ не е в днешната документация).FCN — по-старата версия (0,25° мрежа, 26 променливи, стъпка 6 часа), и FCN3 — FourCastNet 3, вероятностен глобален модел на същата мрежа със 72 променливи. Урокът ползва FCN3, защото той е в основния пример на библиотеката.01Какво ще научиш
- Какво прави един AI модел за времето и с какво се различава от класическия числен модел.
- Какво е Earth2Studio и от какви части се състои един работен процес (данни → модел → запис).
- Как да пуснеш първа прогноза с FourCastNet 3 по официалния пример.
- Как да изтеглиш реанализа ERA5 от Copernicus.
- Как да разгледаш резултата и да изрежеш района на България.
- Защо резултатът не е официална прогноза и къде са истинските.
02Преди да започнеш
- Машина от класа NVIDIA GB10 с DGX OS (Ubuntu 24.04, Arm64) и работещ PyTorch с видеокарта. Документацията препоръчва Python 3.13, CUDA 13.0 и
uvкато мениджър на пакети; първо трябва да има правилно инсталиран PyTorch. - Памет: каталогът на Earth2Studio отбелязва за FCN3 препоръчителна памет на видеокартата 80 GB. Машината има 128 GB обща памет за процесора и видеокартата, т.е. на хартия се събира, но остават около 48 GB за системата и всичко друго — ⚠️ не сме го пробвали. Не пускай по същото време други големи модели (например Ollama).
- Свободно място: документацията за хардуер посочва около 128 GB диск.
- За данни от GFS (NOAA) не е нужен акаунт. За ERA5 е нужен безплатен акаунт в Copernicus Climate Data Store с личен токен.
- Моделът и теглата му се теглят автоматично при първо пускане. ⚠️ Лицензите на теглата не сме сверявали — Earth2Studio е интерфейс към чужди модели и данни и предупреждава да проверяваш правата за ползване на всеки.
| Какво | Стойност (по документацията) |
|---|---|
| Библиотека | Earth2Studio 0.19.0 · лиценз Apache 2.0 |
| Модел | FourCastNet 3 (FCN3) · вероятностен · глобален · мрежа 0,25° · 72 променливи |
| Източник на данни в примера | GFS (NOAA) |
| Изход | Zarr файл (ZarrBackend) |
| Препоръчителна среда | Ubuntu 24.04 · Python 3.13 · CUDA 13.0 |
| Препоръчителна памет на видеокартата за FCN3 | 80 GB (каталог на Earth2Studio) |
03Стъпки
-
Как работи един AI модел за времето
Класическият (числен) модел пресмята уравненията на физиката на атмосферата стъпка по стъпка. AI моделът е обучен върху историческите данни (реанализа ERA5) и научава как се променя състоянието на атмосферата за една стъпка; после я повтаря. Това не го прави по-точен — прави го евтин за пускане и удобен за експерименти. Затова винаги го сравняваш с проверени източници.
В Earth2Studio работният процес е верига от четири части:
Част Какво е В примера Източник на данни Откъде идва началното състояние на атмосферата GFS()Прогностичен модел Прави стъпка напред във времето FCN3Запис Къде се пишат резултатите ZarrBackendРаботен поток Свързва ги и върти стъпките run.deterministic -
Инсталирай Earth2Studio
Документацията препоръчва
uvи нова чиста среда. Командите са от официалното ръководство (версия 0.19.0):bash · на машината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__)"Базовата инсталация съдържа само ядрото — повечето модели и източници на данни искат допълнителни групи пакети. Ръководството има селектор за инсталация, в който избираш модела (FCN3) и данните. По аналогия с примера за друг модел (
earth2studio[aifs,data]) групите вероятно се казватfcn3иdata— ⚠️ потвърди в селектора, не го приемай за вярно.💡Алтернатива: контейнерДокументацията показва и път през контейнера на NVIDIA за PyTorch (nvcr.io/nvidia/pytorch:26.04-py3), в който се инсталира същата библиотека. ⚠️ Не сме проверявали дали тази версия на образа има Arm64 вариант и как се подава достъпът до видеокартата — виж ръководството. -
Първа прогноза
Това е примерът от главната страница на Earth2Studio. Четири реда подготвят частите, петият пуска работния поток: начална дата, 10 стъпки напред, модел, данни, запис.
python · forecast.pyfrom 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)Първо пускане: теглят се теглата на модела. Датата
2025-01-01T00:00:00е от официалния пример — за друга дата провери, че GFS има данни за нея (⚠️ не сме го проверявали). Колко време обхваща една стъпка, виж така:python# колко време обхваща една стъпка на модела step = model.output_coords(model.input_coords())["lead_time"][0] print(step)Резултатът е в папката
outputs/fcn3_forecast.zarr. -
По избор: данни ERA5 от Copernicus
ERA5 е глобалният реанализ на ECMWF и се дава безплатно от Copernicus Climate Data Store. Нужен е акаунт; токенът се слага във файла
~/.cdsapirc(само за теб —chmod 600). Не го пиши в скриптове и Git.~/.cdsapircurl: https://cds.climate.copernicus.eu/api key: <личен-токен-от-CDS>Условията за ползване на всеки набор данни се приемат ръчно на страницата му (най-долу във формата за изтегляне). Примерът от документацията:
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 има и готови източници на ERA5 — виж каталога на източниците на данни в документацията му.
-
Погледни резултата
Zarr файлът се чете с
xarray. Първо отпечатай съдържанието — имената на променливите следват лексикона на Earth2Studio и може да се различават от тези тук.pythonimport xarray as xr import matplotlib.pyplot as plt ds = xr.open_zarr("outputs/fcn3_forecast.zarr") print(ds) # първо виж кои променливи и оси има t2m = ds["t2m"].isel(time=0, lead_time=-1) - 273.15 # келвин -> °C t2m.plot(cmap="RdYlBu_r") plt.title("Температура на 2 m, последна стъпка (°C)") plt.savefig("t2m_last_step.png", dpi=150)За България изрежи правоъгълник по координати (за ориентир: приблизително 41–44,5° с.ш. и 22–29° и.д.).
python# изрязване на района на България (ако оста lat е низходяща, редът в slice е обратен) bg = t2m.sel(lat=slice(44.5, 41.0), lon=slice(22.0, 29.0)) bg.plot(cmap="RdYlBu_r")⚠️ Кодът в тази стъпка не е пускан; оста
lead_timeи имената са по структурата, описана в документацията на Earth2Studio — ако получиш грешка, започни отprint(ds). -
Една прогноза е едно възможно развитие
FourCastNet 3 е вероятностен модел: с различно „семе“ (параметърът
seed) дава различни правдоподобни развития. Една пускане не казва колко е вероятно нещо. За вероятности се пускат много развития (ансамбъл) — в галерията с примери на Earth2Studio има „Running Ensemble Inference“. Не го правим тук. -
Какво не е това
Ограничения, които трябва да знаеш: мрежата е 0,25° (около 25 км) — планини, брегове и отделни бури остават под нея, а точно това е темата на следващия урок; AI моделите грешат, особено при валежи и екстремни явления, и грешката расте с отдалечаването във времето; началните данни (GFS, ERA5) носят собствени грешки. За всяко реално решение чети НИМХ.
⛈️Не вземай решения по този резултатТози урок не дава официална прогноза и не замества такава. Показва как работи един AI модел за времето. Официалните прогнози и предупреждения за България издава НИМХ (Национален институт по метеорология и хидрология): meteo.bg; предупрежденията по общини са на weather.bg/obshtini, а за Европа — на meteoalarm.org. Не вземай решения за безопасност, земеделие, събития или енергия по резултата от този урок.
04Проверка
import earth2studioработи и версията се отпечатва.- Скриптът
forecast.pyзавършва и вoutputs/има Zarr файл. print(ds)показва променливите и осите на резултата.- Токенът за Copernicus е само в
~/.cdsapirc. - Можеш да обясниш защо резултатът не е официална прогноза и къде са официалните.
Тест
1. Какъв е FourCastNet 3 според документацията на Earth2Studio?
2. Кой издава официалните прогнози и предупреждения за България?
3. Къде е правилно да стои токенът за Copernicus?
4. Какво означава числото 10 в run([...], 10, model, data, io)?
05Какво следва
06Източници
- NVIDIA Earth2Studio (GitHub) — пример за FourCastNet 3, версия и лиценз Apache 2.0; сверено 03.10.2026.
- Earth2Studio: инсталиране — uv, версия 0.19.0, препоръчителна среда и хардуер.
- Earth2Studio: модел FCN3 · модел FCN — описание на моделите; статията: arXiv 2507.12144.
- Earth2Studio: детерминистичен работен поток — пример и параметри на
run.deterministic. - build.nvidia.com: fourcastnet 🌐 глобален — страница на модела в каталога на NVIDIA; лицензът на моделите е на страницата.
- Copernicus CDS: настройка на API 🌐 глобален — адрес, личен токен,
cdsapi. - НИМХ: meteo.bg · предупреждения по общини · meteoalarm.org — официални прогнози и предупреждения.