Leeway is the search and rescue (SAR) model developed by the US Coast Guard, as originally described in

Allen, A.A, 2005: Leeway Divergence, USCG R&D Center Technical Report CG-D-05-05. Available through, reference ADA435435

Allen A.A. and J.V. Plourde (1999) Review of Leeway; Field Experiments and Implementation, USCG R&D Center Technical Report CG-D-08-99. Available through, reference ADA366414

and later extended and modified by e.g.

Breivik, O., A. Allen, C. Maisondieu, J.-C. Roth, and B. Forest, 2012: The leeway of shipping containers at different immersion levels. Ocean Dyn., 62, 741–752, doi:10.1007/s10236-012-0522-z

The Leeway model is based on empirically determined coefficients as tabulated in

The Leeway model is been reprogrammed in Python for OpenDrift by Knut-Frode Dagestad of the Norwegian Meteorological Institute.

Module Contents



Extending LagrangianArray with variables relevant for leeway objects.


The Leeway model in the OpenDrift framework.

opendrift.models.leeway.RIGHT = 0
opendrift.models.leeway.LEFT = 1
class opendrift.models.leeway.LeewayObj(**kwargs)[source]

Bases: opendrift.elements.LagrangianArray

Extending LagrangianArray with variables relevant for leeway objects.

Initialises a LagrangianArray with given properties.


Keyword arguments (kwargs) with names corresponding to the OrderedDict ‘variables’ of the class, and corresponding values. The values must be ndarrays of equal length, or scalars. All (or none) variables must be given, unless a default value is specified in the OrderedDict ‘variables’ An empty object may be created by giving no input.

class opendrift.models.leeway.Leeway(d=None, *args, **kwargs)[source]

Bases: opendrift.models.basemodel.OpenDriftSimulation

The Leeway model in the OpenDrift framework.

Advects a particle (a drifting object) with the ambient current and as a function of the wind vector according to the drift properties of the object.

Initialise OpenDriftSimulation

seed: integer or None. A given integer will yield identical

random numbers drawn each simulation. Random numbers are e.g. used to distribute particles spatially when seeding, and may be used by modules (subclasses) for e.g. diffusion. Specifying a fixed value (default: 0) is useful for sensitivity tests. With seed = None, different random numbers will be drawn for subsequent runs, even with identical configuration/input.

iomodule: name of module used to export data

default: netcdf, see for more alternatives. iomodule is module/filename without preceeding io_

loglevel: set to 0 (default) to retrieve all debug information.

Provide a higher value (e.g. 20) to receive less output. Use the string ‘custom’ to configure logging from outside.

logtime: if True, a time stamp is given for each logging line.

logtime can also be given as a python time specifier (e.g. ‘%H:%M:%S’)

max_speed = 1.5
seed_elements(self, lon, lat, object_type=None, **kwargs)[source]

Seed particles in a cone-shaped area over a time period.

list_object_categories(self, substr=None)[source]

Display leeway categories to screen

Print only objects containing ‘substr’, if specified


Update positions and properties of leeway particles.

export_ascii(self, filename)[source]

Export output to ASCII format of original version