Simulating a Sky Survey to Measure What It Missed
The question
Telescope surveys discover hundreds of thousands of asteroids, but they miss objects too: small ones, dark ones, ones in awkward orbits. Any conclusion drawn from a survey catalog silently inherits those blind spots. How do you correct for the objects nobody saw?
The approach
Simmer runs an entire infrared sky survey in software. It generates synthetic asteroid populations with realistic sizes, orbits, and spin properties, models each object's thermal emission and rotating brightness, and pushes every synthetic object through the survey's real observing cadence and detection thresholds. Comparing what went in against what came out yields the survey's detection efficiency as a function of size and orbit, which then corrects the real catalog.
The result
A prototype census grew into a parallelized pipeline that reprocesses the full survey dataset in under six hours, 57 times faster than the first working version. The pipeline runs its test suite under continuous integration on every change, and its efficiency model turns raw asteroid counts into debiased population statistics.
Tools: Python, NumPy, pandas, parallel processing, pytest, GitHub Actions CI
Read the code: Simmer on GitHub →