Source code for fastwater.general.substrates
# -*- coding: utf-8 -*-
"""
Functions to map sea bed substrate classes to friction coefficients.
"""
# ----------------------------------------------------------------------------
# IMPORTS
# ----------------------------------------------------------------------------
# Standard Python Dependencies
import numpy as np
# Non-Standard Python Dependencies
# Local Module Dependencies
from fastwater.general.physics import grav, chezy, manning, strickler, nikuradse
# Other Dependencies
#--------------------------------------------------------------------------
# GLOBAL CONSTANTS
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# FUNCTION DEFINITIONS
#--------------------------------------------------------------------------
[docs]def map_classname_C100(name):
"""
Map the substrate class names to C_100 drag
coefficients.
( https://www.emodnet-geology.eu/data-products/seabed-substrates/ )
Parameters
----------
subs_class : integer
Substrate class index.
Returns
-------
C100 : float
C_100 drag coefficient.
name : string
Substrate class name
"""
if name.lower() in ['sand/silt','fine mud']:
C100 = 0.0016
elif name.lower in ['mud']:
C100 = 0.0022
elif name.lower in ['sand/shell','sand/gravel','mud/sand','gravel']:
C100 = 0.0024
elif name.lower in ['sand','sand (unrippled)']:
C100 = 0.0026
elif name.lower in ['sandy mud','muddy sand','sediment']:
C100 = 0.0030
elif name.lower in ['coarse','coarse substrate']:
C100 = 0.0035
elif name.lower in ['gravel','mixed sediiment']:
C100 = 0.0047
elif name.lower in ['seabed']:
C100 = 0.0050
elif name.lower in ['rock','boulders','hard substrate','sand (rippled)','rock or other hard substrata']:
C100 = 0.0061
else: # Default for unrecognised substrate is sand (unrippled)
C100 = 0.0026
return C100
[docs]def map_EMODNET_C100(subs_class):
"""
Map the EMODNET Geology substrate classes to C_100 drag
coefficients.
( https://www.emodnet-geology.eu/data-products/seabed-substrates/ )
Parameters
----------
subs_class : integer
Substrate class index.
Returns
-------
C100 : float
C_100 drag coefficient.
name : string
Substrate class name
"""
if subs_class == 1:
C100 = 0.0030
name = 'Mud or Muddy Sand'
elif subs_class == 2:
C100 = 0.0026
name = 'Sand'
elif subs_class == 3:
C100 = 0.0035
name = 'Coarse Substrate'
elif subs_class == 4:
C100 = 0.0047
name = 'Mixed Sediment'
elif subs_class == 5:
C100 = 0.0061
name = 'Rock or Boulders'
else:
C100 = 0.0026
name = 'Unkown'
return C100,name
[docs]def map_EUSM_C100(subs_class):
"""
Map the EMODNET Seabed Habitats substrate classes to C_100 drag
coefficients.
( https://www.emodnet-seabedhabitats.eu/about/ )
Parameters
----------
subs_class : integer
Substrate class index.
Returns
-------
C100 : float
C_100 drag coefficient.
name : string
Substrate class name
"""
if subs_class == 1:
C100 = 0.0016
name = 'Fine Mud'
elif subs_class == 2:
C100 = 0.0026
name = 'Sand'
elif subs_class == 3:
C100 = 0.0030
name = 'Sandy Mud or Muddy Sand or Sediment'
elif subs_class == 4:
C100 = 0.0035
name = 'Coarse Substrate'
elif subs_class == 5:
C100 = 0.0047
name = 'Mixed Sediment'
elif subs_class == 6:
C100 = 0.0050
name = 'Seabed'
elif subs_class == 7:
C100 = 0.0061
name = 'Rock or Hard Substrate'
else:
C100 = 0.0026
name = 'Unknown'
return C100,name