These pages are for publicly documenting SPDLib. If you would like to contribute please register.

What is SPDLib?

SPDLib is a set of open source software tools for processing laser scanning data (i.e., LiDAR), including data captured from airborne and terrestrial platforms. The aim of the software is provide you, the user, with the tools you need to process these data. The software grow out of our needs for LiDAR processing and has continued to grow. One of the key features which differentiates this software from other LiDAR software is the ability to process and store full waveform datasets alongside traditional discrete return data.

For more background on the software and its developers see here

We are always looking to improve the software and its functionality so please email the mailing list if you think there are missing features or you run into problems.

Downloading SPDLib

The latest released version of SPDLib is available for download from bitbucket ( While the very latest development version of SPDLib is available from the project Mercurial repository, it can be checked out using the following command:

hg clone spdlib


To build and install SPDLib the CMake build system is used. Therefore, with all the pre-requists installed and findable by CMake then just the following commands are required to build and install SPDLib:

make install

For more general information read the general installation guide and see the platform specific information below.

Supported Platforms

Currently only UNIX platforms are supported by this software, as these (primarily Mac OS X and Linux) are the platforms on which the software has been developed and tested. Although, the build system and software (including pre-requisites) should all support Windows. This has not been tried and tested beyond some brief experimentation. If you do try to compile and this software onto Windows then information on your experiences would be interesting and we can try and provide what support we can. In the future it is hoped that testing and support will be expanded to support Windows.

For detailed instructions on installing SPDLib and its pre-requists view one of the following pages:


Support for the software can be gained through this website (see User manual) but for more specific support email the mailing lists (below). If you have found a bug please report this on the mailing list so it can be submitted to the Trac. A list of known bugs and future enhancements is available from

Mailing Lists

User and developer questions and support: spdlib-develop

Project announcements: spdlib-announce

The mailing lists can be searched from here:

The Users Manual

One of the main functions of this wiki is to provide the SPDLib manual which details the use of the software and its tools. Specifically, examples are given for all command line tools.


For practical examples of using the SPDLib commands and combinations of commands with other tools to achieve useful results look through the examples pages

The Developers Manual

SPDLib is written in C++ and these APIs can be used directly to either add or extend the functionality of the software. Alternatively, python bindings, using the underlying C++ API, have also been created (using boost-python ) to allow the library to extended using the Python scripting language. While an IDL interface has also been created and make available.

Generic information for developers interested in using any of the SPDLib APIs is available from the Developers Manual . While specific examples and information for the various APIs can be found from the following pages:


An FAQ about SPDLib has been provided faq .

SPD 3D Points Viewer

To visualise the data within an SPD file a viewer application has been written, this can be downloaded from and is built on top of SPDLib. More information can be found here

Screenshot of the SPD Points Viewer user interface

Videos generated using the SPD 3D Points Viewer can be found here