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
sourceimpl<T, F> Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T>,
impl<T, F> Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T>,
pub fn default_peaks() -> usize
pub fn default_resolution() -> f32
pub fn default_max_freq_factor() -> f32
sourcepub fn set_freq_resolution(&mut self, resolution: f32) -> &mut Self
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
sourcepub fn set_max_freq_factor(&mut self, max_freq_factor: f32) -> &mut Self
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
sourcepub fn set_nyquist(&mut self, nyquist: NyquistFreq) -> &mut Self
pub fn set_nyquist(&mut self, nyquist: NyquistFreq) -> &mut Self
Define Nyquist frequency
sourcepub fn add_feature(&mut self, feature: F) -> &mut Self
pub fn add_feature(&mut self, feature: F) -> &mut Self
Extend a feature to extract from periodogram
pub fn set_periodogram_algorithm(
&mut self,
periodogram_power: PeriodogramPower<T>
) -> &mut Self
pub fn power(&self, ts: &mut TimeSeries<'_, T>) -> Vec<T>
pub fn freq_power(&self, ts: &mut TimeSeries<'_, T>) -> (Vec<T>, Vec<T>)
sourceimpl<T, F> Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks>,
impl<T, F> Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks>,
sourcepub fn new(peaks: usize) -> Self
pub fn new(peaks: usize) -> Self
New Periodogram that finds given number of peaks
Trait Implementations
sourceimpl<T: Clone, F: Clone> Clone for Periodogram<T, F> where
T: Float,
impl<T: Clone, F: Clone> Clone for Periodogram<T, F> where
T: Float,
sourcefn clone(&self) -> Periodogram<T, F>
fn clone(&self) -> Periodogram<T, F>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<T, F> Default for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks>,
impl<T, F> Default for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks>,
sourceimpl<'de, T, F> Deserialize<'de> for Periodogram<T, F> where
T: Float,
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
impl<'de, T, F> Deserialize<'de> for Periodogram<T, F> where
T: Float,
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<T, F> EvaluatorInfoTrait for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
impl<T, F> EvaluatorInfoTrait for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
sourcefn size_hint(&self) -> usize
fn size_hint(&self) -> usize
Size of vectors returned by eval(), get_names() and get_descriptions() Read more
sourcefn min_ts_length(&self) -> usize
fn min_ts_length(&self) -> usize
Minimum time series length required to successfully evaluate feature
sourcefn is_t_required(&self) -> bool
fn is_t_required(&self) -> bool
If time array used by the feature
sourcefn is_m_required(&self) -> bool
fn is_m_required(&self) -> bool
If magnitude array is used by the feature
sourcefn is_w_required(&self) -> bool
fn is_w_required(&self) -> bool
If weight array is used by the feature
sourcefn is_sorting_required(&self) -> bool
fn is_sorting_required(&self) -> bool
If feature requires time-sorting on the input TimeSeries
sourceimpl<T, F> FeatureEvaluator<T> for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
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,
sourcefn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>
fn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>
Vector of feature values or EvaluatorError
sourcefn eval_or_fill(&self, ts: &mut TimeSeries<'_, T>, fill_value: T) -> Vec<T>
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
sourcefn check_ts_length(
&self,
ts: &TimeSeries<'_, T>
) -> Result<usize, EvaluatorError>
fn check_ts_length(
&self,
ts: &TimeSeries<'_, T>
) -> Result<usize, EvaluatorError>
Checks if TimeSeries has enough points to evaluate the feature
sourceimpl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
impl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
sourceimpl<T> From<Periodogram<T, Feature<T>>> for Feature<T> where
T: Float,
impl<T> From<Periodogram<T, Feature<T>>> for Feature<T> where
T: Float,
sourcefn from(v: Periodogram<T, Self>) -> Feature<T>
fn from(v: Periodogram<T, Self>) -> Feature<T>
Converts to this type from the input type.
sourceimpl<T, F> JsonSchema for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T>,
impl<T, F> JsonSchema for Periodogram<T, F> where
T: Float,
F: FeatureEvaluator<T>,
sourcefn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the $ref
keyword. Read more
sourcefn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
sourcefn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
sourceimpl<T, F> Serialize for Periodogram<T, F> where
T: Float,
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
impl<T, F> Serialize for Periodogram<T, F> where
T: Float,
T: Float,
F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>,
<F as TryInto<PeriodogramPeaks>>::Error: Debug,
sourceimpl<T> TryInto<Periodogram<T, Feature<T>>> for Feature<T> where
T: Float,
impl<T> TryInto<Periodogram<T, Feature<T>>> for Feature<T> where
T: Float,
sourcefn try_into(
self
) -> Result<Periodogram<T, Self>, <Self as TryInto<Periodogram<T, Self>>>::Error>
fn try_into(
self
) -> Result<Periodogram<T, Self>, <Self as TryInto<Periodogram<T, Self>>>::Error>
Performs the conversion.
Auto Trait Implementations
impl<T, F> RefUnwindSafe for Periodogram<T, F> where
F: RefUnwindSafe,
T: RefUnwindSafe,
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
F: Unpin,
T: Unpin,
impl<T, F> UnwindSafe for Periodogram<T, F> where
F: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<Src, Scheme> ApproxFrom<Src, Scheme> for Src where
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src where
Scheme: ApproxScheme,
sourcefn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
sourceimpl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src where
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src where
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
sourcefn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
sourcefn approx(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>,
fn approx(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>,
Approximate the subject with the default scheme.
sourcefn approx_by<Scheme>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_by<Scheme>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
Approximate the subject with a specific scheme.
sourceimpl<T> ConvUtil for T
impl<T> ConvUtil for T
sourcefn approx_as<Dst>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>,
Approximate the subject to a given type with the default scheme.
sourcefn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
Approximate the subject to a given type with a specific scheme.