Skip to content

@hobu hobu released this Apr 6, 2017 · 1854 commits to master since this release

Changes of Note

  • PCL --visualize capability of the pdal command line application has been removed.
  • writer.derivative has been removed. Use gdaldem for faster and more featureful equivalent functionality.
  • GeoTIFF and Proj.4 are now required dependencies.
  • writers.p2g has been removed. It was replaced by writers.gdal in 1.4, but the P2G writer was essentially unmaintained and we will be using the GDAL one going forward.
  • filters.attribute was split into filters.assign and filters.overlay to separate their functionalities
  • filters.pmf and filters.outlier have dropped the classify and extract options. They now only classify points and leave it downstream filters to ignore/extract classifications as needed.
  • filters.outlier has changed the default classification for noise points from 18 to 7 to match the LAS classification code for "Low point (noise)".


  • pdal pipeline now supports a --stream option which will default to one-at-a-time or chunk-at-a-time point processing when all stages in the pipeline support it. You can use this option to control memory consumption -- for example when interpolating a very large file with writers.gdal
  • filters.crop was enhanced to support transformed filter polygons, streaming, and radius cropping.
  • readers.greyhound updated to support 1.0 release, with the most significant enhancement being support for passing downstream JSON filters.
  • user_data JSON object can be applied to any PDAL pipeline object and it will be carried through processing. You can use this mechanism for carrying your own information in PDAL pipelines without having to sidecar data. #1427
  • writers.las now can write pdal_metadata and pdal_pipeline VLRs for processing history tracking. #1509 #1525
  • metadata, schema, and spatialreference objects added to global module for filters.programmable and filters.predicate Python filters.
  • pdalargs option for filters.programmable and filters.predicate allow you to pass in a JSON dictionary to your Python module for override or modification of your script
  • Stage tags can be used in pipeline override scenarios
  • User-settable VLRs in writers.las #1542
  • filters.sort now supports descending order and uses std::stable_sort #1530 (Thanks to new contributor @wrenoud )
  • pdal tindex will now use data bounds if filters.hexbin cannot be loaded for boundaries #1533
  • filters.pmf and filters.smrf improved performance #1531 and #1541
  • filters.assign now supports Range-based filters
  • filters.outlier now accepts a user-specified class to override the default value of 7 for points deemed outliers. #1545
  • filters.pmf and filters.smrf now accept a Range via the ignore option to specify values that should be excluded from ground segmentation. #1545
  • filters.pmf and filters.smrf now consider only last returns (when return information is available) as the default behavior. The last option can be set to false to consider all returns. #1545


New filters

  • filters.cluster - Perform Euclidean cluster extraction, and label each point by its cluster ID. By @chambbj.
  • filters.groupby - Split incoming PointView into individual PointViews categorically, e.g., by Classification. By @chambbj.
  • filters.locate - Locate and return the point with the minimum or maximum value for a given dimension. By @chambbj.
  • filters.emf - Extended Local Maximum filter. By @chambbj.

New readers

  • readers.mbio Bathymetric point cloud support for formats supported by the MB-System software library

Bug fixes

  • writers.pgpointcloud needed to treat table schema correctly #1540 (thanks @elemoine)
  • pdal density kernel now supports overriding filters.hexbin options #1487
  • Arbiter embedded library updated to support setting Curl options (certificate settings, etc).
  • Provided a default value for radius in writers.gdal #1475
  • writers.ply broken for non-standard dimensions #1556
  • No EVLRs for writers.las for files < LAS 1.4 #1551
  • LAS extra dims handling for standard PDAL dimension names #1555
  • LASzip defines #1549
Assets 2