Skip to content
Data 2024 13 / 14

GNSS Positioning from Raw Data

Solving a phone's position from raw satellite measurements — no black boxes.

Built with

Language

  • Python

Skills & tools

  • Pandas
  • NumPy
  • Matplotlib
  • NavPy
  • Least squares
  • KML
Map-style chart comparing the computed driving route with the phone's own reference path

Parses raw Android GNSS logs, computes satellite positions from ephemeris data and solves the receiver position with least squares, exporting paths to CSV and KML.

What it does

Phones expose the raw measurements behind GPS. This project uses them to compute position from first principles:

  1. Parse raw GNSS logs into tidy tables.
  2. Compute each satellite’s position from ephemeris data.
  3. Solve the receiver position with iterative least squares.
  4. Export the path to CSV and KML for Google Earth.

The chart compares my solution with the phone’s own fused location on a real drive — including the honest outliers before the solver converges.