Inspiration

As a hobby stargazer myself, I've always been interested in building aids to helping me find celestial objects in the sky. Sometimes, not all planets are visible from one location, which is what inspired me to build this project.

What it does

It is a tool that allows the user to easily check and find planets that they can observe, and also allow them to easily find other Near Earth Objects that they might be able to see using NASA's NEO API. Once objects that can be viewed from the user's location are listed, it also tells the user what angle to find them in the sky at. This is calculated by using the user's current longitude, latitude, as well as their current elevation.

In addition, these objects are mapped so that the user can get a deeper understanding of the objects' relation in respect to the Earth.

Features:

Real-time celestial body tracking: View positions of planets, moons, and other celestial bodies

Interactive sky map: Visual representation of celestial bodies with altitude and azimuth

3D Solar System visualization: Explore the solar system in three dimensions with interactive controls

Detailed information: Altitude, azimuth, magnitude, constellation, and more for each body

Observer customization: Set your location (latitude, longitude, elevation) and observation time

Visibility calculation: Determine if celestial bodies are visible from your location

Moon phase information: Track lunar phases and illumination percentage

Near Earth Object (NEO) tracking: Information about asteroids and other objects approaching Earth

Offline functionality: Some features work without internet connection using local calculations

How we built it

I used Python's streamlit library for the front end. In order to find data, NASA's NEO API was used, and this was combined with Python's Skyfield's API and library and Astropy calculation and other space mechanical libraries to find the various information. Finally, matplotlib and ploty are used for the various renderings of the objects' positions and such.

Challenges we ran into

There were problems finding API. Initially, I had planned to use another Skymap API, but it turned out it was likely no longer functional, and I had to switch to another API.

Accomplishments that we're proud of

I am proud to learn much more about the intricacies of celestial stargazing, including the various coordinate systems used - I've successfully incorporated this into the code as well.

What we learned

I gained a deeper understanding about the libraries, such as ploty, matplotlib, and astropy - including a 3D rendering of the major planets of the solar system in relation to Earth.

What's next for Space Object Browser (SOB)

Deployment! Furthermore, I will be adding other features, such as a weather checker for any atmospheric visibility issues - this gives more accurate predictions on whether certain stars and objects are visible.

Built With

  • astropy
  • matplotlib
  • ploty
  • skyfield
  • streamlit
Share this project:

Updates