StormScope Satellite and Radar Nowcasting¶
StormScope inference workflow with GOES satellite imagery and MRMS radar data.
This example will demonstrate how to run coupled inference to generate predictions using StormScope models with both GOES and MRMS data sources.
In this example you will learn:
- How to instantiate StormScope models for GOES and MRMS
- Creating GOES and MRMS data sources
- Running iterative prognostic forecasts
- Plotting a single GOES channel with MRMS overlay
Set Up¶
This example shows a minimal StormScope workflow with GOES satellite imagery and MRMS radar data. We build two models:
earth2studio.models.px.StormScopeGOESto forecast GOES channels.earth2studio.models.px.StormScopeMRMSto forecast radar reflectivity (and a gridded GLM lightning channel).
In the CONUS nowcasting (3km_10min) configuration the GOES model is
"pure obs" (no external conditioning), while the MRMS model is conditioned on
GOES โ the GOES model provides that conditioning during the rollout via
call_with_conditioning. The MRMS model additionally has a GLM lightning
channel (glm_density) as part of its state, which we assemble for the
initial condition and which then evolves autoregressively over the rollout.
import os
from datetime import datetime
os.makedirs("outputs", exist_ok=True)
from dotenv import load_dotenv
load_dotenv()
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import numpy as np
import torch
from tqdm import trange
from earth2studio.data import GOES, MRMS, GOESGLMGrid, fetch_data
from earth2studio.models.px.stormscope import (
StormScopeBase,
StormScopeGOES,
StormScopeMRMS,
)
Console output9 lines
/__w/earth2studio/earth2studio/.venv/lib/python3.13/site-packages/torch/cuda/__init__.py:64: FutureWarning: The pynvml package is deprecated. Please install nvidia-ml-py instead. If you did not install pynvml directly, please report this to the maintainers of the package that installed pynvml for you.
import pynvml # type: ignore[import]
WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:
PyTorch 2.10.0+cu128 with CUDA 1208 (you have 2.13.0+cu130)
Python 3.10.19 (you have 3.13.13)
Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers)
Memory-efficient attention, SwiGLU, sparse and more won't be available.
Set XFORMERS_MORE_DETAILS=1 for more details
CuPy distance computation test failed with error: cuVS >= 24.12 or pylibraft < 24.12 should be installed to use this featureWe use the CONUS nowcasting variant (3km_10min), the recommended default.
The GOES model is "pure obs" (no external conditioning), forecasting the eight
ABI channels from their recent history. The MRMS model forecasts
[refc, refc_base, glm_density] conditioned on GOES, and additionally
consumes a Geostationary Lightning Mapper (GLM) channel that is both an input
(observation history) and a predicted output. The GLM field comes from
earth2studio.data.GOESGLMGrid, a gridded 0.1-degree lightning
product; the model bilinearly regrids it onto the model grid internally.
Other selectable variants (see StormScope*.list_available_models):
- "3km_10min": CONUS nowcasting, 3 km / 10 min (recommended, default)
- "6km_1hr": legacy 6 km / 60 min nearcasting
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_name = "3km_10min"
package = StormScopeBase.load_default_package()
# GOES nowcast model: pure-obs, no external conditioning source needed.
# We enable automatic mixed precision (autocast) and compile the model for faster inference.
model = StormScopeGOES.load_model(
package=package,
conditioning_data_source=None,
model_name=model_name,
amp=True,
compile=True,
)
model = model.to(device)
model.eval()
# MRMS+GLM nowcast model: conditioned on GOES, with a gridded GLM source. Here
# we drive it via call_with_conditioning, so glm_data_source is used only to
# fetch the initial GLM state (via fetch_glm); the bilinear GLM interpolator is
# built lazily on the first call. (In a standalone __call__/create_iterator run
# the same glm_data_source would inject GLM automatically each step.)
model_mrms = StormScopeMRMS.load_model(
package=package,
conditioning_data_source=GOES(),
glm_data_source=GOESGLMGrid(satellite="east"),
model_name=model_name,
amp=True,
compile=True,
)
model_mrms = model_mrms.to(device)
model_mrms.eval()
Console output547 lines
Downloading config.json: 0%| | 0.00/38.0 [00:00<?, ?B/s]
Downloading config.json: 100%|โโโโโโโโโโ| 38.0/38.0 [00:00<00:00, 374B/s]
Downloading config.json: 100%|โโโโโโโโโโ| 38.0/38.0 [00:00<00:00, 366B/s]
Downloading registry.json: 0%| | 0.00/5.45k [00:00<?, ?B/s]
Downloading registry.json: 100%|โโโโโโโโโโ| 5.45k/5.45k [00:00<00:00, 24.9kB/s]
Downloading registry.json: 100%|โโโโโโโโโโ| 5.45k/5.45k [00:00<00:00, 24.6kB/s]
Downloading expert_0.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_0.mdlus: 1%| | 10.0M/996M [00:01<01:47, 9.62MB/s]
Downloading expert_0.mdlus: 3%|โ | 30.0M/996M [00:01<00:34, 29.5MB/s]
Downloading expert_0.mdlus: 4%|โ | 40.0M/996M [00:01<00:34, 28.7MB/s]
Downloading expert_0.mdlus: 6%|โ | 60.0M/996M [00:01<00:21, 45.7MB/s]
Downloading expert_0.mdlus: 8%|โ | 80.0M/996M [00:02<00:15, 60.9MB/s]
Downloading expert_0.mdlus: 10%|โ | 100M/996M [00:02<00:12, 74.7MB/s]
Downloading expert_0.mdlus: 12%|โโ | 120M/996M [00:02<00:11, 82.6MB/s]
Downloading expert_0.mdlus: 13%|โโ | 130M/996M [00:02<00:11, 79.3MB/s]
Downloading expert_0.mdlus: 15%|โโ | 150M/996M [00:02<00:10, 86.6MB/s]
Downloading expert_0.mdlus: 17%|โโ | 170M/996M [00:02<00:09, 91.9MB/s]
Downloading expert_0.mdlus: 19%|โโ | 190M/996M [00:03<00:08, 95.4MB/s]
Downloading expert_0.mdlus: 21%|โโ | 210M/996M [00:03<00:08, 98.2MB/s]
Downloading expert_0.mdlus: 23%|โโโ | 230M/996M [00:03<00:08, 99.1MB/s]
Downloading expert_0.mdlus: 24%|โโโ | 240M/996M [00:03<00:07, 99.9MB/s]
Downloading expert_0.mdlus: 25%|โโโ | 250M/996M [00:03<00:07, 99.9MB/s]
Downloading expert_0.mdlus: 26%|โโโ | 260M/996M [00:03<00:07, 99.1MB/s]
Downloading expert_0.mdlus: 27%|โโโ | 270M/996M [00:03<00:07, 99.9MB/s]
Downloading expert_0.mdlus: 28%|โโโ | 280M/996M [00:04<00:09, 80.7MB/s]
Downloading expert_0.mdlus: 30%|โโโ | 300M/996M [00:04<00:07, 92.3MB/s]
Downloading expert_0.mdlus: 31%|โโโ | 310M/996M [00:04<00:09, 78.0MB/s]
Downloading expert_0.mdlus: 32%|โโโโ | 320M/996M [00:04<00:10, 68.7MB/s]
Downloading expert_0.mdlus: 33%|โโโโ | 330M/996M [00:04<00:09, 73.6MB/s]
Downloading expert_0.mdlus: 35%|โโโโ | 350M/996M [00:05<00:07, 85.4MB/s]
Downloading expert_0.mdlus: 37%|โโโโ | 370M/996M [00:05<00:06, 95.6MB/s]
Downloading expert_0.mdlus: 38%|โโโโ | 380M/996M [00:05<00:06, 97.2MB/s]
Downloading expert_0.mdlus: 39%|โโโโ | 390M/996M [00:05<00:08, 78.9MB/s]
Downloading expert_0.mdlus: 41%|โโโโ | 410M/996M [00:05<00:07, 86.6MB/s]
Downloading expert_0.mdlus: 42%|โโโโโ | 420M/996M [00:05<00:07, 78.7MB/s]
Downloading expert_0.mdlus: 43%|โโโโโ | 430M/996M [00:06<00:07, 80.8MB/s]
Downloading expert_0.mdlus: 44%|โโโโโ | 440M/996M [00:06<00:07, 74.6MB/s]
Downloading expert_0.mdlus: 45%|โโโโโ | 450M/996M [00:06<00:09, 62.0MB/s]
Downloading expert_0.mdlus: 46%|โโโโโ | 460M/996M [00:06<00:08, 69.0MB/s]
Downloading expert_0.mdlus: 48%|โโโโโ | 480M/996M [00:06<00:06, 81.3MB/s]
Downloading expert_0.mdlus: 50%|โโโโโ | 500M/996M [00:07<00:05, 88.3MB/s]
Downloading expert_0.mdlus: 52%|โโโโโโ | 520M/996M [00:07<00:05, 94.1MB/s]
Downloading expert_0.mdlus: 54%|โโโโโโ | 540M/996M [00:07<00:04, 100MB/s]
Downloading expert_0.mdlus: 55%|โโโโโโ | 550M/996M [00:07<00:04, 100MB/s]
Downloading expert_0.mdlus: 57%|โโโโโโ | 570M/996M [00:07<00:04, 104MB/s]
Downloading expert_0.mdlus: 59%|โโโโโโ | 590M/996M [00:07<00:04, 105MB/s]
Downloading expert_0.mdlus: 60%|โโโโโโ | 600M/996M [00:08<00:04, 101MB/s]
Downloading expert_0.mdlus: 61%|โโโโโโโ | 610M/996M [00:08<00:03, 101MB/s]
Downloading expert_0.mdlus: 62%|โโโโโโโ | 620M/996M [00:08<00:04, 87.1MB/s]
Downloading expert_0.mdlus: 64%|โโโโโโโ | 640M/996M [00:08<00:04, 75.2MB/s]
Downloading expert_0.mdlus: 65%|โโโโโโโ | 650M/996M [00:08<00:04, 77.1MB/s]
Downloading expert_0.mdlus: 67%|โโโโโโโ | 670M/996M [00:08<00:03, 89.2MB/s]
Downloading expert_0.mdlus: 68%|โโโโโโโ | 680M/996M [00:09<00:03, 91.6MB/s]
Downloading expert_0.mdlus: 69%|โโโโโโโ | 690M/996M [00:09<00:03, 93.4MB/s]
Downloading expert_0.mdlus: 71%|โโโโโโโโ | 710M/996M [00:09<00:03, 97.7MB/s]
Downloading expert_0.mdlus: 73%|โโโโโโโโ | 730M/996M [00:09<00:02, 100MB/s]
Downloading expert_0.mdlus: 75%|โโโโโโโโ | 750M/996M [00:09<00:02, 101MB/s]
Downloading expert_0.mdlus: 77%|โโโโโโโโ | 770M/996M [00:09<00:02, 101MB/s]
Downloading expert_0.mdlus: 79%|โโโโโโโโ | 790M/996M [00:10<00:02, 103MB/s]
Downloading expert_0.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:10<00:01, 105MB/s]
Downloading expert_0.mdlus: 83%|โโโโโโโโโ | 830M/996M [00:10<00:01, 105MB/s]
Downloading expert_0.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:10<00:01, 90.0MB/s]
Downloading expert_0.mdlus: 86%|โโโโโโโโโ | 860M/996M [00:10<00:01, 91.7MB/s]
Downloading expert_0.mdlus: 88%|โโโโโโโโโ | 880M/996M [00:11<00:01, 95.4MB/s]
Downloading expert_0.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:11<00:01, 95.6MB/s]
Downloading expert_0.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:11<00:00, 99.6MB/s]
Downloading expert_0.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:11<00:00, 100MB/s]
Downloading expert_0.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:12<00:00, 89.3MB/s]
Downloading expert_0.mdlus: 97%|โโโโโโโโโโ| 970M/996M [00:12<00:00, 91.2MB/s]
Downloading expert_0.mdlus: 99%|โโโโโโโโโโ| 990M/996M [00:12<00:00, 97.6MB/s]
Downloading expert_0.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:12<00:00, 84.1MB/s]
Downloading expert_1.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_1.mdlus: 1%| | 10.0M/996M [00:01<01:44, 9.93MB/s]
Downloading expert_1.mdlus: 3%|โ | 30.0M/996M [00:01<00:32, 30.7MB/s]
Downloading expert_1.mdlus: 5%|โ | 50.0M/996M [00:01<00:20, 49.2MB/s]
Downloading expert_1.mdlus: 7%|โ | 70.0M/996M [00:01<00:15, 61.3MB/s]
Downloading expert_1.mdlus: 9%|โ | 90.0M/996M [00:01<00:14, 67.8MB/s]
Downloading expert_1.mdlus: 10%|โ | 100M/996M [00:02<00:13, 71.4MB/s]
Downloading expert_1.mdlus: 12%|โโ | 120M/996M [00:02<00:11, 82.0MB/s]
Downloading expert_1.mdlus: 14%|โโ | 140M/996M [00:02<00:09, 90.2MB/s]
Downloading expert_1.mdlus: 16%|โโ | 160M/996M [00:02<00:09, 97.3MB/s]
Downloading expert_1.mdlus: 18%|โโ | 180M/996M [00:02<00:08, 101MB/s]
Downloading expert_1.mdlus: 20%|โโ | 200M/996M [00:02<00:08, 103MB/s]
Downloading expert_1.mdlus: 22%|โโโ | 220M/996M [00:03<00:07, 105MB/s]
Downloading expert_1.mdlus: 24%|โโโ | 240M/996M [00:03<00:07, 107MB/s]
Downloading expert_1.mdlus: 26%|โโโ | 260M/996M [00:03<00:08, 94.1MB/s]
Downloading expert_1.mdlus: 27%|โโโ | 270M/996M [00:03<00:07, 95.1MB/s]
Downloading expert_1.mdlus: 29%|โโโ | 290M/996M [00:03<00:07, 101MB/s]
Downloading expert_1.mdlus: 31%|โโโ | 310M/996M [00:04<00:06, 104MB/s]
Downloading expert_1.mdlus: 33%|โโโโ | 330M/996M [00:04<00:06, 105MB/s]
Downloading expert_1.mdlus: 35%|โโโโ | 350M/996M [00:04<00:06, 103MB/s]
Downloading expert_1.mdlus: 36%|โโโโ | 360M/996M [00:04<00:06, 103MB/s]
Downloading expert_1.mdlus: 38%|โโโโ | 380M/996M [00:04<00:05, 109MB/s]
Downloading expert_1.mdlus: 40%|โโโโ | 400M/996M [00:05<00:06, 98.6MB/s]
Downloading expert_1.mdlus: 42%|โโโโโ | 420M/996M [00:05<00:06, 97.8MB/s]
Downloading expert_1.mdlus: 43%|โโโโโ | 430M/996M [00:05<00:06, 98.3MB/s]
Downloading expert_1.mdlus: 45%|โโโโโ | 450M/996M [00:05<00:07, 77.6MB/s]
Downloading expert_1.mdlus: 47%|โโโโโ | 470M/996M [00:05<00:06, 87.3MB/s]
Downloading expert_1.mdlus: 49%|โโโโโ | 490M/996M [00:06<00:06, 77.8MB/s]
Downloading expert_1.mdlus: 51%|โโโโโ | 510M/996M [00:06<00:05, 87.1MB/s]
Downloading expert_1.mdlus: 52%|โโโโโโ | 520M/996M [00:06<00:06, 82.3MB/s]
Downloading expert_1.mdlus: 53%|โโโโโโ | 530M/996M [00:06<00:05, 83.3MB/s]
Downloading expert_1.mdlus: 54%|โโโโโโ | 540M/996M [00:06<00:05, 82.2MB/s]
Downloading expert_1.mdlus: 55%|โโโโโโ | 550M/996M [00:07<00:06, 74.2MB/s]
Downloading expert_1.mdlus: 57%|โโโโโโ | 570M/996M [00:07<00:05, 84.9MB/s]
Downloading expert_1.mdlus: 58%|โโโโโโ | 580M/996M [00:07<00:04, 88.2MB/s]
Downloading expert_1.mdlus: 60%|โโโโโโ | 600M/996M [00:07<00:04, 95.1MB/s]
Downloading expert_1.mdlus: 62%|โโโโโโโ | 620M/996M [00:07<00:03, 98.7MB/s]
Downloading expert_1.mdlus: 64%|โโโโโโโ | 640M/996M [00:07<00:03, 96.5MB/s]
Downloading expert_1.mdlus: 65%|โโโโโโโ | 650M/996M [00:08<00:03, 98.0MB/s]
Downloading expert_1.mdlus: 67%|โโโโโโโ | 670M/996M [00:08<00:03, 103MB/s]
Downloading expert_1.mdlus: 69%|โโโโโโโ | 690M/996M [00:08<00:03, 107MB/s]
Downloading expert_1.mdlus: 71%|โโโโโโโโ | 710M/996M [00:08<00:02, 103MB/s]
Downloading expert_1.mdlus: 73%|โโโโโโโโ | 730M/996M [00:08<00:02, 106MB/s]
Downloading expert_1.mdlus: 75%|โโโโโโโโ | 750M/996M [00:09<00:02, 108MB/s]
Downloading expert_1.mdlus: 77%|โโโโโโโโ | 770M/996M [00:09<00:02, 94.9MB/s]
Downloading expert_1.mdlus: 79%|โโโโโโโโ | 790M/996M [00:09<00:02, 78.0MB/s]
Downloading expert_1.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:09<00:02, 75.9MB/s]
Downloading expert_1.mdlus: 83%|โโโโโโโโโ | 830M/996M [00:10<00:02, 85.4MB/s]
Downloading expert_1.mdlus: 84%|โโโโโโโโโ | 840M/996M [00:10<00:02, 72.3MB/s]
Downloading expert_1.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:10<00:02, 62.4MB/s]
Downloading expert_1.mdlus: 87%|โโโโโโโโโ | 870M/996M [00:10<00:01, 72.5MB/s]
Downloading expert_1.mdlus: 89%|โโโโโโโโโ | 890M/996M [00:11<00:01, 82.0MB/s]
Downloading expert_1.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:11<00:01, 73.7MB/s]
Downloading expert_1.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:11<00:00, 81.3MB/s]
Downloading expert_1.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:11<00:00, 91.4MB/s]
Downloading expert_1.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:11<00:00, 98.5MB/s]
Downloading expert_1.mdlus: 98%|โโโโโโโโโโ| 980M/996M [00:12<00:00, 101MB/s]
Downloading expert_1.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:12<00:00, 105MB/s]
Downloading expert_1.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:12<00:00, 85.9MB/s]
Downloading expert_2.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_2.mdlus: 1%| | 10.0M/996M [00:01<01:54, 8.99MB/s]
Downloading expert_2.mdlus: 2%|โ | 20.0M/996M [00:01<00:59, 17.1MB/s]
Downloading expert_2.mdlus: 3%|โ | 30.0M/996M [00:01<00:41, 24.5MB/s]
Downloading expert_2.mdlus: 4%|โ | 40.0M/996M [00:01<00:33, 29.8MB/s]
Downloading expert_2.mdlus: 5%|โ | 50.0M/996M [00:02<00:29, 33.1MB/s]
Downloading expert_2.mdlus: 6%|โ | 60.0M/996M [00:02<00:25, 38.9MB/s]
Downloading expert_2.mdlus: 7%|โ | 70.0M/996M [00:02<00:25, 38.0MB/s]
Downloading expert_2.mdlus: 8%|โ | 80.0M/996M [00:02<00:22, 42.8MB/s]
Downloading expert_2.mdlus: 9%|โ | 90.0M/996M [00:02<00:19, 48.8MB/s]
Downloading expert_2.mdlus: 10%|โ | 100M/996M [00:03<00:18, 51.6MB/s]
Downloading expert_2.mdlus: 11%|โ | 110M/996M [00:03<00:15, 59.5MB/s]
Downloading expert_2.mdlus: 12%|โโ | 120M/996M [00:03<00:15, 58.4MB/s]
Downloading expert_2.mdlus: 13%|โโ | 130M/996M [00:03<00:19, 47.4MB/s]
Downloading expert_2.mdlus: 14%|โโ | 140M/996M [00:03<00:19, 46.9MB/s]
Downloading expert_2.mdlus: 15%|โโ | 150M/996M [00:04<00:18, 48.6MB/s]
Downloading expert_2.mdlus: 16%|โโ | 160M/996M [00:04<00:18, 46.2MB/s]
Downloading expert_2.mdlus: 17%|โโ | 170M/996M [00:04<00:17, 49.2MB/s]
Downloading expert_2.mdlus: 18%|โโ | 180M/996M [00:04<00:18, 47.2MB/s]
Downloading expert_2.mdlus: 19%|โโ | 190M/996M [00:04<00:16, 50.3MB/s]
Downloading expert_2.mdlus: 20%|โโ | 200M/996M [00:05<00:20, 40.9MB/s]
Downloading expert_2.mdlus: 21%|โโ | 210M/996M [00:05<00:19, 41.6MB/s]
Downloading expert_2.mdlus: 22%|โโโ | 220M/996M [00:06<00:24, 32.7MB/s]
Downloading expert_2.mdlus: 23%|โโโ | 230M/996M [00:06<00:19, 40.7MB/s]
Downloading expert_2.mdlus: 24%|โโโ | 240M/996M [00:06<00:20, 38.1MB/s]
Downloading expert_2.mdlus: 25%|โโโ | 250M/996M [00:06<00:19, 40.0MB/s]
Downloading expert_2.mdlus: 26%|โโโ | 260M/996M [00:07<00:21, 35.8MB/s]
Downloading expert_2.mdlus: 27%|โโโ | 270M/996M [00:07<00:18, 40.7MB/s]
Downloading expert_2.mdlus: 28%|โโโ | 280M/996M [00:07<00:16, 46.1MB/s]
Downloading expert_2.mdlus: 29%|โโโ | 290M/996M [00:07<00:14, 49.9MB/s]
Downloading expert_2.mdlus: 30%|โโโ | 300M/996M [00:07<00:14, 50.6MB/s]
Downloading expert_2.mdlus: 31%|โโโ | 310M/996M [00:07<00:13, 53.2MB/s]
Downloading expert_2.mdlus: 32%|โโโโ | 320M/996M [00:08<00:14, 48.0MB/s]
Downloading expert_2.mdlus: 33%|โโโโ | 330M/996M [00:08<00:13, 53.6MB/s]
Downloading expert_2.mdlus: 34%|โโโโ | 340M/996M [00:08<00:12, 57.3MB/s]
Downloading expert_2.mdlus: 35%|โโโโ | 350M/996M [00:08<00:10, 63.3MB/s]
Downloading expert_2.mdlus: 36%|โโโโ | 360M/996M [00:08<00:10, 62.2MB/s]
Downloading expert_2.mdlus: 37%|โโโโ | 370M/996M [00:08<00:10, 63.4MB/s]
Downloading expert_2.mdlus: 38%|โโโโ | 380M/996M [00:09<00:11, 55.6MB/s]
Downloading expert_2.mdlus: 39%|โโโโ | 390M/996M [00:09<00:13, 47.5MB/s]
Downloading expert_2.mdlus: 40%|โโโโ | 400M/996M [00:09<00:12, 48.3MB/s]
Downloading expert_2.mdlus: 41%|โโโโ | 410M/996M [00:09<00:12, 48.8MB/s]
Downloading expert_2.mdlus: 42%|โโโโโ | 420M/996M [00:10<00:13, 45.7MB/s]
Downloading expert_2.mdlus: 43%|โโโโโ | 430M/996M [00:10<00:13, 45.3MB/s]
Downloading expert_2.mdlus: 44%|โโโโโ | 440M/996M [00:10<00:12, 47.7MB/s]
Downloading expert_2.mdlus: 45%|โโโโโ | 450M/996M [00:10<00:12, 44.1MB/s]
Downloading expert_2.mdlus: 46%|โโโโโ | 460M/996M [00:11<00:11, 49.6MB/s]
Downloading expert_2.mdlus: 47%|โโโโโ | 470M/996M [00:11<00:10, 54.4MB/s]
Downloading expert_2.mdlus: 48%|โโโโโ | 480M/996M [00:11<00:09, 57.2MB/s]
Downloading expert_2.mdlus: 49%|โโโโโ | 490M/996M [00:11<00:09, 57.7MB/s]
Downloading expert_2.mdlus: 50%|โโโโโ | 500M/996M [00:11<00:09, 56.8MB/s]
Downloading expert_2.mdlus: 51%|โโโโโ | 510M/996M [00:11<00:09, 53.1MB/s]
Downloading expert_2.mdlus: 52%|โโโโโโ | 520M/996M [00:12<00:09, 53.2MB/s]
Downloading expert_2.mdlus: 53%|โโโโโโ | 530M/996M [00:12<00:08, 59.2MB/s]
Downloading expert_2.mdlus: 54%|โโโโโโ | 540M/996M [00:12<00:07, 64.7MB/s]
Downloading expert_2.mdlus: 55%|โโโโโโ | 550M/996M [00:12<00:07, 64.7MB/s]
Downloading expert_2.mdlus: 56%|โโโโโโ | 560M/996M [00:12<00:06, 68.5MB/s]
Downloading expert_2.mdlus: 57%|โโโโโโ | 570M/996M [00:12<00:06, 74.3MB/s]
Downloading expert_2.mdlus: 58%|โโโโโโ | 580M/996M [00:13<00:06, 65.8MB/s]
Downloading expert_2.mdlus: 59%|โโโโโโ | 590M/996M [00:13<00:05, 71.0MB/s]
Downloading expert_2.mdlus: 60%|โโโโโโ | 600M/996M [00:13<00:05, 73.9MB/s]
Downloading expert_2.mdlus: 61%|โโโโโโโ | 610M/996M [00:13<00:05, 71.3MB/s]
Downloading expert_2.mdlus: 62%|โโโโโโโ | 620M/996M [00:13<00:05, 72.8MB/s]
Downloading expert_2.mdlus: 63%|โโโโโโโ | 630M/996M [00:13<00:05, 67.9MB/s]
Downloading expert_2.mdlus: 64%|โโโโโโโ | 640M/996M [00:14<00:06, 54.5MB/s]
Downloading expert_2.mdlus: 65%|โโโโโโโ | 650M/996M [00:14<00:05, 60.8MB/s]
Downloading expert_2.mdlus: 66%|โโโโโโโ | 660M/996M [00:14<00:05, 63.1MB/s]
Downloading expert_2.mdlus: 67%|โโโโโโโ | 670M/996M [00:14<00:05, 67.7MB/s]
Downloading expert_2.mdlus: 68%|โโโโโโโ | 680M/996M [00:14<00:04, 71.0MB/s]
Downloading expert_2.mdlus: 69%|โโโโโโโ | 690M/996M [00:14<00:04, 77.6MB/s]
Downloading expert_2.mdlus: 70%|โโโโโโโ | 700M/996M [00:14<00:03, 78.6MB/s]
Downloading expert_2.mdlus: 71%|โโโโโโโโ | 710M/996M [00:15<00:04, 65.4MB/s]
Downloading expert_2.mdlus: 72%|โโโโโโโโ | 720M/996M [00:15<00:04, 69.8MB/s]
Downloading expert_2.mdlus: 73%|โโโโโโโโ | 730M/996M [00:15<00:04, 69.5MB/s]
Downloading expert_2.mdlus: 74%|โโโโโโโโ | 740M/996M [00:15<00:04, 54.2MB/s]
Downloading expert_2.mdlus: 75%|โโโโโโโโ | 750M/996M [00:15<00:04, 61.4MB/s]
Downloading expert_2.mdlus: 76%|โโโโโโโโ | 760M/996M [00:15<00:04, 60.3MB/s]
Downloading expert_2.mdlus: 77%|โโโโโโโโ | 770M/996M [00:16<00:04, 51.5MB/s]
Downloading expert_2.mdlus: 78%|โโโโโโโโ | 780M/996M [00:16<00:04, 47.1MB/s]
Downloading expert_2.mdlus: 79%|โโโโโโโโ | 790M/996M [00:16<00:04, 44.3MB/s]
Downloading expert_2.mdlus: 80%|โโโโโโโโ | 800M/996M [00:16<00:03, 53.2MB/s]
Downloading expert_2.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:17<00:05, 36.6MB/s]
Downloading expert_2.mdlus: 82%|โโโโโโโโโ | 820M/996M [00:17<00:04, 43.8MB/s]
Downloading expert_2.mdlus: 83%|โโโโโโโโโ | 830M/996M [00:18<00:05, 30.6MB/s]
Downloading expert_2.mdlus: 84%|โโโโโโโโโ | 840M/996M [00:18<00:04, 37.0MB/s]
Downloading expert_2.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:18<00:05, 30.5MB/s]
Downloading expert_2.mdlus: 86%|โโโโโโโโโ | 860M/996M [00:18<00:03, 38.0MB/s]
Downloading expert_2.mdlus: 87%|โโโโโโโโโ | 870M/996M [00:18<00:02, 45.3MB/s]
Downloading expert_2.mdlus: 88%|โโโโโโโโโ | 880M/996M [00:19<00:02, 53.7MB/s]
Downloading expert_2.mdlus: 89%|โโโโโโโโโ | 890M/996M [00:19<00:01, 62.3MB/s]
Downloading expert_2.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:19<00:01, 58.2MB/s]
Downloading expert_2.mdlus: 91%|โโโโโโโโโโ| 910M/996M [00:19<00:01, 46.7MB/s]
Downloading expert_2.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:19<00:01, 49.2MB/s]
Downloading expert_2.mdlus: 93%|โโโโโโโโโโ| 930M/996M [00:19<00:01, 57.3MB/s]
Downloading expert_2.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:20<00:01, 42.7MB/s]
Downloading expert_2.mdlus: 95%|โโโโโโโโโโ| 950M/996M [00:20<00:01, 46.9MB/s]
Downloading expert_2.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:20<00:00, 47.6MB/s]
Downloading expert_2.mdlus: 97%|โโโโโโโโโโ| 970M/996M [00:20<00:00, 56.0MB/s]
Downloading expert_2.mdlus: 98%|โโโโโโโโโโ| 980M/996M [00:21<00:00, 51.6MB/s]
Downloading expert_2.mdlus: 99%|โโโโโโโโโโ| 990M/996M [00:21<00:00, 59.9MB/s]
Downloading expert_2.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:21<00:00, 49.1MB/s]
Downloading lat.npy: 0%| | 0.00/7.27M [00:00<?, ?B/s]
Downloading lat.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 11.0MB/s]
Downloading lat.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 10.9MB/s]
Downloading lon.npy: 0%| | 0.00/7.27M [00:00<?, ?B/s]
Downloading lon.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 11.3MB/s]
Downloading lon.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 11.1MB/s]
Downloading goes_means.npy: 0%| | 0.00/160 [00:00<?, ?B/s]
Downloading goes_means.npy: 100%|โโโโโโโโโโ| 160/160 [00:00<00:00, 438B/s]
Downloading goes_means.npy: 100%|โโโโโโโโโโ| 160/160 [00:00<00:00, 436B/s]
Downloading goes_stds.npy: 0%| | 0.00/160 [00:00<?, ?B/s]
Downloading goes_stds.npy: 100%|โโโโโโโโโโ| 160/160 [00:00<00:00, 315B/s]
Downloading goes_stds.npy: 100%|โโโโโโโโโโ| 160/160 [00:00<00:00, 314B/s]
Downloading topo.npy: 0%| | 0.00/7.27M [00:00<?, ?B/s]
Downloading topo.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 12.4MB/s]
Downloading topo.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 12.2MB/s]
2026-08-15 05:30:39.344 | WARNING | earth2studio.models.px.stormscope:__init__:193 - No conditioning data source was provided to StormScope; set the conditioning_data_source attribute of the model before running inference with iterator mode, or use the call_with_conditioning method.
Downloading expert_0.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_0.mdlus: 1%| | 10.0M/996M [00:00<01:32, 11.2MB/s]
Downloading expert_0.mdlus: 3%|โ | 30.0M/996M [00:01<00:30, 33.1MB/s]
Downloading expert_0.mdlus: 4%|โ | 40.0M/996M [00:01<00:24, 40.5MB/s]
Downloading expert_0.mdlus: 6%|โ | 60.0M/996M [00:01<00:17, 56.2MB/s]
Downloading expert_0.mdlus: 7%|โ | 70.0M/996M [00:02<00:30, 32.2MB/s]
Downloading expert_0.mdlus: 8%|โ | 80.0M/996M [00:02<00:31, 30.6MB/s]
Downloading expert_0.mdlus: 9%|โ | 90.0M/996M [00:03<00:35, 26.6MB/s]
Downloading expert_0.mdlus: 10%|โ | 100M/996M [00:03<00:41, 22.9MB/s]
Downloading expert_0.mdlus: 11%|โ | 110M/996M [00:04<00:48, 19.3MB/s]
Downloading expert_0.mdlus: 12%|โโ | 120M/996M [00:04<00:46, 20.0MB/s]
Downloading expert_0.mdlus: 13%|โโ | 130M/996M [00:05<00:41, 22.0MB/s]
Downloading expert_0.mdlus: 15%|โโ | 150M/996M [00:05<00:29, 29.7MB/s]
Downloading expert_0.mdlus: 17%|โโ | 170M/996M [00:06<00:23, 37.6MB/s]
Downloading expert_0.mdlus: 19%|โโ | 190M/996M [00:06<00:16, 49.9MB/s]
Downloading expert_0.mdlus: 20%|โโ | 200M/996M [00:06<00:16, 50.0MB/s]
Downloading expert_0.mdlus: 21%|โโ | 210M/996M [00:06<00:16, 50.5MB/s]
Downloading expert_0.mdlus: 22%|โโโ | 220M/996M [00:06<00:14, 57.7MB/s]
Downloading expert_0.mdlus: 23%|โโโ | 230M/996M [00:06<00:13, 61.1MB/s]
Downloading expert_0.mdlus: 24%|โโโ | 240M/996M [00:07<00:12, 66.0MB/s]
Downloading expert_0.mdlus: 25%|โโโ | 250M/996M [00:07<00:10, 72.5MB/s]
Downloading expert_0.mdlus: 26%|โโโ | 260M/996M [00:07<00:12, 63.3MB/s]
Downloading expert_0.mdlus: 28%|โโโ | 280M/996M [00:07<00:10, 73.8MB/s]
Downloading expert_0.mdlus: 30%|โโโ | 300M/996M [00:07<00:10, 68.2MB/s]
Downloading expert_0.mdlus: 31%|โโโ | 310M/996M [00:08<00:09, 73.0MB/s]
Downloading expert_0.mdlus: 32%|โโโโ | 320M/996M [00:08<00:09, 71.6MB/s]
Downloading expert_0.mdlus: 33%|โโโโ | 330M/996M [00:08<00:09, 76.8MB/s]
Downloading expert_0.mdlus: 34%|โโโโ | 340M/996M [00:08<00:10, 66.6MB/s]
Downloading expert_0.mdlus: 35%|โโโโ | 350M/996M [00:08<00:09, 73.8MB/s]
Downloading expert_0.mdlus: 36%|โโโโ | 360M/996M [00:09<00:14, 47.4MB/s]
Downloading expert_0.mdlus: 38%|โโโโ | 380M/996M [00:09<00:13, 48.0MB/s]
Downloading expert_0.mdlus: 39%|โโโโ | 390M/996M [00:09<00:13, 47.2MB/s]
Downloading expert_0.mdlus: 40%|โโโโ | 400M/996M [00:09<00:11, 52.8MB/s]
Downloading expert_0.mdlus: 41%|โโโโ | 410M/996M [00:09<00:10, 58.9MB/s]
Downloading expert_0.mdlus: 42%|โโโโโ | 420M/996M [00:10<00:09, 64.4MB/s]
Downloading expert_0.mdlus: 44%|โโโโโ | 440M/996M [00:10<00:07, 78.0MB/s]
Downloading expert_0.mdlus: 45%|โโโโโ | 450M/996M [00:10<00:08, 71.5MB/s]
Downloading expert_0.mdlus: 47%|โโโโโ | 470M/996M [00:10<00:06, 83.7MB/s]
Downloading expert_0.mdlus: 49%|โโโโโ | 490M/996M [00:10<00:05, 92.6MB/s]
Downloading expert_0.mdlus: 51%|โโโโโ | 510M/996M [00:11<00:05, 99.0MB/s]
Downloading expert_0.mdlus: 52%|โโโโโโ | 520M/996M [00:11<00:05, 93.3MB/s]
Downloading expert_0.mdlus: 54%|โโโโโโ | 540M/996M [00:11<00:04, 100MB/s]
Downloading expert_0.mdlus: 56%|โโโโโโ | 560M/996M [00:11<00:04, 105MB/s]
Downloading expert_0.mdlus: 58%|โโโโโโ | 580M/996M [00:11<00:04, 90.0MB/s]
Downloading expert_0.mdlus: 60%|โโโโโโ | 600M/996M [00:12<00:04, 89.4MB/s]
Downloading expert_0.mdlus: 61%|โโโโโโ | 610M/996M [00:12<00:04, 86.0MB/s]
Downloading expert_0.mdlus: 62%|โโโโโโโ | 620M/996M [00:12<00:06, 61.8MB/s]
Downloading expert_0.mdlus: 63%|โโโโโโโ | 630M/996M [00:12<00:06, 61.1MB/s]
Downloading expert_0.mdlus: 64%|โโโโโโโ | 640M/996M [00:13<00:07, 52.9MB/s]
Downloading expert_0.mdlus: 66%|โโโโโโโ | 660M/996M [00:13<00:05, 58.8MB/s]
Downloading expert_0.mdlus: 68%|โโโโโโโ | 680M/996M [00:13<00:05, 64.3MB/s]
Downloading expert_0.mdlus: 69%|โโโโโโโ | 690M/996M [00:13<00:04, 68.5MB/s]
Downloading expert_0.mdlus: 70%|โโโโโโโ | 700M/996M [00:13<00:05, 58.6MB/s]
Downloading expert_0.mdlus: 71%|โโโโโโโโ | 710M/996M [00:14<00:06, 43.9MB/s]
Downloading expert_0.mdlus: 72%|โโโโโโโโ | 720M/996M [00:14<00:05, 51.3MB/s]
Downloading expert_0.mdlus: 73%|โโโโโโโโ | 730M/996M [00:14<00:06, 44.0MB/s]
Downloading expert_0.mdlus: 74%|โโโโโโโโ | 740M/996M [00:15<00:05, 45.8MB/s]
Downloading expert_0.mdlus: 75%|โโโโโโโโ | 750M/996M [00:15<00:05, 46.0MB/s]
Downloading expert_0.mdlus: 76%|โโโโโโโโ | 760M/996M [00:15<00:04, 51.9MB/s]
Downloading expert_0.mdlus: 77%|โโโโโโโโ | 770M/996M [00:15<00:06, 37.3MB/s]
Downloading expert_0.mdlus: 79%|โโโโโโโโ | 790M/996M [00:16<00:05, 42.6MB/s]
Downloading expert_0.mdlus: 80%|โโโโโโโโ | 800M/996M [00:16<00:04, 46.8MB/s]
Downloading expert_0.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:16<00:03, 49.9MB/s]
Downloading expert_0.mdlus: 83%|โโโโโโโโโ | 830M/996M [00:17<00:03, 47.4MB/s]
Downloading expert_0.mdlus: 84%|โโโโโโโโโ | 840M/996M [00:17<00:03, 49.5MB/s]
Downloading expert_0.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:17<00:03, 39.3MB/s]
Downloading expert_0.mdlus: 86%|โโโโโโโโโ | 860M/996M [00:17<00:03, 39.0MB/s]
Downloading expert_0.mdlus: 87%|โโโโโโโโโ | 870M/996M [00:18<00:03, 37.5MB/s]
Downloading expert_0.mdlus: 88%|โโโโโโโโโ | 880M/996M [00:18<00:03, 38.4MB/s]
Downloading expert_0.mdlus: 89%|โโโโโโโโโ | 890M/996M [00:18<00:02, 42.5MB/s]
Downloading expert_0.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:18<00:02, 46.0MB/s]
Downloading expert_0.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:19<00:01, 62.6MB/s]
Downloading expert_0.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:19<00:00, 71.8MB/s]
Downloading expert_0.mdlus: 95%|โโโโโโโโโโ| 950M/996M [00:19<00:00, 73.6MB/s]
Downloading expert_0.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:19<00:00, 61.4MB/s]
Downloading expert_0.mdlus: 97%|โโโโโโโโโโ| 970M/996M [00:19<00:00, 67.4MB/s]
Downloading expert_0.mdlus: 98%|โโโโโโโโโโ| 980M/996M [00:20<00:00, 56.7MB/s]
Downloading expert_0.mdlus: 99%|โโโโโโโโโโ| 990M/996M [00:20<00:00, 57.1MB/s]
Downloading expert_0.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:20<00:00, 57.8MB/s]
Downloading expert_0.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:20<00:00, 51.2MB/s]
Downloading expert_1.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_1.mdlus: 1%| | 10.0M/996M [00:01<01:39, 10.4MB/s]
Downloading expert_1.mdlus: 2%|โ | 20.0M/996M [00:01<00:46, 22.0MB/s]
Downloading expert_1.mdlus: 3%|โ | 30.0M/996M [00:01<00:30, 33.5MB/s]
Downloading expert_1.mdlus: 4%|โ | 40.0M/996M [00:01<00:23, 43.0MB/s]
Downloading expert_1.mdlus: 5%|โ | 50.0M/996M [00:01<00:18, 52.6MB/s]
Downloading expert_1.mdlus: 6%|โ | 60.0M/996M [00:01<00:16, 59.6MB/s]
Downloading expert_1.mdlus: 7%|โ | 70.0M/996M [00:01<00:18, 52.2MB/s]
Downloading expert_1.mdlus: 8%|โ | 80.0M/996M [00:02<00:16, 58.7MB/s]
Downloading expert_1.mdlus: 9%|โ | 90.0M/996M [00:02<00:14, 63.8MB/s]
Downloading expert_1.mdlus: 10%|โ | 100M/996M [00:02<00:13, 67.3MB/s]
Downloading expert_1.mdlus: 12%|โโ | 120M/996M [00:02<00:11, 83.0MB/s]
Downloading expert_1.mdlus: 13%|โโ | 130M/996M [00:02<00:12, 71.6MB/s]
Downloading expert_1.mdlus: 14%|โโ | 140M/996M [00:02<00:11, 77.7MB/s]
Downloading expert_1.mdlus: 15%|โโ | 150M/996M [00:02<00:12, 73.9MB/s]
Downloading expert_1.mdlus: 16%|โโ | 160M/996M [00:03<00:11, 73.3MB/s]
Downloading expert_1.mdlus: 17%|โโ | 170M/996M [00:03<00:11, 75.1MB/s]
Downloading expert_1.mdlus: 19%|โโ | 190M/996M [00:03<00:09, 84.8MB/s]
Downloading expert_1.mdlus: 20%|โโ | 200M/996M [00:03<00:11, 74.9MB/s]
Downloading expert_1.mdlus: 21%|โโ | 210M/996M [00:03<00:11, 73.5MB/s]
Downloading expert_1.mdlus: 22%|โโโ | 220M/996M [00:03<00:10, 79.3MB/s]
Downloading expert_1.mdlus: 23%|โโโ | 230M/996M [00:03<00:09, 81.8MB/s]
Downloading expert_1.mdlus: 24%|โโโ | 240M/996M [00:04<00:09, 80.6MB/s]
Downloading expert_1.mdlus: 25%|โโโ | 250M/996M [00:04<00:10, 78.0MB/s]
Downloading expert_1.mdlus: 26%|โโโ | 260M/996M [00:04<00:14, 54.9MB/s]
Downloading expert_1.mdlus: 27%|โโโ | 270M/996M [00:04<00:12, 60.8MB/s]
Downloading expert_1.mdlus: 28%|โโโ | 280M/996M [00:05<00:15, 49.6MB/s]
Downloading expert_1.mdlus: 29%|โโโ | 290M/996M [00:05<00:13, 53.4MB/s]
Downloading expert_1.mdlus: 30%|โโโ | 300M/996M [00:05<00:14, 49.5MB/s]
Downloading expert_1.mdlus: 31%|โโโ | 310M/996M [00:05<00:14, 49.6MB/s]
Downloading expert_1.mdlus: 32%|โโโโ | 320M/996M [00:05<00:15, 46.5MB/s]
Downloading expert_1.mdlus: 33%|โโโโ | 330M/996M [00:06<00:12, 54.6MB/s]
Downloading expert_1.mdlus: 34%|โโโโ | 340M/996M [00:06<00:13, 52.6MB/s]
Downloading expert_1.mdlus: 35%|โโโโ | 350M/996M [00:06<00:11, 59.2MB/s]
Downloading expert_1.mdlus: 36%|โโโโ | 360M/996M [00:06<00:10, 62.0MB/s]
Downloading expert_1.mdlus: 37%|โโโโ | 370M/996M [00:06<00:09, 70.0MB/s]
Downloading expert_1.mdlus: 38%|โโโโ | 380M/996M [00:06<00:10, 64.5MB/s]
Downloading expert_1.mdlus: 39%|โโโโ | 390M/996M [00:07<00:11, 56.7MB/s]
Downloading expert_1.mdlus: 40%|โโโโ | 400M/996M [00:07<00:09, 63.5MB/s]
Downloading expert_1.mdlus: 42%|โโโโโ | 420M/996M [00:07<00:08, 71.3MB/s]
Downloading expert_1.mdlus: 44%|โโโโโ | 440M/996M [00:07<00:07, 83.2MB/s]
Downloading expert_1.mdlus: 45%|โโโโโ | 450M/996M [00:07<00:08, 67.4MB/s]
Downloading expert_1.mdlus: 46%|โโโโโ | 460M/996M [00:07<00:07, 70.4MB/s]
Downloading expert_1.mdlus: 47%|โโโโโ | 470M/996M [00:08<00:07, 74.4MB/s]
Downloading expert_1.mdlus: 49%|โโโโโ | 490M/996M [00:08<00:06, 86.4MB/s]
Downloading expert_1.mdlus: 51%|โโโโโ | 510M/996M [00:08<00:05, 96.1MB/s]
Downloading expert_1.mdlus: 52%|โโโโโโ | 520M/996M [00:08<00:06, 81.3MB/s]
Downloading expert_1.mdlus: 53%|โโโโโโ | 530M/996M [00:08<00:05, 84.9MB/s]
Downloading expert_1.mdlus: 55%|โโโโโโ | 550M/996M [00:08<00:05, 88.7MB/s]
Downloading expert_1.mdlus: 57%|โโโโโโ | 570M/996M [00:09<00:04, 97.2MB/s]
Downloading expert_1.mdlus: 58%|โโโโโโ | 580M/996M [00:09<00:05, 86.8MB/s]
Downloading expert_1.mdlus: 59%|โโโโโโ | 590M/996M [00:09<00:04, 90.0MB/s]
Downloading expert_1.mdlus: 60%|โโโโโโ | 600M/996M [00:09<00:04, 89.2MB/s]
Downloading expert_1.mdlus: 62%|โโโโโโโ | 620M/996M [00:09<00:04, 90.0MB/s]
Downloading expert_1.mdlus: 63%|โโโโโโโ | 630M/996M [00:09<00:04, 85.9MB/s]
Downloading expert_1.mdlus: 64%|โโโโโโโ | 640M/996M [00:10<00:05, 68.2MB/s]
Downloading expert_1.mdlus: 65%|โโโโโโโ | 650M/996M [00:10<00:04, 74.7MB/s]
Downloading expert_1.mdlus: 66%|โโโโโโโ | 660M/996M [00:10<00:04, 76.5MB/s]
Downloading expert_1.mdlus: 67%|โโโโโโโ | 670M/996M [00:10<00:04, 82.1MB/s]
Downloading expert_1.mdlus: 68%|โโโโโโโ | 680M/996M [00:10<00:04, 78.0MB/s]
Downloading expert_1.mdlus: 69%|โโโโโโโ | 690M/996M [00:10<00:04, 76.5MB/s]
Downloading expert_1.mdlus: 70%|โโโโโโโ | 700M/996M [00:10<00:03, 78.1MB/s]
Downloading expert_1.mdlus: 71%|โโโโโโโโ | 710M/996M [00:11<00:05, 57.5MB/s]
Downloading expert_1.mdlus: 72%|โโโโโโโโ | 720M/996M [00:11<00:04, 62.9MB/s]
Downloading expert_1.mdlus: 73%|โโโโโโโโ | 730M/996M [00:11<00:04, 64.9MB/s]
Downloading expert_1.mdlus: 74%|โโโโโโโโ | 740M/996M [00:11<00:03, 71.1MB/s]
Downloading expert_1.mdlus: 75%|โโโโโโโโ | 750M/996M [00:11<00:03, 67.4MB/s]
Downloading expert_1.mdlus: 76%|โโโโโโโโ | 760M/996M [00:11<00:03, 70.0MB/s]
Downloading expert_1.mdlus: 77%|โโโโโโโโ | 770M/996M [00:12<00:04, 55.7MB/s]
Downloading expert_1.mdlus: 78%|โโโโโโโโ | 780M/996M [00:12<00:03, 59.8MB/s]
Downloading expert_1.mdlus: 79%|โโโโโโโโ | 790M/996M [00:12<00:03, 61.7MB/s]
Downloading expert_1.mdlus: 80%|โโโโโโโโ | 800M/996M [00:12<00:03, 57.6MB/s]
Downloading expert_1.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:12<00:03, 62.3MB/s]
Downloading expert_1.mdlus: 82%|โโโโโโโโโ | 820M/996M [00:13<00:03, 57.9MB/s]
Downloading expert_1.mdlus: 84%|โโโโโโโโโ | 840M/996M [00:13<00:02, 59.8MB/s]
Downloading expert_1.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:13<00:02, 58.3MB/s]
Downloading expert_1.mdlus: 86%|โโโโโโโโโ | 860M/996M [00:13<00:02, 60.3MB/s]
Downloading expert_1.mdlus: 87%|โโโโโโโโโ | 870M/996M [00:14<00:02, 55.6MB/s]
Downloading expert_1.mdlus: 88%|โโโโโโโโโ | 880M/996M [00:14<00:01, 61.2MB/s]
Downloading expert_1.mdlus: 89%|โโโโโโโโโ | 890M/996M [00:14<00:01, 57.4MB/s]
Downloading expert_1.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:14<00:01, 52.4MB/s]
Downloading expert_1.mdlus: 91%|โโโโโโโโโโ| 910M/996M [00:14<00:01, 58.2MB/s]
Downloading expert_1.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:14<00:01, 54.6MB/s]
Downloading expert_1.mdlus: 93%|โโโโโโโโโโ| 930M/996M [00:15<00:01, 61.2MB/s]
Downloading expert_1.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:15<00:00, 62.8MB/s]
Downloading expert_1.mdlus: 95%|โโโโโโโโโโ| 950M/996M [00:15<00:00, 59.2MB/s]
Downloading expert_1.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:15<00:00, 57.4MB/s]
Downloading expert_1.mdlus: 97%|โโโโโโโโโโ| 970M/996M [00:15<00:00, 64.0MB/s]
Downloading expert_1.mdlus: 98%|โโโโโโโโโโ| 980M/996M [00:15<00:00, 68.8MB/s]
Downloading expert_1.mdlus: 99%|โโโโโโโโโโ| 990M/996M [00:15<00:00, 75.5MB/s]
Downloading expert_1.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:16<00:00, 65.2MB/s]
Downloading expert_2.mdlus: 0%| | 0.00/996M [00:00<?, ?B/s]
Downloading expert_2.mdlus: 1%| | 10.0M/996M [00:01<01:47, 9.62MB/s]
Downloading expert_2.mdlus: 2%|โ | 20.0M/996M [00:01<00:59, 17.2MB/s]
Downloading expert_2.mdlus: 3%|โ | 30.0M/996M [00:01<00:40, 24.8MB/s]
Downloading expert_2.mdlus: 4%|โ | 40.0M/996M [00:01<00:32, 30.5MB/s]
Downloading expert_2.mdlus: 5%|โ | 50.0M/996M [00:02<00:29, 33.9MB/s]
Downloading expert_2.mdlus: 6%|โ | 60.0M/996M [00:02<00:26, 37.2MB/s]
Downloading expert_2.mdlus: 7%|โ | 70.0M/996M [00:02<00:29, 32.7MB/s]
Downloading expert_2.mdlus: 8%|โ | 80.0M/996M [00:02<00:26, 36.8MB/s]
Downloading expert_2.mdlus: 9%|โ | 90.0M/996M [00:03<00:23, 39.6MB/s]
Downloading expert_2.mdlus: 10%|โ | 100M/996M [00:03<00:22, 41.8MB/s]
Downloading expert_2.mdlus: 11%|โ | 110M/996M [00:03<00:19, 46.7MB/s]
Downloading expert_2.mdlus: 12%|โโ | 120M/996M [00:03<00:21, 41.8MB/s]
Downloading expert_2.mdlus: 13%|โโ | 130M/996M [00:04<00:21, 41.3MB/s]
Downloading expert_2.mdlus: 14%|โโ | 140M/996M [00:04<00:27, 33.2MB/s]
Downloading expert_2.mdlus: 15%|โโ | 150M/996M [00:04<00:24, 35.9MB/s]
Downloading expert_2.mdlus: 16%|โโ | 160M/996M [00:04<00:22, 39.5MB/s]
Downloading expert_2.mdlus: 17%|โโ | 170M/996M [00:05<00:21, 41.1MB/s]
Downloading expert_2.mdlus: 18%|โโ | 180M/996M [00:05<00:20, 42.3MB/s]
Downloading expert_2.mdlus: 19%|โโ | 190M/996M [00:05<00:23, 35.9MB/s]
Downloading expert_2.mdlus: 20%|โโ | 200M/996M [00:05<00:19, 43.4MB/s]
Downloading expert_2.mdlus: 21%|โโ | 210M/996M [00:06<00:17, 48.2MB/s]
Downloading expert_2.mdlus: 22%|โโโ | 220M/996M [00:06<00:14, 54.7MB/s]
Downloading expert_2.mdlus: 23%|โโโ | 230M/996M [00:06<00:12, 62.1MB/s]
Downloading expert_2.mdlus: 24%|โโโ | 240M/996M [00:06<00:14, 53.6MB/s]
Downloading expert_2.mdlus: 25%|โโโ | 250M/996M [00:06<00:12, 62.3MB/s]
Downloading expert_2.mdlus: 26%|โโโ | 260M/996M [00:07<00:18, 42.4MB/s]
Downloading expert_2.mdlus: 27%|โโโ | 270M/996M [00:07<00:15, 50.4MB/s]
Downloading expert_2.mdlus: 28%|โโโ | 280M/996M [00:07<00:12, 57.8MB/s]
Downloading expert_2.mdlus: 29%|โโโ | 290M/996M [00:07<00:17, 42.1MB/s]
Downloading expert_2.mdlus: 30%|โโโ | 300M/996M [00:07<00:16, 44.0MB/s]
Downloading expert_2.mdlus: 31%|โโโ | 310M/996M [00:08<00:16, 43.3MB/s]
Downloading expert_2.mdlus: 32%|โโโโ | 320M/996M [00:08<00:14, 48.8MB/s]
Downloading expert_2.mdlus: 33%|โโโโ | 330M/996M [00:08<00:12, 55.0MB/s]
Downloading expert_2.mdlus: 34%|โโโโ | 340M/996M [00:08<00:12, 55.5MB/s]
Downloading expert_2.mdlus: 35%|โโโโ | 350M/996M [00:08<00:10, 62.7MB/s]
Downloading expert_2.mdlus: 36%|โโโโ | 360M/996M [00:09<00:13, 48.9MB/s]
Downloading expert_2.mdlus: 37%|โโโโ | 370M/996M [00:09<00:11, 57.6MB/s]
Downloading expert_2.mdlus: 38%|โโโโ | 380M/996M [00:09<00:10, 62.3MB/s]
Downloading expert_2.mdlus: 39%|โโโโ | 390M/996M [00:09<00:11, 54.4MB/s]
Downloading expert_2.mdlus: 40%|โโโโ | 400M/996M [00:09<00:10, 61.5MB/s]
Downloading expert_2.mdlus: 41%|โโโโ | 410M/996M [00:09<00:10, 59.5MB/s]
Downloading expert_2.mdlus: 42%|โโโโโ | 420M/996M [00:10<00:10, 59.2MB/s]
Downloading expert_2.mdlus: 43%|โโโโโ | 430M/996M [00:10<00:08, 66.9MB/s]
Downloading expert_2.mdlus: 44%|โโโโโ | 440M/996M [00:10<00:08, 69.5MB/s]
Downloading expert_2.mdlus: 45%|โโโโโ | 450M/996M [00:10<00:09, 60.6MB/s]
Downloading expert_2.mdlus: 46%|โโโโโ | 460M/996M [00:10<00:08, 65.7MB/s]
Downloading expert_2.mdlus: 47%|โโโโโ | 470M/996M [00:10<00:07, 69.1MB/s]
Downloading expert_2.mdlus: 48%|โโโโโ | 480M/996M [00:10<00:07, 73.5MB/s]
Downloading expert_2.mdlus: 49%|โโโโโ | 490M/996M [00:11<00:09, 57.6MB/s]
Downloading expert_2.mdlus: 50%|โโโโโ | 500M/996M [00:11<00:07, 65.5MB/s]
Downloading expert_2.mdlus: 51%|โโโโโ | 510M/996M [00:11<00:07, 68.8MB/s]
Downloading expert_2.mdlus: 52%|โโโโโโ | 520M/996M [00:11<00:07, 64.3MB/s]
Downloading expert_2.mdlus: 53%|โโโโโโ | 530M/996M [00:11<00:07, 67.9MB/s]
Downloading expert_2.mdlus: 54%|โโโโโโ | 540M/996M [00:11<00:06, 72.9MB/s]
Downloading expert_2.mdlus: 55%|โโโโโโ | 550M/996M [00:12<00:05, 79.3MB/s]
Downloading expert_2.mdlus: 56%|โโโโโโ | 560M/996M [00:12<00:05, 84.4MB/s]
Downloading expert_2.mdlus: 57%|โโโโโโ | 570M/996M [00:12<00:05, 88.1MB/s]
Downloading expert_2.mdlus: 58%|โโโโโโ | 580M/996M [00:12<00:04, 90.2MB/s]
Downloading expert_2.mdlus: 59%|โโโโโโ | 590M/996M [00:12<00:04, 92.1MB/s]
Downloading expert_2.mdlus: 60%|โโโโโโ | 600M/996M [00:12<00:05, 82.4MB/s]
Downloading expert_2.mdlus: 61%|โโโโโโ | 610M/996M [00:12<00:04, 84.0MB/s]
Downloading expert_2.mdlus: 62%|โโโโโโโ | 620M/996M [00:12<00:04, 88.3MB/s]
Downloading expert_2.mdlus: 63%|โโโโโโโ | 630M/996M [00:12<00:04, 90.2MB/s]
Downloading expert_2.mdlus: 64%|โโโโโโโ | 640M/996M [00:13<00:04, 85.0MB/s]
Downloading expert_2.mdlus: 65%|โโโโโโโ | 650M/996M [00:13<00:04, 87.4MB/s]
Downloading expert_2.mdlus: 66%|โโโโโโโ | 660M/996M [00:13<00:03, 90.1MB/s]
Downloading expert_2.mdlus: 67%|โโโโโโโ | 670M/996M [00:13<00:03, 88.9MB/s]
Downloading expert_2.mdlus: 68%|โโโโโโโ | 680M/996M [00:13<00:03, 91.9MB/s]
Downloading expert_2.mdlus: 69%|โโโโโโโ | 690M/996M [00:13<00:03, 95.0MB/s]
Downloading expert_2.mdlus: 70%|โโโโโโโ | 700M/996M [00:13<00:03, 95.6MB/s]
Downloading expert_2.mdlus: 71%|โโโโโโโโ | 710M/996M [00:13<00:03, 83.9MB/s]
Downloading expert_2.mdlus: 72%|โโโโโโโโ | 720M/996M [00:14<00:03, 82.1MB/s]
Downloading expert_2.mdlus: 73%|โโโโโโโโ | 730M/996M [00:14<00:04, 62.5MB/s]
Downloading expert_2.mdlus: 74%|โโโโโโโโ | 740M/996M [00:14<00:04, 59.8MB/s]
Downloading expert_2.mdlus: 75%|โโโโโโโโ | 750M/996M [00:14<00:03, 67.1MB/s]
Downloading expert_2.mdlus: 76%|โโโโโโโโ | 760M/996M [00:14<00:03, 70.8MB/s]
Downloading expert_2.mdlus: 77%|โโโโโโโโ | 770M/996M [00:14<00:03, 75.3MB/s]
Downloading expert_2.mdlus: 78%|โโโโโโโโ | 780M/996M [00:14<00:02, 78.7MB/s]
Downloading expert_2.mdlus: 79%|โโโโโโโโ | 790M/996M [00:15<00:03, 69.9MB/s]
Downloading expert_2.mdlus: 80%|โโโโโโโโ | 800M/996M [00:15<00:02, 73.1MB/s]
Downloading expert_2.mdlus: 81%|โโโโโโโโโ | 810M/996M [00:15<00:02, 78.8MB/s]
Downloading expert_2.mdlus: 82%|โโโโโโโโโ | 820M/996M [00:15<00:02, 82.5MB/s]
Downloading expert_2.mdlus: 83%|โโโโโโโโโ | 830M/996M [00:15<00:02, 84.4MB/s]
Downloading expert_2.mdlus: 84%|โโโโโโโโโ | 840M/996M [00:15<00:02, 59.2MB/s]
Downloading expert_2.mdlus: 85%|โโโโโโโโโ | 850M/996M [00:16<00:05, 27.2MB/s]
Downloading expert_2.mdlus: 86%|โโโโโโโโโ | 860M/996M [00:16<00:04, 34.6MB/s]
Downloading expert_2.mdlus: 87%|โโโโโโโโโ | 870M/996M [00:17<00:03, 41.6MB/s]
Downloading expert_2.mdlus: 88%|โโโโโโโโโ | 880M/996M [00:17<00:02, 49.4MB/s]
Downloading expert_2.mdlus: 89%|โโโโโโโโโ | 890M/996M [00:17<00:02, 53.3MB/s]
Downloading expert_2.mdlus: 90%|โโโโโโโโโ | 900M/996M [00:17<00:01, 52.2MB/s]
Downloading expert_2.mdlus: 91%|โโโโโโโโโโ| 910M/996M [00:17<00:01, 58.6MB/s]
Downloading expert_2.mdlus: 92%|โโโโโโโโโโ| 920M/996M [00:17<00:01, 59.4MB/s]
Downloading expert_2.mdlus: 93%|โโโโโโโโโโ| 930M/996M [00:17<00:01, 67.5MB/s]
Downloading expert_2.mdlus: 94%|โโโโโโโโโโ| 940M/996M [00:18<00:01, 55.8MB/s]
Downloading expert_2.mdlus: 95%|โโโโโโโโโโ| 950M/996M [00:18<00:00, 63.2MB/s]
Downloading expert_2.mdlus: 96%|โโโโโโโโโโ| 960M/996M [00:18<00:00, 62.4MB/s]
Downloading expert_2.mdlus: 97%|โโโโโโโโโโ| 970M/996M [00:18<00:00, 65.9MB/s]
Downloading expert_2.mdlus: 98%|โโโโโโโโโโ| 980M/996M [00:18<00:00, 72.8MB/s]
Downloading expert_2.mdlus: 99%|โโโโโโโโโโ| 990M/996M [00:18<00:00, 79.1MB/s]
Downloading expert_2.mdlus: 100%|โโโโโโโโโโ| 996M/996M [00:18<00:00, 55.0MB/s]
Downloading mrms_means.npy: 0%| | 0.00/136 [00:00<?, ?B/s]
Downloading mrms_means.npy: 100%|โโโโโโโโโโ| 136/136 [00:00<00:00, 298B/s]
Downloading mrms_means.npy: 100%|โโโโโโโโโโ| 136/136 [00:00<00:00, 297B/s]
Downloading mrms_stds.npy: 0%| | 0.00/136 [00:00<?, ?B/s]
Downloading mrms_stds.npy: 100%|โโโโโโโโโโ| 136/136 [00:00<00:00, 362B/s]
Downloading mrms_stds.npy: 100%|โโโโโโโโโโ| 136/136 [00:00<00:00, 359B/s]
Downloading nexrad_proximity.npy: 0%| | 0.00/7.27M [00:00<?, ?B/s]
Downloading nexrad_proximity.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 12.3MB/s]
Downloading nexrad_proximity.npy: 100%|โโโโโโโโโโ| 7.27M/7.27M [00:00<00:00, 12.2MB/s]
Downloading mrms_coverage_mask.npy: 0%| | 0.00/1.82M [00:00<?, ?B/s]
Downloading mrms_coverage_mask.npy: 100%|โโโโโโโโโโ| 1.82M/1.82M [00:00<00:00, 4.82MB/s]
Downloading mrms_coverage_mask.npy: 100%|โโโโโโโโโโ| 1.82M/1.82M [00:00<00:00, 4.78MB/s]Setup GOES Data Source and Interpolators¶
We fetch GOES data for the model inputs and build interpolators that map the
GOES grid and GFS grid into the StormScope model grid. StormScope operates on
the HRRR grid, or a downsampled version of it, and for convenience each model
defines grid coordinates model.latitudes and model.longitudes to help with
the regridding functionality.
start_date = [np.datetime64(datetime(2024, 1, 8, 18, 0, 0))]
goes_satellite = "goes16"
scan_mode = "C"
variables = model.input_coords()["variable"]
lat_out = model.latitudes.detach().cpu().numpy()
lon_out = model.longitudes.detach().cpu().numpy()
goes = GOES(satellite=goes_satellite, scan_mode=scan_mode)
goes_lat, goes_lon = GOES.grid(satellite=goes_satellite, scan_mode=scan_mode)
# The GOES nowcast model is pure-obs (no external conditioning), so only an input
# interpolator (GOES grid -> model grid) is needed.
model.build_input_interpolator(goes_lat, goes_lon)
in_coords = model.input_coords()
# Fetch GOES data (left on the native GOES grid; the model regrids internally)
x, x_coords = fetch_data(
goes,
time=start_date,
variable=np.array(variables),
lead_time=in_coords["lead_time"],
device=device,
)
Console output25 lines
2026-08-15 05:31:57.599 | WARNING | earth2studio.models.px.stormscope:build_input_interpolator:643 - Some input gridpoints are invalid after interpolation. This may be expected if the input data source is not available at all gridpoints, but consider double-checking coordinates and/or the max_dist_km parameter. Invalid points will be filled with the model's _INPUT_INVALID_FILL_CONSTANT (0.0).
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:03<00:00, 3.27s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:03<00:00, 3.27s/it]
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.42s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.42s/it]
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:03<00:00, 3.18s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:03<00:00, 3.18s/it]
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.31s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.31s/it]
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.84s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.85s/it]
Fetching GOES data: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.40s/it]
Fetching GOES data: 100%|โโโโโโโโโโ| 1/1 [00:02<00:00, 2.40s/it]Setup MRMS + GLM Data Sources and Assemble the State¶
The MRMS+GLM model forecasts [refc, refc_base, glm_density]. The radar
channels come from earth2studio.data.MRMS; the GLM channel comes
from earth2studio.data.GOESGLMGrid. Because we drive the rollout
with call_with_conditioning (the coupled path), we own the full initial
state: we fetch radar and GLM, regrid each onto the shared model grid (GLM uses
bilinear regridding, unlike the nearest-neighbor radar/satellite path), and
stack them in the model's variables order (radar channels first, GLM last).
After the first step GLM flows autoregressively from the model's own
predictions, exactly like the radar channels. (If you instead ran the MRMS
model standalone via __call__ / create_iterator, glm_data_source
would inject GLM automatically and only radar would need to be assembled here.)
mrms = MRMS()
mrms_in_coords = model_mrms.input_coords()
# Radar state channels (everything in `variables` that is not a GLM channel)
radar_vars = np.array(
[v for v in model_mrms.variables if v not in set(model_mrms.glm_variables)]
)
x_radar, x_coords_radar = fetch_data(
mrms,
time=start_date,
variable=radar_vars,
lead_time=mrms_in_coords["lead_time"],
device=device,
)
# Interpolators: radar/GOES use nearest-neighbor; GLM is built lazily (bilinear)
# inside fetch_glm.
model_mrms.build_input_interpolator(x_coords_radar["lat"], x_coords_radar["lon"])
model_mrms.build_conditioning_interpolator(goes_lat, goes_lon)
# Regrid the radar channels onto the model grid (nearest-neighbor).
x_radar = model_mrms.input_interp(x_radar)
# Fetch + bilinearly regrid the GLM observation window onto the model grid. The
# returned counts are physical (the model applies log1p internally).
glm_coords = mrms_in_coords.copy()
glm_coords["time"] = np.array(start_date)
x_glm, _ = model_mrms.fetch_glm(glm_coords, device=device)
# Stack into the full MRMS+GLM state on the model grid, matching `variables` order
# ([refc, refc_base, glm_density]); the variable axis is dim 2 of [T, L, C, H, W].
x_mrms = torch.cat([x_radar, x_glm], dim=2).to(dtype=torch.float32)
# Coords now describe the model grid (y/x) with the full variable list. Start from
# the fetched radar coords so the dim order matches, then swap in y/x and variables.
x_coords_mrms = x_coords_radar.copy()
x_coords_mrms["variable"] = np.array(model_mrms.variables)
del x_coords_mrms["lat"], x_coords_mrms["lon"]
x_coords_mrms["y"] = model_mrms.y
x_coords_mrms["x"] = model_mrms.x
Console output130 lines
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:15.374 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-171038.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:15.484 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-170959.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:01<00:01, 1.36s/it]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:01<00:00, 1.29it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:01<00:00, 1.16it/s]
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:16.686 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-172015.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:16.688 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-172040.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:00<00:00, 1.81it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.24it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.16it/s]
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:17.695 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-173035.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:17.697 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-173021.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:00<00:00, 1.73it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.19it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.11it/s]
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:18.722 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-174013.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:18.724 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-174040.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:00<00:00, 1.70it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.16it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.08it/s]
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:19.752 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-174945.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:19.754 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-175039.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:00<00:00, 1.10it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.18it/s]
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:20.755 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedBaseReflectivityQC_00.50/20240108/MRMS_MergedBaseReflectivityQC_00.50_20240108-180014.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
2026-08-15 05:32:20.757 | INFO | earth2studio.data.mrms:_fetch_task:343 - Fetching MRMS file: s3://noaa-mrms-pds/CONUS/MergedReflectivityQCComposite_00.50/20240108/MRMS_MergedReflectivityQCComposite_00.50_20240108-180040.grib2.gz
Fetching MRMS data: 0%| | 0/2 [00:00<?, ?it/s]
Fetching MRMS data: 50%|โโโโโ | 1/2 [00:00<00:00, 1.83it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.23it/s]
Fetching MRMS data: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 2.16it/s]
2026-08-15 05:32:33.893 | WARNING | earth2studio.models.px.stormscope:build_input_interpolator:643 - Some input gridpoints are invalid after interpolation. This may be expected if the input data source is not available at all gridpoints, but consider double-checking coordinates and/or the max_dist_km parameter. Invalid points will be filled with the model's _INPUT_INVALID_FILL_CONSTANT (0.0).
2026-08-15 05:32:37.832 | WARNING | earth2studio.models.px.stormscope:build_conditioning_interpolator:689 - Some conditioning gridpoints are invalid after interpolation. This may be expected if the conditioning data source is not available at all gridpoints, but consider double-checking coordinates and/or the max_dist_km parameter. Invalid points will be filled with the model's _INPUT_INVALID_FILL_CONSTANT (0.0).
Listing GLM L2 LCFA prefixes: 0%| | 0/1 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 2.68it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 2.68it/s]
2026-08-15 05:32:38.220 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:05, 3.06it/s]
Fetching GLM L2 LCFA files: 12%|โโ | 2/17 [00:00<00:03, 4.48it/s]
Fetching GLM L2 LCFA files: 94%|โโโโโโโโโโ| 16/17 [00:00<00:00, 40.76it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 27.58it/s]
Listing GLM L2 LCFA prefixes: 0%| | 0/1 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 4485.89it/s]
2026-08-15 05:32:39.245 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:02, 6.91it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 82.47it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 69.00it/s]
Listing GLM L2 LCFA prefixes: 0%| | 0/1 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 3688.92it/s]
2026-08-15 05:32:39.928 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:02, 7.29it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 72.40it/s]
Listing GLM L2 LCFA prefixes: 0%| | 0/1 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 4245.25it/s]
2026-08-15 05:32:40.620 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:02, 7.85it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 86.66it/s]
Listing GLM L2 LCFA prefixes: 0%| | 0/1 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 1/1 [00:00<00:00, 4462.03it/s]
2026-08-15 05:32:41.289 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:01, 8.08it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 97.17it/s]
Listing GLM L2 LCFA prefixes: 0%| | 0/2 [00:00<?, ?it/s]
Listing GLM L2 LCFA prefixes: 100%|โโโโโโโโโโ| 2/2 [00:00<00:00, 22.41it/s]
2026-08-15 05:32:42.037 | INFO | earth2studio.data.goes_glm:fetch:338 - [earth2studio.data.goes_glm] discovered 17 unique GLM files across 1 requested times
Fetching GLM L2 LCFA files: 0%| | 0/17 [00:00<?, ?it/s]
Fetching GLM L2 LCFA files: 6%|โ | 1/17 [00:00<00:02, 7.98it/s]
Fetching GLM L2 LCFA files: 100%|โโโโโโโโโโ| 17/17 [00:00<00:00, 80.60it/s]Add Batch Dimension¶
The models expect a batch dimension: [B, T, L, C, H, W]. Up to GPU memory limits, this can be increased to produce multiple ensemble members.
batch_size = 1
if x.dim() == 5:
x = x.unsqueeze(0).repeat(batch_size, 1, 1, 1, 1, 1)
x_coords["batch"] = np.arange(batch_size)
x_coords.move_to_end("batch", last=False)
if x_mrms.dim() == 5:
x_mrms = x_mrms.unsqueeze(0).repeat(batch_size, 1, 1, 1, 1, 1)
x_coords_mrms["batch"] = np.arange(batch_size)
x_coords_mrms.move_to_end("batch", last=False)
x = x.to(dtype=torch.float32)
x_mrms = x_mrms.to(dtype=torch.float32)
Execute the Workflow¶
Since the StormScope coupled inference is a bit more involved, we will use
a custom forecast loop rather than a built-in workflow. Here, the GOES model
predicts future satellite imagery, and the MRMS model predicts radar
reflectivity (and GLM) conditioned on GOES (initially the raw data, then the
forecasted GOES imagery) via call_with_conditioning.
y, y_coords = x, x_coords
y_mrms, y_coords_mrms = x_mrms, x_coords_mrms
n_steps = 2
for step_idx in trange(n_steps, desc="Forecast steps"):
# Run one prognostic step with the GOES model
y_pred, y_pred_coords = model(y, y_coords)
# Run one prognostic step with the MRMS model conditioned on GOES
y_mrms_pred, y_coords_mrms_pred = model_mrms.call_with_conditioning(
y_mrms, y_coords_mrms, conditioning=y, conditioning_coords=y_coords
)
# Advance the sliding window for the next step: drop the oldest input frame
# and append the new prediction. We assign directly into the loop carry
# variables (y/y_mrms) and keep y_pred/y_mrms_pred pointing at the single
# latest prediction (lead time +step), which is what we plot below.
y, y_coords = model.next_input(y_pred, y_pred_coords, y, y_coords)
y_mrms, y_coords_mrms = model_mrms.next_input(
y_mrms_pred, y_coords_mrms_pred, y_mrms, y_coords_mrms
)
Console output4 lines
Forecast steps: 0%| | 0/2 [00:00<?, ?it/s]
Forecast steps: 50%|โโโโโ | 1/2 [02:33<02:33, 153.39s/it]
Forecast steps: 100%|โโโโโโโโโโ| 2/2 [05:39<00:00, 172.54s/it]
Forecast steps: 100%|โโโโโโโโโโ| 2/2 [05:39<00:00, 169.67s/it]Post Processing¶
Let's plot the final forecast step: GOES abi13c (Clean IR 10.35um) in grayscale with MRMS reflectivity (refc) overlaid.
goes_channel = "abi13c"
goes_ch_idx = list(model.variables).index(goes_channel)
mrms_ch_idx = list(model_mrms.variables).index("refc")
# Nan-fill invalid gridpoints
y_pred = torch.where(model.valid_mask, y_pred, torch.nan)
y_mrms_pred = torch.where(model_mrms.valid_mask, y_mrms_pred, torch.nan)
# Prepare HRRR Lambert Conformal projection
proj_hrrr = ccrs.LambertConformal(
central_longitude=262.5,
central_latitude=38.5,
standard_parallels=(38.5, 38.5),
globe=ccrs.Globe(semimajor_axis=6371229, semiminor_axis=6371229),
)
plt.figure(figsize=(9, 6))
ax = plt.axes(projection=proj_hrrr)
# Dual layer coast/state lines for better day/night visibility
# Black halo (thicker)
ax.coastlines(color="black", linewidth=1.2)
ax.add_feature(cfeature.STATES, edgecolor="black", linewidth=1.0)
# White inner line (thinner)
ax.coastlines(color="white", linewidth=0.4)
ax.add_feature(cfeature.STATES, edgecolor="white", linewidth=0.3)
field = y_pred[0, 0, 0, goes_ch_idx].detach().cpu().numpy()
im = ax.pcolormesh(
lon_out,
lat_out,
field,
transform=ccrs.PlateCarree(),
cmap="gray_r",
shading="auto",
)
# Overlay MRMS on top of GOES
field_mrms = y_mrms_pred[0, 0, 0, mrms_ch_idx]
field_mrms = (
torch.where(~model.valid_mask, torch.nan, field_mrms).detach().cpu().numpy()
)
field_mrms = np.where(field_mrms <= 0, np.nan, field_mrms)
im_mrms = ax.pcolormesh(
lon_out,
lat_out,
field_mrms,
transform=ccrs.PlateCarree(),
cmap="inferno",
shading="auto",
vmin=0.0,
vmax=55.0,
)
plt.colorbar(
im,
label="GOES Clean IR 10.35um [K]",
orientation="horizontal",
pad=0.05,
shrink=0.5,
)
plt.colorbar(
im_mrms,
label="MRMS Reflectivity [dBZ]",
orientation="horizontal",
pad=0.1,
shrink=0.5,
)
time = y_pred_coords["time"][0].item()
lead_time = y_pred_coords["lead_time"][0]
plt.title(
f"Predicted GOES {goes_channel} with MRMS overlay from {time} UTC "
f"initialization (lead {lead_time.astype('timedelta64[m]').item()})"
)
plt.tight_layout()
plt.savefig("outputs/03_stormscope_goes_example.png", dpi=300)
