opendrift.models.openberg

Module Contents

Classes

IcebergObj

Extending Lagrangian3DArray with relevant properties for an Iceberg

OpenBerg

Open source buoyant particle trajectory model based on OpenDrift.

Functions

water_drag(iceb_vel, water_vel, Ao, rho_water, ...)

Ocean force

wind_drag(iceb_vel, wind_vel, Aa, wind_drag_coef)

Wind force

wave_radiation_force(rho_water, wave_height, ...)

Wave radiation force

advect_iceberg_no_acc(f, water_vel, wind_vel)

Advect iceberg without acceleration

sea_ice_force(iceb_vel, sea_ice_conc, ...)

Sea ice force

melwav(iceb_length, iceb_width, x_wind, y_wind, sst, ...)

Update the iceberg's dimensions (length and width) due to wave erosion

mellat(iceb_length, iceb_width, tempib, salnib, dt)

Update the iceberg's dimensions (length and width) due to lateral melting

melbas(iceb_draft, iceb_sail, iceb_length, salnib, ...)

Update the iceberg's dimensions (draft and sail) due to forced convection

Attributes

logger

rho_water

rho_air

rho_ice

rho_iceb

g

csi

wave_drag_coef

opendrift.models.openberg.logger
opendrift.models.openberg.rho_water = 1027
opendrift.models.openberg.rho_air = 1.293
opendrift.models.openberg.rho_ice = 917
opendrift.models.openberg.rho_iceb = 900
opendrift.models.openberg.g = 9.81
opendrift.models.openberg.csi = 1
opendrift.models.openberg.wave_drag_coef = 0.3
class opendrift.models.openberg.IcebergObj(**kwargs)[source]

Bases: opendrift.models.oceandrift.Lagrangian3DArray

Extending Lagrangian3DArray with relevant properties for an Iceberg

Initialises a LagrangianArray with given properties.

Args:

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.

variables
opendrift.models.openberg.water_drag(iceb_vel, water_vel, Ao, rho_water, water_drag_coef)[source]

Ocean force Args:

iceb_vel : Iceberg velocity at time t water_vel : Ocean current velocity Ao : Iceberg’s area exposed to the ocean current(length x draft) rho_water : Water density water_drag_coef : Co is the drag coefficient applied on the iceberg’s draft

Returns:

Ocean force

opendrift.models.openberg.wind_drag(iceb_vel, wind_vel, Aa, wind_drag_coef)[source]

Wind force Args:

iceb_vel : Iceberg velocity at time t wind_vel : Wind velocity Aa : Iceberg’s area exposed to the wind (length x sail) rho_air : Air density wind_drag_coef : Ca is the drag coefficient applied on the iceberg’s sail

Returns:

Wind force

opendrift.models.openberg.wave_radiation_force(rho_water, wave_height, wave_direction, iceb_length)[source]

Wave radiation force Args:

iceb_vel : Iceberg velocity at time t rho_water : Water density wave_height : Wave significant height wave_direction : Wave direction iceb_length : Iceberg’s length

Returns:

Wave radiation force

opendrift.models.openberg.advect_iceberg_no_acc(f, water_vel, wind_vel)[source]

Advect iceberg without acceleration Args:

f : Wind drift factor water_vel : Ocean current velocity wind_vel : Wind velocity

Returns:

Iceberg velocity without acceleration

opendrift.models.openberg.sea_ice_force(iceb_vel, sea_ice_conc, sea_ice_thickness, sea_ice_vel, iceb_width, sum_force)[source]

Sea ice force Args:

iceb_vel : Iceberg velocity at time t sea_ice_conc : Sea ice concentration [%] sea_ice_thickness : Sea ice thickness [m] sea_ice_vel : Sea ice velocity [m/s] rho_ice : Sea ice density iceb_width : Iceberg width sum_force : Effect of all other forces exerted on the iceberg (apart from the sea ice force)

Returns:

Sea ice force

opendrift.models.openberg.melwav(iceb_length, iceb_width, x_wind, y_wind, sst, sea_ice_conc, dt)[source]

Update the iceberg’s dimensions (length and width) due to wave erosion Parameterization from Keghouche et al. 2009 Args:

iceb_length : Iceberg’s length iceb_width : Iceberg’s width x_wind : Wind speed in the x-direction y_wind : Wind speed in the y-direction sst : Sea surface temperature sea_ice_conc : Sea ice concentration dt : Timestep of the simulation

opendrift.models.openberg.mellat(iceb_length, iceb_width, tempib, salnib, dt)[source]

Update the iceberg’s dimensions (length and width) due to lateral melting Parameterization from Keghouche et al. 2009 Args:

iceb_length : Iceberg’s length iceb_width : Iceberg’s width tempib : Water temperature salnib : Water salinity dt : Timestep of the simulation

opendrift.models.openberg.melbas(iceb_draft, iceb_sail, iceb_length, salnib, tempib, x_water_vel, y_water_vel, x_iceb_vel, y_iceb_vel, dt)[source]

Update the iceberg’s dimensions (draft and sail) due to forced convection Parameterization from Keghouche et al. 2009

class opendrift.models.openberg.OpenBerg(add_stokes_drift=True, wave_rad=True, grounding=False, vertical_profile=False, melting=False, choose_melting={'wave': True, 'lateral': True, 'basal': True}, *args, **kwargs)[source]

Bases: opendrift.models.oceandrift.OceanDrift

Open source buoyant particle trajectory model based on OpenDrift.

Developed at MET Norway

Generic module for particles that move in 3 dimensions and may be to vertical turbulent mixing with the possibility for positive or negative buoyancy

Particles could be e.g. oil droplets, plankton, nutrients or sediments, Model may be subclassed for more specific behaviour.

Initialise OpenDriftSimulation

Args:
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 opendrift.io 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’)

Parameters:
  • add_stokes_drift (bool)

  • wave_rad (bool)

  • grounding (bool)

  • vertical_profile (bool)

  • melting (bool)

  • choose_melting (dict[bool])

ElementType
required_variables
get_profile_masked(variable)[source]

Apply a mask to extract data from the surface down to the iceberg’s draft

get_basal_env(variable)[source]

Get the basal layer of the variable for the icebergs

advect_iceberg(rho_water, stokes_drift=True, wave_rad=True, grounding=False, vertical_profile=False)[source]
melt()[source]

Activate melting

roll_over(rho_water)[source]

Iceberg’s stability criterium: Parameterization from Keghouche et al. 2009 with a correction from Wagner et al. 2017

prepare_run()[source]
update()[source]

Update positions and properties of particles