I'm trying to create a pdal pipeline to adjust the classification values for all points inside polygons, but I can't seem to get it to work. The filters.range works correctly because the output file contains the filtered values. It's the filters.overlay that doesn't seem to be doing anything. I have an attribute called CLS on all the polygons in the shapefile.
{
"type": "readers.las",
"filename": "area_small.las"
},
{
"type":"filters.range",
"limits":"Classification[0:0], Classification[3:6]"
},
{
"type":"filters.overlay",
"dimension" : "Classification",
"datasource": "buildings_small.shp",
"column": "CLS"
},
{
"type" : "writers.las",
"filename" : "output.las"
}
I have also tried to use a VRT file
<OGRVRTDataSource>
<OGRVRTWarpedLayer>
<OGRVRTLayer name="buildings_small">
<SrcDataSource>buildings_small.shp</SrcDataSource>
<LayerSRS>EPSG:4326</LayerSRS>
</OGRVRTLayer>
<TargetSRS>EPSG:4326</TargetSRS>
</OGRVRTWarpedLayer>
</OGRVRTDataSource>
That doesn't work either. The las file does have a different projection, but they two files line up perfectly in GlobalMapper
Is there another way to do this? Using a filters.assign changes the Classification value, but I can't figure out how to make it only do that for points inside the polygons.