GeoStrength

A real-time GPS satellite tracking application that visualizes satellite positions and signal strength to help users optimize GPS reception and find the best positioning for stronger satellite signals.

Overview

This application provides comprehensive GPS satellite tracking capabilities by analyzing Two-Line Element (TLE) data from NASA's satellite database. The system calculates the positions of GPS satellites in real-time, determines the four closest satellites to any given location on Earth, and analyzes signal strength using a topological map of Earth to visualize obstructions to help users find optimal positioning for better GPS reception.

Key Features

  • Real-time Satellite Positioning: Calculates current GPS satellite positions using orbital mechanics (SkyfieldAPI) and TLE data.
  • Distance Analysis: Computes distances between user location and satellites using the Haversine formula.
  • Signal Strength Optimization: Analyzes and visualizes signal strength based on satellite elevation, proximity, and line-of-sight to help users find the best location for GPS reception.
  • Interactive Mapping: Provides detailed topographical visualization with satellite overlay.
  • Coordinate Input: Supports manual coordinate entry and automatic geolocation detection.

Data Sources and Analysis

The application leverages NASA's Two-Line Element (TLE) data format to perform sophisticated orbital calculations:

  • TLE Data Processing: Parses NASA satellite orbital parameters including inclination, eccentricity, and mean motion
  • SGP4 Orbital Model: Implements the Simplified General Perturbations 4 model for accurate satellite position prediction
  • Geographical Computation: Uses WGS84 coordinate system for precise Earth-relative positioning

Technical Implementation

Backend

  • FastAPI: RESTful API for satellite data processing
  • Skyfield Library: Astronomical calculations and satellite tracking
  • Pandas: Data analysis and manipulation of satellite datasets
  • SGP4: Satellite position computation using NASA orbital models -NASA TLE API: Two-Line Element data for satellite telemetry information

Frontend

  • Next.js: React-based web application framework
  • D3.js: Advanced data visualization and interactive mapping
  • Topojson: Geographical data processing and rendering
  • Real-time Updates: Dynamic satellite position updates and visualization

Data Analysis Pipeline

  1. TLE Data Ingestion: Retrieves and parses Two-Line Element sets from NASA databases
  2. Orbital Mechanics: Applies SGP4 propagation model to calculate satellite positions
  3. Distance Calculation: Computes great circle distances using spherical trigonometry
  4. Signal Strength Analysis: Determines optimal signal reception by calculating satellite elevation angles, distance factors, and line-of-sight obstructions to help users position themselves for maximum GPS accuracy
  5. Visualization Processing: Transforms calculated data into interactive map representations

Signal Strength Benefits

Our GPS signal strength analysis helps users in several practical ways:

  • Optimize Device Positioning: Find the best orientation and location for GPS devices to maximize signal reception
  • Predict GPS Performance: Understand which satellites provide the strongest signals at your current location
  • Plan Outdoor Activities: Choose optimal times and locations for GPS-dependent activities like surveying, hiking, or drone operations
  • Enhance Navigation Systems: Improve GPS lock times and accuracy by understanding satellite constellation geometry

The application displays signal strength through color-coded visualizations, making it easy to identify the strongest satellite signals and position yourself accordingly for optimal GPS performance.

API Endpoints

  • POST /coordinates: Submit user coordinates for satellite analysis
  • GET /satellites: Retrieve the four closest GPS satellites with position data
  • GET /health: System health and status monitoring

Installation and Setup

Backend

cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py

Frontend

cd frontend
npm install
npm run dev

The application will be available at http://localhost:3000 with the API running on http://localhost:8000.

Built With

  • d3.js
  • fast-api
  • google-elevation-api
  • nasa-tle-api
  • next.js
  • react
Share this project:

Updates