column-ops module
These functions take the user-defined inputs for the physical properties of the snow and ice and any impurities and calculate the single scattering albedo, asymmetry parameter and optical thickness which are then passed to one or other of our radiative transfer solvers (Toon solver or adding-doubling solver).
get_layer_OPs
Calculates optical properties (tauy, ssa, g) of ice column. Takes configuration from ice and model_config and uses the data to calculate the optical properties of the ice column. There are separate routes for layers with granular ice and solid ice.
Function calls are made to add liquid water coatings or adjust the optical properties for aspherical grains where toggled.
Args
ice
: instance of Ice classmodel_config
: instance of ModelConfig class
Returns
ssa_snw
: single scatterign albedo of each layerg_snw
: asymmetry parameter of each layermac_snw
: mass absorption coefficient of each layer
add_water_coating
Recalculates layer optical properties where grains are coated in liquid water.
Feature originally added by Niklas Bohn. Where value of water exceeds value of rds for a given layer it is interpreted as having a liquid water film.
In this case Mie calculations for a coated sphere are executed with the outer coating having radius water - rds
.
Args
ice
: instance of Ice classmodel_config
: instance of ModelConfig classssa_snw
: single scattering albedo of each layerg_snw
: asymmetry parameter for each layermac_snw
: mass absorption coefficient of each layeri
: layer counter
Returns
- `ssa_snw: updated single scattering albedo for each layer
- `g_snw: updated asymmetry parameter for each layer
- `mac_snw: updated mass absorption coefficient for each layer
Raises
ValueError
ifice.shp!= 0
(i.e. grains not spherical)
correct_for_asphericity
Adjusts asymmetry parameter for aspherical grains.
Implements work from Fu et al. 2007 and He et al. 2017. Asymmetry parameter is adjusted to account for asphericity for the defined shape of each layer.
Ice grain shape can be:
0
= sphere,1
= spheroid,2
= hexagonal plate,3
= koch snowflake,4
= hexagonal prisms
Args
ice
: instance of Ice classg_snw
: asymmetry parameter for each layeri
: layer counter
Returns
g_snw
: updated asymmetry parameter for layer
mix_in_impurities
Updates optical properties for the presence of light absorbing particles.
Takes the optical properties of the clean ice column and adjusts them for the presence of light absorbing particles in the ice. Each impurity is an instance of the Impurity class whose attributes include the path to the specific optical properties for that impurity. Its concentration is generally provided in ppb, but concentration of algae can also be given in cells/mL.
There is also a cfactor attribute that is used as a multiplier in this function. This is a "concentrating factor" that can be applied to account for the coarse resolution of field sampling compared to the fine resolution of the model.
Args
ssa_snw
: single scattering albedo of eahc layerg_snw
: asymmetry parameter for each layermac_snw
: mass absorption coefficient of each layerice
: instance of Ice classimpurities
: array containing instances of Impurity classmodel_config
: instance of ModelConfig class
Returns
tau
: updated optical thicknessssa
: updated single scattering albedog
: updated asymmetry parameterL_snw
: mass of ice in each layer