I have some extremely dense (i.e. >1000 points/sq.m) point clouds of a forest that were created using a mobile LiDAR scanner attached to a pickup truck. Because the point clouds are created from the ground level rather than from above, I want to use a tree segmentation algorithm that models the stems from the ground->top, rather than from the top->ground.
There are many top->ground approaches available in the R package lidr including one point cloud-based approach that was developed by Li et al. . I have tried it on similar data and it does not perform well, which is unsurprising because it uses local maxima as inputs (tops of trees).
So, I have tried two options:
- ) Layer stacking as developed by Ayrey which has a github repo here. I have started working on applying this to my clouds but I'm not sure whether the inputs are supposed to be: a.) the normalized point cloud in .las format b.) slices of the normalized point cloud (i.e. 0-1 m, 1-2 m , etc..) or c.) gridded (tiled) normalized .las files.
I tried option a.), and I'm getting this error:
Error in readBin(con, "raw", n = pointDataRecordLength * numberPointRecords, : vector size cannot be NA In addition: Warning message: In pointDataRecordLength * numberPointRecords : NAs produced by integer overflow
2.) The treeseg algorithm developed by Burt which has a repo here. There isn't much that I can find in the way of documentation about this package, but I've tried to install it and ran into problems related to being on Windows. I'm working on using an Ubuntu server to implement treeseg, but would like to know if it exists somewhere else.
If there are other options I would like to hear about those, particularly other RANSAC-based approaches such as #2. I am open to solutions in R, Python, or anaconda.