Introduction to PDAL

  • Point Data Abstraction Library

  • “GDAL for point cloud data”

  • Focus (in priority)

    1. Translation

    2. Processing

    3. Exploitation

_images/pdal_logo.png

History

  • Started in 2010

  • _images/liblaslogo.png
  • Used by USACE GRiD project for data warehousing

    _images/rsgis_logo.png

GDAL PDAL’s Niche

  • On-disk or over-the-wire data format is a function of software requirements

  • Immature industry-wide standards (think vector world pre-shapefile)

  • Formats are proliferating quickly as the lidar/radar/sonar software industry expands

  • Need for basic processing operations

Processing Pipeline

Pipeline Architecture

_images/las-crop-bpf-pipeline.png

Pipeline Architecture

_images/pdal-architecture-overview.png

Readers (database)

Writers (database)

Python

  • Extension

    • Use PDAL to read data into your own applications

  • Embed

    • Use Python inline with pipeline operations

Python (cont)

def filter(ins,outs):
   # Keep only points with classification 1 or 2
   cls = ins['Classification']

   keep_classes = [1,2]

   # Use the first test for our base array.
   keep = np.equal(cls, keep_classes[0])

   # For 1:n, test each predicate and join back
   # to our existing predicate array
   for k in range(1,len(keep_classes)):
       t = np.equal(cls, keep_classes[k])
       keep = keep + t

   outs['Mask'] = keep
   return True

Matlab