Inspiration

NASA's Exoplanet Watch citizen science project allows everyday people to make tangible contributions to extraterrestrial discovery. However, contributors are currently required to work through a lengthy and complex Google Colab notebook, which has proven to be a great deterrent. To alleviate this issue, Atlas automates much of this process in its backend, allowing its users to instead interact with an intuitive, game-like interface. Our hope is that Atlas becomes a space where kids develop a foundational understanding and interest in astronomy while contributing very valuable data for this collective initiative. As an Exoplanet Watch contributor myself (this is Kailash), I wanted an easier way to contribute myself and also a resource to get kids as young as even 3rd grade or younger interested and passionate about astronomy!

Functionality

Given a selected exoplanet and telescope view, the app generates a star chart and a snapshot of the night sky in the vicinity of where the planet should be. The user is responsible for matching up the corresponding stars in both images; namely, they should identify the "target star" (the one the exoplanet in question is rotating around) and click on the screen where it is located in the night sky snapshot, generating coordinates. Using this information, the backend is able to generate a "lightcurve" of the star that graphs its perceived luminosity as the exoplanet transits in front of it. Although this capability exists in our backend, we were unable to port it to our front end in time.

Process

First we had to set up a server to host the 24 folders of exoplanet transit image data that our app would reference. Each folder contains between approximately 20 and ~80 images, which we obtained from the MicroObservatory Robotic Telescope Network. We used the Django REST Framework to enable connection between our frontend and backend, due to the flexibility it offered us. Next, we had to write the backend code that facilitated the process of pinpointing stars and identifying light curves. To accomplish this, we used the Colab notebook that contributors are currently required to work with as a starting point and made several substantial changes. Firstly, we removed the notebook's dependency on the user having a folder of photos in their Google Drive, and instead configured it to use photo folders hosted in the server described above. There were also several aspects of the original notebook that were built specifically with Colab in mind (most notably, the display of error messages and user prompts), that we either modified or removed because they would detract from our goal of building an uncluttered user interface for a younger audience. We initially attempted to create our app's frontend using FlutterFlow, but we found it difficult to implement our own code and customize it as we wanted. Thus, we decided to use Expo in conjunction with React Native to facilitate more control over the final appearance of our application.

Challenges

One major challenge we faced was that our team had very limited experience working with NASA's EXOTIC libraries, which was a driving factor in the backend code. To overcome this, we consulted the libraries' source code and also used LLM assistance in helping us interpret some of the library-specific functionalities. Another considerable hurdle we faced involved reconfiguring the raw astronomical datasets required for the app. Addressing this challenge demanded an in-depth engagement with Python’s astronomy library, as we worked to transform the unprocessed observational data into an applicable format.

Lessons Learned

Overall, our team gained exposure to the unique intersections between app development, file processing, and web server interaction. More specifically, since many of these concepts were new to us, we gained valuable experience into how we can learn and utilize novel techniques for the purposes of creating a functional project in a short amount of time. We particularly made strategic use of LLM tools like ChatGPT and GitHub Copilot to streamline the process of debugging and identifying mistakes in our code, which we feel is especially relevant given the increasing prominence of AI-assisted software development.

We'd also like to credit the authors of the below paper, who contributed to the development of the EXOTIC libraries: [1]Zellem, R. T., “Utilizing Small Telescopes Operated by Citizen Scientists for Transiting Exoplanet Follow-up”, Publications of the Astronomical Society of the Pacific, vol. 132, no. 1011, Art. no. 054401, IOP, 2020. doi:10.1088/1538-3873/ab7ee7.

Share this project:

Updates