How to insert variable value into JSON string for use with PDAL

497 Views Asked by At

I'm trying to use the Python extension for PDAL to read in a laz file.

To do so, I'm using the simple pipeline structure as exampled here: https://gis.stackexchange.com/questions/303334/accessing-raw-data-from-laz-file-in-python-with-open-source-software. It would be useful for me, however, to insert the value contained in a variable for the "filename:" field. To do so, I've tried the following, where fullFileName is a str variable containing the name (full path) of the file, but I am getting an error that no such file exists. I am assuming my JSON syntax is slightly off or something; can anyone help?

    pipeline="""{
    "pipeline": [
            {
                    "type": "readers.las",
                    "filename": "{fullFileName}"
                    }
            ]
    }"""
1

There are 1 best solutions below

1
On BEST ANSWER

You can follow this code:

import json
import pdal

file = "D:/Lidar data/input.laz"

pipeline={
  "pipeline": [
    {
        "type": "readers.las",
        "filename": file
    },
    {
        "type": "filters.sort",
        "dimension": "Z"
    }
  ]
}

r = pdal.Pipeline(json.dumps(pipeline))
r.validate()
points = r.execute()
print(points)