Přeskočit obsah

09.3 PDAL

PDAL je knihovna pro práci s mračny bodů. Podobně jako knihovna GDAL je napsaná v C++. Nicméně umožňuje dopisovat výpočetní filtry i v jiných jazycích jako je např. Python. Kromě toho obsahuje i užitečné konzolové nástroje.

Konzolové nástroje

pdal --help
pdal info /mnt/repository/155FGIS/06/dmr5g/KRAV59.laz
# pdal --drivers
# pdal --options writers.las
pdal translate /mnt/repository/155FGIS/06/dmr5g/KRAV59.laz KRAV59.las
pdal translate /mnt/repository/155FGIS/06/dmr5g/KRAV59.laz KRAV59_wgs84.las -f filters.reprojection \
  --filters.reprojection.out_srs="EPSG:4326" --filters.reprojection.in_srs="EPSG:5514"
pdal merge /mnt/repository/155FGIS/06/dmr5g/*.laz dmr5g.laz

Python API

json = """
[
    "/mnt/repository/155FGIS/06/dmr5g/KRAV59.laz",
    {
        "type": "filters.sort",
        "dimension": "Z"
    }
]
"""

import pdal
pipeline = pdal.Pipeline(json)
count = pipeline.execute()
arrays = pipeline.arrays
print(arrays)

Implementace filtru v Pythonu

import numpy as np

def multiply_z(ins, outs):
    Z = ins['Z']
    Z *= 10.0
    outs['Z'] = Z

    return True
[
    "/mnt/repository/155FGIS/06/dmr5g/KRAV59.laz",
    {
        "type":"filters.smrf"
    },
    {
        "type":"filters.python",
        "script":"multiply_z.py",
        "function":"multiply_z",
        "module":"anything"
    },
    {
        "type":"writers.las",
        "filename":"KRAV59_multiplied.las"
    }
]    
pdal pipeline ./pdal-pipeline.json

Další materiály