PDAL

PDAL is Point Data Abstraction Library. GDAL for point cloud data.

OTHER License

Stars
1.1K
Committers
157

Bot releases are hidden (Show)

PDAL - 2.7.1 Latest Release

Published by hobu 7 months ago

Bug Fixes

  • Add more logging to readers.stac #4353
  • Don't break strict aliasing rules #4361
  • Don't do readers.las ready() processing if there are no points #4363
  • readers.arrow and writers.arrow do not require GDAL CMake dependency #4365
  • Add writers.tiledb duplicate points config #4370
  • use CONFIG CMake find_package for filters.arrow and readers.draco/writers.draco #4369
  • Don't attempt tree isolation for isolated point in filters.litree #4373

Changelog since 2.7.0: https://github.com/PDAL/PDAL/compare/2.7.0...2.7.1

Changelog between 2.7.0 and 2.7.1: https://github.com/PDAL/PDAL/compare/2.7.1...2.7-maintenance

PDAL - 2.7.0

Published by hobu 7 months ago

New Stages

Enhancements

Bug Fixes

Build

General

Arbiter

TileDB

Docs

New Contributors

Full Changelog: https://github.com/PDAL/PDAL/compare/2.6.0...2.7.0

PDAL - 2.6.3

Published by hobu 9 months ago

Bug Fixes

  • Fix LAS day of year calculation #4296 #4295
  • Add tiledb metadata fields #4293
  • Fix 'Edit on Github' link #4290 (thanks @bramton!)
  • Use correct location for bash completion files #4314 (thanks @bramton!)
  • Update filters.groupby documentation #4303 (thanks @bramton!)
  • Fixed speling error in filters.litree documentation #4316 (thanks @Keenan-Nicholson!)
  • Fix getting/setting PDRF in LasHeader #4286 (thanks @AlexBass05!)
  • Update hausdorff.rst #4285 (thanks @jf-geo!)
  • Update PDAL workshop #4283 (thanks @j9ac9k!)
  • Fixed logic of srs bounds filtering for readers.stac #4300 (thanks @kylemann16!)

Changelog since 2.6.2: https://github.com/PDAL/PDAL/compare/2.6.2...2.6.3

Changelog between 2.6.0 and 2.6.3: https://github.com/PDAL/PDAL/compare/2.6.3...2.6-maintenance

PDAL - 2.6.2

Published by hobu 10 months ago

Bug Fixes

  • Fix xmlErrorPtr by new libxml2 API (thanks @aimixsaka!) #4257
  • Add OWNER_WRITE permissions to installs #4259
  • default to WITH_BACKTRACE=OFF #4262
  • Fix segfault in readers.stac in some situations #4266
  • Remove remaining pdal_util library refrences #4267
  • Add cell_order and tile_order options to writers.tiledb #4274
  • Fix time tile check for missing tile warning in writers.tiledb #4276
  • Update TileDB domain in writers.tiledb #4277

Changelog since 2.6.1: https://github.com/PDAL/PDAL/compare/2.6.1...2.6.2

Changelog between 2.6.0 and 2.6.2: https://github.com/PDAL/PDAL/compare/2.6.2...2.6-maintenance

PDAL - 2.6.1

Published by hobu 11 months ago

Bug Fixes

  • Arbiter S3 endpoints #4254
  • Arbiter cout lint #4253
  • Correct counts for readers.las remote files #4251 #4249
  • writers.copc missing node metadata for very small files #4246
  • Fix position calculation for bounds parsing #4240
  • Add a streaming tutorial #4238 (Thanks @oleg-alexandrov!)
  • Allow PDAL to link curl target #4235
  • Add and fix TileDB options #4233
  • readers.stac AddDimensions support #4222
  • Fix significant readers.stac performance regression #4220
  • Set while condition in filters.litree #4218 (thanks @fnands!)

Changelog since 2.6.0: https://github.com/PDAL/PDAL/compare/2.6.0...2.6.1

Changelog between 2.6.0 and 2.6.1: https://github.com/PDAL/PDAL/compare/2.6.0...2.6-maintenance

PDAL - 2.6.0

Published by hobu about 1 year ago

Changes of Note

New Stages

Enhancements

Bug Fixes

TileDB

Docs

New Contributors

