shoot.eddies.eddies2d.Eddies2D.detect_eddies

shoot.eddies.eddies2d.Eddies2D.detect_eddies#

classmethod Eddies2D.detect_eddies(u, v, window_center, window_fit=None, ssh=None, dx=None, dy=None, min_radius=None, paral=False, nb_procs=None, ellipse_error=0.01, verbose=True, **kwargs)[source]#

Detect all eddies in a velocity field

Parameters:
  • u (xarray.DataArray) – Zonal velocity component (2D).

  • v (xarray.DataArray) – Meridional velocity component (2D).

  • window_center (float) – Window size (km) for LNAM computation and center detection.

  • window_fit (float, optional) – Window size (km) for SSH contour fitting. Default: 1.5 * window_center.

  • ssh (xarray.DataArray, optional) – Sea surface height. If None, estimated from streamfunction.

  • dx (xarray.DataArray, optional) – Grid resolution along X in meters.

  • dy (xarray.DataArray, optional) – Grid resolution along Y in meters.

  • min_radius (float, optional) – Minimum eddy radius (km) to retain.

  • paral (bool, default False) – Use parallel processing.

  • nb_procs (int, optional) – Number of parallel processes.

  • ellipse_error (float, default 0.01) – Maximum allowed ellipse fit error.

Returns:

Collection of detected eddies.

Return type:

Eddies2D

Example

>>> from shoot.eddies.eddies2d import Eddies2D
>>> eddies = Eddies2D.detect_eddies(
...     ds.u, ds.v, window_center=50,
...     window_fit=120, min_radius=10,
... )