TimeseriesTools
Documentation for TimeseriesTools.
IntervalSets.IntervalTimeseriesTools.AbstractSpectrumTimeseriesTools.AbstractTimeSeriesTimeseriesTools.FreqTimeseriesTools.FreqIndexTimeseriesTools.IrregularTimeSeriesTimeseriesTools.MultivariateSpectrumTimeseriesTools.MultivariateTimeSeriesTimeseriesTools.RegularFreqIndexTimeseriesTools.RegularIndexTimeseriesTools.RegularSpectrumTimeseriesTools.RegularTimeIndexTimeseriesTools.RegularTimeSeriesTimeseriesTools.TimeIndexTimeseriesTools.UnitfulIndexTimeseriesTools.UnitfulTimeIndexTimeseriesTools.UnitfulTimeSeriesTimeseriesTools.UnivariateSpectrumTimeseriesTools.UnivariateTimeSeriesTimeseriesTools.VarBase.catBase.stepGeometryBasics.decomposeTimeseriesTools.TimeSeriesTimeseriesTools.TimeSeriesTimeseriesTools.TimeSeriesTimeseriesTools._energyspectrumTimeseriesTools._energyspectrumTimeseriesTools._powerspectrumTimeseriesTools.colorednoiseTimeseriesTools.convertconstTimeseriesTools.dimunitTimeseriesTools.durationTimeseriesTools.energyspectrumTimeseriesTools.frequnitTimeseriesTools.powerspectrumTimeseriesTools.samplingperiodTimeseriesTools.samplingrateTimeseriesTools.timesTimeseriesTools.timeunitUnitful.unit
TimeseriesTools.UnitfulIndex — TypeUnitfulIndexA 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 Frequency.
TimeseriesTools.AbstractTimeSeries — TypeAbstractTimeSeries{T, N, B}A type alias for an AbstractDimArray with a time index.
TimeseriesTools.Freq — TypeFreqA DimensionalData.jl dimension representing the frequency domain.
TimeseriesTools.FreqIndex — TypeFreqIndexA type alias for a tuple of dimensions, where the first dimension is of type FreqDim.
TimeseriesTools.IrregularTimeSeries — TypeIrregularTimeSeriesA type alias for a potentially irregularly sampled time series.
TimeseriesTools.MultivariateSpectrum — TypeMultivariateSpectrum{T} = AbstractSpectrum{T, 2} where TA 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 — TypeRegularFreqIndexA type alias for a tuple of dimensions, where the first dimension is a regularly sampled Frequency.
TimeseriesTools.RegularIndex — TypeRegularIndexA 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 — TypeRegularTimeIndexA 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 — TypeTimeIndexA type alias for a tuple containing a time dimension and any number of other dimensions.
TimeseriesTools.UnitfulTimeIndex — TypeUnitfulTimeIndexA 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 UnitfulTimeSeriesTimeseriesTools.UnivariateSpectrum — TypeUnivariateSpectrum{T} = AbstractSpectrum{T, 1} where TA 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 — TypeVarA 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) == 1GeometryBasics.decompose — Methoddecompose(x::Union{<:AbstractTimeSeries, <:AbstractSpectrum})Convert a time series or spectrum to a tuple of the dimensions and the data (as Arrays).
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 MultivariateSpectrumTimeseriesTools._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: AnAbstractRangerepresenting 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
TimeSeriescontaining the generated colored noise.
Example
julia> using TimeseriesTools
julia> pink_noise = colorednoise(1:0.01:10; α=1.0)
julia> pink_noise isa RegularTimeSeriesTimeseriesTools.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) == 99TimeseriesTools.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) == 1TimeseriesTools.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) == 1TimeseriesTools.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) == tTimeseriesTools.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"