perturbation.HemisphericCentredBredVector¶
Import path: earth2studio.perturbation.HemisphericCentredBredVector
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__ ¶
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