Full Changelog: https://github.com/PDAL/PDAL/compare/2.5.0...2.6.0

PDAL - 2.5.6

Published by hobu about 1 year ago

Bug Fixes

  • Address header scaling issues in writers.copc and writers.las #4088 #4099
  • Fix gcc12 eigen warnings #4102
  • Update arbiter bundle for IMDSv2 AWS improvements #4089
  • More workshop instruction improvements #4096 (Thanks @ibell13 !)

Changelog since 2.5.5: https://github.com/PDAL/PDAL/compare/2.5.5...2.5.6

Changelog between 2.5.6 and 2.5.0: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.5

Published by hobu over 1 year ago

Bug Fixes

  • Add .vpc to recognized extensions for readers.stac #4072 #4073
  • Provide S3 IMDS V2 auth fallback #4070
  • Add Roll and Pitch per-point output to readers.rxp
  • Support remote readers.bpf and writers.bpf with stage-n-push support
  • Significant PDAL Workshop documentation updates #4061 (Thanks @GannonGuess and @TomTheTonk!)

Changelog since 2.5.4: https://github.com/PDAL/PDAL/compare/2.5.4...2.5.5

Changelog between 2.5.5 and 2.5.0: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.4

Published by hobu over 1 year ago

Bug Fixes

  • Random shuffling of pdal::PointRef does not work correctly on some compilers. For PDAL the impact was limited to std::stable_sort. It has been addressed by #4065 and #4058 with possibly breaking changes coming in 2.6.0
  • readers.ntif didn't support remote files #4025
  • standalone builds of readers.rxp did not work #4060
  • Utils::trimLeading and Utils:trimTrailing might not have worked correctly on some compilers #4055
  • Remove unneeded readers.icebridge heap allocation that was being improperly freed #4050
  • Fixup mingw builds #4044 (thanks @dg0yt!)
  • <cstdint> now needed for E57 library (thanks @cbrl!) #4039
  • Rethrow arbiter::ArbiterError which was being swallowed in openFile #4033
  • Prevent invalid const_cast so GDAL 3.7.0 works (thanks @jgrocha and @dg0yt!) #4030
  • Arbiter S3 driver IMDSv2 support did not work #4063

Changelog since 2.5.3: https://github.com/PDAL/PDAL/compare/2.5.3...2.5.4

Changelog between 2.5.4 and 2.5.0: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.3

Published by hobu over 1 year ago

Bug Fixes

  • pdal info --metadata was ill-formed #4004 #4002
  • Check that the first VLR userId is copc #4006
  • Check if directory exists before listing it #4007
  • Check for out of bounds for VoxelCentroidNearestNeighborFilter #4015
  • Don't open readers.nitf streams multiple times if already open #4017
  • Harden pdal::Geometry from invalid references #4018
  • Handle 0 points in filters.greedyprojection #4022

Changelog since 2.5.2: https://github.com/PDAL/PDAL/compare/2.5.2...2.5.3

Changelog between 2.5.3 and 2.5.0: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.2

Published by hobu over 1 year ago

Enhancements

  • Provided allow_empty option to readers.gdal #3984

Bug Fixes

  • filters.trajectory windows compilation fixes #3976
  • Fix streaming support on readers.tindex #3992
  • Fix streaming support on readers.stac #3989
  • Update simple.laz test file from LAZ 1.0 to LAZ 1.3 #3978
  • Do not encode -std=c++11 into pdal-config #3983
  • Draco 1.5.6 is functionally required due to CMake CONFIG #3982

Changelog since 2.5.1: https://github.com/PDAL/PDAL/compare/2.5.1...2.5.2

Changelog between 2.5.2 and 2.5.0: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.1

Published by hobu over 1 year ago

