This project represents a simulation of GPS using the Starlink Seattle system. It utilizes TLE (Two-Line Element) data for Starlink satellites and calculates their positions to simulate a GPS-like functionality. The program allows users to input their location (latitude, longitude) and a desired radius, and then filters and displays Starlink satellites within that radius on a map using Tkinter, Folium, and Skyfield libraries.
Starlink is a satellite internet constellation project developed by SpaceX, the private space exploration company founded by Elon Musk. The project aims to provide global broadband internet coverage by deploying a large network of small satellites in low Earth orbit (LEO). These satellites work together to create a mesh network, enabling internet connectivity even in remote and underserved areas around the world.
While Starlink is primarily designed to provide global internet access, its satellite constellation can also offer potential benefits for location-based services similar to GPS. Here are some advantages of using Starlink for location services over traditional GPS:
-
Global Coverage: Starlink's satellite constellation provides global coverage, including remote and rural regions where traditional GPS signals may be weak or unavailable.
-
Low Latency: Starlink's LEO satellites can offer low-latency connections, potentially leading to faster and more accurate location updates.
-
Redundancy: The large number of satellites in the Starlink constellation offers redundancy, reducing the risk of service disruption due to individual satellite failures.
-
Upgradability: As Starlink continues to expand and upgrade its satellite network, the location accuracy and coverage could potentially improve over time.
-
Integration with Internet Services: Utilizing Starlink for location services can be advantageous for applications that require both location data and internet connectivity, as it offers both functionalities from a single system.
-
Install the required libraries:
- tkinter
- webbrowser
- folium
- skyfield
- requests
- numpy
- (you can download requirements.txt file and run pip install -r requirements.txt)
-
Run the Python script: Execute the code in a Python environment that has the required libraries installed.
-
Input Location and Radius: When the GUI window appears, enter your desired location's latitude and longitude and specify the radius (in kilometers) within which you want to find Starlink satellites.
-
Click the "Submit" button: After entering the location and radius, click the "Submit" button. The program will fetch TLE data for Starlink satellites, calculate their positions, and display the satellites within the specified radius on a map.
-
View the Map: A web browser will automatically open with a map showing the filtered Starlink satellites as markers. Click on a marker to see the satellite's name and its RMS (Root Mean Square) error, which provides an estimate of the satellite's position accuracy.
Note: The simulated GPS functionality in this project is based on the positions of Starlink satellites at the current datetime and uses dummy observed altitude and azimuth values for RMS calculations.
Instructed by Professor Boaz Ben Moshe.