Skip to content

kirienko/pylgrim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GNSS software receiver written in python

Playground project. Just to understand how GNSS works.

Project Contents:

  • proto/ -- prototype of software receiver (mostly python + numpy)
    • coord/ -- tools for coordinate transition
    • helper/ -- misc helper functions
    • tests/ -- unit test
    • visualization/ -- visualization tools
  • test_data/ -- supplementary data files for tests

What works: Build Status

For now one can obtain rover's position by using single- or dual-frequency observations, with accuracy of 50-100 meters. For static observations with GPS. Something might work in kinematic mode and for GLONASS, partly implemented but not tested yet. (But you must understand how to run all this machinery. Sorry, guys, I have no time for UI at the moment.)

  • There are parsers for the following:
    • RINEX v2.11 (both with navigation data and observations)
    • SP3 -- precise orbits and clocks
    • IONEX ionospheric maps
    • Vienna mapping function sources: hydrostatic and wet coefficients (see here)
  • It is possible to visualize satellites from RINEX Nav file (3D model with rotation).
  • It's possible to visualize points on the map (depends on mpl_toolkits.basemap).
  • Vienna mapping function (aka VMF1_HT) implemented.
  • Ionospheric delays from IONEX maps implemented.
  • Klobuchar (broadcast) ionospheric model implemented.
  • MILES algorithm reimplemented in python

Dependencies:

  • python 3.4
  • numpy
  • [optional] matplotlib.pyplot -- sats and rover visualization

Maybe some day:

  • juputer notebook interface
  • GPS and GLONASS with 10 meter accuracy
  • moving rover
  • phase ambiguity