2D LiDAR georeferencing in Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
georeference starting on uncertainty computation Apr 25, 2018
LICENSE.md Create LICENSE.md Sep 22, 2016
README.md Update README.md Mar 2, 2017



Open source code implementing the basic lidar georeferencing functions described in Baltsavias (1999),and more recently along with propagation of uncertanties for LiDAR points in Glennie (2007)[1] and Schaer et al (2007) [2].

Based on MATLAB code developed for a PhD project - which can still be found in ./MATLAB. Future development will be in Python, unless someone wants to take up making a C version - although part of the point is to make the process fairly easy to understand.

If you want to contribute, use what's in ./MATLAB as a base, and if you don't see it's equivalent in Python then give it a shot. Or, if you can make any Python code you see here better/faster/more efficient/more functional please do so!

Rough plan:

  • implement the basic equations for 2D and 3D scanners in Python underway
  • implement uncertainty propagation using SymPy to handle deriving the required partial derivatives (q2 2017)
  • implement output to .LAS, or postgres-pointcloud (q2 2017). Las is trickier because of user defined fields which will be required (see point above)
  • ...and implement output to an Entwine index, skipping the standard output to LAS/LAZ tiles entirely. All these outputs will depend on PDAL (http://pdal.io)
  • implement binary reading of Reigl LiDAR scanner output (q3 2017)

pipe dreams:

  • read trajectory input from Novatel .bin files output from Inertial explorer
  • read trajectory input from binary OxTS NCOM files, will need proj.4 to project (once) from an ECEF frame to some cartesian frame.
  • Schaer (2007)[2] Q-factors
  • faster implementation for real-time point generation and QA.
  • maybe even it's own kalman filter implementation to do tightly-coupled GPS+inertial trajectory determination, avoiding the proprietary blackbox step currently required (beyond my skills at present)

[1] Glennie, C. (2007). Rigorous 3D error analysis of kinematic scanning LIDAR systems. Journal of Applied Geodesy, 1, 147–157. http://doi.org/10.1515/JAG.2007.

[2] Schaer, P., Skaloud, J., Landtwing, S., & Legat, K. (2007). Accuracy estimation for laser point cloud including scanning geometry. In Mobile Mapping Symposium 2007, Padova.