PeriodicStarModulationMetric

class rubin_sim.maf.maf_contrib.PeriodicStarModulationMetric(metric_name='PeriodicStarModulationMetric', mjd_col='observationStartMJD', m5_col='fiveSigmaDepth', filter_col='filter', period=10.0, amplitude=0.5, phase=2.0, random_phase=False, time_interval=50, n_monte=1000, period_tol=0.05, amp_tol=0.1, means=[20.0, 20.0, 20.0, 20.0, 20.0, 20.0], mag_tol=0.1, n_bands=3, seed=42, **kwargs)

Bases: BaseMetric

Evaluate how well a periodic source can be fit on a short baseline, using a Monte Carlo simulation.

At each slice_point, run a Monte Carlo simulation to see how well a periodic source can be fit. Assumes a simple sin-wave light-curve, and generates Gaussain noise based in the 5-sigma limiting depth of each observation. Light curves are evaluated piecewise to test how well we can recover the period, phase and amplitude from shorter baselines. We allow for a random phase offset to mimic observation starting at random phase. Also, we vary the periods and amplitudes within +/- 10 % to allow for a more realistic sample of variable stars.

Parameters:
periodfloat, opt

days (default 10)

amplitudefloat, opt

mags (default 0.5)

phasefloat, opt

days (default 2.)

random_phasebool, opt

a random phase is assigned (default False)

time_intervalfloat, opt

days (default 50); the interval over which we want to evaluate the light curve

n_monteint, opt

number of noise realizations to make in the Monte Carlo (default 1000)

period_tolfloat, opt

fractional tolerance on the period to demand for a star to be considered well-fit (default 0.05)

amp_tolfloat, opt

fractional tolerance on the amplitude to demand (default 0.10)

meanslist of float, opt

mean magnitudes for ugrizy (default all 20)

mag_tolfloat, opt

Mean magnitude tolerance (mags) (default 0.1)

n_bandsint, opt

Number of bands that must be within mag_tol (default 3)

seedint, opt

random number seed (default 42)

Methods Summary

run(data_slice[, slice_point])

Calculate metric values.

Methods Documentation

run(data_slice, slice_point=None)

Calculate metric values.

Parameters:
data_slicenumpy.recarray

Values passed to metric by the slicer, which the metric will use to calculate metric values at each slice_point.

slice_pointdict or None

Dictionary of slice_point metadata passed to each metric. E.g. the ra/dec of the healpix pixel or opsim fieldId.

Returns:
metricValue: int float or object

The metric value at each slice_point.