lightkurve.seismology.
Seismology
(periodogram)¶Bases: object
Enables astroseismic quantities to be estimated from periodograms.
This class provides easy access to methods to estimate numax, deltanu, radius, mass, and logg, and stores them on its tray for easy diagnostic plotting.
Periodogram
objectPeriodogram to be analyzed. Must be backgroundcorrected,
e.g. using periodogram.flatten()
.
Examples
Download the TESS light curve for HIP 116158:
>>> import lightkurve as lk
>>> lc = lk.search_lightcurvefile("HIP 116158", sector=2).download().PDCSAP_FLUX
>>> lc = lc.normalize().remove_nans().remove_outliers()
Create a LombScargle periodogram:
>>> pg = lc.to_periodogram(normalization='psd', minimum_frequency=100, maximum_frequency=800)
Create a Seismology object and use it to estimate parameters:
>>> seismology = pg.flatten().to_seismology()
>>> seismology.estimate_numax()
numax: 415.00 uHz (method: ACF2D)
>>> seismology.estimate_deltanu()
deltanu: 28.78 uHz (method: ACF2D)
>>> seismology.estimate_radius(teff=5080)
radius: 2.78 solRad (method: Uncorrected Scaling Relations)
Methods Summary

Create diagnostic plots showing how numax was estimated. 

Create diagnostic plots showing how numax was estimated. 

Returns the average value of the large frequency spacing, DeltaNu, of the seismic oscillations of the target. 

Returns a surface gravity estimate based on the scaling relations. 

Returns a stellar mass estimate based on the scaling relations. 

Returns the frequency of the peak of the seismic oscillation modes envelope. 

Returns a stellar radius estimate based on the scaling relations. 

Returns a 

Plots an echelle diagram of the periodogram by stacking the periodogram in slices of deltanu. 
Methods Documentation
diagnose_deltanu
(self, deltanu=None)¶Create diagnostic plots showing how numax was estimated.
diagnose_numax
(self, numax=None)¶Create diagnostic plots showing how numax was estimated.
estimate_deltanu
(self, method='acf2d', numax=None)¶Returns the average value of the large frequency spacing, DeltaNu, of the seismic oscillations of the target.
At present, the only method supported is based on using an
autocorrelation function (ACF2D). This method is implemented by the
estimate_deltanu_acf2d
function which requires
the parameter numax
. For details and literature references, please
read the detailed docstring of this function by typing
lightkurve.seismology.estimate_deltanu_acf2d?
in a Python terminal or notebook.
Method to use. Only "acf2d"
is supported at this time.
SeismologyQuantity
DeltaNu of the periodogram, including details on the units and method.
estimate_logg
(self, teff, numax=None)¶Returns a surface gravity estimate based on the scaling relations.
This method is implemented by the estimate_logg
function.
For details and literature references, please read the detailed
docstring of this function by typing lightkurve.seismology.estimate_logg?
.
SeismologyQuantity
Stellar surface gravity estimate.
estimate_mass
(self, teff, numax=None, deltanu=None)¶Returns a stellar mass estimate based on the scaling relations.
This method is implemented by the estimate_mass
function.
For details and literature references, please read the detailed
docstring of this function by typing lightkurve.seismology.estimate_mass?
.
SeismologyQuantity
Stellar mass estimate.
estimate_numax
(self, method='acf2d', **kwargs)¶Returns the frequency of the peak of the seismic oscillation modes envelope.
At present, the only method supported is based on using a
2D autocorrelation function (ACF2D). This method is implemented by the
estimate_numax_acf2d
function which accepts
the parameters numaxs
, window_width
, and spacing
.
For details and literature references, please read the detailed
docstring of this function by typing lightkurve.seismology.estimate_numax_acf2d?
in a Python terminal or notebook.
Method to use. Only "acf2d"
is supported at this time.
SeismologyQuantity
Numax of the periodogram, including details on the units and method.
estimate_radius
(self, teff, numax=None, deltanu=None)¶Returns a stellar radius estimate based on the scaling relations.
This method is implemented by the estimate_radius
function.
For details and literature references, please read the detailed
docstring of this function by typing lightkurve.seismology.estimate_radius?
.
SeismologyQuantity
Stellar radius estimate.
from_lightcurve
(lc, **kwargs)¶Returns a Seismology
object given a LightCurve
object.
plot_echelle
(self, deltanu=None, numax=None, minimum_frequency=None, maximum_frequency=None, smooth_filter_width=0.1, scale='linear', cmap='Blues')¶Plots an echelle diagram of the periodogram by stacking the periodogram in slices of deltanu.
Modes of equal radial degree should appear approximately vertically aligned. If no structure is present, you are likely dealing with a faulty deltanu value or a low signal to noise case.
This method is adapted from work by Daniel Hey & Guy Davies.
Value for the large frequency separation of the seismic mode frequencies in the periodogram. Assumed to have the same units as the frequencies, unless given an Astropy unit. Is assumed to be in the same units as frequency if not given a unit.
Value for the frequency of maximum oscillation. If a numax is passed, a suitable range one FWHM of the mode envelope either side of the will be shown. This is overwritten by custom frequency ranges. Is assumed to be in the same units as frequency if not given a unit.
The minimum frequency at which to display the echelle Is assumed to be in the same units as frequency if not given a unit.
The maximum frequency at which to display the echelle. Is assumed to be in the same units as frequency if not given a unit.
If given a value, will smooth periodogram used to plot the echelle
diagram using the periodogram.smooth(method=’boxkernel’) method with
a filter width of smooth_filter_width
. This helps visualise the
echelle diagram. Is assumed to be in the same units as the
periodogram frequency.
Set z axis to be “linear” or “log”. Default is linear.
The name of the matplotlib colourmap to use in the echelle diagram.
The matplotlib axes object.
Created with ♥ by the Lightkurve collaboration. Please cite us or join us on GitHub.