Skip to content

lomb_scargle

Compute a Lomb-Scargle periodogram and report the dominant period.

Category Time series
Backend astropy - wraps the domain-standard astropy implementation
Version 1.1.1
Reads -
Writes periodograms.lomb_scargle, metrics.best_period, metrics.best_frequency

Frequency bounds default to astropy's automatic grid. The false-alarm probability of the highest peak is reported using the 'baluev' approximation, evaluated over the same frequency bounds as the searched grid (minimum_frequency / maximum_frequency are forwarded to astropy's false_alarm_probability ; with both null the FAP is identical to v1.1.0). The 'normalization' parameter is forwarded verbatim to astropy and selects between 'standard' (default, scaled χ² of the fit), 'model' (χ² of the null model), 'log' (log-likelihood), and 'psd' (unnormalised power spectral density). Use 'psd' when stitching with classical Fourier-domain tools or comparing to noise variance ; 'standard' is the right default for peak-detection and FAP.

Parameters

Parameter Default Required Description
time None - List of observation times; omit to use a light curve from the context.
flux None - List of flux values, paired with 'time'.
uncertainty None - Optional list of per-point flux uncertainties.
light_curve_key None - Key in ctx.light_curves to use when time/flux are omitted.
minimum_frequency None - Lower bound of the frequency grid (null = automatic).
maximum_frequency None - Upper bound of the frequency grid (null = automatic).
samples_per_peak 5 - Frequency-grid oversampling factor.
normalization 'standard' - Astropy normalisation mode for the power spectrum ; one of ['standard', 'model', 'log', 'psd']. Forwarded verbatim to astropy.timeseries.LombScargle.autopower.

Use it

from spectro_kernel import run_algorithm

output = run_algorithm("lomb_scargle", ctx, {
    "time": None,
    "flux": None,
    "uncertainty": None,
    "light_curve_key": None,
    "minimum_frequency": None,
    "maximum_frequency": None,
    "samples_per_peak": 5,
    "normalization": "standard"
})
spectro run lomb_scargle --input spectrum.fits \
  --param time=none \
  --param flux=none \
  --param uncertainty=none \
  --param light_curve_key=none \
  --param minimum_frequency=none \
  --param maximum_frequency=none \
  --param samples_per_peak=5 \
  --param normalization=standard
{
  "tool": "lomb_scargle",
  "arguments": {
    "session_id": "<session_id>",
    "params": {
      "time": null,
      "flux": null,
      "uncertainty": null,
      "light_curve_key": null,
      "minimum_frequency": null,
      "maximum_frequency": null,
      "samples_per_peak": 5,
      "normalization": "standard"
    }
  }
}

Every algorithm is an MCP tool of the same name; describe_algorithm returns this page's metadata as JSON.

References

  • Lomb 1976, Ap&SS 39, 447.
  • Scargle 1982, ApJ 263, 835.
  • VanderPlas 2018, ApJS 236, 16 — understanding the Lomb-Scargle periodogram (normalisation conventions reviewed §7.2).
  • astropy.timeseries.LombScargle (normalization parameter).
  • phase_fold - Phase-fold a light curve on a known period.