.. _contents:
PyLidar
===================================
Introduction
------------
A set of Python modules which makes it easy to write lidar
processing code in Python. Based on `SPDLib `_ and
built on top of `RIOS `_
it handles the details of opening and closing files, checking alignment of projection and
grid, stepping through the data in small blocks, etc.,
allowing the programmer to concentrate on the processing involved.
It is licensed under GPL 3.
See :doc:`spdv4format` for description of the SPD V4 file format. Supported
formats are: SPD V3, SPD V4, RIEGL RXP, LAS, LVIS, ASCII and Pulsewaves
(additional libraries may be required).
See the :doc:`arrayvisualisation` page to understand how numpy
arrays are used in PyLidar.
Work funded by:
- `DSITI `_ and `OEH `_ through the `Joint Remote Sensing Research Program `_
- `University of Maryland `_
There is a `Google Group `_ where users can post questions.
Examples
--------
See :doc:`processorexamples` for more information on programming using PyLidar. See the following links for more information on running the command line utilities:
- :doc:`commandline_translate`
- :doc:`commandline_index`
- :doc:`commandline_info`
- :doc:`commandline_tiles`
- :doc:`commandline_canopy`
Downloads
---------
Source
^^^^^^
Source code is available from `GitHub `_.
`RIOS `_, `Numba `_, `Numpy `_
and `h5py `_ are required dependencies. Additional formats require
environment variables set to the root installation of other libraries
before building as detailed in this table:
+---------------+-----------------------------+-----------------------------------------------------------------------------+
| Type of Files | Environment Variable(s) | Link to Software |
+===============+=============================+=============================================================================+
| LAS/LAZ | LASTOOLS_ROOT | `lastools `_ |
+---------------+-----------------------------+-----------------------------------------------------------------------------+
| Riegl | RIVLIB_ROOT | `RiVLIB `_ |
| | RIWAVELIB_ROOT | `RiWaveLIB `_ |
| | RDBLIB_ROOT | `RDBLib `_ |
+---------------+-----------------------------+-----------------------------------------------------------------------------+
| ASCII .gz | ZLIB_ROOT | `zlib `_ |
+---------------+-----------------------------+-----------------------------------------------------------------------------+
| PulseWaves | PULSEWAVES_ROOT | `pulsewaves `_ |
+---------------+-----------------------------+-----------------------------------------------------------------------------+
The related `pynninterp `_ module is used
for some interpolation operations.
Test Suite
^^^^^^^^^^
After installation, run pylidar_test to run a number of tests to check that the install is OK. You will
need the latest testdata_X.tar.gz file (with the highest 'X') from the links in the
`wiki page `_. Pass the path to this file to
pylidar_test with the -i option.
Conda
^^^^^
`Conda `_ packages are available under the 'rios' channel.
Once you have installed `Conda `_, run the following commands on the
command line to install pylidar (dependencies are obtained automatically): ::
conda config --add channels conda-forge
conda config --add channels rios
conda create -n myenv pylidar
conda activate myenv
The related `pynninterp `_ module is used
for some interpolation operations and can be installed via Conda also from the 'rios' channel::
conda install pynninterp
Processing
-----------
.. toctree::
:maxdepth: 1
userclasses
lidarprocessor
toolbox/arrayutils
toolbox/toolbox
toolbox/indexing
toolbox/translate
Drivers
---------
.. toctree::
:maxdepth: 1
basedriver
gdaldriver
lidarformats/generic
lidarformats/spdv3
lidarformats/spdv4
lidarformats/las
lidarformats/riegl
lidarformats/ascii
lidarformats/lvisbin
lidarformats/lvishdf5
lidarformats/pulsewaves
lidarformats/h5space
lidarformats/gridindexutils
Testing
-------
.. toctree::
:maxdepth: 1
testing
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`