earth2studio.perturbation.BredVector#

class earth2studio.perturbation.BredVector(model, noise_amplitude=0.05, integration_steps=20, ensemble_perturb=False, seeding_perturbation_method=<earth2studio.perturbation.brown.Brown object>)[source]#

Bred Vector perturbation method, a classical technique for pertubations in ensemble forecasting.

Parameters:
  • model (Callable[[torch.Tensor], torch.Tensor]) – Dynamical model, typically this is the prognostic AI model. TODO: Update to prognostic looper

  • noise_amplitude (float | Tensor, optional) – Noise amplitude, by default 0.05. If a tensor, this must be broadcastable with the input data.

  • integration_steps (int, optional) – Number of integration steps to use in forward call, by default 20

  • ensemble_perturb (bool, optional) – Perturb the ensemble in an interacting fashion, by default False

  • seeding_perturbation_method (Perturbation, optional) – Method to seed the Bred Vector perturbation, by default Brown Noise

__call__(x, coords)[source]#

Apply perturbation method

Parameters:
  • x (torch.Tensor) – Input tensor intended to apply perturbation on

  • coords (CoordSystem) – Ordered dict representing coordinate system that describes the tensor

Returns:

Output tensor and respective coordinate system dictionary

Return type:

tuple[torch.Tensor, CoordSystem]