Skip to content

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:

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 feature

Execute 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")

Output from Running StormCast Ensemble Inference

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")

Output from Running StormCast Ensemble Inference


Execution profile

Runtime telemetry

Total runtime6m 3s

Execution environment

CPUAMD EPYC 7313P 16-Core Processor
GPUNVIDIA H100 PCIe ยท 79.6 GiB
System RAM58.5 GiB
PlatformLinux 6.8.0-136-generic
Python3.13.13
GPU driver / CUDADriver 595.84 ยท CUDA support 13.2