Skip to content

perturbation.HemisphericCentredBredVector

Import path: earth2studio.perturbation.HemisphericCentredBredVector

View source on GitHub

Documentation

Bred Vector perturbation method, following the approach introduced in 'Huge Ensembles Part I: Design of Ensemble Weather Forecasts using Spherical Fourier Neural Operators'. The vector is bred by advancing in time. The bred vector is scaled seperately in the northern and southern extra-tropics and interpolated in the tropics. Additionally, it applies a centred perturbation, ie generating two perturbed stated by adding and subtracting the bred vector, respecitvely.

Parameters:

  • model (PrognosticModel) –

    Dynamical model, typically this is the prognostic AI model

  • data (DataSource) –

    data source for obtaining warmup time steps

  • seeding_perturbation_method (Perturbation) –

    Method to seed the Bred Vector perturbation that will be applied to the initial input of the model.

  • noise_amplitude (float | Tensor, default: 0.35 ) –

    Noise amplitude, by default 0.05. If a tensor, this must be broadcastable with the input data

  • integration_steps (int, default: 3 ) –

    Number of integration steps to use in forward call, by default 3

Note

For additional information:

__call__

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

Apply perturbation method

Parameters:

  • x (Tensor) –

    Input tensor intended to apply perturbation on, not used in this perturbation method

  • coords (CoordSystem) –

    Ordered dict representing coordinate system that describes the tensor. Must contain coordinates (Any, "time", "lead_time", "variable", "lat", "lon"). Time and lead_time must have size 1.

Returns:

  • tuple[torch.Tensor, CoordSystem]: –

    Output tensor and respective coordinate system dictionary

Examples using earth2studio.perturbation.HemisphericCentredBredVector