core.CCOutput
core.CCOutput(
time,
state_variables,
state_variable_names,
diagnostic_variables,
solution,
run_name,
)Container for the results of one call to CCModel.integrate().
CCOutput carries the full trajectory produced by the solver and exposes output-focused operations (noise addition, pyleoclim export, time resampling). Keeping these on the output rather than on the model means a single model instance can produce multiple independent outputs without them overwriting each other.
Attributes
model_time : ndarray of float-
Raw time axis as returned by the solver. Never modified after construction; inspect this to understand the solver’s actual grid.
time : ndarray of float-
User-facing time axis. Starts equal to
model_time; replaced byreframe_time_axiswhen a different grid is requested.state_variablesis always aligned totime. state_variables : structured ndarray-
Named state variable arrays, indexed by variable name.
state_variable_names : list of str-
Ordered list of state variable names.
diagnostic_variables : dict of str → ndarray-
Named diagnostic arrays.
solution : object-
Raw solver output (retained for dense-output resampling via
reframe_time_axis). run_name : str-
Label for this integration run.
Methods
| Name | Description |
|---|---|
| add_noise | Add externally provided noise to an output variable. |
| get_series_by_name | Return a variable’s array and its storage location. |
| reframe_time_axis | Resample state variables onto a new time axis. |
| remove_noise | Restore a variable to its pre-noise values. |
| to_pyleo | Export one or more variables as pyleoclim Series objects. |
add_noise
core.CCOutput.add_noise(var_name, noise_ts)Add externally provided noise to an output variable.
The unmodified values are saved on the first call so that remove_noise can restore the clean series.
Parameters
get_series_by_name
core.CCOutput.get_series_by_name(var_name)Return a variable’s array and its storage location.
State variables live in a structured numpy array; diagnostic variables live in a dict. Returning the location string lets callers that write back (e.g. add_noise) know which container to update.
Returns
values : ndarray of floatlocation : {'state', 'diagnostic'}
reframe_time_axis
core.CCOutput.reframe_time_axis(t_eval)Resample state variables onto a new time axis.
Uses the dense output from solve_ivp when available (accurate polynomial interpolation); falls back to linear interpolation for fixed-step solvers.
After this call, time is replaced by t_eval and state_variables is replaced by the interpolated values. model_time is never modified and always reflects the solver’s original grid.
Parameters
t_eval : array -like-
Target time axis.
Returns
reframed : structured ndarray or ndarray-
Resampled state variables on
t_eval.
Raises
: UserWarning-
If this output was produced by a stochastic (SDE) solver without dense output, and
t_evalis coarser than the integrated time series. Linearly interpolating between two stochastic path points spaced wider than the original grid invents values that were never realised, discarding Wiener increments and distorting distributional properties. Usesi=at integration time to control output spacing instead.
remove_noise
core.CCOutput.remove_noise(var_name)Restore a variable to its pre-noise values.
Reverses add_noise by replacing the noisy array with the clean copy saved on the first add_noise call.
to_pyleo
core.CCOutput.to_pyleo(var_names=None)Export one or more variables as pyleoclim Series objects.
Parameters
var_names : str or list of str = None-
Name(s) of state or diagnostic variable(s) to export.
Returns
:pyleoclim.Seriesorpyleoclim.MultipleSeries