← All work

Finding a Hidden Moon in Noisy Brightness Data

Time seriesSignal detection
Phased light curve with recovered primary and secondary eclipse events highlighted
A synthetic eclipsing-binary demo: individual measurements scatter widely, but folding them at the recovered period reveals both eclipse events.

The question

An asteroid's brightness rises and falls as it spins. Buried in that signal there is sometimes something better: periodic dips caused by a companion eclipsing its host. Can those events be pulled out of sparse, noisy, irregularly sampled measurements?

The approach

SpinDoc fits rotation periods, light-curve amplitudes, and phase-function behavior from calibrated photometry, then searches for mutual-event signatures on top of the rotational signal. The demo shown injects a synthetic eclipsing-binary signal with a 61.7-hour period into realistic survey cadence and noise, then asks the pipeline to find it blind.

The result

The pipeline recovers the injected period at 61.64 hours, within a tenth of a percent, and flags both the primary (0.14 magnitude) and secondary (0.10 magnitude) eclipse events out of scatter of comparable size.

Tools: Python, NumPy, SciPy, period-search methods

Read the code: SpinDoc on GitHub →

Feel it for yourself: fold the real data until the asteroid’s spin period reveals itself.

Try the interactive demo