LombScarglePeriodogram

class lightkurve.periodogram.LombScarglePeriodogram(*args, **kwargs)

Bases: lightkurve.periodogram.Periodogram

Subclass of Periodogram representing a power spectrum generated using the Lomb Scargle method.

Attributes Summary

frequency_at_max_power Returns the frequency corresponding to the highest peak in the periodogram.
max_power Returns the power of the highest peak in the periodogram.
period Returns the array of periods, i.e.
period_at_max_power Returns the period corresponding to the highest peak in the periodogram.

Methods Summary

bin([binsize, method]) Bins the power spectrum.
copy() Returns a copy of the Periodogram object.
flatten([method, filter_width, return_trend]) Estimates the Signal-To-Noise (SNR) spectrum by dividing out an estimate of the noise background.
from_lightcurve(lc[, min_frequency, …]) Creates a Periodogram from a LightCurve using the Lomb-Scargle method.
plot([scale, ax, xlabel, ylabel, title, …]) Plots the Periodogram.
show_properties() Prints a summary of the non-callable attributes of the Periodogram object.
smooth([method, filter_width]) Smooths the power spectrum using the ‘boxkernel’ or ‘logmedian’ method.
to_table() Exports the Periodogram as an Astropy Table.

Attributes Documentation

frequency_at_max_power

Returns the frequency corresponding to the highest peak in the periodogram.

max_power

Returns the power of the highest peak in the periodogram.

period

Returns the array of periods, i.e. 1/frequency.

period_at_max_power

Returns the period corresponding to the highest peak in the periodogram.

Methods Documentation

bin(binsize=10, method='mean')

Bins the power spectrum.

Parameters:
binsize : int

The factor by which to bin the power spectrum, in the sense that the power spectrum will be smoothed by taking the mean in bins of size N / binsize, where N is the length of the original frequency array. Defaults to 10.

method : str, one of ‘mean’ or ‘median’

Method to use for binning. Default is ‘mean’.

Returns:
binned_periodogram : a Periodogram object

Returns a new Periodogram object which has been binned.

copy()

Returns a copy of the Periodogram object.

This method uses the copy.deepcopy function to ensure that all objects stored within the Periodogram are copied.

Returns:
pg_copy : Periodogram

A new Periodogram object which is a copy of the original.

flatten(method='logmedian', filter_width=0.01, return_trend=False)

Estimates the Signal-To-Noise (SNR) spectrum by dividing out an estimate of the noise background.

This method divides the power spectrum by a background estimated using a moving filter in log10 space by default. For details on the method and filter_width parameters, see Periodogram.smooth()

Dividing the power through by the noise background produces a spectrum with no units of power. Since the signal is divided through by a measure of the noise, we refer to this as a Signal-To-Noise spectrum.

Parameters:
method : str, one of ‘boxkernel’ or ‘logmedian’

Background estimation method passed on to Periodogram.smooth(). Defaults to ‘logmedian’.

filter_width : float

If method = ‘boxkernel’, this is the width of the smoothing filter in units of frequency. If method = logmedian, this is the width of the smoothing filter in log10(frequency) space.

return_trend : bool

If True, then the background estimate, alongside the SNR spectrum, will be returned.

Returns:
snr_spectrum : Periodogram object

Returns a periodogram object where the power is an estimate of the signal-to-noise of the spectrum, creating by dividing the powers with a simple estimate of the noise background using a smoothing filter.

bkg : Periodogram object

The estimated power spectrum of the background noise. This is only returned if return_trend = True.

static from_lightcurve(lc, min_frequency=None, max_frequency=None, min_period=None, max_period=None, frequency=None, period=None, nterms=1, nyquist_factor=1, oversample_factor=1, freq_unit=<Quantity 1. 1 / d>, **kwargs)

Creates a Periodogram from a LightCurve using the Lomb-Scargle method.

By default, the periodogram will be created for a regular grid of frequencies from one frequency separation to the Nyquist frequency, where the frequency separation is determined as 1 / the time baseline.

The min frequency and/or max frequency (or max period and/or min period) can be passed to set custom limits for the frequency grid. Alternatively, the user can provide a custom regular grid using the frequency parameter or a custom regular grid of periods using the period parameter.

The spectrum can be oversampled by increasing the oversample_factor parameter. The parameter nterms controls how many Fourier terms are used in the model. Note that many terms could lead to spurious peaks. Setting the Nyquist_factor to be greater than 1 will sample the space beyond the Nyquist frequency, which may introduce aliasing.

The unit parameter allows a request for alternative units in frequency space. By default frequency is in (1/day) and power in (ppm^2 * day). Asteroseismologists for example may want frequency in (microHz) and power in (ppm^2 / microHz), in which case they would pass unit = u.microhertz where u is astropy.units

