TimeSeriesList
Inherits from: PhaseMethodsMixin, TimeSeriesList
List of TimeSeries objects.
Methods
__init__
__init__(self, *items)
Initialise a new list
EntryClass
EntryClass(data, unit=None, t0=None, dt=None, sample_rate=None, times=None, channel=None, name=None, **kwargs)
A time-domain data array.
Parameters
value : array-like input data array
unit : ~astropy.units.Unit, optional
physical unit of these data
t0 : ~gwpy.time.LIGOTimeGPS, float, str, optional
GPS epoch associated with these data,
any input parsable by ~gwpy.time.to_gps is fine
dt : float, ~astropy.units.Quantity, optional
time between successive samples (seconds), can also be given inversely
via sample_rate
sample_rate : float, ~astropy.units.Quantity, optional
the rate of samples per second (Hertz), can also be given inversely
via dt
times : array-like
the complete array of GPS times accompanying the data for this series.
This argument takes precedence over t0 and dt so should be given
in place of these if relevant, not alongside
name : str, optional
descriptive title for this array
channel : ~gwpy.detector.Channel, str, optional
source data stream for these data
dtype : ~numpy.dtype, optional
input data type
copy : bool, optional
choose to copy the input data to new memory
subok : bool, optional
allow passing of sub-classes by the array generator
Notes
The necessary metadata to reconstruct timing information are recorded
in the epoch and sample_rate attributes. This time-stamps can be
returned via the :attr:~TimeSeries.times property.
All comparison operations performed on a TimeSeries will return a
~gwpy.timeseries.StateTimeSeries - a boolean array
with metadata copied from the starting TimeSeries.
Examples
from gwpy.timeseries import TimeSeries
To create an array of random numbers, sampled at 100 Hz, in units of ‘metres’:
from numpy import random series = TimeSeries(random.random(1000), sample_rate=100, unit=’m’)
which can then be simply visualised via
plot = series.plot() plot.show()
analytic_signal
analytic_signal(self, *args, **kwargs)
Apply analytic_signal to each item.
angle
angle(self, unwrap: bool = False, deg: bool = False, **kwargs: Any) -> Any
Alias for phase(unwrap=unwrap, deg=deg).
append
append(self, item)
Append object to the end of the list.
asd
asd(self, *args, **kwargs)
Compute ASD for each TimeSeries in the list. Returns a FrequencySeriesList.
average_fft
average_fft(self, *args, **kwargs)
Apply average_fft to each TimeSeries in the list. Returns a FrequencySeriesList.
baseband
baseband(self, *args, **kwargs)
Apply baseband to each item.
coalesce
coalesce(self)
Merge contiguous elements of this list into single objects
This method implicitly sorts and potentially shortens this list.
coherence
coherence(self, other=None, *args, fftlength=None, overlap=None, window='hann', symmetric=True, include_diagonal=True, diagonal_value=1.0, **kwargs)
Compute coherence for each element or as a matrix depending on other.
coherence_matrix
coherence_matrix(self, other=None, *args, fftlength=None, overlap=None, window='hann', symmetric=True, include_diagonal=True, diagonal_value=1.0, **kwargs)
Compute Coherence Matrix.
Parameters
other : TimeSeriesDict or TimeSeriesList, optional Other collection. fftlength, overlap, window : See TimeSeries.coherence(). symmetric : bool, default=True If True and other is None, compute only upper triangle and copy to lower. include_diagonal : bool, default=True Include diagonal. diagonal_value : float or None, default=1.0 Value to fill diagonal if include_diagonal is True. If None, compute diagonal coherence.
Returns
FrequencySeriesMatrix
copy
copy(self)
Return a copy of this list with each element copied to new memory
crop
crop(self, start=None, end=None, copy=False) -> 'TimeSeriesList'
Crop each TimeSeries in the list. Accepts any time format supported by gwexpy.time.to_gps (str, datetime, pandas, obspy, etc). Returns a new TimeSeriesList.
csd
csd(self, other=None, *args, fftlength=None, overlap=None, window='hann', hermitian=True, include_diagonal=True, **kwargs)
Compute CSD for each element or as a matrix depending on other.
csd_matrix
csd_matrix(self, other=None, *args, fftlength=None, overlap=None, window='hann', hermitian=True, include_diagonal=True, **kwargs)
Compute Cross Spectral Density Matrix.
Parameters
other : TimeSeriesDict or TimeSeriesList, optional Other collection for cross-CSD. fftlength, overlap, window : See TimeSeries.csd() arguments. hermitian : bool, default=True If True and other is None, compute only upper triangle and conjugate fill lower. include_diagonal : bool, default=True Whether to compute diagonal elements.
Returns
FrequencySeriesMatrix
decimate
decimate(self, *args, **kwargs) -> 'TimeSeriesList'
Decimate each TimeSeries in the list. Returns a new TimeSeriesList.
degree
degree(self, *args, **kwargs) -> 'TimeSeriesList'
Compute instantaneous phase (in degrees) of each item.
detrend
detrend(self, *args, **kwargs) -> 'TimeSeriesList'
Detrend each TimeSeries in the list. Returns a new TimeSeriesList.
envelope
envelope(self, *args, **kwargs)
Apply envelope to each item.
extend
extend(self, item)
Extend list by appending elements from the iterable.
fft
fft(self, *args, **kwargs)
Apply FFT to each TimeSeries in the list. Returns a FrequencySeriesList.
filter
filter(self, *args, **kwargs) -> 'TimeSeriesList'
Filter each TimeSeries in the list. Returns a new TimeSeriesList.
gate
gate(self, *args, **kwargs) -> 'TimeSeriesList'
Gate each TimeSeries in the list. Returns a new TimeSeriesList.
heterodyne
heterodyne(self, *args, **kwargs)
Apply heterodyne to each item.
hilbert
hilbert(self, *args, **kwargs)
Alias for analytic_signal.
ica
ica(self, *args, **kwargs)
Perform ICA decomposition across channels.
impute
impute(self, *, method='interpolate', limit=None, axis='time', max_gap=None, **kwargs)
Impute missing data (NaNs) in each TimeSeries.
Parameters
method : str, optional Imputation method (‘interpolate’, ‘fill’, etc.). limit : int, optional Maximum number of consecutive NaNs to fill. axis : str, optional Axis to impute along. max_gap : float, optional Maximum gap size to fill (in seconds). **kwargs Passed to TimeSeries.impute().
Returns
TimeSeriesList
instantaneous_frequency
instantaneous_frequency(self, *args, **kwargs)
Apply instantaneous_frequency to each item.
instantaneous_phase
instantaneous_phase(self, *args, **kwargs)
Apply instantaneous_phase to each item.
is_contiguous
is_contiguous(self, *args, **kwargs)
Check contiguity with another object for each TimeSeries.
join
join(self, pad=None, gap=None)
Concatenate all of the elements of this list into a single object
Parameters
pad : float, optional
value with which to fill gaps in the source data,
by default gaps will result in a ValueError.
gap : str, optional, default: 'raise'
what to do if there are gaps in the data, one of
- ``'raise'`` - raise a `ValueError`
- ``'ignore'`` - remove gap and join data
- ``'pad'`` - pad gap with zeros
If `pad` is given and is not `None`, the default is ``'pad'``,
otherwise ``'raise'``.
Returns
series : gwpy.types.TimeSeriesBase subclass
a single series containing all data from each entry in this list
See also
TimeSeries.append for details on how the individual series are concatenated together
lock_in
lock_in(self, *args, **kwargs)
Apply lock_in to each item.
mask
mask(self, *args, **kwargs) -> 'TimeSeriesList'
Mask each TimeSeries in the list. Returns a new TimeSeriesList.
max
max(self, *args, **kwargs)
Compute maximum for each TimeSeries. Returns list of scalars.
mean
mean(self, *args, **kwargs)
Compute mean for each TimeSeries. Returns list of scalars.
min
min(self, *args, **kwargs)
Compute minimum for each TimeSeries. Returns list of scalars.
mix_down
mix_down(self, *args, **kwargs)
Apply mix_down to each item.
notch
notch(self, *args, **kwargs) -> 'TimeSeriesList'
Notch filter each TimeSeries in the list. Returns a new TimeSeriesList.
pca
pca(self, *args, **kwargs)
Perform PCA decomposition across channels.
phase
phase(self, unwrap: bool = False, deg: bool = False, **kwargs: Any) -> Any
Calculate the phase of the data.
Parameters
unwrap : bool, optional
If True, unwrap the phase to remove discontinuities.
Default is False.
deg : bool, optional
If True, return the phase in degrees.
Default is False (radians).
**kwargs
Additional arguments passed to the underlying calculation.
Returns
Series or Matrix or Collection
The phase of the data.
plot
plot(self, **kwargs: Any)
Plot all series. Delegates to gwexpy.plot.Plot.
plot_all
plot_all(self, *args: Any, **kwargs: Any)
Alias for plot(). Plots all series.
psd
psd(self, *args, **kwargs)
Compute PSD for each TimeSeries in the list. Returns a FrequencySeriesList.
q_transform
q_transform(self, *args, **kwargs)
Compute Q-transform for each TimeSeries in the list. Returns a SpectrogramList.
radian
radian(self, *args, **kwargs) -> 'TimeSeriesList'
Compute instantaneous phase (in radians) of each item.
resample
resample(self, *args, **kwargs) -> 'TimeSeriesList'
Resample each TimeSeries in the list. Returns a new TimeSeriesList.
rms
rms(self, *args, **kwargs)
Compute RMS for each TimeSeries. Returns list of scalars.
rolling_max
rolling_max(self, window, *, center=False, min_count=1, nan_policy='omit', backend='auto', ignore_nan=None)
Apply rolling max to each element.
rolling_mean
rolling_mean(self, window, *, center=False, min_count=1, nan_policy='omit', backend='auto', ignore_nan=None)
Apply rolling mean to each element.
rolling_median
rolling_median(self, window, *, center=False, min_count=1, nan_policy='omit', backend='auto', ignore_nan=None)
Apply rolling median to each element.
rolling_min
rolling_min(self, window, *, center=False, min_count=1, nan_policy='omit', backend='auto', ignore_nan=None)
Apply rolling min to each element.
rolling_std
rolling_std(self, window, *, center=False, min_count=1, nan_policy='omit', backend='auto', ddof=0, ignore_nan=None)
Apply rolling std to each element.
segments
The span of each series in this list
shift
shift(self, *args, **kwargs) -> 'TimeSeriesList'
Shift each TimeSeries in the list. Returns a new TimeSeriesList.
spectrogram
spectrogram(self, *args, **kwargs)
Compute spectrogram for each TimeSeries in the list. Returns a SpectrogramList.
spectrogram2
spectrogram2(self, *args, **kwargs)
Compute spectrogram2 for each TimeSeries in the list. Returns a SpectrogramList.
state_segments
state_segments(self, *args, **kwargs)
Run state_segments on each element (returns list of SegmentLists).
std
std(self, *args, **kwargs)
Compute standard deviation for each TimeSeries. Returns list of scalars.
stlt
stlt(self, *args, **kwargs)
Apply stlt to each item. Returns a list of TimePlaneTransforms.
Notes
All arguments are forwarded to TimeSeries.stlt(). In particular, you can pass
frequencies (Hz) to evaluate STLT at arbitrary frequency points instead of the
FFT grid.
taper
taper(self, *args, **kwargs) -> 'TimeSeriesList'
Taper each TimeSeries in the list. Returns a new TimeSeriesList.
to_matrix
to_matrix(self, *, align='intersection', **kwargs)
Convert list to TimeSeriesMatrix with alignment.
Parameters
align : str, optional Alignment strategy (‘intersection’, ‘union’, etc.). Default ‘intersection’. **kwargs Additional arguments passed to alignment function.
Returns
TimeSeriesMatrix Matrix with all series aligned to common time axis.
to_pandas
to_pandas(self, **kwargs)
Convert TimeSeriesList to pandas DataFrame. Each element becomes a column. ASSUMES common time axis.
to_tmultigraph
to_tmultigraph(self, name: Optional[str] = None) -> Any
Convert to ROOT TMultiGraph.
unwrap_phase
unwrap_phase(self, *args, **kwargs)
Apply unwrap_phase to each item.
value_at
value_at(self, *args, **kwargs)
Get value at a specific time for each TimeSeries.
whiten
whiten(self, *args, **kwargs) -> 'TimeSeriesList'
Whiten each TimeSeries in the list. Returns a new TimeSeriesList.
write
write(self, target: str, *args: Any, **kwargs: Any) -> Any
Write TimeSeriesList to file (HDF5, ROOT, etc.).
CSV/TXT output for multi-channel data uses a directory layout (one file per entry).
tsl.write("out_dir", format="txt") # writes per-series TXT under out_dir/
For HDF5 output you can choose a layout (default is GWpy-compatible dataset-per-entry).
tsl.write("out.h5", format="hdf5") # GWpy-compatible (default)
tsl.write("out.h5", format="hdf5", layout="group") # legacy group-per-entry
.. warning::
Never unpickle data from untrusted sources. pickle/shelve can execute
arbitrary code on load.
Pickle portability note: pickled gwexpy TimeSeriesList unpickles as a GWpy
TimeSeriesList (gwexpy not required on the loading side).
zpk
zpk(self, *args, **kwargs) -> 'TimeSeriesList'
ZPK filter each TimeSeries in the list. Returns a new TimeSeriesList.