transfer¶
-
class
lowEBMs.Packages.Functions.
transfer
[source]¶ Bases:
object
Class defining latitudinal energy transfer transfer fluxes.
The equations used here are estimated empirically based on research of Michail Budyko and William Sellers.
budyko
A poleward energy transfer flux based on the local to global temperature difference introduced by Michail Budyko. sellers
A energy transfer flux based on a combination of several transfer fluxes introduced by William Sellers. watervapour_sel
The energy transfer flux through watervapour used in transfer().sellers
.sensibleheat_air_sel
The energy transfer flux through atmospheric sensible heat used in transfer().sellers
.sensibleheat_ocean_sel
The energy transfer flux through oceanic sensible heat used in transfer().sellers
.Note
Only
transfer().budyko
andtransfer().sellers
are transfer fluxes fully representing the globes meridional energy transfer, wheretransfer().sellers
is built up from the three specific transfer fluxestransfer().watervapour_sel
,transfer().sensibleheat_air_sel
andtransfer().sensibleheat_ocean_sel
.
-
lowEBMs.Packages.Functions.transfer.
budyko
(self, funcparam)¶ A poleward energy transfer flux based on the local to global temperature difference introduced by Michail Budyko.
It can be shown that it is equivalent to the diffusive heat transfer of the globe (North, 1975b).
It is given by:
\[F_{transfer}= \beta\cdot(T(\phi)-T_g)\]with the temperature \(T(\phi)\) of latitude \(\phi\), the global mean temperature \(T_g\) and the transport parameter \(\beta\).
Function-call arguments
Parameters: funcparams (dict) – a dictionary of the function’s parameters directly parsed from
lowEBMs.Packages.ModelEquation.model_equation
- beta: The transport parameter
- type: float
- unit: \(Watt\cdot meter^{-2} \cdot Kelvin^{-1}\)
- value: any (standard 3.74)
- Read: Indicates whether the transfer flux is specifically provided as output
- type: boolean
- unit: -
- value: True/False (standard True)
- Activated: Indicates whether the transfer flux is actually activated
- type: boolean
- unit: -
- value: True/False (standard True)
Returns: The Budyko energy transfer flux \(F_{transfer}\) Return type: array(floats) (1D) - beta: The transport parameter
-
lowEBMs.Packages.Functions.transfer.
sellers
(self, funcparam)¶ A energy transfer flux based on a combination of several transfer fluxes introduced by William Sellers.
It is defined as the difference of a sum of northward and a sum of southward transfer fluxes of one latitudinal belt. The sum (in one direction) \(P\) consists of
transfer().watervapour_sel
,transfer().sensibleheat_air_sel
andtransfer().sensibleheat_ocean_sel
:\[P(\phi)= L\cdot c_{wv}(\phi) + C_{air}(\phi) + F_{oc}(\phi)\]with the energy transfer through watervapour \(c_{wv}(\phi)\), the energy transfer through atmospheric sensible heat \(C_{air}(\phi)\) and the energy transfer through oceanic sensible heat \(F_{oc}(\phi)\) of latitude \(\phi\) and the latent heat of condensation \(L\).
The total energy flux, the difference of the southward and northward flux \(P(\phi)\) weighted with the length of a latitudinal circle :math`l(phi)` and the area of the latitudinal belt \(A(\phi)\), is given by:
\[F_{transfer} = (P(\phi)\cdot l(\phi) - P (\phi+d\phi)\cdot l (\phi+d\phi))\cdot \frac{1}{A(\phi)}\]where \(P(\phi)\cdot l(\phi)\) is the sum of energy transfer from the latitudinal belt to the southern boundary and \(P (\phi+d\phi)\cdot l (\phi+d\phi)\) the one to the nothern boundary (\(d\phi\) indicates the step to the next northern gridpoint).
Note
The Sellers energy transfer flux comes with a large set of parameters, some given as scalars and some as distribution over the latitudes. In order to simplify the input of these parameters, the module
lowEBMs.Packages.Configuration.add_sellersparameters
can be called before running the algorithm which imports the parameter distributions into the funcparam dictionary. Scalars are not included there! The easiest way is to copy the prewritten configuration of this function from the FunctionCalls.txt in lowEBMs/Turotials and useConfiguration.add_sellersparameters
.Function-call arguments
Parameters: funcparams (dict) – a dictionary of the function’s parameters directly parsed from
lowEBMs.Packages.ModelEquation.model_equation
- Readout: Indicates whether all sellers transfer fluxes are provided as output
- type: boolean
- unit: -
- value: True/False (standard True)
- Activated: Indicates if the transfer flux is actually activated
- type: boolean
- unit: -
- value: True/False (standard True)
- K_wv: The thermal diffusivity of the watervapour term
- type: float
- unit: \(meter^2\cdot second^{-1}\)
- value: \(10^5\) (imported by
Configuration.add_sellersparameters
)
- K_h: The thermal diffusivity of the atmospheric sensible heat term
- type: float
- unit: \(meter^2 \cdot second^{-1}\)
- value: \(10^6\) (imported by
Configuration.add_sellersparameters
)
- K_o: The thermal diffusivity of the oceanic sensible heat term
- type: float
- unit: \(meter^2\cdot second^{-1}\)
- value: \(10^2\) (imported by
Configuration.add_sellersparameters
)
- g: The gravitational acceleration
- type: float
- unit: \(meter\cdot second^{-2}\)
- value: \(9.81\)
- a: Empricial constant to calculate the meridional windspeed
- type: float
- unit: \(meter\cdot second^{-1}\cdot °Celcius^{-1}\)
- value: \(10^-2\) (imported by
Configuration.add_sellersparameters
)
- eps: Empirical constant of the saturation specific humidity
- type: float
- unit: -
- value: 0.622
- p: The average sea level pressure
- type: float
- unit: \(mbar\)
- value: 1000
- e0: The mean sea level saturation vapour pressure
- type: float
- unit: \(mbar\)
- value: 17
- L: The latent heat of condensation
- type: float
- unit: \(Joule\cdot gramm^{-1}\)
- value: \(2.5\cdot 10^3\)
- Rd: The gas constant
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(0.287\)
- dy: The width of an latitudinal belt
- type: float
- unit: \(meter\)
- value: \(1.11\cdot 10^6\)
- dp: The tropospheric pressure depth
- type: float
- unit: \(mbar\)
- value: 700-900 (imported by
Configuration.add_sellersparameters
)
- cp: The specific heat capacity of air at constant pressure
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(1.004\)
- dz: The average zonal ocean depth
- type: float
- unit: \(meter\)
- value: 1000-4000 (imported by
Configuration.add_sellersparameters
)
- l_cover: The proportion of ocean covered surface
- type: float
- unit: -
- value: 0.5
- re: The earth’s radius
- type: float
- unit: \(meter\)
- value: \(6.371\cdot 10^6\)
- cp_w: The specific heat capacity of sea water
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(4182\)
- dens_w: The density of water
- type: float
- unit: \(gramm\cdot meter^{-3}\)
- value: \(0.997\cdot 10^6\)
- factor_wv: A tuning factor applied to the watervapour term
- type: float
- unit: -
- value: any
- factor_air: A tuning factor applied to the atmospheric sensible heat term
- type: float
- unit: -
- value: any
- factor_oc: A tuning factor applied to the oceanic sensible heat term (or it’s diffusivity)
- type: float
- unit: -
- value: any
- factor_kwv: A tuning factor applied to the thermal diffusivity of the watervapour term
- type: float
- unit: -
- value: any
- factor_kair: A tuning factor applied to the thermal diffusivity of the atmospheric sensible heat term
- type: float
- unit: -
- value: any
Returns: The Sellers energy transfer flux \(F_{transfer}\) Return type: array(floats) (1D) - Readout: Indicates whether all sellers transfer fluxes are provided as output
-
lowEBMs.Packages.Functions.transfer.
watervapour_sel
(self, funcparam)¶ The energy transfer flux through watervapour used in
transfer().sellers
.It is based on the transport of watervapour to another latitudinal belt and it’s condensation which releases energy. It is described through:
\[c_{wv}=\left(v q - K_{wv}\frac{\Delta q}{\Delta y}\right) \cdot \frac{\Delta p}{g}\]with the meridional windspeed \(v\) provided by
earthsstem.meridionalwind_sel
, the specific saturation humidity \(q\) provided byearthsystem().specific_saturation_humidity_sel
and the humidity difference \(dq\) provided byearthsystem().humidity_difference
. Additional parameters are the thermal diffusivity of watervapour \(K_{wv}\), the width of the latitudinal belts \(\Delta y\), the tropospheric pressure depth \(\Delta p\) and the gravitational acceleration \(g\).For purposes of tuning, \(c_{wv}\) and \(K_{wv}\) are provided with the scaling factors factor_wv and factor_kwv.
Function-call arguments
Parameters: funcparams (dict) – - K_wv: The thermal diffusivity of the watervapour term
- type: float
- unit: \(meter^2\cdot second^{-1}\)
- value: \(10^5\) (imported by
Configuration.add_sellersparameters
)
- g: The gravitational acceleration
- type: float
- unit: \(meter\cdot second^{-2}\)
- value: \(9.81\)
- eps: Empirical constant of the saturation specific humidity
- type: float
- unit: -
- value: 0.622
- p: The average sea level pressure
- type: float
- unit: \(mbar\)
- value: 1000
- e0: The mean sea level saturation vapour pressure
- type: float
- unit: \(mbar\)
- value: 17
- L: The latent heat of condensation
- type: float
- unit: \(Joule\cdot gramm^{-1}\)
- value: \(2.5\cdot 10^3\)
- Rd: The gas constant
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(0.287\)
- dy: The width of an latitudinal belt
- type: float
- unit: \(meter\)
- value: \(1.11\cdot 10^6\)
- dp: The tropospheric pressure depth
- type: float
- unit: \(mbar\)
- value: 700-900 (imported by
Configuration.add_sellersparameters
)
- factor_wv: A tuning factor applied to the watervapour term
- type: float
- unit: -
- value: any
- factor_kwv: A tuning factor applied to the thermal diffusivity of the watervapour term
- type: float
- unit: -
- value: any
Returns: The watervapour energy transfer flux \(c_{wv}\) Return type: array(floats) (1D) - K_wv: The thermal diffusivity of the watervapour term
-
lowEBMs.Packages.Functions.transfer.
sensibleheat_air_sel
(self, funcparam)¶ The energy transfer flux through atmospheric sensible heat used in
transfer().sellers
.It is based on the heat transport through wind and convection to another latitudinal belt. It is described through:
\[C_{air}=\left(v T - K_h\frac{\Delta T}{\Delta y}\right) \cdot \frac{c_p}{g} \Delta p\]with the meridional windspeed \(v\) provided by
earthsstem.meridionalwind_sel
, and the temperature difference \(\Delta T\) provided byearthsystem().tempdif
. Additional parameters are the temperature \(T\), the thermal diffusivity of air \(K_{h}\), the width of the latitudinal belts \(\Delta y\), the tropospheric pressure depth \(\Delta p\), the specific heat capacity of air \(c_p\) and the gravitational acceleration \(g\).For purposes of tuning, \(C_{air}\) and \(K_{h}\) are provided with the scaling factors factor_air and factor_kair.
Function-call arguments
Parameters: funcparams (dict) – - K_h: The thermal diffusivity of the atmospheric sensible heat term
- type: float
- unit: \(meter^2\cdot second^{-1}\)
- value: \(10^6\) (imported by
Configuration.add_sellersparameters
)
- g: The gravitational acceleration
- type: float
- unit: \(meter\cdot second^{-2}\)
- value: \(9.81\)
- dy: The width of an latitudinal belt
- type: float
- unit: \(meter\)
- value: \(1.11\cdot 10^6\)
- dp: The tropospheric pressure depth
- type: float
- unit: \(mbar\)
- value: 700-900 (imported by
Configuration.add_sellersparameters
)
- cp: The specific heat capacity of air at constant pressure
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(1.004\)
- factor_air: A tuning factor applied to the atmospheric sensible heat term
- type: float
- unit: -
- value: any
- factor_kair: A tuning factor applied to the thermal diffusivity of the atmospheric sensible heat term
- type: float
- unit: -
- value: any
Returns: The atmospheric sensible heat energy transfer flux \(C_{air}\) Return type: array(floats) (1D) - K_h: The thermal diffusivity of the atmospheric sensible heat term
-
lowEBMs.Packages.Functions.transfer.
sensibleheat_ocean_sel
(self, funcparam)¶ The energy transfer flux through oceanic sensible heat used in
transfer().sellers
.It is based on the heat transport through oceanic convection to another latitudinal belt. It is described through:
\[F_{oc}= - K_o l_{cover}\Delta z\frac{\Delta T}{\Delta y}\cdot C_{p,w}\]ho_{w}
with the temperature difference \(\Delta T\) provided by
earthsystem().tempdif
. Additional parameters are the thermal diffusivity of the ocean \(K_{o}\), the width of the latitudinal belts \(\Delta y\), the average ocean depth \(\Delta z\), the proportion of ocean cover \(l_{cover}\), the specific heat capacity of water \(c_{p,w}\) and the densitiy of water \(\rho_w\).For purposes of tuning, a scaling factors factor_oc is provided.
Function-call arguments
param dict funcparams: K_o: The thermal diffusivity of the oceanic sensible heat term
- type: float
- unit: \(meter^2\cdot second^{-1}\)
- value: \(10^2\) (imported by
Configuration.add_sellersparameters
)
dz: The average zonal ocean depth
- type: float
- unit: \(meter\)
- value: 1000-4000 (imported by
Configuration.add_sellersparameters
)
l_cover: The proportion of ocean covered surface
- type: float
- unit: -
- value: 0.5
cp_w: The specific heat capacity of sea water
- type: float
- unit: \(Joule\cdot gramm^{-1}\cdot Kelvin^{-1}\)
- value: \(4182\)
dens_w: The density of water
- type: float
- unit: \(gramm\cdot meter^{-3}\)
- value: \(0.997\cdot 10^6\)
factor_oc: A tuning factor applied to the oceanic sensible heat term (or it’s diffusivity)
- type: float
- unit: -
- value: any
returns: The oceanic sensible heat energy transfer flux \(F_{oc}\)
rtype: array(floats) (1D)