georinex - Python RINEX 2/3 NAV/OBS reader / batch conversion to HDF5 with C-like speed using xarray

  •        16

RINEX 3 and RINEX 2 reader and batch conversion to NetCDF4 / HDF5 in Python or Matlab. Batch converts NAV and OBS GPS RINEX data into xarray.Dataset for easy use in analysis and plotting. This gives remarkable speed vs. legacy iterative methods, and allows for HPC / out-of-core operations on massive amounts of GNSS data. GeoRinex works in Python ≥ 3.6. Pure compiled language RINEX processors such as within Fortran NAPEOS give perhaps 2x faster performance than this Python program--that's pretty good for a scripted language like Python! However, the initial goal of this Python program was to be for one-time offline conversion of ASCII (and compressed ASCII) RINEX to HDF5/NetCDF4, where ease of cross-platform install and correctness are primary goals.



Related Projects

xarray - N-D labeled arrays and datasets in Python

  •    Python

xarray (formerly xray) is an open source project and Python package that aims to bring the labeled data power of pandas to the physical sciences, by providing N-dimensional variants of the core pandas data structures. Our goal is to provide a pandas-like and pandas-compatible toolkit for analytics on multi-dimensional arrays, rather than the tabular data for which pandas excels. Our approach adopts the Common Data Model for self- describing scientific data in widespread use in the Earth sciences: xarray.Dataset is an in-memory representation of a netCDF file.

python-matlab-bridge - A simple Python => MATLAB(R) interface and a matlab_magic for ipython

  •    Python

A python interface to call out to Matlab(R). Original implementation by Max Jaderberg. His original repo of the project can be found here, but please note that the development of the two repositories has significantly diverged. This implementation also includes an IPython matlab_magic extension, which provides a simple interface for weaving python and Matlab code together (requires ipython > 0.13).

pydruid - A Python connector for Druid

  •    Python

pydruid exposes a simple API to create, execute, and analyze Druid queries. pydruid can parse query results into Pandas DataFrame objects for subsequent data analysis -- this offers a tight integration between Druid, the SciPy stack (for scientific computing) and scikit-learn (for machine learning). pydruid can export query results into TSV or JSON for further processing with your favorite tool, e.g., R, Julia, Matlab, Excel. It provides both synchronous and asynchronous clients. Additionally, pydruid implements the Python DB API 2.0, a SQLAlchemy dialect, and a provides a command line interface to interact with Druid.

gnss-sdr - GNSS-SDR, an open source GNSS software defined receiver

  •    C++

Visit for more information about this open source GNSS software defined receiver. If you have questions about GNSS-SDR, please subscribe to the gnss-sdr-developers mailing list and post your questions there.

netcdf4-python - netcdf4-python: python/numpy interface to the netCDF C library

  •    Python

Python/numpy interface to the netCDF C library. For details on the latest updates, see the Changelog.

gramm - Gramm is a complete data visualization toolbox for Matlab

  •    Matlab

Gramm is a powerful plotting toolbox which allows to quickly create complex, publication-quality figures in Matlab, and is inspired by R's ggplot2 library by Hadley Wickham. As a reference to this inspiration, gramm stands for GRAMmar of graphics for Matlab. Gramm is a data visualization toolbox for Matlab that allows to produce publication-quality plots from grouped data easily and flexibly. Matlab can be used for complex data analysis using a high-level interface: it supports mixed-type tabular data via tables, provides statistical functions that accept these tables as arguments, and allows users to adopt a split-apply-combine approach (Wickham 2011) with rowfun(). However, the standard plotting functionality in Matlab is mostly low-level, allowing to create axes in figure windows and draw geometric primitives (lines, points, patches) or simple statistical visualizations (histograms, boxplots) from numerical array data. Producing complex plots from grouped data thus requires iterating over the various groups in order to make successive statistical computations and low-level draw calls, all the while handling axis and color generation in order to visually separate data by groups. The corresponding code is often long, not easily reusable, and makes exploring alternative plot designs tedious.

GNSS Reference Station

  •    C++

NovaRS - software for control GNSS station equipped with NovAtel receivers. Programm can generate on-the-fly hourly and daily RINEX 2.11 files according to IGS naming conventions.

mexopencv - Collection and a development kit of matlab mex functions for OpenCV library

  •    Matlab

Collection and development kit of MATLAB MEX functions for OpenCV library. The package provides MATLAB MEX functions that interface with hundreds of OpenCV APIs. Also the package contains a C++ class that converts between MATLAB's native data type and OpenCV data types. The package is suitable for fast prototyping of OpenCV application in MATLAB, use of OpenCV as an external toolbox in MATLAB, and development of custom MEX functions.

pmtk3 - Probabilistic Modeling Toolkit for Matlab/Octave.

  •    HTML

