|
| 1 | +# ISS Tracker 🛰️ |
| 2 | +Real-Time International Space Station (ISS) Tracker with Python |
| 3 | + |
| 4 | +A Python script to fetch TLE data of the ISS (ZARYA) satellite, calculate its position, predict its orbit and visualize its trajectory on an interactive map. Thanks to [Celestrak](https://celestrak.org/) We can access to the TLE data of satellites, including International Space Station. |
| 5 | + |
| 6 | +## Key Concepts |
| 7 | +### What is a TLE? |
| 8 | +A Two-Line Element Set (TLE) is a standardized format used to describe the orbit of a satellite. It consists of two lines of data that include important orbital parameters, such as the satellite's position, velocity, and other relevant information at a specific time known as the epoch (Source: ["Two-line-element set"](https://en.wikipedia.org/wiki/Two-line_element_set)). |
| 9 | + |
| 10 | +### What is a Geocentric Position? |
| 11 | +A geocentric position refers to a viewpoint or coordinate system that is centered on the Earth. In astronomy, it describes a model where the Earth is considered the center of the universe, with celestial bodies like the Sun and planets (or even satellites) orbiting around it (Source: ["Earth-centered, Earth-fixed coordinate system"](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system) and ["Geocentric model"](https://en.wikipedia.org/wiki/Geocentric_model)). |
| 12 | + |
| 13 | +### What is a Subpoint Position? |
| 14 | +In Astronomy, the subpoint position (or subsatellite point) of a satellite refers to the point on the Earth's surface that is directly beneath the satellite at any given moment. It is defined by its geographical coordinates, latitude and longitude (Source: ["Geodesy for the Layman" by U.S. Geological Survey](https://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/TR80003D.HTM#ZZ9)). This point is significant because it represents the satellite's ground track, which is the path that the satellite appears to trace over the Earth's surface as it orbits (Source: ["Satellite Communications" by Dennis Roddy](https://books.google.com/books/about/Satellite_Communications_Fourth_Edition.html?id=2KEt_hFyjwgC)). |
| 15 | + |
| 16 | +### What is International Date Line (IDL)? |
| 17 | +The International Date Line is an imaginary line that runs from the North Pole to the South Pole, primarily along the 180th meridian in the Pacific Ocean. It serves as the boundary between two consecutive calendar dates, meaning when you cross it, you either gain or lose a day depending on the direction you are traveling (Source: ["The international date line, explained"](https://www.livescience.com/44292-international-date-line-explained.html) and ["International Date Line"](https://www.britannica.com/topic/International-Date-Line)). |
| 18 | + |
| 19 | +### Why IDL matter? |
| 20 | +When tracking a satellite's position over time, you may encounter situations where the longitude values can "jump" significantly due to the way longitude is measured. Longitude is expressed in degrees, ranging from -180 to +180 or 0 to 360. The International Date Line (IDL) is located at approximately 180 degrees longitude. Crossing this line can cause a sudden change in the longitude value, which can be problematic for visualizing paths on a map. In general, handling the IDL problem matters in terms of: |
| 21 | +- Visualization: If you don't adjust for these jumps, the path drawn on a map could appear discontinuous or erratic, making it difficult to understand the satellite's actual trajectory. |
| 22 | +- Data Integrity: Ensuring that longitude values are consistent helps maintain data integrity, especially when plotting or analyzing satellite paths. |
| 23 | + |
| 24 | +## Libraries |
| 25 | +Required libraries: |
| 26 | +- `Skyfield` ([Documentation](https://rhodesmill.org/skyfield/)) |
| 27 | +- `Folium` ([Documentation](https://python-visualization.github.io/folium/latest/index.html)) |
| 28 | +- `Selenium` ([Documentation](https://www.selenium.dev/documentation/)) |
| 29 | +- `Datetime` ([Documentation](https://docs.python.org/3/library/datetime.html)) |
| 30 | +- `Time` ([Documentation](https://docs.python.org/3/library/time.html)) |
| 31 | +- `OS` ([Documentation](https://docs.python.org/3/library/os.html)) |
| 32 | + |
| 33 | +## Running the Script |
| 34 | +- Install required modules |
| 35 | +`pip install -r requirements.txt` |
| 36 | +- Run the script and wait for the map to launch |
| 37 | +`python3 tracker.py` |
0 commit comments