opendrift.models.openberg
This code is initiated from the following reference with posterior modifications.
Reference: Keghouche, I., F. Counillon, and L. Bertino (2010), Modeling dynamics and thermodynamics of icebergs in the Barents Sea from 1987 to 2005, J. Geophys. Res., 115, C12062, doi:10.1029/2010JC006165.
Attributes
Classes
Extending Lagrangian3DArray with relevant properties for an Iceberg |
|
Open source buoyant particle trajectory model based on OpenDrift. |
Functions
|
Ocean force |
|
Wind force |
|
Wave radiation force |
|
Advect iceberg without acceleration |
|
Sea ice force |
|
Coriolis force |
|
This functions assumes you provide the sea surface slope from an external file |
|
Update the iceberg's dimensions (length and width) due to wave erosion |
|
Update the iceberg's dimensions (length and width) due to lateral melting |
|
Update the iceberg's dimensions (draft and sail) due to forced convection |
Module Contents
- 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.omega = 7.2921e-05
- 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.ocean_force(iceb_vel, water_vel, Ao, rho_water, water_drag_coef)[source]
Ocean force Args:
iceb_vel : Iceberg’s velocity at time t water_vel : Ocean current velocity Ao : Iceberg’s area in contact with ocean (length x draft) rho_water : Water density water_drag_coef : Co is the drag coefficient applied on the iceberg’s draft
- opendrift.models.openberg.wind_force(iceb_vel, wind_vel, Aa, wind_drag_coef)[source]
Wind force Args:
iceb_vel : Iceberg’s velocity at time t wind_vel : Wind velocity Aa : Iceberg’s area in contact with wind (length x sail) wind_drag_coef : Ca is the drag coefficient applied on the iceberg’s sail
- opendrift.models.openberg.wave_radiation_force(rho_water, wave_height, wave_direction, iceb_length)[source]
Wave radiation force Args:
rho_water : Water density wave_height : Wave significant height wave_direction : Wave direction iceb_length : Iceberg’s length
- 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’s velocity without acceleration
- opendrift.models.openberg.sea_ice_force(iceb_vel, sea_ice_conc, Ai, sea_ice_vel, sum_force)[source]
Sea ice force Args:
iceb_vel : Iceberg velocity at time t sea_ice_conc : Sea ice concentration Ai : Iceberg’s area in contact with ice (sea_ice_thickness x length) # (Alternatively: Test half length and half width) sea_ice_vel : Sea ice velocity sum_force : Effect of all other forces exerted on the iceberg (apart from the sea ice force)
- opendrift.models.openberg.coriolis_force(iceb_vel, mass, lat)[source]
Coriolis force Args:
iceb_vel : Iceberg velocity at time t mass: Mass of the iceberg lat : Latitude of the iceberg’s location in degrees
- opendrift.models.openberg.sea_surface_slope_force(sea_slope_x, sea_slope_y, mass)[source]
This functions assumes you provide the sea surface slope from an external file
- 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 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 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
- class opendrift.models.openberg.OpenBerg(*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’)
- ElementType
Any trajectory model implementation must define an ElementType.
- required_variables
Any trajectory model implementation must list needed variables.