Running StormCast Ensemble Inference¶
Ensemble StormCast inference workflow.
This example will demonstrate how to run a simple inference workflow to generate a ensemble forecast using StormCast. For details about the stormcast model, see
Set Up¶
All workflows inside Earth2Studio require constructed components to be
handed to them. In this example, let's take a look at the most basic ensemble workflow:
earth2studio.run.ensemble.
# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from collections import OrderedDict
from datetime import datetime
from math import ceil
import numpy as np
import torch
from loguru import logger
from tqdm import tqdm
from earth2studio.data import DataSource, ForecastSource, fetch_data
from earth2studio.io import IOBackend
from earth2studio.models.dx import DiagnosticModel
from earth2studio.models.px import PrognosticModel
from earth2studio.perturbation import Perturbation
from earth2studio.utils.checkpoint import (
Checkpoint,
CheckpointSession,
NullCheckpoint,
)
from earth2studio.utils.coords import CoordSystem, map_coords, split_coords
from earth2studio.utils.time import to_time_array
logger.remove()
logger.add(lambda msg: tqdm.write(msg, end=""), colorize=True)
def deterministic(
time: list[str] | list[datetime] | list[np.datetime64],
nsteps: int,
prognostic: PrognosticModel,
data: DataSource,
io: IOBackend,
output_coords: CoordSystem = OrderedDict({}),
device: torch.device | None = None,
verbose: bool = True,
checkpoint: Checkpoint | CheckpointSession | NullCheckpoint = NullCheckpoint(),
) -> IOBackend:
"""Built in deterministic workflow.
This workflow creates a determinstic inference pipeline to produce a forecast
prediction using a prognostic model.
Parameters
----------
time : list[str] | list[datetime] | list[np.datetime64]
List of string, datetimes or np.datetime64
nsteps : int
Number of forecast steps
prognostic : PrognosticModel
Prognostic model
data : DataSource
Data source
io : IOBackend
IO object
output_coords: CoordSystem, optional
IO output coordinate system override, by default OrderedDict({})
device : torch.device, optional
Device to run inference on, by default None
verbose : bool, optional
Print inference progress, by default True
checkpoint : Checkpoint, optional
Checkpoint manager or checkpoint session used to record and resume workflow
progress, by default no checkpoint
Returns
-------
IOBackend
Output IO object
"""
logger.info("Running simple workflow!")
# Load model onto the device
device = (
device
if device is not None
else torch.device("cuda" if torch.cuda.is_available() else "cpu")
)
logger.info(f"Inference device: {device}")
prognostic = prognostic.to(device)
prognostic_ic = prognostic.input_coords()
time = to_time_array(time)
# Set up IO backend
total_coords = prognostic.output_coords(prognostic.input_coords()).copy()
for key, value in prognostic.output_coords(
prognostic.input_coords()
).items(): # Scrub batch dims
if value.shape == (0,):
del total_coords[key]
total_coords["time"] = time
total_coords["lead_time"] = np.asarray(
[
prognostic.output_coords(prognostic.input_coords())["lead_time"] * i
for i in range(nsteps + 1)
]
).flatten()
total_coords.move_to_end("lead_time", last=False)
total_coords.move_to_end("time", last=False)
for key, value in total_coords.items():
total_coords[key] = output_coords.get(key, value)
var_names = total_coords.pop("variable")
io.add_array(total_coords, var_names)
with checkpoint as ckpt:
restart_step = None
if ckpt.exists and ckpt.write_count > 0:
if ckpt.catalog.level < 2:
logger.warning(
"deterministic received checkpoint level "
f"{ckpt.catalog.level}; component state may not be "
"complete enough to resume a rollout. Re-running from "
"lead time zero."
)
else:
restart_step = ckpt.write_count - 1
if restart_step >= nsteps:
logger.success("\nInference complete")
return io
# Fetch data from data source and load onto device
if hasattr(prognostic, "interp_method"):
interp_to = prognostic_ic
interp_method = prognostic.interp_method
else:
interp_to = None
interp_method = "nearest"
x, coords = fetch_data(
source=data,
time=time,
variable=prognostic_ic["variable"],
lead_time=prognostic_ic["lead_time"],
device=device,
interp_to=interp_to,
interp_method=interp_method,
)
logger.success(f"Fetched data from {data.__class__.__name__}")
# Map lat and lon if needed
x, coords = map_coords(x, coords, prognostic.input_coords())
# Create prognostic iterator
model = prognostic.create_iterator(x, coords)
logger.info("Inference starting!")
initial_progress = 0 if restart_step is None else restart_step + 1
with tqdm(
total=nsteps + 1,
initial=initial_progress,
desc="Running inference",
position=1,
disable=(not verbose),
) as pbar:
for local_step, (x, coords) in enumerate(model):
step = (
local_step
if restart_step is None
else restart_step + local_step + 1
)
current_lead_time = coords["lead_time"][-1]
# Subselect domain/variables as indicated in output_coords
x, coords = map_coords(x, coords, output_coords)
io.write(*split_coords(x, coords))
ckpt.write(lead_time=current_lead_time)
pbar.update(1)
if step == nsteps:
break
ckpt.flush()
logger.success("\nInference complete")
return io
def diagnostic(
time: list[str] | list[datetime] | list[np.datetime64],
nsteps: int,
prognostic: PrognosticModel,
diagnostic: DiagnosticModel,
data: DataSource | ForecastSource,
io: IOBackend,
output_coords: CoordSystem = OrderedDict({}),
device: torch.device | None = None,
verbose: bool = True,
checkpoint: Checkpoint | CheckpointSession | NullCheckpoint = NullCheckpoint(),
) -> IOBackend:
"""Built in diagnostic workflow.
This workflow creates a determinstic inference pipeline that couples a prognostic
model with a diagnostic model.
Parameters
----------
time : list[str] | list[datetime] | list[np.datetime64]
List of string, datetimes or np.datetime64
nsteps : int
Number of forecast steps
prognostic : PrognosticModel
Prognostic model
diagnostic: DiagnosticModel
Diagnostic model, must be on same coordinate axis as prognostic
data : DataSource | ForecastSource
Data source
io : IOBackend
IO object
output_coords: CoordSystem, optional
IO output coordinate system override, by default OrderedDict({})
device : torch.device, optional
Device to run inference on, by default None
verbose : bool, optional
Print inference progress, by default True
checkpoint : Checkpoint, optional
Checkpoint manager or checkpoint session used to record and resume workflow
progress, by default no checkpoint
Returns
-------
IOBackend
Output IO object
"""
logger.info("Running diagnostic workflow!")
device = (
device
if device is not None
else torch.device("cuda" if torch.cuda.is_available() else "cpu")
)
logger.info(f"Inference device: {device}")
prognostic = prognostic.to(device)
diagnostic = diagnostic.to(device)
prognostic_ic = prognostic.input_coords()
diagnostic_ic = diagnostic.input_coords()
time = to_time_array(time)
total_coords = prognostic.output_coords(prognostic.input_coords())
for key, value in prognostic.output_coords(
prognostic.input_coords()
).items(): # Scrub batch dims
if key in diagnostic.output_coords(diagnostic_ic):
total_coords[key] = diagnostic.output_coords(diagnostic_ic)[key]
if value.shape == (0,):
del total_coords[key]
total_coords["time"] = time
total_coords["lead_time"] = np.asarray(
[
prognostic.output_coords(prognostic.input_coords())["lead_time"] * i
for i in range(nsteps + 1)
]
).flatten()
total_coords.move_to_end("lead_time", last=False)
total_coords.move_to_end("time", last=False)
for key, value in total_coords.items():
total_coords[key] = output_coords.get(key, value)
var_names = total_coords.pop("variable")
io.add_array(total_coords, var_names)
with checkpoint as ckpt:
restart_step = None
if ckpt.exists and ckpt.write_count > 0:
if ckpt.catalog.level < 2:
logger.warning(
"diagnostic received checkpoint level "
f"{ckpt.catalog.level}; component state may not be "
"complete enough to resume a rollout. Re-running from "
"lead time zero."
)
else:
restart_step = ckpt.write_count - 1
if restart_step >= nsteps:
logger.success("\nInference complete")
return io
if hasattr(prognostic, "interp_method"):
interp_to = prognostic_ic
interp_method = prognostic.interp_method
else:
interp_to = None
interp_method = "nearest"
x, coords = fetch_data(
source=data,
time=time,
variable=prognostic_ic["variable"],
lead_time=prognostic_ic["lead_time"],
device=device,
interp_to=interp_to,
interp_method=interp_method,
)
logger.success(f"Fetched data from {data.__class__.__name__}")
x, coords = map_coords(x, coords, prognostic_ic)
model = prognostic.create_iterator(x, coords)
logger.info("Inference starting!")
initial_progress = 0 if restart_step is None else restart_step + 1
with tqdm(
total=nsteps + 1,
initial=initial_progress,
desc="Running inference",
position=1,
disable=(not verbose),
) as pbar:
for local_step, (x, coords) in enumerate(model):
step = (
local_step
if restart_step is None
else restart_step + local_step + 1
)
current_lead_time = coords["lead_time"][-1]
x, coords = map_coords(x, coords, diagnostic_ic)
x, coords = diagnostic(x, coords)
x, coords = map_coords(x, coords, output_coords)
io.write(*split_coords(x, coords))
ckpt.write(lead_time=current_lead_time)
pbar.update(1)
if step == nsteps:
break
ckpt.flush()
logger.success("\nInference complete")
return io
def ensemble(
time: list[str] | list[datetime] | list[np.datetime64],
nsteps: int,
nensemble: int,
prognostic: PrognosticModel,
data: DataSource,
io: IOBackend,
perturbation: Perturbation,
batch_size: int | None = None,
output_coords: CoordSystem = OrderedDict({}),
device: torch.device | None = None,
verbose: bool = True,
checkpoint: Checkpoint | CheckpointSession | NullCheckpoint = NullCheckpoint(),
) -> IOBackend:
"""Built in ensemble workflow.
Parameters
----------
time : list[str] | list[datetime] | list[np.datetime64]
List of string, datetimes or np.datetime64
nsteps : int
Number of forecast steps
nensemble : int
Number of ensemble members to run inference for.
prognostic : PrognosticModel
Prognostic models
data : DataSource
Data source
io : IOBackend
IO object
perturbation : Perturbation
Method to perturb the initial condition to create an ensemble.
batch_size: int, optional
Number of ensemble members to run in a single batch,
by default None.
output_coords: CoordSystem, optional
IO output coordinate system override, by default OrderedDict({})
device : torch.device, optional
Device to run inference on, by default None
verbose : bool, optional
Print inference progress, by default True
checkpoint : Checkpoint, optional
Checkpoint manager or checkpoint session used to record and resume workflow
progress, by default no checkpoint
Returns
-------
IOBackend
Output IO object
"""
logger.info("Running ensemble inference!")
device = (
device
if device is not None
else torch.device("cuda" if torch.cuda.is_available() else "cpu")
)
logger.info(f"Inference device: {device}")
prognostic = prognostic.to(device)
prognostic_ic = prognostic.input_coords()
time = to_time_array(time)
if hasattr(prognostic, "interp_method"):
interp_to = prognostic_ic
interp_method = prognostic.interp_method
else:
interp_to = None
interp_method = "nearest"
x0, coords0 = fetch_data(
source=data,
time=time,
variable=prognostic_ic["variable"],
lead_time=prognostic_ic["lead_time"],
device=device,
interp_to=interp_to,
interp_method=interp_method,
)
logger.success(f"Fetched data from {data.__class__.__name__}")
total_coords = prognostic.output_coords(prognostic.input_coords()).copy()
if "batch" in total_coords:
del total_coords["batch"]
total_coords["time"] = time
total_coords["lead_time"] = np.asarray(
[
prognostic.output_coords(prognostic.input_coords())["lead_time"] * i
for i in range(nsteps + 1)
]
).flatten()
total_coords.move_to_end("lead_time", last=False)
total_coords.move_to_end("time", last=False)
total_coords = {"ensemble": np.arange(nensemble)} | total_coords
for key, value in total_coords.items():
total_coords[key] = output_coords.get(key, value)
variables_to_save = total_coords.pop("variable")
io.add_array(total_coords, variables_to_save)
if batch_size is None:
batch_size = nensemble
batch_size = min(nensemble, batch_size)
with checkpoint as ckpt:
completed_ensembles = []
if ckpt.exists and not isinstance(ckpt, NullCheckpoint):
completed_ensembles = [
int(value) for value in ckpt.metadata.get("completed_ensembles", [])
]
completed = set(completed_ensembles)
start_batch_id = next(
(index for index in range(nensemble) if index not in completed),
nensemble,
)
number_of_batches = ceil((nensemble - start_batch_id) / batch_size)
restart_first_batch = (
ckpt.exists
and ckpt.write_count > 0
and start_batch_id < nensemble
and ckpt.lead_time != total_coords["lead_time"][-1]
)
logger.info(f"Starting {nensemble} Member Ensemble Inference with \
{number_of_batches} number of batches.")
for batch_index, batch_id in enumerate(
tqdm(
range(start_batch_id, nensemble, batch_size),
total=number_of_batches,
desc="Total Ensemble Batches",
position=2,
disable=(not verbose),
)
):
mini_batch_size = min(batch_size, nensemble - batch_id)
ensemble_coords = np.arange(batch_id, batch_id + mini_batch_size)
ensemble_members = [int(value) for value in ensemble_coords]
restart_step = None
if batch_index == 0 and restart_first_batch:
if ckpt.catalog.level < 2:
logger.warning(
"ensemble received checkpoint level "
f"{ckpt.catalog.level}; component state may not be "
"complete enough to resume a rollout. Re-running from "
"lead time zero."
)
ckpt.write_count = 0
else:
restart_step = ckpt.write_count - 1
if restart_step >= nsteps:
continue
elif not isinstance(ckpt, NullCheckpoint):
ckpt.write_count = 0
x = x0.to(device)
coords = OrderedDict({"ensemble": ensemble_coords}) | coords0.copy()
x = x.unsqueeze(0).repeat(mini_batch_size, *([1] * x.ndim))
x, coords = map_coords(x, coords, prognostic_ic)
x, coords = perturbation(x, coords)
model = prognostic.create_iterator(x, coords)
initial_progress = 0 if restart_step is None else restart_step + 1
with tqdm(
total=nsteps + 1,
initial=initial_progress,
desc=f"Running batch {batch_id} inference",
position=1,
leave=False,
disable=(not verbose),
) as pbar:
for local_step, (x, coords) in enumerate(model):
step = (
local_step
if restart_step is None
else restart_step + local_step + 1
)
current_lead_time = coords["lead_time"][-1]
x, coords = map_coords(x, coords, output_coords)
io.write(*split_coords(x, coords))
if step == nsteps:
completed.update(ensemble_members)
completed_ensembles = sorted(completed)
ckpt.write(
lead_time=current_lead_time,
completed_ensembles=completed_ensembles,
)
pbar.update(1)
if step == nsteps:
break
ckpt.flush()
logger.success("\nInference complete")
return io
Thus, we need the following:
- Prognostic Model: Use the built in StormCast-CONUS Model
earth2studio.models.px.StormCastCONUS. - perturbation_method: Use the Zero Method
earth2studio.perturbation.Zero. We will not perturb the initial data because StormCast has stochastic generation of ensemble members. - Datasource: Pull data from the HRRR data api
earth2studio.data.HRRR. - IO Backend: Let's save the outputs into a Zarr store
earth2studio.io.ZarrBackend.
StormCast-CONUS also requires a global conditioning data source. We use
GFS_FX earth2studio.data.GFS_FX (the default).
import numpy as np
from loguru import logger
from tqdm import tqdm
logger.remove()
logger.add(lambda msg: tqdm.write(msg, end=""), colorize=True)
import os
os.makedirs("outputs", exist_ok=True)
from dotenv import load_dotenv
load_dotenv() # TODO: make common example prep function
from earth2studio.data import GFS_FX, HRRR
from earth2studio.io import ZarrBackend
from earth2studio.models.px import StormCastCONUS
from earth2studio.perturbation import Zero
# Load the default model package which downloads the checkpoint from HuggingFace
# GFS_FX is used as the global conditioning data source (the default)
package = StormCastCONUS.load_default_package()
model = StormCastCONUS.load_model(package, conditioning_data_source=GFS_FX())
# Instantiate the (Zero) perturbation method
z = Zero()
# Create the data source
data = HRRR()
# Create the IO handler, store in memory
io = ZarrBackend()
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 featureExecute the Workflow¶
With all components initialized, running the workflow is a single line of Python code. Workflow will return the provided IO object back to the user, which can be used to then post process. Some have additional APIs that can be handy for post-processing or saving to file. Check the API docs for more information.
For the forecast we will predict for 4 hours
import earth2studio.run as run
nsteps = 4
nensemble = 2
batch_size = 2
date = "2022-11-04T18:00:00"
io = run.ensemble(
[date],
nsteps,
nensemble,
model,
data,
io,
z,
batch_size=batch_size,
output_coords={"variable": np.array(["t2m", "refc"])},
)
print(io.root.tree())
Console output2014 lines
2026-08-15 05:23:50.016 | INFO | earth2studio.run:ensemble:394 - Running ensemble inference!
2026-08-15 05:23:50.016 | INFO | earth2studio.run:ensemble:401 - Inference device: cuda
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.371 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 7962086-1409430
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.412 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 160228896-982616
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.455 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 119268253-2232519
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.488 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 22081327-1381092
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.489 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 187448812-937850
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.490 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 134941611-2210983
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.640 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 36368353-1364377
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.641 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 214553478-898609
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.642 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 149860207-2180501
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.718 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 50588716-1358840
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.718 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 277008297-831964
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.752 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 177885889-2133075
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.757 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 65671687-1390323
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.757 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 330412458-821630
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.758 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 204766598-2304208
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.885 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 81149364-1449216
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:51.913 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 379113535-819777
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.085 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 268792439-2224733
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.086 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 97014752-1504880
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.087 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 10517583-1131860
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.088 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfsfcf00.grib2 0-428263
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.089 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 113122462-1551147
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.091 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 24614115-1135617
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.186 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 128991697-1520582
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.194 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 38871585-1116455
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.194 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 144323963-1454836
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.195 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 53054095-1095203
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.195 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 158868212-1360684
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.334 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 68129247-1077788
Fetching HRRR data: 0%| | 0/99 [00:00<?, ?it/s]
2026-08-15 05:23:52.424 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 186230149-1218663
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.424 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 83638835-1072872
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.425 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 212766657-1786821
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.425 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 99555066-1078556
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.426 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 103335270-2236113
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.688 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 275750815-1257482
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.688 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 115713117-1088586
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.689 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 328860260-1552198
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.690 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 131536895-1079699
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.763 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 378043707-1069828
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.763 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 146782466-1060468
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.844 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 4533833-2284515
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.845 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 161211512-1036351
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.875 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 18594556-2365956
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.876 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 188386662-984328
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.876 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 32884021-2375771
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.968 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 215452087-940036
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.969 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 47099961-2395230
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:52.969 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 277840261-825209
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.015 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 62169411-2422084
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.026 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 331234088-839627
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.027 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 77632962-2446525
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.195 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 379933312-816848
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.196 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 93487980-2465620
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.269 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 6818348-1143738
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.311 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfsfcf00.grib2 47888095-2381615
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.347 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 109580824-2482304
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.348 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 20960512-1120815
Fetching HRRR data: 0%| | 0/99 [00:01<?, ?it/s]
2026-08-15 05:23:53.411 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 125447922-2497098
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.465 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 35259792-1108561
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.466 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 140798645-2505542
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.466 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 49495191-1093525
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.695 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfsfcf00.grib2 38189928-1192309
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.696 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 155375094-2508925
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.701 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 64591495-1080192
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.702 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 182788585-2497060
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
2026-08-15 05:23:53.702 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 80079487-1069877
Fetching HRRR data: 0%| | 0/99 [00:02<?, ?it/s]
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.013 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfsfcf00.grib2 45506480-2381615
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.014 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 209389153-2460265
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.015 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 95953600-1061152
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.015 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfsfcf00.grib2 26569266-640071
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.020 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 272723954-2210308
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.020 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 112063128-1059334
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.072 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 9371516-1146067
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.163 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 326303134-1877706
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.179 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 127945020-1046677
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.180 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 23462419-1151696
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.180 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 375936301-1460632
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.191 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 143304187-1019776
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.191 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 37732730-1138855
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.281 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 0-2243979
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.283 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 157884019-984193
Fetching HRRR data: 1%| | 1/99 [00:02<04:00, 2.45s/it]
2026-08-15 05:23:54.378 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 51947556-1106539
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.380 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 14022097-2243582
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.381 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 185285645-944504
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.382 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 67062010-1067237
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.383 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 28243575-2242405
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.426 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 211849418-917239
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.427 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 82598580-1040255
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.538 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 42476747-2241157
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.628 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 274934262-816553
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.663 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 98519632-1035434
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.746 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 56623065-2239832
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.747 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 328180840-679420
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.799 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 114673609-1039508
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.832 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 71843320-2238748
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.833 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 377396933-646774
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.890 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 130512279-1024616
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.891 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 87412288-2237675
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
2026-08-15 05:23:54.891 | DEBUG | earth2studio.data.hrrr:fetch_array:485 - Fetching HRRR grib file: noaa-hrrr-bdp-pds/hrrr.20221104/conus/hrrr.t18z.wrfnatf00.grib2 145778799-1003667
Fetching HRRR data: 1%| | 1/99 [00:03<04:00, 2.45s/it]
Fetching HRRR data: 3%|โ | 3/99 [00:03<01:44, 1.09s/it]
Fetching HRRR data: 58%|โโโโโโ | 57/99 [00:03<00:01, 24.77it/s]
Fetching HRRR data: 100%|โโโโโโโโโโ| 99/99 [00:03<00:00, 25.43it/s]
2026-08-15 05:23:55.638 | SUCCESS | earth2studio.run:ensemble:422 - Fetched data from HRRR
2026-08-15 05:23:55.661 | INFO | earth2studio.run:ensemble:466 - Starting 2 Member Ensemble Inference with 1 number of batches.
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Running batch 0 inference: 0%| | 0/5 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
2026-08-15 05:23:55.997 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 213850343-604406
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:55.998 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 341789809-1214220
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:55.999 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 409339260-833898
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.000 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 407354215-949794
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.001 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 264239006-1273040
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.002 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 0-995376
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.007 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 338690504-894163
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.008 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 209798112-1176132
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.078 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 402038151-961630
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.079 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 261484572-806473
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.080 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 345377812-934577
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.081 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 206992042-733841
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.082 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 425476823-936671
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.087 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 267842645-963561
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.088 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 397071113-856997
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.167 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 439801520-1175028
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.199 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 213254470-595873
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.200 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 339584667-839992
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.201 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 402999781-946576
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.236 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 262291045-722959
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.237 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 418465084-875519
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.237 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 346312389-937672
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.238 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 207725883-743913
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.239 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 424516679-960144
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.327 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 268806206-929616
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
2026-08-15 05:23:56.328 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f001 398937782-1213906
Total Ensemble Batches: 0%| | 0/1 [00:00<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 20%|โโ | 1/5 [00:00<00:01, 3.33it/s]
Fetching GFS data: 4%|โ | 1/26 [00:00<00:13, 1.87it/s]
Fetching GFS data: 100%|โโโโโโโโโโ| 26/26 [00:00<00:00, 48.05it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
2026-08-15 05:24:48.868 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 399937197-960110
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.869 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 336554363-894088
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.869 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 209800172-1175202
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.870 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 422379370-959282
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.871 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 0-994909
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.872 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 260763919-806831
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.898 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 423338652-935426
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.939 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 407224330-833865
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.941 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 206995352-730557
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.942 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 267007486-551288
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.943 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 337448451-839171
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.943 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 213142712-595574
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.944 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 394974333-855352
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:48.999 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 400897307-945578
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.000 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 261570750-726911
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.001 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 344303086-936938
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.087 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 207725909-747857
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.130 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 267558774-554270
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.131 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 396840083-1212851
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.132 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 213738286-604496
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.133 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 339651339-1345385
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.178 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 416346686-877380
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.194 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 437509620-1174987
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.195 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 405246757-952892
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.195 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 263526223-1268513
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
2026-08-15 05:24:49.196 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f002 343368626-934460
Total Ensemble Batches: 0%| | 0/1 [00:53<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 40%|โโโโ | 2/5 [00:53<01:33, 31.24s/it]
Fetching GFS data: 4%|โ | 1/26 [00:00<00:13, 1.86it/s]
Fetching GFS data: 100%|โโโโโโโโโโ| 26/26 [00:00<00:00, 47.02it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
2026-08-15 05:26:04.485 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 437706358-1174912
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.486 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 396819132-1211386
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.486 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 213766842-604840
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.487 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 422316291-958786
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.488 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 407177636-834017
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.489 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 339660702-1340461
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.489 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 336564163-896799
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.490 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 0-993548
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.491 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 263601781-1268794
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.525 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 260840466-806765
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.625 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 343378179-933299
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.626 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 209834844-1174811
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.627 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 405205328-951379
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.628 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 399914112-959543
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.644 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 207035511-730778
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.645 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 267085135-551979
Total Ensemble Batches: 0%| | 0/1 [02:08<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:08<01:43, 51.50s/it]
2026-08-15 05:26:04.693 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 394953874-852795
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.694 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 213171494-595348
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.695 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 337460962-838267
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.696 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 423275077-934841
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.697 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 400873655-940911
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.697 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 261647231-726918
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.843 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 344311478-940798
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.845 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 207766289-744166
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.846 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 416292353-871033
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
2026-08-15 05:26:04.860 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f003 267637114-554173
Total Ensemble Batches: 0%| | 0/1 [02:09<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 60%|โโโโโโ | 3/5 [02:09<01:43, 51.50s/it]
Fetching GFS data: 4%|โ | 1/26 [00:00<00:11, 2.10it/s]
Fetching GFS data: 100%|โโโโโโโโโโ| 26/26 [00:00<00:00, 53.39it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
2026-08-15 05:27:24.353 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 405336229-949197
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.353 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 261857266-726625
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.357 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 210198692-1172945
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.358 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 336782815-896127
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.358 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 437889690-1174241
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.359 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 395085989-850671
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.360 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 261050575-806691
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.360 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 407297493-833420
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.371 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 208133721-743928
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.372 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 267836952-553736
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.372 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 416409951-868724
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.373 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 344513547-939684
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.373 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 0-991140
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.410 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 396948179-1209475
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.528 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 400995449-943235
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.529 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 400037789-957660
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.540 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 343577482-936065
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.565 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 339871858-1339322
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.566 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 267284988-551964
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.566 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 422418297-956541
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.610 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 337678942-836096
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.624 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 213532053-595267
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.625 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 207403092-730629
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.653 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 423374838-936567
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.654 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 263806859-1267508
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
2026-08-15 05:27:24.655 | DEBUG | earth2studio.data.gfs:fetch_array:386 - Fetching GFS grib file: noaa-gfs-bdp-pds/gfs.20221104/18/atmos/gfs.t18z.pgrb2.0p25.f004 214127320-605287
Total Ensemble Batches: 0%| | 0/1 [03:28<?, ?it/s]
Fetching GFS data: 0%| | 0/26 [00:00<?, ?it/s]
Running batch 0 inference: 80%|โโโโโโโโ | 4/5 [03:28<01:02, 62.70s/it]
Fetching GFS data: 4%|โ | 1/26 [00:00<00:10, 2.30it/s]
Fetching GFS data: 100%|โโโโโโโโโโ| 26/26 [00:00<00:00, 58.49it/s]
Running batch 0 inference: 100%|โโโโโโโโโโ| 5/5 [04:49<00:00, 69.16s/it]
Total Ensemble Batches: 100%|โโโโโโโโโโ| 1/1 [04:49<00:00, 289.31s/it]
Total Ensemble Batches: 100%|โโโโโโโโโโ| 1/1 [04:49<00:00, 289.31s/it]
2026-08-15 05:28:44.968 | SUCCESS | earth2studio.run:ensemble:536 -
Inference complete
/
โโโ ensemble (2,) int64
โโโ hrrr_x (1792,) float64
โโโ hrrr_y (1024,) float64
โโโ lead_time (5,) timedelta64[h]
โโโ refc (2, 1, 5, 1024, 1792) float32
โโโ t2m (2, 1, 5, 1024, 1792) float32
โโโ time (1,) datetime64[ns]Post Processing¶
The last step is to post process our results. Cartopy is a great library for plotting fields on projections of a sphere. Start with plotting the reflectivity.
Notice that the Zarr IO function has additional APIs to interact with the stored data.
import cartopy
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
forecast = f"{date}"
step = nsteps # 4 hours, since lead_time = 1 hr
# Create a correct Lambert Conformal projection
projection = 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),
)
# Get the lat lon arrays from the model
def plot_(axi, data, title, cmap, vmin=None, vmax=None):
"""Convenience function for plotting pcolormesh."""
# Plot the field using pcolormesh
im = axi.pcolormesh(
model.lon,
model.lat,
data,
transform=ccrs.PlateCarree(),
cmap=cmap,
vmin=vmin,
vmax=vmax,
)
plt.colorbar(im, ax=axi, shrink=0.6, pad=0.04)
# Set title
axi.set_title(title)
# Add coastlines and gridlines
axi.coastlines()
axi.gridlines()
# Set state lines
axi.add_feature(
cartopy.feature.STATES.with_scale("50m"),
linewidth=0.5,
edgecolor="black",
zorder=2,
)
# Plot refc
variable = "refc"
cmap = "gist_ncar"
x = io[variable]
plt.close("all")
fig, (ax1, ax2, ax3) = plt.subplots(
nrows=1, ncols=3, subplot_kw={"projection": projection}, figsize=(20, 6)
)
plot_(
ax1,
np.where(x[0, 0, step] > 0, x[0, 0, step], np.nan),
f"{forecast} - Lead time: {step}hrs - Member: {0}",
cmap,
vmin=0,
vmax=60,
)
plot_(
ax2,
np.where(x[1, 0, step] > 0, x[1, 0, step], np.nan),
f"{forecast} - Lead time: {step}hrs - Member: {1}",
cmap,
vmin=0,
vmax=60,
)
plot_(
ax3,
np.where(x[:, 0, step].mean(axis=0) > 0, x[:, 0, step].std(axis=0), np.nan),
f"{forecast} - Lead time: {step}hrs - Std",
cmap,
vmin=0,
vmax=60,
)
plt.savefig(f"outputs/10_{date}_{variable}_{step}_ensemble.jpg")

Lets also plot the surface temperature field.
# Plot 2-meter temperature
variable = "t2m"
cmap = "Spectral_r"
x = io[variable]
plt.close("all")
fig, (ax1, ax2, ax3) = plt.subplots(
nrows=1, ncols=3, subplot_kw={"projection": projection}, figsize=(20, 6)
)
plot_(
ax1,
x[0, 0, step],
f"{forecast} - Lead time: {step}hrs - Member: {0}",
cmap,
)
plot_(
ax2,
io[variable][1, 0, step],
f"{forecast} - Lead time: {step}hrs - Member: {1}",
cmap,
)
plot_(
ax3,
x[:, 0, step].std(axis=0),
f"{forecast} - Lead time: {step}hrs - Std",
cmap,
)
plt.savefig(f"outputs/10_{date}_{variable}_{step}_ensemble.jpg")
