flux_down

class lowEBMs.Packages.Functions.flux_down[source]

Bases: object

Class defining radiative fluxes directed downwards.

Because the models in this project don’t include atmospheric layers (for now), the only radiative flux directed downwards is the radiative energy coming from the sun. This function is the same for all implemented models and is described in flux_down.insolation which allows several adjustments.

insolation Function defining the absorbed solar insolation.
lowEBMs.Packages.Functions.flux_down.insolation(self, funcparam)

Function defining the absorbed solar insolation. Physically there is an important difference between the insolation, which is denoted as \(Q\) and the absorbed insolation, which is the output of this function denoted as \(R_{down}\). The absorbed insolation in it’s simplest form is written (as introduced in the physical background):

\[R_{down} = (1-\alpha)\cdot Q,\]

with the albedo \(\alpha\) which is the reflected part of the insolation \(Q\).

The definition of \(R_{down}\) in this function has several extensions:

\[R_{down} = m\cdot (1-\alpha)\cdot (Q + dQ) + z,\]

with an energy offset \(dQ\) on \(Q\), a factorial change of absorbed insolation \(m\) and a random noise factor \(z\) on the absorbed insolation. \(z\) is chosen as a normal distributed random number with numpy.random.normal.

This function allows the observation of the models behaviour to diverse manipulations of the solar insolation.

Input has to be given as Dictionaries supplied by lowEBMs.Packages.Configuration.importer from a specific configuration.ini.

Function-call arguments

Parameters:funcparams (dict) –

a dictionary of the functions parameters directly parsed from lowEBMs.Packages.ModelEquation.model_equation

  • Q: The value of solar insolation (only useful for 0D EBMs)
    • type: float
    • unit: \(Watt\cdot meter^{-2}\)
    • value: > 0 (standard 342)
  • m: Factorial change of absorbed insolation
    • type: float
    • unit: -
    • value: > 0
  • dQ: Additive energy offset on \(Q\)
    • type: float
    • unit: \(Watt\cdot meter^{-2}\)
    • value: any
  • albedo: The name of albedo function which is called from lowEBMs.Packages.Functions.albedo to return the albedo value/distribution. See class albedo.
    • type: string
    • unit: -
    • value: albedo.static, albedo.static_bud, albedo.dynamic_bud, albedo.smooth, albedo.dynamical_sel
  • albedoread: Indicates whether the albedo is provided as specific output
    • type: boolean
    • unit: -
    • value: True/Flase
  • albedoparam: Provides an array of parameters the albedo function (see class albedo)
    • type: array
    • unit: -
    • value: depending on function chosen
  • noise: Indicates whether solar noise is activated or not
    • type: boolean
    • unit: -
    • value: True/False
  • noiseamp: Determines the strength of the random solar noise as one standard deviation of a normal distribution (for further information see numpy.random.normal)
    • type: float
    • unit: \(Watt\cdot meter^{-2}\)
    • value: >0 (e.g. noise with 1 percent of 342 is the value: 0.01*342)
  • noisedelay: Determines how often this random factor is updated to a new random factor (one factor persists until it is replaced)
    • type: int eger
    • unit: number of iteration steps
    • value: minimum 1 (every iteration cycle)
  • seed: Indicates whether a specific seed is used to ensure that the random numbers are the one created by this specific seed (useful for comparisons to other simulation with the same solar noise)
    • type: boolean
    • unit: -
    • value: True/False
  • seedmanipulation: Defines the value for the seed
    • type: integer
    • unit: -
    • value: any (if 0 it is everytime another seed)
  • solarinput: Indicates whether the solar insolation distribution from climlab.solar.insolation are used (recommended for 1D EBMs), which are called from lowEBMs.Packages.Functions.earthsystem().solarradiation
    • type: boolean
    • unit: -
    • value: True/False
  • convfactor: Determines whether a conversation factor is used to change the solar insolation to another unit than Watt/m^2
    • type: float
    • unit: depending on the conversion applied
    • value: > 0
  • timeunit: Determines which timeunit of the solarradiation shall be used for averaging (depending on how the builtins.stepsize_of_integration is chosen*)
    • type: string
    • unit: -
    • value: ‘annualmean’ (average annually and give \(Q\) as Watt/m^2), ‘year’, ‘month’, ‘day’, ‘second’
  • orbital: Indicates whether the solar insolation considers manipulation through orbital parameters over time (this will replace lowEBMs.Packages.Functions.earthsystem().solarradiation by lowEBMs.Packages.Functions.earthsystem().solarradiation_orbital
    • type: boolean
    • unit: -
    • value: True/False (if False, the year given in orbitalyear still matters)
  • orbitalyear: Determines for which year (in ky) the orbitalparameters are taken (orbital parameters are provided by climlab.solar.orbital which is based on Berger (1991) and Laskar (2004)
    • type: integer
    • unit: \(kyear\)
    • value: -5000 to 0 (if 0, the year 1950 is used)
Returns:The absorbed solar insolation \(R_{down}\)
Return type:float / array(floats) (0D / 1D)