.. _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`