orbital_cycles¶
digraph inheritancead427aefdc { bgcolor=transparent; rankdir=LR; ratio=expand; size=""; "OrbitalCycles" [URL="#climlab.solar.orbital_cycles.OrbitalCycles",dirType=back,fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=14,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; }- class climlab.solar.orbital_cycles.OrbitalCycles(model, kyear_start=-20.0, kyear_stop=0.0, segment_length_years=100.0, orbital_year_factor=1.0, verbose=True)[source]¶
Bases:
object
Automatically integrates a process through changes in orbital parameters.
OrbitalCycles is a module for setting up long integrations of climlab processes over orbital cycles.
The duration between integration start and end time is partitioned in time segments over which the orbital parameters are held constant. The process is integrated over every time segment and the process state
Ts
is stored for each segment.The storage arrays are saving:
current model state at end of each segment
model state averaged over last integrated year of each segment
global mean of averaged model state over last integrated year of each segment
Note
Input
kyear
is thousands of years after present. For years before present, usekyear < 0
.Initialization parameters
- Parameters:
model (
TimeDependentProcess
) – a time dependent processkyear_start (float) –
integration start time.
As time reference is present, argument should be \(<0\) for time before present.
unit: kiloyears
default value:
-20.
kyear_stop (float) –
integration stop time.
As time reference is present, argument should be \(\le 0\) for time before present.
unit: kiloyears
default value:
0.
segment_length_years (float) – is the length of each integration with fixed orbital parameters. [default: 100.]
orbital_year_factor (float) – is an optional speed-up to the orbital cycles. [default: 1.]
verbose (bool) – prints product of calculation and information about computation progress [default: True]
Object attributes
Following object attributes are generated during initialization:
- Variables:
model (
TimeDependentProcess
) – timedependent process to be integratedkyear_start (float) – integration start time
kyear_stop (float) – integration stop time
segment_length_years (float) – length of each integration with fixed orbital parameters
orbital_year_factor (float) – speed-up factor to the orbital cycles
verbose (bool) – print flag
num_segments (int) –
number of segments with fixed oribtal parameters, calculated through:
\[num_{seg} = \frac{-(kyear_{start}-kyear_{stop})*1000}{seg_{length} * orb_{factor}}\]T_segments_global (array) – storage for global mean temperature for final year of each segment
T_segments (array) – storage for actual temperature at end of each segment
T_segments_annual (array) –
storage for timeaveraged temperature over last year of segment
dimension: (size(Ts), num_segments)
orb_kyear (array) – integration start time of all segments
orb (dict) – orbital parameters for last integrated segment
- Example:
Integration of an energy balance model for 10,000 years with corresponding orbital parameters:
from climlab.model.ebm import EBM_seasonal from climlab.solar.orbital_cycles import OrbitalCycles from climlab.surface.albedo import StepFunctionAlbedo ebm = EBM_seasonal() print ebm # add an albedo feedback albedo = StepFunctionAlbedo(state=ebm.state, **ebm.param) ebm.add_subprocess('albedo', albedo) # start the integration # run for 10,000 orbital years, but only 1,000 model years experiment = OrbitalCycles(ebm, kyear_start=-20, kyear_stop=-10, orbital_year_factor=10.)