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 and transfer().sellers are transfer fluxes fully representing the globes meridional energy transfer, where transfer().sellers is built up from the three specific transfer fluxes transfer().watervapour_sel, transfer().sensibleheat_air_sel and transfer().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)
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 and transfer().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 use Configuration.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)
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 by earthsystem().specific_saturation_humidity_sel and the humidity difference \(dq\) provided by earthsystem().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)
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 by earthsystem().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)
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)