Map GNSS satellite IDs from Android logs to NORAD catalog IDs This project links GNSS satellite identifiers reported by Android devices with real-world NORAD catalog IDs using Two-Line Element sets (TLEs). It helps bridge raw GNSS observations with publicly available orbital data—useful for research, geolocation analysis, or satellite tracking.
Kaggle dataset:
Sources used:
- GNSSLogger app for raw data
- CelesTrak for GNSS satellite IDs
- Space-Track.org for TLE data
Prerequisites
- A free account on Space-Track.org
- Android device with GNSSLogger installed
- Make sure Status logging is enabled
- GNSS logs stored on your personal Google Drive
# 1. Set up the virtual environment and install dependencies
make setup
# 2. Initialize project with your credentials
make init
# 3. Download GNSS satellite IDs from CelesTrak
make ids
# 4. Filter satellite IDs to active satellites (launched in the last 15 years)
make active
# 5. Download current TLEs from Space-Track
make tle
# 6. Download GNSSLogger logs from your Google Drive
make log
# 7. Match observed GNSS satellites to closest NORAD satellites in TLEs
make match
# 8. Upload the matched dataset to Kaggle
make uploadGenerated logs, matches, and verification output are written outside the repo, under ~/data/gnss/ by default. Override with make <target> DATA_ROOT=/path/to/shared (changes the parent) or make <target> DATA_DIR=/tmp/run-42 (changes the full path).
GNSS-Observations/
├── logs/ # GNSSLogger logs from Android devices
├── tle/ # TLE files from Space-Track
├── ids/ # Satellite IDs from CelesTrak
├── scripts/ # Matching and processing logic
├── Makefile # Automation for all steps
└── README.md