By default this method uses the LombScargle ‘fast’ method, which assumes a regular grid. If a regular grid of periods (i.e. an irregular grid of frequencies) it will use the ‘slow’ method. If nterms > 1 is passed, it will use the ‘fastchi2’ method for regular grids, and ‘chi2’ for irregular grids. The normalizatin of the Lomb Scargle periodogram is fixed to psd, and cannot be overridden.

Caution: this method assumes that the LightCurve’s time (lc.time) is given in units of days.

Parameters:
lc : LightCurve object

The LightCurve from which to compute the Periodogram.

min_frequency : float

If specified, use this minimum frequency rather than one over the time baseline.

max_frequency : float

If specified, use this maximum frequency rather than nyquist_factor times the nyquist frequency.

min_period : float

If specified, use 1./minium_period as the maximum frequency rather than nyquist_factor times the nyquist frequency.

max_period : float

If specified, use 1./maximum_period as the minimum frequency rather than one over the time baseline.

frequency : array-like

The regular grid of frequencies to use. If given a unit, it is converted to units of freq_unit. If not, it is assumed to be in units of freq_unit. This over rides any set frequency limits.

period : array-like

The regular grid of periods to use (as 1/period). If given a unit, it is converted to units of freq_unit. If not, it is assumed to be in units of 1/freq_unit. This overrides any set period limits.

nterms : int

Default 1. Number of terms to use in the Fourier fit.

nyquist_factor : int

Default 1. The multiple of the average Nyquist frequency. Is overriden by maximum_frequency (or minimum period).

oversample_factor : int

The frequency spacing, determined by the time baseline of the lightcurve, is divided by this factor, oversampling the frequency space. This parameter is identical to the samples_per_peak parameter in astropy.LombScargle()

freq_unit : astropy.units.core.CompositeUnit

Default: 1/u.day. The desired frequency units for the Lomb Scargle periodogram. This implies that 1/freq_unit is the units for period.

kwargs : dict

Keyword arguments passed to astropy.stats.LombScargle()

Returns:
Periodogram : Periodogram object

Returns a Periodogram object extracted from the lightcurve.

plot(scale='linear', ax=None, xlabel=None, ylabel=None, title='', style='lightkurve', view=None, unit=None, **kwargs)

Plots the Periodogram.

Parameters:
scale: str

Set x,y axis to be “linear” or “log”. Default is linear.

ax : matplotlib.axes._subplots.AxesSubplot

A matplotlib axes object to plot into. If no axes is provided, a new one will be generated.

xlabel : str

Plot x axis label

ylabel : str

Plot y axis label

title : str

Plot set_title

style : str

Path or URL to a matplotlib style file, or name of one of matplotlib’s built-in stylesheets (e.g. ‘ggplot’). Lightkurve’s custom stylesheet is used by default.

view : str

{‘frequency’, ‘period’}. Default ‘frequency’. If ‘frequency’, x-axis units will be frequency. If ‘period’, the x-axis units will be period and ‘log’ scale.

kwargs : dict

Dictionary of arguments to be passed to matplotlib.pyplot.plot.

Returns:
ax : matplotlib.axes._subplots.AxesSubplot

The matplotlib axes object.

show_properties()

Prints a summary of the non-callable attributes of the Periodogram object.

Prints in order of type (ints, strings, lists, arrays and others). Prints in alphabetical order.

smooth(method='boxkernel', filter_width=0.1)

Smooths the power spectrum using the ‘boxkernel’ or ‘logmedian’ method.

If method is set to ‘boxkernel’, this method will smooth the power spectrum by convolving with a numpy Box1DKernel with a width of filter_width, where filter width is in units of frequency. This is best for filtering out noise while maintaining seismic mode peaks. This method requires the Periodogram to have an evenly spaced grid of frequencies. A ValueError exception will be raised if this is not the case.

If method is set to ‘logmedian’, it smooths the power spectrum using a moving median which moves across the power spectrum in a steps of

log10(x0) + 0.5 * filter_width

where filter width is in log10(frequency) space. This is best for estimating the noise background, as it filters over the seismic peaks.

Parameters:
method : str, one of ‘boxkernel’ or ‘logmedian’

The smoothing method to use. Defaults to ‘boxkernel’.

filter_width : float

If method = ‘boxkernel’, this is the width of the smoothing filter in units of frequency. If method = logmedian, this is the width of the smoothing filter in log10(frequency) space.

Returns:
smoothed_pg : Periodogram object

Returns a new Periodogram object in which the power spectrum has been smoothed.

to_table()

Exports the Periodogram as an Astropy Table.

Returns:
table : astropy.table.Table object

An AstroPy Table with columns ‘frequency’, ‘period’, and ‘power’.


Created with ♥ by the Lightkurve developers. Join us on GitHub.