Giter VIP home page Giter VIP logo

gnsspy's Introduction

GNSSpy

Python Toolkit for GNSS Data developed by Mustafa Serkan Isik ([email protected]) and Volkan Ozbey ([email protected]). This project is still a work in progress. Send us your feedback if possible...

What is GNSSpy?

GNSSpy is a free and open source library for handling multi GNSS and different versions (2.X and 3.X) of RINEX files. It provides Single Point Positioning (SPP) solutions by least squares adjustment using pseudo-range observations using precise ephemeris and clock files. GNSSpy can be used for editing (slicing, decimating, merging) and quality checking (multipath,ionospheric delay, SNR) for RINEX files. Ionospheric delay can be calculated from GNSS atmospheric models of IGS for single frequency RINEX data or removed using dual frequency RINEX data. It can be used for visualizing GNSS data such as skyplot, azimuth-elevation,time-elevation, ground track and band plots. Additionally, this library can be used for basic geodetic computations such as geodetic positions on reference ellipsoid and projection computations.

How to install?

Download the package and change directory of your terminal to gnsspy-master folder. Then, simply type

python setup.py install

Or you can directly install package from GitHub via

pip install git+https://github.com/GNSSpy-Project/gnsspy

How to use?

A detailed version of manual will be released soon.

Read RINEX Observation File

read_obsFile function reads RINEX 2.x/3.x observation files. If the station is IGS station, RINEX file does not necessarily need to be exist in working directory. In that case, the file is automatically downloaded to working directory.

import gnsspy as gp
station = gp.read_obsFile("mate2440.17o")

read_obsFile function returns to a class instance. This instance

# Epoch of RINEX file as datetime
station.epoch
# Pandas.DataFrame of observations
station.observation
# Approximate position [type:list-> x,y,z]
station.approx_position
# Antenna Type
station.antenna_type
# Observation interval(seconds)
station.interval
# Receiver clock error
# (if available)
station.receiver_clock
# Receiver Type
station.receiver_type
# RINEX version
station.version
# RINEX filename
station.filename

Interpolation of SP3 Final Products

sp3_interp function interpolates final precise orbit coordinates of satellites at RINEX observation epochs. Default interpolation method is 16 degree polynomial interpolation. Degree of polynomial can be changed, though it is not recommended to use lower than 11 degree. Above 16 degree is not applicable for 15 minute intervals of precise orbit solution. GFZ orbit and clock files are default product names. Alternatives are IGS, WUM, ESA etc. Of course, each product provides solution for different satellite systems, hence number of satellites may vary for each product choice.

orbit = gp.sp3_interp(station.epoch, interval=station.interval, poly_degree=16, sp3_product="gfz", clock_product="gfz")

Single Point Positioning (SPP)

In order to use spp function, station file must be read and SP3 interpolation must be done. Satellite system can be chosed via system argument as in the example. G: GPS - R: GLONASS - E: GALILEO - C: COMPASS - J: QZSS - I: IRNSS. It should be noted that the choice of station file and products used for the SP3 interpolation can constrain satellite system selection. Additionally, elevation mask angle (cut_off) is by default 7.0 degree. In next release, more options will be added to this function.

spp_result = gp.spp(station, orbit, system="G", cut_off=7.0)

Notes

crx2rnx function is not pure python implimentation and depends on RNXCMP software for compression/restoration of RINEX observation files developed by Y. Hatanaka of GSI.

Source: http://terras.gsi.go.jp/ja/crx2rnx.html

Reference: Hatanaka, Y. (2008): A Compression Format and Tools for GNSS Observation Data, Bulletin of the Geographical Survey Institute, 55, 21-30, available at http://www.gsi.go.jp/ENGLISH/Bulletin55.html

gnsspy's People

Contributors

geomsi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.