Створення кастомного ансамблевого прогнозу погоди за допомогою NVIDIA Earth2Studio
Дізнайтеся, як встановити NVIDIA Earth2Studio в Google Colab із збереженням середовища CUDA PyTorch, завантажити прогностичну модель FCN та реалізувати кастомну діагностику вітрової енергетики. Посібник описує створення координатних даних Zarr та виконання ансамблевих прогнозів.

Чому це важливо
Тепер ви можете створювати власні метеорологічні конвеєри та запускати ансамблі просторових збурень локально за допомогою інструментів промислового рівня.
TL;DR
- 01Зберігайте наявні версії Colab CUDA PyTorch за допомогою файлів обмежень pip під час встановлення Earth2Studio.
- 02Впроваджуйте кастомні діагностичні шари, такі як коефіцієнти потужності турбін, безпосередньо в цикл інференсу.
- 03Використовуйте сховища Zarr з явним розбиттям координат для ефективного аналізу ансамблів.
Встановлення та налаштування середовища
Щоб використовувати Earth2Studio в Google Colab без порушення наявного стека PyTorch із підтримкою CUDA, обмежте встановлення pip за допомогою файлів конфігурації середовища:
import importlib.util, os, subprocess, sys
if importlib.util.find_spec("earth2studio") is None:
cfile = os.path.join(os.getcwd(), "e2s_constraints.txt")
with open(cfile, "w") as f:
import torch as _torch
f.write(f"torch=={_torch.__version__.split('+')[0]}\n")
env = {**os.environ, "PIP_CONSTRAINT": cfile}
subprocess.run(
[sys.executable, "-m", "pip", "install", "-q", "earth2studio[fcn,data,perturbation,statistics]"],
env=env
)Кастомна діагностика вітрової енергетики
Реалізуйте кастомні класи діагностики, які обробляють прогностичні результати безпосередньо всередині циклу ітерацій. Нижче наведено приклад обчислення коефіцієнтів використання потужності турбіни з компонентів вітру на 10 метрах:
class WindPowerCF:
def __init__(self, lat, lon, hub=100.0, alpha=0.143, cut_in=3.0, rated=12.0, cut_out=25.0):
self.lat, self.lon, self.hub, self.alpha = lat, lon, hub, alpha
self.cut_in, self.rated, self.cut_out = cut_in, rated, cut_out
def __call__(self, x: torch.Tensor, coords: CoordSystem):
u, v = x[..., 0:1, :, :], x[..., 1:2, :, :]
ws10 = torch.sqrt(u**2 + v**2)
ws = ws10 * (self.hub / 10.0) ** self.alpha
ramp = (ws**3 - self.cut_in**3) / (self.rated**3 - self.cut_in**3)
cf = torch.where((ws >= self.cut_in) & (ws < self.rated), ramp.clamp(0, 1), torch.zeros_like(ws))
cf = torch.where((ws >= self.rated) & (ws <= self.cut_out), torch.ones_like(cf), cf)
return cf, OrderedDict([("variable", np.array(["wind_cf"])), ("lat", self.lat), ("lon", self.lon)])Конвеєр виконання ансамблю
Об'єднайте отримання даних, ітерацію моделі та сховище Zarr для чистого запуску пакетних прогнозів.
Спробуй за 2 хвилини
import importlib.util, os, subprocess, sys
if importlib.util.find_spec("earth2studio") is None:
cfile = os.path.join(os.getcwd(), "e2s_constraints.txt")
with open(cfile, "w") as f:
import torch as _torch
f.write(f"torch=={_torch.__version__.split('+')[0]}\n")
env = {**os.environ, "PIP_CONSTRAINT": cfile}
subprocess.run([sys.executable, "-m", "pip", "install", "-q", "earth2studio[fcn,data,perturbation,statistics]"], env=env)python
✓ Коли використовувати
- Під час створення конвеєрів ансамблевого прогнозування погоди за допомогою моделей машинного навчання.
- Коли потрібні кастомні діагностичні шари, інтегровані в потоки атмосферних даних.
Що зробити сьогодні
- Запустіть скрипт встановлення в середовищі виконання Google Colab із графічним процесором T4.
- Налаштуйте кастомну діагностику вітрової енергетики та змінні збурення для робочого процесу моделі.
- Запишіть результати прогнозу в сховище даних Zarr і перевірте їх за аналізами GFS.
Джерела