Strengthening Planetary Defense: Detecting Unknown Asteroids using Open Data, Math, and Python

ARUSHI NATH

she/her | age 12 | Toronto, ON

Edited by P. C. Lind


Asteroid collision risks are real and unpredictable. Sixty-six million years ago, the Chicxulub asteroid impact is thought to have caused the extinction of the dinosaurs. My project proposes to strengthen planetary defense by using robotic telescopes, open-source data, math, and Python to find unknown  but potentially dangerous asteroids.

I analyzed images from four telescopes located at different latitudes to get full sky coverage. I wrote Python algorithms to query European Space Agency's GAIA and NASA's Horizon sky catalogues to find all known stars and asteroids. Mathematical and statistical tools such as mean, standard deviation, and histograms were used to create masks to remove known objects. The remaining objects were classified as possible asteroid candidates.

I detected three 'preliminary' asteroids. My algorithm's plate solving ability determined the objects' respective right ascension and declination using the telescope's focal length and celestial location. I reported this information by creating a Minor Planet Center report for my images. I have made my code and methodology open source to crowdsource planetary defense among youths and citizen scientists: https://github.com/Spacegirl123/Finding-Unknown-Asteroids-In-Sky-Images

My project represented Team Toronto at the Canada Wide Science Fair 2022. There it won the "Best of the Canada Wide Science Fair Award (Innovation)" along with four other awards: Gold Medal Award, Top of the Category Award in Curiosity and Ingenuity, Youth Can Innovate Award, and a Special Award for Excellence in Astronomy.

INTRODUCTION

Asteroids are rocky remnants left over from the early formation of our solar system. Over a million asteroids have been identified with sizes ranging from 10 m to 530 km. Many remain undetected, or their orbits are uncertain. This presents a possibility that the asteroid’s orbit can intersect with the Earth's orbit, possibly resulting in catastrophe. Some of these near-earth asteroids (see Figure 1) may be on collision course with the Earth. In 1908 a 30-meter asteroid entered the Earth’s atmosphere and exploded above ground in Russia knocking down around 80 million trees (Anderson & Whitt, The Tunguska Explosion, 114 Years Ago Today 2022). In addition, in 2013 the Chelyabinsk asteroid collided with Earth, damaging buildings and injuring over 1500 people (Byrd, Chelyabinsk meteor: 9 Years Ago Today 2022). More recently on November 19, a 1-metre asteroid impacted the earth in Canada. It was only the sixth time in history that an asteroid warning system noted the object before it made contact with the Earth (Westoll, Fireball lights up Toronto night sky, meteor becomes 6th to be detected pre-impact 2022). Evidently, the risk of asteroid collision is real. Hence, the Detection and tracking of unknown asteroids is the key to strengthening planetary defense.

Figure 1

PROJECT OBJECTIVE

The objective of my project was to detect unknown asteroids using open data, middle-school math skills, and some knowledge of Python programming.

PROJECT APPROACH

I have always been fascinated with astronomy and programming. The Covid-19 lockdown was a tragic event. But it was also an opportunity to pursue my interests by participating in online meetings, training courses, and hackathons. Through these,  I learned about free robotic telescopes, open datasets, and algorithms on GitHub. As I believe the best way to learn is to do something, I thought of harnessing my new knowledge to solve the problem of detecting unknown asteroids.

PROCEDURE

I followed a seven-step methodology to achieve my project objective: 

  1. Getting full-sky images using robotic telescopes: I accessed robotic telescope websites to download images of the sky remotely. See Figure 2. I selected four robotic telescopes that were free to use and located at different latitudes to get full sky coverage. 

  2. Display dimmer objects: I applied standard deviation and mean to scale the raw images to display fainter objects, as they are more likely to be unknown asteroids.

  3. Extracting sky location, telescope, and camera information: Robotic telescopes produce images in "Flexible Image Transport System" (FITS) format to store metadata. I wrote an algorithm to query the FITS file and gather the date and time of observation, celestial location of the image [right ascension (RA) and declination (Dec)], telescope focal length, image field of view (FOV), and the camera pixel size.

  4. Querying open data to find known objects: To discover unknown asteroids, I had first to find all known objects. I accessed open datasets, namely the GAIA EDR3 catalogue of the European Space Agency to identify known stars and the Horizons database of the NASA Jet Propulsion Laboratory to identify known asteroids. 

  5. Overlaying known objects on the images: The list of known stars and asteroids was overlaid on the image by converting celestial coordinates to pixel coordinates using a Python function. See Figure 3.

  6. Creating custom-sized masks on overlaid images: To remove known objects, I wrote an algorithm that created a custom-sized mask on all known objects. The size of the objects determined the mask radius. See Figure 4.

  7. Identifying possible asteroid candidates: After removing all known objects and filtering out noise by applying standard deviation, the remaining unmasked objects were classified as possible asteroid candidates.

All algorithms were written in Python and Astropy, Matplotlib, and Numpy libraries were used for plotting, querying, and statistical analysis.

Figure 2

Figure 3

Figure 4

RESULTS

