Skip to content

Latest commit

 

History

History
130 lines (80 loc) · 4.86 KB

ui.rst

File metadata and controls

130 lines (80 loc) · 4.86 KB

pyleoclim.core.ui

The Pyleoclim User Interface

Pyleoclim, like a lot of other Python packages, follows an object-oriented design. It sounds fancy, but it really is quite simple. What this means for you is that we've gone through the trouble of coding up a lot of timeseries analysis methods that apply in various situations - so you don't have to worry about that. These situations are described in classes, the beauty of which is called "inheritance" (see link above). Basically, it allows to define methods that will automatically apply to your dataset, as long as you put your data within one of those classes. A major advantage of object-oriented design is that you, the user, can harness the power of Pyleoclim methods in very few lines of code through the user interface (UI) without ever having to get your hands dirty with our code (unless you want to, of course). The flipside is that any user would do well to understand Pyleoclim classes, what they are intended for, and what methods they can and cannot support.

The Pyleoclim UI. Credit: Feng Zhu

The following describes the various classes that undergird the Pyleoclim edifice.

Series (pyleoclim.Series)

The Series class describes the most basic objects in Pyleoclim. A Series is a simple dictionary that contains 3 things: - a series of real-valued numbers; - a time axis at which those values were measured/simulated ; - optionally, some metadata about both axes, like units, labels and the like.

How to create and manipulate such objects is described in a short example below, while this notebook demonstrates how to apply various Pyleoclim methods to Series objects.

pyleoclim.core.ui.Series

MultipleSeries (pyleoclim.MultipleSeries)

As the name implies, a MultipleSeries object is a collection (more precisely, a list) of multiple Series objects. This is handy in case you want to apply the same method to such a collection at once (e.g. process a bunch of series in a consistent fashion).

pyleoclim.core.ui.MultipleSeries

EnsembleSeries (pyleoclim.EnsembleSeries)

The EnsembleSeries class is a child of MultipleSeries, designed for ensemble applications (e.g. draws from a posterior distribution of ages, model ensembles with randomized initial conditions, or some other stochastic ensemble). Compared to a MultipleSeries object, an EnsembleSeries object has the following properties: [TO BE COMPLETED]

pyleoclim.core.ui.EnsembleSeries

Lipd (pyleoclim.Lipd)

This class allows to manipulate LiPD objects.

pyleoclim.core.ui.Lipd

LipdSeries (pyleoclim.LipdSeries)

LipdSeries are (you guessed it), Series objects that are created from LiPD objects. As a subclass of Series, they inherit all its methods. When created, LiPDSeries automatically instantiates the time, value and other parameters from what’s in the lipd file.

pyleoclim.core.ui.LipdSeries

PSD (pyleoclim.PSD)

The PSD (Power spectral density) class is intended for conveniently manipulating the result of spectral methods, including performing significance tests, estimating scaling coefficients, and plotting. Available methods:

pyleoclim.core.ui.PSD

Scalogram (pyleoclim.Scalogram)

The Scalogram class is analogous to PSD, but for wavelet spectra (scalograms)

pyleoclim.core.ui.Scalogram

Coherence (pyleoclim.Coherence)

pyleoclim.core.ui.Coherence

SurrogateSeries (pyleoclim.SurrogateSeries)

pyleoclim.core.ui.SurrogateSeries

MultiplePSD (pyleoclim.MultiplePSD)

pyleoclim.core.ui.MultiplePSD

MultipleScalogram (pyleoclim.MultipleScalogram)

pyleoclim.core.ui.MultipleScalogram

CorrEns (pyleoclim.CorrEns)

pyleoclim.core.ui.CorrEns

gen_ts (pyleoclim.gen_ts)

pyleoclim.gen_ts