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>,
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>)
source§impl<T, F> Periodogram<T, F>
impl<T, F> Periodogram<T, F>
sourcepub fn new(peaks: usize) -> Self
pub fn new(peaks: usize) -> Self
New Periodogram that finds given number of peaks
Trait Implementations§
source§impl<T, F: Clone> Clone for Periodogram<T, F>
impl<T, F: Clone> Clone for Periodogram<T, F>
source§fn clone(&self) -> Periodogram<T, F>
fn clone(&self) -> Periodogram<T, F>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T, F: Debug> Debug for Periodogram<T, F>
impl<T, F: Debug> Debug for Periodogram<T, F>
source§impl<T, F> Default for Periodogram<T, F>
impl<T, F> Default for Periodogram<T, F>
source§impl<'de, T, F> Deserialize<'de> for Periodogram<T, F>
impl<'de, T, F> Deserialize<'de> for Periodogram<T, F>
source§fn 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>,
source§impl<T, F> EvaluatorInfoTrait for Periodogram<T, F>
impl<T, F> EvaluatorInfoTrait for Periodogram<T, F>
source§fn min_ts_length(&self) -> usize
fn min_ts_length(&self) -> usize
source§fn is_t_required(&self) -> bool
fn is_t_required(&self) -> bool
source§fn is_m_required(&self) -> bool
fn is_m_required(&self) -> bool
source§fn is_w_required(&self) -> bool
fn is_w_required(&self) -> bool
source§fn is_sorting_required(&self) -> bool
fn is_sorting_required(&self) -> bool
source§impl<T, F> FeatureEvaluator<T> for Periodogram<T, F>
impl<T, F> FeatureEvaluator<T> for Periodogram<T, F>
source§fn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>
fn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>
EvaluatorError
source§fn 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>
source§fn check_ts_length(
&self,
ts: &TimeSeries<'_, T>
) -> Result<usize, EvaluatorError>
fn check_ts_length( &self, ts: &TimeSeries<'_, T> ) -> Result<usize, EvaluatorError>
source§impl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F>
impl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F>
source§impl<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,
source§fn from(v: Periodogram<T, Self>) -> Feature<T>
fn from(v: Periodogram<T, Self>) -> Feature<T>
source§impl<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>,
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§fn schema_name() -> String
fn schema_name() -> String
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§impl<T, F> Serialize for Periodogram<T, F>
impl<T, F> Serialize for Periodogram<T, F>
Auto Trait Implementations§
impl<T, F> Freeze for Periodogram<T, F>
impl<T, F> RefUnwindSafe for Periodogram<T, F>where
T: RefUnwindSafe,
F: 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>
impl<T, F> UnwindSafe for Periodogram<T, F>where
T: UnwindSafe,
F: UnwindSafe,
Blanket Implementations§
source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
source§fn 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>
source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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