Introduction to PDAL¶
Point Data Abstraction Library
“GDAL for point cloud data”
Focus (in priority)
Translation
Processing
Exploitation

Open Source¶
30+ contributors
Driven by real world use
BSD license
History¶
Started in 2010
Used by USACE GRiD project for data warehousing
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¶
- C++ core library implementation
Stages specialize implementation
PointView
transits data
Pipelines orchestrate operations
Applications invoke pipelines
Pipeline Architecture¶

Pipeline Architecture¶

Readers (database)¶
Writers (database)¶
Filters¶
Filters (cont)¶
Filters (cont)¶
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¶
writers.matlab and readers.matlab for i/o
Embed
Use Matlab scripts inline with pipeline operations
Next¶
On to Software installation