It took me almost a year to learn to operate robotic telescopes and write and test my algorithm. Once my algorithm was created, it only took a few minutes to analyse each image and find possible asteroid candidates. I ended up analyzing over 20 sky images from different robotic telescopes.

Result 1: Thirty possible asteroid candidates detected
Applying my methodology, I identified over 50 possible asteroid candidates. I checked each of these candidates manually to remove noise or false positives. This left me with 30 possible asteroid candidates. See Figure 5.

Figure 5

Result 2: Three asteroids classified as preliminary asteroids
To validate if the possible asteroid candidates were indeed asteroids, I created Minor Planet Centre reports using Astrometrica for all 30 asteroid candidates and submitted them through the International Asteroid Search Campaign (IASC) over three months. Three of my observations were classified as preliminary asteroids as they matched the Pan-STARRS automated process and criteria set by their expert team. My remaining submission were rejected for one of two reasons: either they had already been detected or their signal to noise ration (SNR) was too low.

discussion

  1. Correcting the Rotation and Flip of the Images
    When I was overlaying the known objects from open datasets on the images, I sometimes found that they did not match. After several attempts, I realized it was happening because the image was either rotated or flipped. Once I corrected for rotation and flip through my algorithm, the match started to happen perfectly for all images.  

  2. Newly discovered asteroids did not overlap with their expected positions 
    While my algorithm picked the most recently discovered asteroids, their celestial coordinates did not match the pixel coordinates of my image. This was because these asteroids' orbital path was not certain; hence, their actual position was different from the expected position.

Figure 6

FUTURE RESEARCH

  1. Finding Magnitude of Asteroid Candidates
    The magnitude of an asteroid is a measure of how bright the asteroid is. Brightness is a measure of the asteroid's size and will determine the possible impact of colliding with Earth.
    While querying for known stars in a field of view, I got their magnitude from the sky catalogues. As I know the brightness of these stars in the images from their pixel values, I can create a formula that relates these two figures: the brightness value from catalogues and their pixel brightness. Applying this relationship would help determine the unknown objects' brightness (apparent magnitude). 

  2. Calculating Orbital Information of Asteroid Candidates
    With multiple images, I can monitor the change in Right Ascension and Declination, giving me the asteroid's proper motion (speed as seen from the Earth: 2D). It will help find the asteroid's orbit to detect if it poses a threat to the Earth.

  3. Measuring Changes caused by DART Mission
    The DART (Double Asteroid Redirection Test) mission aimed to test the kinetic impactor technique of deflecting asteroids. On the 26th September 2022, it successfully impacted the moon of asteroid Didymos (Dimorphos). The goal of this mission was to change the orbital period of the system by at least 73 seconds. The investigation team confirmed DART’s impact changed Dimorphos’ orbit around Didymos by 32 minutes, shortening the 11-hour and 55-minute orbit to 11 hours and 23 minutes (NASA, Didymos & Dimorphos 2022). I had been using robotic telescopes to collect repeated images of this binary asteroid system before the impact to measure baseline information. Now I am currently taking images of the system after the impact to try and measure any changes that might have occurred.

CONCLUSION

My open-source algorithm was able to detect three preliminary asteroids from sky images taken using free robotic telescopes. Through my year-long project, I strengthened planetary defense using open data, coding, and math skills.

ACKNOWLEDGEMENTS

Faulkes Telescope Project: Thanks to the Faulkes Telescope Project (FTP) for giving me time to control their 2-metre-wide telescope in Siding Spring, Australia. In addition to giving me sky images to test my algorithm, it helped me learn how to use robotic telescopes remotely.

Royal Astronomical Society of Canada: Thanks to the Royal Astronomical Society of Canada (RASC) for giving me my first exposure to astronomy after visiting their astronomical observatory in Collingwood and through their monthly meetings at the Ontario Science Centre. RASC has also taught me the basics of astronomy during their monthly virtual sessions.

REFERENCES

Databases Used:
GAIA EDR3 Database Release: https://www.cosmos.esa.int/web/gaia/earlydr3
Horizons Database for Asteroids: https://ssd.jpl.nasa.gov/horizons/
International Asteroid Search Campaign: http://iasc.cosmosearch.org/

Softwares Used:
Astrometria: www.astrometrica.at
Astrometry: https://nova.astrometry.net/
Python: https://www.python.org/
Astropy: https://www.astropy.org/
NumPy: https://numpy.org/
Matplotlib: https://matplotlib.org/

ABOUT THE AUTHOR

Arushi Nath

Arushi is a youth citizen scientist and explorer who likes solving ongoing and emerging problems using open data, hardware, and software. Over the last 7 years, she has built robots, battlebots, rockets, and rovers. She has participated in over 50 hackathons and won many national and international awards. Last year, her project on "Strengthening Planetary Defense: Detecting Unknown Asteroids using Open Data, Math, and Python" won the top award at the 2022 Canada-Wide Science fair along with Excellence in Astronomy Award, a Gold Medal, the Junior Challenge Award – Curiosity and Ingenuity and Youth Can Innovate Award.