Read lidar data as vector points using PDAL
|Reported by:||wenzeslaus||Owned by:|
|Keywords:||lidar, las, laz, v.in.lidar, v.in.pointcloud, v.in.pdal||Cc:||grass-dev@…, ptschrum|
PDAL is a point cloud processing and format transformation library and supersedes libLAS (currently used in
v.in.lidar) in many ways. Currently the most important difference is support for LAS 1.4. It also seems that we will have to replace libLAS by PDAL at some point.
I'm attaching a patch which is adding a module
v.in.pointcloud. It is based on
v.in.lidar and the difference is that it is using PDAL C++ API for reading LAS (so it can read LAS 1.4 except for waveform). LAZ is supported in the same way as with libLAS. When PDAL is compiled with LAZ, then
v.in.pointcloud supports LAZ.
Serious issues with the patch:
- the compilation check in configure has just dummy code, I don't know how to make it compile C++
Potential improvements to patch:
- support for all PDAL supported (internally and by plugins) formats (should be easy to add), hence the name
- documentation is just copied from
- add test (test data are needed for that as well as for documentation)
Adding PDAL processing into the import or as separate module is clearly a possibility as well but this is out of scope of this particular patch.
General issues with PDAL for GRASS GIS:
- implemented in C++ and lacks C API (this is fixable)
- depends on C++11 (not a big issue when building modules)
- depends on Boost (hopefully will be removed in the future)
- potential limits on number of points as by default everything is in memory and limited to 2^32 - 1 points but there are ways around it
I need help with making the compilation check in configure compile C++, otherwise I think it can go trunk.