[pdal] Metadata/Pipeline processing record

Howard Butler howard at hobu.co
Wed Mar 8 09:36:00 PST 2017


I have implemented an option for the LAS writer that allows you to write VLRs for both PDAL's metadata and pipeline JSON. I am hoping this capability will allow users to have a processing record to be stored along with the data. 

An example scenario where this might be useful. Say I wrote a pipeline that did a filters.range that was backwards and threw out rather than kept data I wanted in output. I then ran that pipeline over 1000s of files, but I didn't catch it at the time. Those files where then mixed in with 10000s of thousands of files later on and a month later I discovered the issue and have a panic attack. Let's say there's no LAS standard metadata that is helpful except for cumulating stats on the attribute that was wrong in `filters.range`. Depending on my filter and the data, I might not be able to disambiguate with only that.

If I have PDAL's pipeline and processing metadata available in file VLRs, I can write some Python or JavaScript scripts to go through those VLRs and search for exactly the files that have the problem. The following example uses the jq [1] utility to rip through the JSON output and grab the filters.range limits.

> pdal info --metadata badfile.las | jq .metadata.pdal_pipeline.pipeline[1].limits


If you think this is useful, or you have other scenarios where this would be immediately useful, please add to the ticket [2].

Howard


[1] https://stedolan.github.io/jq/manual/
[2] https://github.com/PDAL/PDAL/issues/1509


More information about the pdal mailing list