This application provides real-time tracking and visualization of celestial bodies in the sky based on observer location and time. Powered by the Skyfield astronomical library, it offers detailed information about planets, dwarf planets, and various moons in our solar system.
- 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: Works without internet connection using local calculations
# Install required Python packages
pip install -r requirements.txt# Run the application
streamlit run app.pyNASA Near Earth Object API
The application tracks a wide variety of celestial bodies:
- Sun: Our star
- Planets: Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune
- Dwarf Planets: Pluto
- Earth's Moon
- Jupiter's Galilean Moons: Io, Europa, Ganymede, Callisto
- Saturn's Major Moons: Titan, Enceladus, Mimas, Dione, Rhea, Iapetus
- Uranus's Major Moons: Miranda, Ariel, Umbriel, Titania, Oberon
- Neptune's Major Moons: Triton, Nereid
Each celestial body is color-coded and sized according to its type and brightness in the sky map display.
app.py- Main application fileastronomy_utils.py- Astronomical calculation utilitiesplanets_api.py- Planetary body API moduleneo_api.py- Near Earth Object API modulesolar_system_3d.py- 3D Solar System visualization module
- Skyfield library: Used for high-precision astronomical calculations
- Astropy: Used for celestial coordinate conversions and constellation identification
- Caching mechanism: Implemented to improve performance of repeated calculations
- Plotly: Used for interactive sky map and 3D visualization
- Matplotlib: Used for additional visualizations
- Streamlit: Used for the web application interface
Contributions to improve the application are welcome. Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.