PMTK is a collection of Matlab/Octave functions, written by Matt Dunham, Kevin Murphy and various other people. The toolkit is primarily designed to accompany Kevin Murphy's textbook Machine learning: a probabilistic perspective, but can also be used independently of this book. The goal is to provide a unified conceptual and software framework encompassing machine learning, graphical models, and Bayesian statistics (hence the logo). (Some methods from frequentist statistics, such as cross validation, are also supported.) Since December 2011, the toolbox is in maintenance mode, meaning that bugs will be fixed, but no new features will be added (at least not by Kevin or Matt). PMTK builds on top of several existing packages, available from pmtksupport, and provides a unified interface to them. In addition, it provides readable "reference" implementations of many common machine learning techniques. The vast majority of the code is written in Matlab. (For a brief discussion of why we chose Matlab, click here. Most of the code also runs on Octave an open-source Matlab clone.) However, in a few cases we also provide wrappers to implementations written in C, for speed reasons. PMTK currently (October 2010) has over 67,000 lines.

BreezySLAM - Simple, efficient, open-source package for Simultaneous Localization and Mapping

  •    C

This repository contains everything you need to start working with Lidar -based SLAM in Python. (There is also support for Matlab, C++, and Java; however, because of the popularity of Python for this kind of work, I am no longer updating the code for those languages.) BreezySLAM works with Python 3 on Linux and Mac OS X, and with C++ on Linux and Windows. By using Python C extensions, we were able to get the Python and Matlab versions to run as fast as C++. For maximum efficiency on 32-bit platforms, we use Streaming SIMD extensions (Intel) and NEON (ARMv7) in the compute-intensive part of the code. BreezySLAM was inspired by the Breezy approach to Graphical User Interfaces developed by my colleague Ken Lambert: an object-oriented Application Programming Interface that is simple enough for beginners to use, but that is efficient enough to scale-up to real world problems; for example, the mapping of an entire floor of a house, shown in the image above-right, made by a BreezySLAM user.

PRMLT - Matlab code for machine learning algorithms in book PRML

  •    Matlab

This package is a Matlab implementation of the algorithms described in the classical machine learning textbook: Pattern Recognition and Machine Learning by C. Bishop (PRML). Note: this package requires Matlab R2016b or latter, since it utilizes a new syntax of Matlab called Implicit expansion (a.k.a. broadcasting in Python).

Matlab .NET Bridge Framework


The Matlab .NET Bridge is a managed code wrapper around the C Matlab engine API. It is designed to offer an interface that feels right when being called from managed languages.

The Sick LIDAR Matlab/C++ Toolbox

  •    C++

The Sick LIDAR Matlab/C++ Toolbox offers stable and easy-to-use C++ drivers for Sick LMS and Sick LD LIDARs. It provides a Matlab Mex interface for streaming LIDAR returns directly into Matlab. Also included are config utilities, examples, and tutorials.

MySQL Wrapper for Matlab

  •    C++

mYm is a Matlab interface to MySQL server. It is based on the original 'MySQL and Matlab' by Robert Almgren and adds the support for BLOBs. That is, it can insert matlab objects (e.g. array, structure, cell) into BLOB fields.

machineLearning - supervised and unsupervised algorithms from Andrew Ng's machine learning class

  •    Matlab

Install Octave free here or Matlab not free here. Note that Octave = Matlab without the nice graphical user interface. I use Octave so don't feel like you are missing anything if you don't have money for Matlab.

Open Source GNSS Reference Server

  •    Java

The Open Source GNSS Reference Server (OSGRS) is a HTTP server that provides data for Assisted-GNSS applications. It caches the data and then provides it to the A-GNSS client over the GNSS Reference Interface Protocol (GRIP) on request.

swix - Swift Matrix Library

  •    C++

Apple's Swift is a high level language that's asking for some numerical library to perform computation fast or at the very least easily. This is a bare-bones wrapper for that library. A way to have iOS run high-level code similar to Python or Matlab is something I've been waiting for, and am incredibly excited to see the results. This will make porting complex signal processing algorithms to C much easier. Porting from Python/MATLAB to C was (and is) a pain in the butt, and this library aims to make the conversion between a Python/Matlab algorithm and a mobile app simple.

blaze - NumPy and Pandas interface to Big Data

  •    Python

Blaze translates a subset of modified NumPy and Pandas-like syntax to databases and other computing systems. Blaze allows Python users a familiar interface to query data living in other data storage systems. We point blaze to a simple dataset in a foreign database (PostgreSQL). Instantly we see results as we would see them in a Pandas DataFrame.

matlab2tikz - This program converts MATLAB®/Octave figures to TikZ/pgfplots figures for smooth integration into LaTeX

  •    Matlab

matlab2tikz is a MATLAB(R) script to convert native MATLAB(R) figures to TikZ/Pgfplots figures that integrate seamlessly in LaTeX documents. To download the official releases and rate matlab2tikz, please visit its page on FileExchange.

Matrix package for Python

  •    Python

MatPy is a Python package for numerical linear algebra and plotting with a MatLab-like interface. It currently consists of wrappers around Numeric and Gnuplot packages, but eventually may be implemented directly in C/C++, or as interface to Octave.