Enhancements

  • Optional debug in filters.csf to improve performance #3952 (thanks @n4z4m3!)
  • Connection classes for readers.copc and readers.ept consolidated (#3962)

Bug Fixes

  • Numerous readers.stac fixes #3942
  • Abseil should not be required or bring in re2 #3944)
  • Fix bounds comparisons in readers.stac #3953
  • Fix compilation on Mingw #3957 (Thanks @mmuetzel!)
  • Fix Point-in-Polygon tests where endpoint lies exactly on a grid intersection #3959
  • Fix S3 data source reading #3961
  • Fix handling of spaces in LAS headers #3967

Full Changelog: https://github.com/PDAL/PDAL/compare/2.5.0...2.5-maintenance

PDAL - 2.5.0

Published by hobu almost 2 years ago

Changes of Note

  • TileDB 2.3 now required for TileDB read/write support (#3722)
  • readers.fbx and readers.mrsid have been removed (#3841)
  • Make PDAL Locale agnostic (#3873) Thanks @jjimenezshaw!
  • Non-public symbols are now hidden on unix (#3931) Thanks @abellgithub!
  • PipelineExecutor class is now deprecated (#3937)

New Stages

  • readers.ptx (Thanks @dbrookes96!) supports reading the PTX format(#3718)
  • writers.fbi and readers.fbi supports TerraSolid binary format(#3822) (Thanks @alavenant!)
  • filters.trajectory estimates trajectory for certain data configurations (#3743)
  • filters.geomdistance computes the (2D) distance of points to a given geometry (#3891)
  • readers.stac dereferences STAC Catalogs to read point cloud data (#3915)
  • filters.expression uses the same syntax as where to filter data (#3930)

Enhancements

  • boundary_json GeoJSON added to pdal info output (#3750)
  • Sort COPC output by GPSTime if available (#3747)
  • filters.zsmooth enabled by default (#3785)
  • update googletest to 1.12.1 by in (#3917)
  • Support GDAL 64bit integer types if they are defined (#3795)
  • PROJJSON output now added to pdal info output (#3780)
  • QuickInfo now supports adding Metadata (#3894)
  • stage-n-push support for writers.copc (#3790)
  • pdal translate will not overwrite data by default (#3794)
  • 'bounds' option to limit filters.overlay usage (#3815)
  • wmain usage of pdal comand for wide filename character support on Windows (#3824)
  • binmode added to writers.gdal to count only points inside pixels (#3840)
  • attr_dims and ogr_options options to writers.ogr (#3837) Thanks @rcoup!
  • Add metadata to readers.las QuickInfo (#3897)
  • writers.copc.threads option (#3910)
  • Support spaces in dimension names (#3907)
  • writers.copc.a_srs option (#3908)
  • readers.copc outputs copc_info metadata on read (#3936)

Bug Fixes

  • UTF-16 filename conversion and multibyte character filename support on windows (#3761) (#3764) (#3757)
  • Invalid LogPtr usage in filters.normal in some scenarios (#3781)
  • 'count' metadata added to readers.bpf (#3744)
  • readers.ply QuickInfo support (#3705)
  • Use source separator as output separator when file globbing (#3755)
  • Support non-ASCII filenames on Windows for FileUtils::mapFile (#3757)
  • Strip characters after NULL for VLR description/userID (#3773)
  • Better integer support in readers.pts (#3754)
  • Remove significant laz-perf memory leak (#3811)
  • readers.las.nosrs not working correctly (#3818)
  • Arbiter now loads drivers on demand (#3831)
  • openscenegraph reader was not compiling (#3842)
  • JSON fixes (#3845) (#3906)
  • Fix duplicate dimension detection in readers.text (#3859)
  • writers.ogr crs bug (#3863) Thanks @rcoup!
  • writers.ogr don't set OGR FID (#3865) Thanks @rcoup!
  • writers.las not preserving classFlags (#3879) Thanks @craigds!
  • Screen width computation (#3893)
  • Make writers.ogr use transactions if they are available (#3898) Thanks @wonder-sk
  • Limit stream resets in readers.las (#3900)
  • Make readers.copc.threads respect explicit thread count (#3913)
  • Extra bytes support in writers.copc was borken (#3912)
  • readers.copc was reading past its buffer (#3918)
  • writers.draco was reading incorrect dimension size (#3919)
  • Low precision WKT export from filters.hexbin (#3922)
  • Close HTTP pools and connections in readers.ept and readers.copc (#3920)
  • handle CURL_VERSION_ASYNCHDNS in Arbiter (#3926)
  • filters.overlay filtering geometries not reprojecting as expected (#3940) Thanks @wonder-sk!

New Contributors

Full Changelog: https://github.com/PDAL/PDAL/compare/2.4.0...2.5.0

PDAL - 2.4.3

Published by hobu about 2 years ago

Changes of Note

  • A significant memory leak in LAZ decompression was fixed #3814
  • PDAL's website is migrating to @readthedocs Thanks @j9ac9k! #3782

Enhancements

  • writers.copc remote file writing was added #3819
  • filters.overlay bounds option added #3815
  • laz-perf vendored code updated to 3.1.0 release #3821
  • Arbiter credentials now support profiles #3792

Bug Fixes

  • Significant LAZ decompression memory leak #3814
  • filters.normal was using an invalid LogPtr #3781
  • readers.las.nosrs did not work correctly #3818
  • Windows unicode filename fixes and enhancements #3824
  • No longer warn when encountering GDAL 64bit integer #3802
  • Export pdal::StageExtensions::defaultReader #3806
PDAL - 2.4.2

Published by hobu over 2 years ago

2.4.2

Changes of Note

None

Enhancements

  • #3769 workshop documentation updates (Thanks @j9ac9k!)

Bug Fixes

  • #3773 strips characters after null in metadata in LAS files.
PDAL - 2.4.1

Published by abellgithub over 2 years ago

Changes of Note

  • writers.copc now sorts chunks by GPStime, allowing better compression.
  • Various warnings for newer compilers have been eliminated.

Enhancements

  • Errors from the geotiff library are now directed to the console (standard error).
  • readers.bpf now adds a count of the number of points to metadata.
  • The pdal info command now always writes a GeoJSON metadata entry of the area boundary called boundary_json.

Bug Fixes

  • The pdal pipeline --pipeline-serialization command now maintains input directory separators. (#3574)
  • Better handling of UTF-8 -> UTF-16 filenames on Windows has been added. (#3756, #3760)
PDAL - 2.4.0

Published by abellgithub over 2 years ago

Changes of Note

  • A compiler that supports C++17 is now required to build PDAL or include PDAL headers in your code.
  • The PDAL_STATIC_BUILD cmake option has been removed. We do not support building PDAL as a static library, though it may work.
  • The behavior of readers.ept when specifying both bounds and polygon options has changed such that a point must pass both the filters independently in order to be accepted. (#3506)
  • readers.ept will now ignore the spatial reference on a clip region if the point source has no spatial reference. This behavior is consistent with filters.crop. (#3580)
  • readers.las and writers.las no longer support the laszip library. Both stages now use the lazperf library, which is embedded into the PDAL library. The compression option is still accepted in readers.las, but is ignored. The compression option on writers.las still accepts the LASZIP and LAZPERF , but those values are treated the same as TRUE.
  • PDAL now builds on MinGW, though future support depends on community contributions.
  • Source code supporting las and ept has been moved to a private namespace.

New Stages

  • readers.copc and writers.copc have been added to support reading and writing of COPC files.
  • readers.smrmsg was added to read from post-processed MMS accuracy files to be used with SBET data.

Enhancements

  • The performance of filters.litree has been improved. (#3518)
  • Support for time query/storage in readers.tiledb and writers.tiledb has been added. (#3495)
  • Added various remote access support (AWS Fargate, AWS session token support, Azure SAS token support). (#3496)
  • An error is now reported when reading a pipeline with multiple leaf nodes.
  • Support for beam direction and origin in readers.rxp has been added. (#3565)
  • Add a cmake macro PDAL_CREATE_PLUGIN that may simplify the creation of some PDAL plugin stages. (#3588)
  • writers.null is now streamable. (#3591)
  • Added support for multiple output files in writers.ply (#3617 - Thanks @longhuan2018)
  • filters.csf now permits selective output of debugging/analysis files. (#3488)
  • Comments in JSON input files (pipelines) are now supported. (#3670)
  • Added support in writers.las for creating VLRs from metadata. (#3683)
  • Added query support origin query in version 1.1 of EPT. (#3505)

Bug Fixes

  • Fix a bug in FileUtils::unmapFile() where attempting to unmap a file that wasn't mapped would crash on Windows. (#3606)
  • Make sure UUID is initialized to NULL. (#3483)
  • Catch bounds exceptions in Metadata handling. (#3485)
  • Support writing metadata in writers.gdal. Add raster metadata to PDAL metadata when using readers.gdal. (#3479)
  • Fix potential error in computing mean-square error computation for filters.icp. (#3471)
  • Fix crash in writers.pcd when the stage is run twice. (#3548)
  • Prevent pipeline from being read more than once when using PipelineExecutor. (#3587)
  • Initialize m_curCount in writers.ogr to prevent a crash in some situations. (#3611)
  • Fix an off-by-one error in Extractor::get(std::string& s, size_t size). (#3650)
  • Fix a bug in lazperf compression where a crash could occur when writing a 0-point file. (#3652)
  • Fix an error introduced in PDAL 2.2 where writers.gltf would create invalid output. (#3694)
  • Address a clarification in the LAS specification such that header min/max values should be set to 0 in a 0-point file. (#3653)
PDAL - 2.3.0

Published by abellgithub over 3 years ago

Changes of Note

  • GDAL version 3 is now required. (#3428)
  • readers.tiledb now defaults to unordered reads. (#3267)
  • readers.tiledb now supports Hilbert ordering. (#3345)
  • writers.pcd now writes 32-bit floating point for X, Y and Z by default. (#3286)
  • The GDAL error handler is redirected to its destination when PDAL logging stops. (#3244)

New Command

  • Added pdal eval to print a classification report from two input point clouds. (#3346)
  • Added pdal chamfer to calculate the chamfer distance, a metric used to quantify the similarity of two point clouds by evaluating the mean square distance of nearest neighbor correspondences between clouds.

New Stages

  • filters.gpstimeconvert allows conversion between the various GPS time standards.
  • filters.teaser uses the truncated least squares estimation and semidefinite relaxation (TEASER) algorithm to create a rigid transformation between two datasets.
  • readers.draco reads the Draco format.
  • writers.draco writes the Draco format.
  • filters.zsmooth sets a dimension to a value determined by nearby points. (#3408)

Removed Stages

  • readers.oci
  • writers.oci

Enhancements

  • pdal pipeline and pdal translate now support a --dims option that allows the stored dimensions to be easily controlled. (#3310)
  • readers.las now reports and terminates on some previously undetected LAS file errors. (#3226)
  • Added override_srs and default_srs options to readers.gdal to allow a raster with only NODATA to have an SRS. (#3271)
  • Support was added for MSVC 2019. (#3292)
  • Added text output of GeoTIFF keys to metadata when reading LAS data. (#3299)
  • Added programmatic support to merge summary statistics. (#3321)
  • Extra dimension names in a LAS file containing characters deemed illegal by PDAL are now converted by default to legal PDAL dimension names. (#3325)
  • The sample filter is now streamable. (#3275)
  • Added the --error_on_failure option to filters.reprojection to allow the program to terminate if a projection operation fails. (#3316)
  • Added the --start option to readers.las to allow skipping some number of points. (#3313)
  • Set the `ACCEPT_ENCODING' curl option to enable automatic decompression of HTTP replies.
  • Improve error messages for LAS where a specified point format is not permitted. (#3324)
  • Add the --where option to all writers. (#3319)
  • Added a --nosrs option to readers.las to avoid reading the SRS information. (#3441)
  • Improved performance of readers.ept in stream mode. (#3331)

Bug Fixes

  • readers.tindex could improperly filter based on a provided polygon. This has been fixed (#3236)
  • A bug in filters.eigenvalues was fixed where improper eigenvalues would be returned if the minimum number of neighbors wasn't satisfied. (#3245)
  • A regression in filters.csf where an extra loop would substantially slow processing has been fixed. (#3248)
  • An infinite loop could occur in readers.ept if there was no data to be read. This has been fixed. (#3268)
  • A situation where readers.ept would attempt to transform an invalid polygon has been fixed. (#3276)
  • readers.obj is now properly closes its input file at the end of processing. (#3294)
  • A bug in auto-scaling/auto-offset has been fixed when the variance of the data is 0. (#3304)
  • Trailing NULL bytes are now stripped from WKT when read via readers.las. (#3332)
  • A crash that could occur in fitlers.hag if there were no points to process has been fixed. (#3343)
  • The dimbuilder utility now sets the exit code as appropriate. (#3353)
  • The pdal program now sets an error code if no command is provided. (#3354)
  • Eliminate some small memory leaks when using XMLSchema. (#3368)
  • A check was added for a too-large grid in writers.gdal. (#3383)
  • filters.colorization now properly ignores points outside the input raster in streaming mode. (#3391)
  • A bug in handling HTTP Content-Length headers of various case has been fixed.
  • A bug in the order of reading the min/max values for readers.bpf version 1 has been fixed. (#3394)
  • Fixed a bug in readers.i3s where a clip region might not properly find all the intersecting points. (#3397)
  • Replace invalid characters from EPT dimension names to make them valid for PDAL. (#3400)
  • Fixed a problem writing LAZ scan angle outside of the range [-90, 90] for LAZ 1.4. (#3288)
  • Allow LAS 1.4 to use GeoTIFF SRS for point data record format 0-5. (#3242)
  • Set the LAS extended VLR offset to zero if there are no extended VLRs for LAS 1.4. (#3407)
  • Add precision for options taking doubles. (#3235)
  • Detect filter-only pipelines so applications don't crash with their use. (#3233)
  • Fix mapping of large files on Windows NTFS. (#3282)
  • Fix reading of PCD files with Linux-style line endings on Windows. (#3424)
  • filters.fps now returns all points if input contains fewer points than requested. (#3447)
  • filters.head now returns the specified number of points for all input PointViews in standard mode. (#3448)
PDAL - 2.2.0

Published by abellgithub about 4 years ago

Changes of Note

  • The Zstandard compression library is no longer required in order to build PDAL.
  • The Ubuntu conda image now installs all of PDAL under /usr.
  • The default type of the ClusterID dimension has changed from uint64_t to int64_t.
  • Most operations now store data using ColumnPointTable, which stores data in arrays of dimensions, rather than arrays of point data. This can improve the performance of some operations substantially. Generally, this change should not be noticeable to users.
  • Normal refinement (refine option) in filters.normal is now off by default. (#3133)
  • All filters now accept a where option to allow points to skip the filters. (#3118)
  • PDAL now searches for plugins in the same directory containing the PDAL library. (#3181)

API User Notes

  • ColumnPointTable is now the default PDAL point table. If you have written code that expects row-major data rather than column-major data, be sure to use RowPointTable instead.

New Stages

  • filters.lloydkmeans labels points with a ClusterID based on Lloyd's algorithm. (#3075)
  • filters.litree provides segmentation of points into trees and non-trees. (#3111)
  • filters.faceraster creates a raster from an existing triangulation. (#3152)
  • filters.optimalneighborhood computes the optimal number of neighbors and corresponding radii (#3180)
  • reader.obj allows reading of OBJ files.
  • writers.raster uses GDAL to write rasters created by PDAL filters. (#3228)

Removed Stages

  • filters.hag has been removed. Use filters.hag_dem, filter.hag_delaunay or filters.hag_nn instead.

Deprecated Stages

  • filters.ferry. Use the value option of filters.assign instead.
  • writers.oci. OCI support will be removed in a future release.
  • readers.oci. OCI support will be removed in a future release.

Enhancements

  • filters.colorinterp now provides the clamp option to force values to be in the range [min, max]. (#2729 - Thanks to Matt Csencsits)
  • Long options can now be specified on the command line without and equal sign ('=') separating the option name and value. (#3016)
  • Added seed option readers.faux in order to allow consistent generation of random data. (#3014)
  • Improvements have been made to cmake installation to better support downstream projects. (#2262)
  • Added color_vertices option to writers.gltf to allow writing of RGB and normals. (#3043 - Thanks to Emma Krantz)
  • Added classbits option to filters.smrf to specify points to be ignored by the SMRF algorithm. (#3055)
  • Delaunay triangulation performance has been improved on systems using libstdc++. (#3076)
  • filters.covariancefeatures now provides the options min_k and radius to support radius search of neighbors in addition to k-nearest. (#3083)
  • filters.cluster now provide the option is3d to support 2-dimensional clustering. (#3084)
  • filters.icp now emits a fully composed transformation matrix as metadata that can be provided to filters.transformation to modify point locations using a single operation. (#2939, #2962)
  • filters.eigenvalues added the options stride, radius and min_k to allow radius and strided neighbor searching. (#3132)
  • writers.las now accepts the filename key in the vlrs option to import VLR data from files. (#3146)
  • filters.transformation now provides the invert option to apply the inverse of the provided matrix. (#3126)
  • readers.ept now returns a clipped boundary in the summary to match the behavior of the point count. (#3168)
  • filters.head is now streamable.
  • readers.i3s is now streamable.
  • readers.slpk no longer expands the source file into a temporary directory.
  • filters.assign added the value option to allow standard expression-based conditional assignment of values.(#1468)
  • readers.tiledb and writers.tiledb now support TileDB version 2 and duplicate points when using version 2 of TileDB. (#3030, #3047)

Bug Fixes

  • A problem where the classifications of voting points were being changed in filters.neighborclassifier has been fixed. (#3210)
  • Fixed an issue where NITF-wrapped LAS files may fail to open (#3010)
  • Reading and writing of E57 files over 2GB in size on Windows has been fixed. (#3000)
  • Fixed various compilations issues in filters.matlab. (#3013)
  • Added better handling for some cases of coordinate transformation failure. (#3009)
  • An error in calculating position for some data in filters.smrf has been fixed. (#3069)
  • An error in calculating neighbors for isolated points in filters.smrf has been fixed. (#3071)
  • readers.las now creates dimensions ScanChannel and ClassFlags only when reading point formats 6-10. It used to create them for any version 1.4 file. (#3092)
  • filters.poisson now throws exceptions instead of calling exit() when it encounters a fatal error. (#3094)
  • Errors that could occur in gdal::Raster::statistics() are now returned to the caller, rather than resulting in a crash. (#3097)
  • pdal tindex now ensures that traditional GIS axis order is used. (#3099)
  • readers.tindex now uses the file SRS rather than the tile index column SRS unless overridden by the srs_column option. (#3012)
  • An error in readers.ept that could create bad data when both the bounds and addons options were specified has been fixed. (#3054)
  • filters.hag_nn and filter.hag_delaunay now log an error rather than terminate if no ground points are found. (#3112)
  • An error in reporting point count was when the number of points exceeded the maximum 32-bit value in readers.ept has been fixed. (#3120)
  • pdal tindex now stores WKT instead of EPSG codes to handle vertical SRS instances. (#3100)
  • A bug in filters.crop that didn't properly handle 2D cropping has been fixed. (#3115)
  • readers.text now properly handles quoted dimension names in the header. (#2201)
  • Windows-style directory separators are now properly handled in cases using relative filenames. (#2936)
  • An exception reading E57 points with a transform has been fixed. (#3163)
  • Fix a failure in readers.pcd when preview() was called before execute(). (#3169)
  • The compression level for writers.tiledb is now properly set to 7. (#3198)
  • An issue where filters.neighborclassifier would modify classifications as it calculated them has been fixed. (#3210)
  • An extra comma was written using readers.text when creating GEOJson output. This has been fixed. (#3204)
PDAL - 2.1.0

Published by hobu over 4 years ago

Changes of Note

  • The X, Y and Z dimensions are now always stored internally as double-precision floating point. This was normally case previously, but it is now enforced. (#2892)
  • The interface include file directory is now set for downstream projects using cmake, eliminating the need to explicitly set the location of PDAL header files. (#2262)
  • PDAL is now always built using the arbiter library, which is included in the source distribution.
  • filters.python has been removed from the primary PDAL library and is part of the PDAL python library.
  • When the bounds option of filters.crop represents a 3D volume, the filter now does 3D cropping, rather than 2D cropping as in previous releases. (#2904)
  • writers.ply no longer accepts default as a valid value for the storage_mode option. (#2385)

API User Notes

  • Support has been added for range-based iteration of PointView objects. The dereferenced iterator yields a PointRef object.
  • We are now providing private header files as part of the distribution. The API exposed by these files may change or be eliminated in a future release. Use of these files may require the installation of the header files from other packages. The symbols for some of these functions may not be public, especially on Windows.
  • There are now enumerations for classifications (pdal::ClassLabel).
  • N-dimensional KD-tree support has been added.
  • There are some small API changes (const changes, for example), but almost all code using the PDAL library should build without modification.
  • We do not guarantee ABI compatibility, though in most cases this release should be backward compatible.

New Stages

  • filters.voxeldownsize provides streamed support for voxel filtering. (#2699 - Thanks Helix.re!)
  • filters.separatescanline splits input into separate output point views based on associated scan lines. (#2724 - Thanks Guilhem Villemin)
  • filters.farthestpointsampling add points from the input to the output one-at-a-time by selecting the point in the input that is the furthest from any point in the output. (#2761)
  • filters.skewnessbalancing classifies ground points using the method of Bartels. (#2740)
  • filters.dbscan provides density-based clustering. (#2748)
  • filters.csf provides ground classification of points using the cloth simulation method of Zhang. (#2765)
  • readers.hdf provides generic support for many HDF files. (#2934)
  • filters.hag_nn, filters.hag_delaunay and filters.hag_dem have been created to replace filters.hag. (#2886)

Deprecated Stages

  • filters.hag is deprecated and will be removed in a future release. Use filters.hag_nn, filters.hag_delaunay and filters.hag_dem instead.

Removed Stages

  • readers.sqlite and writers.sqlite

Enhancements

  • readers.ept now supports the headers and query options to be forwarded to remote endpoints. (#2690)
  • readers.ept now supports multipolygons for point filtering. (#2758)
  • readers.ept now supports asynchronous operation when streaming. (#2772)
  • readers.ept now supports filtering via OGR queries. (#2295)
  • writers.ept now supports Zstandard compression. (#2561)
  • writers.gdal now supports a power option that can be used to impact the output of inverse distance weighting mode. (#2550)
  • Eliminated an error as exception in readers.e57 in order to improve performance. (#2721)
  • readers.rxp now supports reading the EdgeOfFlightLine dimension. (#2367)
  • filters.randomize now has a seed option to initialize the random number generator. (#2736)
  • filters.rdb and filters.rxp now support fetching data from remote sources.
  • filters.hexbin now has the option smooth, to smooth generated geometry, and preserve_topology that forces creation of valid geometry during the smoothing operation.
  • filters.transformation now has a spatialreference option to set the spatial reference of output data. (#2796)
  • filters.overlay now uses the same point-in-polygon algorithm used by filters.crop. (#2812)
  • writers.tiledb now supports TileDB attribute filters. (#2828)
  • Output from pdal translate can now be directed to the null device by using either devnull or /dev/null as the output filename. (#2835)
  • filters.transformation now supports providing a filename as the matrix option if the referenced file contains a matrix that matches the format supported inline. (#2856)
  • writers.las now allows specification of a filesource_id as an option. (#2862)
  • readers.text now handles quoted dimension names in a header line. (#2201)
  • pdal info now reports the reader used for a file, the current time and the size of the file. (#2900)
  • filters.reprojection now supports the options in_axis_ordering and out_axis_ordering to allow the matching feature in GDAL 3+ be accessed. (#2916)
  • filters.normal added the refine option to re-orient normal vectors using a minimum spanning tree. (#2860)

Bug Fixes

  • readers.e57 and writers.e57 now build cleanly on Windows.
  • writers.pgpointcloud no longer uses the wrong schema when creating a new database and there is an existing database using the same SRS. (#2692)
  • Fixed a potential crash when destroying logs on shutdown. (#2702)
  • Fixed a case where filters.voxelcentroidnearestneighbor could return points for a voxel that weren't actually in the voxel. (#2703)
  • Fixed a typo in the alternate names of the NormalY dimension. (#2723)
  • filters.divider now handles empty input. (#2727)
  • An error in calculating variance, standard deviation, skewness and kurtosis has been fixed in filters.stats. (#2790)
  • An error where a list of dimensions would be expanded improperly in writers.ply under certain API uses. (#2791)
  • Crashes in filters using the delaunay triangulation code have been fixed. (#2805)
  • writers.pcd now always writes dimension names as lowercase. (#2789)
  • The extended VLR offset was not being written to LAS files. This has been fixed. (#2823)
  • Fixed some small memory leaks.
  • filters.elm now works properly when input is an empty point view. (#2921)
  • filters.pmf now classifies all points either as "Ground" or "Unclassified". Points are no longer marked as "Created, Never Classified". (#2898)
  • LAS VLRs specified in a pipeline are now properly handled by writers.las. (#2937)
  • When not building with LASzip or LAZperf, writers.las would fail to properly set a spatial reference in some cases. This has been fixed.
  • writers.las now always uses WKT version 1. In the previous release it may have used WKT version 2 in some cases. (#2943)
  • A bug in pdal tile where the input spatial reference wasn't set on the output has been fixed. (#2976)