orbital_cycles¶

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 process  kyear_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 speedup 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 integrated  kyear_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) – speedup 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.)