SPIE Journal Paper | 28 June 2022
Michael Reefe, Owen Alfaro, Shawn Foster, Peter Plavchan, Nick Pepin, Vedhas Banaji, Monica Vidaurri, Scott Webster, Shreyas Banaji, John Berberian, Michael Bowen, Sudhish Chimaladinne, Kevin Collins, Deven Combs, Kevin Eastridge, Taylor Ellingsen, Mohammed El Mufti, Ian Helm, Mary Jimenez, Kingsley Kim, Natasha Latouf, Patrick Newman, Caitlin Stibbards, David Vermilion, Justin Wittrock
KEYWORDS: Telescopes, Stars, Observatories, Calibration, Exoplanets, Cameras, Charge-coupled devices, Mirrors, Signal to noise ratio, Image filtering
We present a unique implementation of Python coding in an asynchronous object-oriented programming (OOP) framework to fully automate the process of collecting data with the George Mason University (GMU) Observatory’s 0.8-meter telescope. The goal of this project is to perform automated follow-up observations for the Transiting Exoplanet Survey Satellite (TESS) mission, while still allowing for human control, monitoring, and adjustments. Prior to our implementation, the facility was computer-controlled by a human observer through a combination of webcams, TheSkyX, Astronomy Common Object Model Dome, MaxIm DL, and a weather station. We automate slews and dome movements, charge-coupled device exposures, saving flexible image transfer system images and metadata, initial focusing, guiding on the target, using the ambient temperature to adjust the focus as the telescope cools through the night, taking calibration images (darks and flats), and monitoring local weather data. The automated weather monitor periodically checks various weather data from multiple sources to automate the decision to close the observatory during adverse conditions. We organize the OOP code structure so that each hardware device or important higher-level process is categorized as its own object class or “module” with associated attributes and methods, with inherited common methods across modules for code reusability. To allow actions to be performed simultaneously across different modules, we implement a multithreaded approach in which each module is given its own CPU thread on which to operate concurrently with all other threads. After the initial few modules (camera, telescope, dome, and data I/O) were developed, further development of the code was carried out in tandem with testing on sky on clear nights. We achieve our goal of a fully automated nightly observation process. The code, in its current state, was tested and used for observations on 171 nights, with more planned usage and feature additions in the future.