Changes of Note
filter.ferrynow creates output dimensions with the same type as the input dimension. It also takes an arrow '=>' in addition to '=' in the--dimensionspecification.filters.hexbinnow falls back to slow boundary creation if no bounds information exists to do fast boundary creation.- Dimension names can now contain the forward slash ('/') character.
readers.gdalandfilters.colorizationnow attempt to create dimensions with the type of the associated raster.- The Python PDAL extension code was removed from the PDAL source tree to its own repository.
- The JAVA PDAL interface was remove from the PDAL source tree to its own repository.
pdal pipelineandpdal translatenow use stream mode if the operation being performed is streamable. An option--nostreamhas been added to both commands to prevent the use of stream mode. The--streamoption ofpdal pipelineis now obsolete and ignored.- A new interface has been provided for the creation of plugins requiring less boilerplate code. There has been no API change.
- Stages and pipelines can now be tested to check whether they are streamable.
Enhancements
- Added options
--timegapand--speedmintoreaders.mbioto allow configuration of which points should be read. - Added support for compression schemes (xz, lzma, zstd) and created a standardized interface (#1722).
writers.bpfnow supports the optionautofor thecoord_idoption to allow the UTM zone to be set from the spatial reference if possible (#1723).- Added the ability read stage-specific options from a file with the
--option_fileoption (#1641). - Replace the GDAL point-in-polygon with a much faster implementation in
filters.crop. - Add a
--reverseoption tofilters.mortonorderto provide a point ordering for good dispersal. readers.bpfnow supports the TCR (ECEF - earth centered, earth fixed) coordinate system.- Added option
--use_eb_vlrto allowreaders.lasto interpret an extra bytes VLR as if the file were version 1.4 even if it's using an earlier LAS version. readers.textadded options--headerand--skipto provide an alternative header line and to allow skipping lines before reading the header, respectively.writers.textnow supports the ability to specify individual dimension precision using a colon (':') and integer following the dimension name in the--orderoption.readers.numpyadds support for reading from Numpy (.npy) save files.pdal infonow provides the--enumerateoption. See the documentation for filters.stats for details.- Added a general option
--logtimingto cause log output to contain the elapsed time from the start of the program. (#1882)
Documentation
- Added a description of the Alpine Linux environment used for Travis and Docker.
- Updated the documentation for building PDAL on Windows.
- Added an example of how to loop files with PowerShell.
- Corrected output shown in the documentation for
filters.hexbin. - Reorganized the stages landing page to make it easier to find. (#1880)
New stages
readers.greyhound- Allows reading points from a source using the greyhound protocol.filters.neighborclassifier- Re-classifies points based on the classification of neighboring points.
Removed stages
filters.computerange- Usefilters.pythonto simulate the functionality.
Bug fixes
filters.rangenow always rejects NaN values as out of range.- Changed the default
--timegapvalue inreaders.mbiofrom 0 to 1 second. - Fixed a bug when reading pointers from metadata on some OSX systems.
- Fixed a problem in
pdal translatewhere overriding a reader or writer from a pipeline wouldn't create the proper pipeline. - Fixed a problem where multiple LASzip VLRs would get written to LAS files (#1726).
- Fixed an installation problem with the Python extension.
- Fixed a bug in
writers.tindexthat could cause a crash if the output file wasn't LAS. - Fixed JSON output from
filters.hexbinwhen density/area can't be calculated. - Fixed a problem where output might be tagged with the wrong SRS when using
filters.reprojectionin stream mode. (#1877) - PDAL_DRIVER_PATH would be improperly parsed on Windows systems when the path contained colons. Windows builds now use the semicolon as the path separator. (#1889)
- Convert NaN and infinite double values to proper strings for output as JSON.
- Synthetic, keypoint and withheld flags are now added to the classification dimension for version 1.0 - 1.3 files in
readers.las. - Support missed case supporting points with color but no density in
filters.poisson. - Throw an error if the input file can't be opened in
readers.ply. - The
--stdinoption forkernels.tindexdidn't work. Now it does. Various other fixes were made. writers.gdalnow throws an error if an attempt is made to write an output file with no points available.- A build error that would be generated if lazsip was not found, even if it was not requested, has been resolved.
- A build error that would be generated if Python was found but not requested has been resolved.
- PDAL defaults to using normal CMake interface linking (#1890)
- Fixed an issue where dimensions from
readers.pcdandwriters.pcdcould get confused with dimensions fromreaders.sbetandwriters.sbet. - Fixed index computation in
filters.voxelcentroidnearestneighborandfilters.voxelcenternearestneighbor#1901 - Fixed libdl linking #1900