Using command line utility or utilities suitable for scripting how can I generate a boundary polygon that shows the area actually covered by lidar data points, not just the box extent of the LAS files?

In this figure, the purple is a simple box extent, easily generated by several tools, but what's desired is the grey area which represents the actual point coverage. Using tindex without --fast_boundary generates a useful but fairly crude approximation. I'd like something that matches the data area more tightly (a bit inside even better).

purple box extent, grey actual data area.

pdal tindex result is not close enough

I'm using Windows but don't want to restrict solutions to a single platform unecessarily. Open source is preferred, then free, then whatever.

Related question for ArcGIS: Creating boundary polygon shapefile from set of LAS files using ArcGIS Desktop?

  • 2
    LASTools LASBoundary can work for this, there are some parameters to play with to fine tune your results. Another method you could try is to generate a count raster of all returns with a healthy cell size (5m to 10m is good, the higher the pulse count the more precise you can be - 5m for 4ppsm, 10m for 2ppsm seems ok in most instances), create a binary yes/no from a threshold value of the count raster, convert that raster to polygons, trim off the bounding outside polygon and any fragments that are too small then finish by dissolving the remnant and buffering by -1/2 cell size. – Michael Stimson Feb 21 '20 at 2:23

Perhaps there is something to tune in the PDAL parameters. If tindex does not give good enough result when used like in this tutorial https://pdal.io/workshop/exercises/analysis/boundary/boundary.html then perhaps you could do better by running density https://pdal.io/apps/density.html directly with different --sample_size and --threshold parameters. For getting the boundary you must just make a union of the hexagons which are created by the density tool.

  • 1
    this helped get me on the track, followed by creating a small inside buffer of the boundary poly and then subtracting it. The actual useful option is hexbin, pdal tindex create test_1mx4.shp --filters.hexbin.edge_size=1 --filters.hexbin.threshold=4 UL_001.las --> poly of where more than 4 points per meter. – matt wilkie Mar 18 '20 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.