Skip to content

DLESyMv0_ISCCP_ERA5

GlobalCM202440 GBNVIDIAPyTorch

Import path: earth2studio.models.px.DLESyMv0_ISCCP_ERA5

View source on GitHub View install commands

Documentation

Bases: DLESyM

DLESyMv0_ISCCP_ERA5 prognostic model for climate-timescale rollouts.

This model packages the atmosphere and ocean checkpoints distributed by AtmosSci-DLESM/DLESyM <https://github.com/AtmosSci-DLESM/DLESyM>_ (the University of Washington group, Cresswell-Clay et al. 2024). It is designed and validated for multi-decadal to millennial climate integration (100–1000 year rollouts), as demonstrated in the original paper. This distinguishes it from [DLESyM][earth2studio.models.px.DLESyM] (DLESyM-V1-ERA5), which was optimised for subseasonal-to-seasonal (S2S) ensemble forecasting over lead times of days to weeks.

The architecture is similar to [DLESyM][earth2studio.models.px.DLESyM] -- both use physicsnemo.models.dlwp_healpix on a HEALPix nside=64 (≈ 1°) grid with coupled atmosphere/ocean rollout -- but the upstream checkpoints carry a different variable set (9 atmospheric variables including outgoing longwave radiation trained on ISCCP-distributed OLR, and a 3-variable ocean coupling) rather than ERA5 TTR.

When use_ttr=True (default), the wrapper accepts ERA5 ttr and applies the upstream team's per-day-of-year moment-matching transform to convert it to ISCCP-distributed OLR before the forward pass. The transform requires bundled climatology netCDFs (era5_ttr_doy_stats_hpx64.nc with ttr1h_mean / ttr1h_std and isccp_olr_doy_stats_hpx64.nc with olr_mean / olr_std) inside the model package, each indexed by (dayofyear, face, height, width). When use_ttr=False, supply pre-transformed OLR (rlut) directly.

Parameters:

  • *args (Any, default: () ) –

    Positional arguments forwarded to DLESyM.

  • use_ttr (bool, default: True ) –

    If True, declare ttr as the radiative input variable and apply the TTR -> OLR transform internally. If False, declare rlut directly. Defaults to True.

  • ttr_clim_mean (ndarray | None, default: None ) –

    Per-day-of-year mean of ERA5 TTR, shape (D, F, H, W) with D typically 366 (one entry per DOY) and F, H, W matching the HEALPix grid. Required when use_ttr=True.

  • ttr_clim_std (ndarray | None, default: None ) –

    Per-day-of-year std of ERA5 TTR (same shape as ttr_clim_mean).

  • olr_clim_mean (ndarray | None, default: None ) –

    Per-day-of-year mean of ISCCP OLR (same shape).

  • olr_clim_std (ndarray | None, default: None ) –

    Per-day-of-year std of ISCCP OLR (same shape).

  • olr_floor (float, default: 0.0 ) –

    Lower bound applied to the transformed OLR (the upstream pipeline uses a small positive quantile floor). Defaults to 0.0.

  • **kwargs (Any, default: {} ) –

    Keyword arguments forwarded to DLESyM.

Note

For more information see:

See [DLESyM][earth2studio.models.px.dlesym.DLESyM] for details on the coupled rollout, retrieve_valid_atmos_outputs / retrieve_valid_ocean_outputs, and the HEALPix grid layout.

Example
pkg = DLESyMv0_ISCCP_ERA5.load_default_package()
model = DLESyMv0_ISCCP_ERA5.load_model(pkg, use_ttr=True)
for step, (x, coords) in enumerate(model.create_iterator(x0, coords0)):
    ```pycon
    ...
    ```

__call__

__call__(
    x: Tensor, coords: CoordSystem
) -> tuple[Tensor, CoordSystem]

Runs upstream DLESyM forward 1 coupled step.

Parameters:

  • x (Tensor) –

    Input tensor of shape (B, T, LT, V, F, H, W).

  • coords (CoordSystem) –

    Input coordinate system (with ttr in variable when use_ttr=True).

Returns:

  • tuple[Tensor, CoordSystem] –

    Output tensor and output coordinates (in model variable space: rlut rather than ttr).

create_iterator

create_iterator(
    x: Tensor, coords: CoordSystem
) -> Iterator[tuple[Tensor, CoordSystem]]

Create a time-integration iterator (yields initial condition first).

Parameters:

  • x (Tensor) –

    Input tensor.

  • coords (CoordSystem) –

    Input coordinate system.

Yields:

  • Iterator[tuple[Tensor, CoordSystem]] –

    (x, coords) at each step. The first yield is the initial condition in model variable space (rlut, post-transform).

load_default_package classmethod

load_default_package() -> Package

Default DLESyMv0_ISCCP_ERA5 model package on HuggingFace.

load_model classmethod

load_model(
    package: Package,
    use_ttr: bool = True,
    atmos_model_idx: int = 0,
    ocean_model_idx: int = 0,
) -> PrognosticModel

Load the DLESyMv0_ISCCP_ERA5 prognostic from a package.

Parameters:

  • package (Package) –

    Model package containing config.yaml, atmos_model_*.mdlus, ocean_model_*.mdlus, the HEALPix lat/lon and constant fields, and (when use_ttr=True) era5_ttr_doy_stats_hpx64.nc and isccp_olr_doy_stats_hpx64.nc.

  • use_ttr (bool, default: True ) –

    See DLESyMv0_ISCCP_ERA5. Defaults to True.

  • atmos_model_idx (int, default: 0 ) –

    Index into cfg.models.atmos_model_checkpoints. Defaults to 0.

  • ocean_model_idx (int, default: 0 ) –

    Index into cfg.models.ocean_model_checkpoints. Defaults to 0.

Returns:

  • PrognosticModel –

    Loaded DLESyMv0_ISCCP_ERA5 instance.

Examples using earth2studio.models.px.DLESyMv0_ISCCP_ERA5