TimeseriesTools
Documentation for TimeseriesTools.
IntervalSets.Interval
TimeseriesTools.AbstractSpectrum
TimeseriesTools.AbstractTimeSeries
TimeseriesTools.Freq
TimeseriesTools.FreqIndex
TimeseriesTools.IrregularTimeSeries
TimeseriesTools.MultivariateSpectrum
TimeseriesTools.MultivariateTimeSeries
TimeseriesTools.RegularFreqIndex
TimeseriesTools.RegularIndex
TimeseriesTools.RegularSpectrum
TimeseriesTools.RegularTimeIndex
TimeseriesTools.RegularTimeSeries
TimeseriesTools.TimeIndex
TimeseriesTools.UnitfulIndex
TimeseriesTools.UnitfulTimeIndex
TimeseriesTools.UnitfulTimeSeries
TimeseriesTools.UnivariateSpectrum
TimeseriesTools.UnivariateTimeSeries
TimeseriesTools.Var
Base.cat
Base.step
GeometryBasics.decompose
TimeseriesTools.TimeSeries
TimeseriesTools.TimeSeries
TimeseriesTools.TimeSeries
TimeseriesTools._energyspectrum
TimeseriesTools._energyspectrum
TimeseriesTools._powerspectrum
TimeseriesTools.colorednoise
TimeseriesTools.convertconst
TimeseriesTools.dimunit
TimeseriesTools.duration
TimeseriesTools.energyspectrum
TimeseriesTools.frequnit
TimeseriesTools.powerspectrum
TimeseriesTools.samplingperiod
TimeseriesTools.samplingrate
TimeseriesTools.times
TimeseriesTools.timeunit
Unitful.unit
TimeseriesTools.UnitfulIndex
— TypeUnitfulIndex
A type alias for a union of AbstractArray
, AbstractRange
, and Tuple
types with Unitful.Time
elements.
IntervalSets.Interval
— MethodIntervalSets.Interval(x::AbstractTimeSeries)
Returns an interval representing the range of the AbstractTimeSeries
x
.
Examples
julia> using IntervalSets;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x);
julia> IntervalSets.Interval(ts) == (1..100)
TimeseriesTools.AbstractSpectrum
— TypeAbstractSpectrum{T, N, B}
A type alias for an AbstractDimArray
in which the first dimension is Freq
uency.
TimeseriesTools.AbstractTimeSeries
— TypeAbstractTimeSeries{T, N, B}
A type alias for an AbstractDimArray with a time index.
TimeseriesTools.Freq
— TypeFreq
A DimensionalData.jl dimension representing the frequency domain.
TimeseriesTools.FreqIndex
— TypeFreqIndex
A type alias for a tuple of dimensions, where the first dimension is of type FreqDim
.
TimeseriesTools.IrregularTimeSeries
— TypeIrregularTimeSeries
A type alias for a potentially irregularly sampled time series.
TimeseriesTools.MultivariateSpectrum
— TypeMultivariateSpectrum{T} = AbstractSpectrum{T, 2} where T
A type alias for a multivariate spectrum.
TimeseriesTools.MultivariateTimeSeries
— TypeMultivariateTimeSeries{T}
A type alias for a multivariate time series (A matrix, with a first Ti
dimension and an arbitrary second dimension).
TimeseriesTools.RegularFreqIndex
— TypeRegularFreqIndex
A type alias for a tuple of dimensions, where the first dimension is a regularly sampled Freq
uency.
TimeseriesTools.RegularIndex
— TypeRegularIndex
A type alias for a regularly sampled dimension, wrapping an AbstractRange
.
TimeseriesTools.RegularSpectrum
— TypeRegularSpectrum{T, N, B}
A type alias for a spectrum with a regularly sampled frequency index.
TimeseriesTools.RegularTimeIndex
— TypeRegularTimeIndex
A type alias for a tuple of dimensions containing a TimeIndex
and any number of other dimensions.
TimeseriesTools.RegularTimeSeries
— TypeRegularTimeSeries{T, N, B}
A type alias for a regularly sampled time series.
TimeseriesTools.TimeIndex
— TypeTimeIndex
A type alias for a tuple containing a time dimension and any number of other dimensions.
TimeseriesTools.UnitfulTimeIndex
— TypeUnitfulTimeIndex
A type alias for a tuple of dimensions, where the first dimension is of type DimensionalData.Dimension{<:UnitfulIndex}
.
TimeseriesTools.UnitfulTimeSeries
— TypeUnitfulTimeSeries{T, N, B}
A type alias for an AbstractDimArray
with a UnitfulTimeIndex
.
Examples
julia> using Unitful;
julia> t = (1:100)u"s";
julia> x = rand(100);
julia> uts = TimeSeries(t, x);
julia> uts isa UnitfulTimeSeries
TimeseriesTools.UnivariateSpectrum
— TypeUnivariateSpectrum{T} = AbstractSpectrum{T, 1} where T
A type alias for a univariate spectrum.
TimeseriesTools.UnivariateTimeSeries
— TypeUnivariateTimeSeries{T}
A type alias for a time series with one variable (a vector with only a Ti
dimension).
TimeseriesTools.Var
— TypeVar
A DimensionalData.jl dimension representing the variables of a multivariate time series.
Base.cat
— MethodBase.cat(D::DimensionalData.Dimension, args...; kwargs...)
Concatenate the arrays given in args...
, and give the resulting extra axis dimensions D
.
Base.step
— Methodstep(x::RegularTimeSeries)
Returns the step size (time increment) of a regularly sampled RegularTimeSeries
.
Examples
julia> t = 1:100;
julia> x = rand(100);
julia> rts = TimeSeries(t, x);
julia> step(rts) == 1
GeometryBasics.decompose
— Methoddecompose(x::Union{<:AbstractTimeSeries, <:AbstractSpectrum})
Convert a time series or spectrum to a tuple of the dimensions and the data (as Array
s).
TimeseriesTools.TimeSeries
— MethodTimeSeries(t, v, x)
Constructs a multivariate time series with time t, variable v, and data x.
Examples
julia> t = 1:100;
julia> v = [:a, :b, :c];
julia> x = rand(100, 3);
julia> mts = TimeSeries(t, v, x)
julia> mts isa Union{MultivariateTimeSeries, RegularTimeSeries}
TimeseriesTools.TimeSeries
— MethodTimeSeries(t, x, timeunit::Unitful.Units)
Constructs a univariate time series with time t
, data x
and time units specified by timeunit
. Note that you can add units to the elements of a time series x
with, for example, x*u"V"
.
Examples
julia> using Unitful;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x, u"ms")*u"V";
julia> ts isa Union{UnivariateTimeSeries, RegularTimeSeries, UnitfulTimeSeries}
TimeseriesTools.TimeSeries
— MethodTimeSeries(t, x)
Constructs a univariate time series with time t
and data x
. Alteratively, use TS(t, x)
Examples
julia> using TimeseriesTools, Unitful;
julia> t = 1:100
julia> x = rand(100)
julia> ts = TimeSeries(t, x)
julia> ts isa Union{UnivariateTimeSeries, RegularTimeSeries}
TimeseriesTools._energyspectrum
— Function_energyspectrum(x::RegularTimeSeries, f_min=samplingrate(x)/min(length(x)÷4, 1000))
Computes the energy spectrum of a regularly sampled time series x
with an optional minimum frequency f_min
.
TimeseriesTools._energyspectrum
— Method_energyspectrum(x::RegularTimeSeries, f_min=0)
Computes the energy spectrum of a time series using the fast Fourier transform.
If f_min > 0
, the energy spectrum is calculated for windows of the time series determined by f_min
, the minimum frequency that will be resolved in the spectrum. If f_min > 0
, the second dimension of the output will correspond to the windows. For an averaged periodogram, see energyspectrum
.
If the input time series is a UnitfulTimeSeries
, the frequency will also have units. Moreover if the elements of x
are unitful, so are the elements of the spectrum.
Examples
julia> using TimeseriesTools
julia> t = range(0.0, stop=1.0, length=1000);
julia> x = sin.(2 * π * 5 * t);
julia> ts = RegularTimeSeries(t, x);
julia> S = _energyspectrum(ts);
julia> S isa MultivariateSpectrum
TimeseriesTools._powerspectrum
— Method_powerspectrum(x::AbstractTimeSeries, f_min=samplingrate(x)/min(length(x)÷4, 1000); kwargs...)
Computes the power spectrum of a time series x
in Welch periodogram windows. Note that the _powerspectrum
is simply the _energyspectrum
divided by the duration of each window. See _energyspectrum
.
TimeseriesTools.colorednoise
— Methodcolorednoise(ts::AbstractRange; α=2.0)
Generate a colored-noise time series with a specified power-law exponent α
on the given times ts
.
Arguments
ts
: AnAbstractRange
representing the time range of the generated noise.α
: The power-law exponent of the colored noise, which will have a spectrum given by 1/f^α. Defaults to 2.0.
Returns
- A
TimeSeries
containing the generated colored noise.
Example
julia> using TimeseriesTools
julia> pink_noise = colorednoise(1:0.01:10; α=1.0)
julia> pink_noise isa RegularTimeSeries
TimeseriesTools.convertconst
— MethodTimeseriesTools.convertconst(c::Number, u::Unitful.Quantity)
Converts a constant c
to have the same units as u
.
Examples
julia> using Unitful;
julia> c = 5;
julia> u = 3u"s";
julia> converted_c = TimeseriesTools.convertconst(c, u);
julia> typeof(converted_c) == typeof(u)
TimeseriesTools.dimunit
— Methoddimunit(x::UnitfulTimeSeries, dim)
Returns the unit associated with the specified dimension dim
of a UnitfulTimeSeries
.
Examples
julia> using Unitful;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x, u"ms");
julia> TimeseriesTools.dimunit(ts, Ti) == u"ms"
TimeseriesTools.duration
— Methodduration(x::AbstractTimeSeries)
Returns the duration of the @ref x
.
Examples
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x);
julia> TimeseriesTools.duration(ts) == 99
TimeseriesTools.energyspectrum
— Methodenergyspectrum(x::RegularTimeSeries, f_min=0; kwargs...)
Computes the average energy spectrum of a regularly sampled time series x
. f_min
determines the minimum frequency that will be resolved in the spectrum. See _energyspectrum
.
TimeseriesTools.frequnit
— Methodfrequnit(x::UnitfulSpectrum)
Returns the frequency units associated with a UnitfulSpectrum
.
Examples
julia> using Unitful;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x, u"ms");
julia> sp = fft(ts); # assuming fft returns a UnitfulSpectrum
julia> frequnits(sp) == u"Hz"
TimeseriesTools.powerspectrum
— Methodpowerspectrum(x::AbstractTimeSeries, f_minsamplingrate(x)/min(length(x)÷4, 1000); kwargs...)
Computes the average power spectrum of a time series x
using the Welch periodogram method.
TimeseriesTools.samplingperiod
— Methodsamplingperiod(x::RegularTimeSeries)
Returns the sampling period (step size) of a regularly sampled RegularTimeSeries
.
Examples
julia> t = 1:100;
julia> x = rand(100);
julia> rts = TimeSeries(t, x);
julia> samplingperiod(rts) == 1
TimeseriesTools.samplingrate
— Methodsamplingrate(x::RegularTimeSeries)
Returns the sampling rate (inverse of the step size) of a regularly sampled RegularTimeSeries
.
Examples
julia> t = 1:100;
julia> x = rand(100);
julia> rts = TimeSeries(t, x);
julia> samplingrate(rts) == 1
TimeseriesTools.times
— Methodtimes(x::AbstractTimeSeries)
Returns the time indices of the AbstractTimeSeries
x
.
Examples
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x);
julia> times(ts) == t
TimeseriesTools.timeunit
— Methodtimeunit(x::UnitfulTimeSeries)
Returns the time units associated with a [UnitfulTimeSeries
].
Examples
julia> using Unitful;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x, u"ms");
julia> timeunit(ts) == u"ms"
Unitful.unit
— Methodunit(x::AbstractArray)
Returns the units associated with the elements of an UnitfulTimeSeries
` or UnitfulSpectrum
.
Examples
julia> using Unitful;
julia> t = 1:100;
julia> x = rand(100);
julia> ts = TimeSeries(t, x, u"ms")*u"V";
julia> unit(ts) == u"V"