Struct light_curve_feature::features::Periodogram

source ·
pub struct Periodogram<T, F>
where T: Float,
{ /* private fields */ }
Expand description

Peaks of Lomb–Scargle periodogram and periodogram as a meta-feature

Periodogram $P(\omega)$ is an estimate of spectral density of unevenly time series. peaks argument corresponds to a number of the most significant spectral density peaks to return. For each peak its period and “signal to noise” ratio is returned:

$$ \mathrm{signal~to~noise~of~peak} \equiv \frac{P(\omega_\mathrm{peak}) - \langle P(\omega) \rangle}{\sigma_{P(\omega)}}. $$

Periodogram can accept other features for feature extraction from periodogram as it was time series without observation errors (unity weights are used if required). You can even pass one Periodogram to another one if you are crazy enough

  • Depends on: time, magnitude
  • Minimum number of observations: as required by sub-features, but at least two
  • Number of features: $2 \times \mathrm{peaks}$ plus sub-features

Implementations§

source§

impl<T, F> Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T>,

source

pub fn default_peaks() -> usize

source

pub fn default_resolution() -> f32

source

pub fn default_max_freq_factor() -> f32

source

pub fn set_freq_resolution(&mut self, resolution: f32) -> &mut Self

Set frequency resolution

The larger frequency resolution allows to find peak period with better precision

source

pub fn set_max_freq_factor(&mut self, max_freq_factor: f32) -> &mut Self

Multiply maximum (Nyquist) frequency

Maximum frequency is Nyquist frequncy multiplied by this factor. The larger factor allows to find larger frequency and makes PeriodogramPowerFft more precise. However large frequencies can show false peaks

source

pub fn set_nyquist(&mut self, nyquist: NyquistFreq) -> &mut Self

Define Nyquist frequency

source

pub fn add_feature(&mut self, feature: F) -> &mut Self

Extend a feature to extract from periodogram

source

pub fn set_periodogram_algorithm( &mut self, periodogram_power: PeriodogramPower<T> ) -> &mut Self

source

pub fn power(&self, ts: &mut TimeSeries<'_, T>) -> Vec<T>

source

pub fn freq_power(&self, ts: &mut TimeSeries<'_, T>) -> (Vec<T>, Vec<T>)

source§

impl<T, F> Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks>,

source

pub fn new(peaks: usize) -> Self

New Periodogram that finds given number of peaks

source§

impl<T, F> Periodogram<T, F>
where T: Float,

source

pub const fn doc() -> &'static str

Trait Implementations§

source§

impl<T, F: Clone> Clone for Periodogram<T, F>
where T: Float + Clone,

source§

fn clone(&self) -> Periodogram<T, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T, F: Debug> Debug for Periodogram<T, F>
where T: Float + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T, F> Default for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks>,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, T, F> Deserialize<'de> for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<T, F> EvaluatorInfoTrait for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn get_info(&self) -> &EvaluatorInfo

Get feature evaluator meta-information
source§

fn size_hint(&self) -> usize

Size of vectors returned by eval(), get_names() and get_descriptions()
source§

fn min_ts_length(&self) -> usize

Minimum time series length required to successfully evaluate feature
source§

fn is_t_required(&self) -> bool

If time array used by the feature
source§

fn is_m_required(&self) -> bool

If magnitude array is used by the feature
source§

fn is_w_required(&self) -> bool

If weight array is used by the feature
source§

fn is_sorting_required(&self) -> bool

If feature requires time-sorting on the input TimeSeries
source§

impl<T, F> FeatureEvaluator<T> for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>

Vector of feature values or EvaluatorError
source§

fn eval_or_fill(&self, ts: &mut TimeSeries<'_, T>, fill_value: T) -> Vec<T>

Returns vector of feature values and fill invalid components with given value
source§

fn check_ts_length( &self, ts: &TimeSeries<'_, T> ) -> Result<usize, EvaluatorError>

Checks if TimeSeries has enough points to evaluate the feature
source§

impl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn get_names(&self) -> Vec<&str>

Vector of feature names. The length and feature order corresponds to eval() output
source§

fn get_descriptions(&self) -> Vec<&str>

Vector of feature descriptions. The length and feature order corresponds to eval() output
source§

impl<T> From<Periodogram<T, Feature<T>>> for Feature<T>
where T: Float,

source§

fn from(v: Periodogram<T, Self>) -> Feature<T>

Converts to this type from the input type.
source§

impl<T, F> JsonSchema for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T>,

source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
source§

impl<T, F> Serialize for Periodogram<T, F>
where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<T> TryInto<Periodogram<T, Feature<T>>> for Feature<T>
where T: Float,

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_into( self ) -> Result<Periodogram<T, Self>, <Self as TryInto<Periodogram<T, Self>>>::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<T, F> Freeze for Periodogram<T, F>

§

impl<T, F> RefUnwindSafe for Periodogram<T, F>

§

impl<T, F> Send for Periodogram<T, F>
where F: Send,

§

impl<T, F> Sync for Periodogram<T, F>
where F: Sync,

§

impl<T, F> Unpin for Periodogram<T, F>
where T: Unpin, F: Unpin,

§

impl<T, F> UnwindSafe for Periodogram<T, F>
where T: UnwindSafe, F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
source§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
source§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, Dst> ConvAsUtil<Dst> for T

source§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
source§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
source§

impl<T> ConvUtil for T

source§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
source§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
source§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
source§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
source§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
source§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,