Recent Releases of pdal
pdal - 2.9.2
What's Changed
- Properly namespace arbiter within pdal's namespace by @hobu in https://github.com/PDAL/PDAL/pull/4805
- Make sure to Flush() in VSIStreamBuffer::sync() by @hobu in https://github.com/PDAL/PDAL/pull/4808
- pdal::StageWrapper::run needs to execute for empty readers by @hobu in https://github.com/PDAL/PDAL/pull/4809
Full Changelog: https://github.com/PDAL/PDAL/compare/2.9.1...2.9.2
- C++
Published by github-actions[bot] 6 months ago
pdal - 2.9.1
What's Changed
- Fix sorting behavior on Windows by @abellgithub in https://github.com/PDAL/PDAL/pull/4788
- Fix multi-line comment warning by @dg0yt in https://github.com/PDAL/PDAL/pull/4744
- Fix build without googletest when WITH_TESTS=OFF by @aleixpol in https://github.com/PDAL/PDAL/pull/4753
- Fix build issue on gentoo by @t0b3 in https://github.com/PDAL/PDAL/pull/4747
- Consolidate dumpSummary of QuickInfo into a method by @hobu in https://github.com/PDAL/PDAL/pull/4758
- Fix typos and missing inputs in some filter docs by @trns1997 in https://github.com/PDAL/PDAL/pull/4771
- Update ArrowWriter.cpp to work with Arrow 21.0.0 by @amoeba in https://github.com/PDAL/PDAL/pull/4773 and https://github.com/PDAL/PDAL/pull/4777
- Protect some filters against empty views by @hobu in https://github.com/PDAL/PDAL/pull/4780
- Use namespace-qualified name for spz library. by @hobu in https://github.com/PDAL/PDAL/pull/4787
- Add Radius assign filter by @leavauchier in https://github.com/PDAL/PDAL/pull/4232
- Fix #4733 to correct docs of writers.pcd by @hobu in https://github.com/PDAL/PDAL/pull/4795
- Re-vendor'd gtest by @abellgithub in https://github.com/PDAL/PDAL/pull/4802
Full Changelog: https://github.com/PDAL/PDAL/compare/2.9.0...2.9.1
- C++
Published by github-actions[bot] 6 months ago
pdal - 2.9.0
Changes of Note
GDAL VSI Support
@normanb added support for GDAL VSI in #4647. It is now possible to use VSI to control access to remote content. Any /vsi-prefixed file path will go through GDAL's VSI layer.
pdal info \
/vsicurl/https://github.com/PDAL/data/raw/refs/heads/main/autzen/autzen-classified.copc.laz \
--readers.copc.resolution=1000
FileSpec Support
@trns1997 and @ibell13 added support for "FileSpec" in #4633 and #4625. FileSpec allows you to add a JSON node with filename, headers, and query members to control access to remote content. FileSpec uses non-VSI remote file access, so any http:// or s3:// -prefixed URLs will use this access system.
[
{
"type": "readers.copc",
"filename": {
"path": "https://some/remote/file.laz",
"headers": {
"headerkey": "headerval"
},
"query": {
"querykey": "queryval"
}
}
}
]
nlohmann Public API removal
https://github.com/nlohmann/json unfortunately changed its primary data type and broke the usage pattern that PDAL and others had been using to forward declare and use it. Initially reported by @jgrocha in #4706, it was decided to completely remove nlohmann from PDAL's public API to prevent downstream PDAL users compilation from breaking in the future when they are also using nlohmann in their APIs. See (#4721, #4722, #4723, #4724, #4725, #4727, #4728, #4731) for details.
New Stages
- Add
writers.spzandreaders.spz(open 3DGS format from Niantic) by @ibell13 in https://github.com/PDAL/PDAL/pull/4653 - Add
filters.supervoxelstage by @bramton in https://github.com/PDAL/PDAL/pull/4735
New Features and Enhancements
- Multi-thread support, where query, and new options for
pdal tindexby @ibell13 in https://github.com/PDAL/PDAL/pull/4531 - FileSpec support for
readers.tindexandreaders.stacby @ibell13 in https://github.com/PDAL/PDAL/pull/4738 - Extend
filters.gpstimeconvertto handle day seconds. by @gui2dev in https://github.com/PDAL/PDAL/pull/4562 - Add
filters.expressionsupport for filtering NaN and LOWEST/HIGHEST by @abellgithub in https://github.com/PDAL/PDAL/pull/4561 - Add H3-based tessellation in
filters.hexbinby @ibell13 in https://github.com/PDAL/PDAL/pull/4506 - Enhance
filters.gpstimeconvertto make it streamable by @gui2dev in https://github.com/PDAL/PDAL/pull/4568 - Implement
filters.divider.expressionto break on expression by @hobu in https://github.com/PDAL/PDAL/pull/4689 - Support remote files in
readers.sbetby @trns1997 in https://github.com/PDAL/PDAL/pull/4684 - Add check for unsupported field lengths in
tindex createby @ibell13 in https://github.com/PDAL/PDAL/pull/4703 - Add common
ogroption argument tofilters.crop,readers.copc,readers.ept,readers.tindex, andfilters.geomdistancestages by @ibell13 in https://github.com/PDAL/PDAL/pull/4573 - Add
readers.stac.ogroption by @ibell13 in https://github.com/PDAL/PDAL/pull/4605 - Add glob functionality for local and remote files by @ibell13 in https://github.com/PDAL/PDAL/pull/4593
filters.hexbin: allow sampling with small point counts by @ibell13 in https://github.com/PDAL/PDAL/pull/4688- Warn user when we are downloading a lot of points in
readers.copcby @hobu in https://github.com/PDAL/PDAL/pull/4656
Behavior and Policy Updates
- Geometry.hpp: fix compatibility with GDAL master in debug mode by @rouault in https://github.com/PDAL/PDAL/pull/4668
- Improve
filters.covariancefeatureserror message by @chambbj in https://github.com/PDAL/PDAL/pull/4704 - Add some logging and error handling for
filters.covariancefeatureedge cases by @chambbj in https://github.com/PDAL/PDAL/pull/4707 - Add setAllowedDims() to PipelineManager. by @abellgithub in https://github.com/PDAL/PDAL/pull/4521
- Add
dimensionargument tofilters.neighborclassifier@abellgithub in https://github.com/PDAL/PDAL/pull/4535 - Update vendored delaunator for
filters.hag_delaunayby @abellgithub in https://github.com/PDAL/PDAL/pull/4695 tindex createSRS validation by @ibell13 in https://github.com/PDAL/PDAL/pull/4643- Handle null strings as tests for startsWith and endsWith. by @abellgithub in https://github.com/PDAL/PDAL/pull/4604
- Source tree cleanups by @hobu in https://github.com/PDAL/PDAL/pull/4615
- Define destructor in source file for CSFilter. by @abellgithub in https://github.com/PDAL/PDAL/pull/4620
- fix parquet file typo in tindex tutorial [ci skip] by @hobu in https://github.com/PDAL/PDAL/pull/4629
- Fix
filters.poissonunable to be run twice by @blenderfan in https://github.com/PDAL/PDAL/pull/4631 - Update include directives for LasReader and LasHeader in transition from libLAS to PDAL guide by @kasparas-k in https://github.com/PDAL/PDAL/pull/4634
- Fix bad calculation for max width cases. by @abellgithub in https://github.com/PDAL/PDAL/pull/4639
- Handle unsupported fields in
readers.arrowandwriters.arrowby @abellgithub in https://github.com/PDAL/PDAL/pull/4611 - Read
quickinfoorfilters.statsto create TileDB array by @normanb in https://github.com/PDAL/PDAL/pull/4641 - Geometry.hpp: fix compatibility with GDAL master in debug mode by @rouault in https://github.com/PDAL/PDAL/pull/4668
- AssumeRoleWithWebIdentity, fix race condition, and return data errors with Arbiter calls by @hobu in @rouault in https://github.com/PDAL/PDAL/pull/4739
Bug Fixes
- Fix
filters.geomdistanceinitialization and distance comparisons by @hobu in https://github.com/PDAL/PDAL/pull/4510 - Set correct CRS when outputting density surface in
filters.hexbinby @ibell13 in https://github.com/PDAL/PDAL/pull/4514 - Harden
readers.copcthread teardown on incomplete read. by @abellgithub in https://github.com/PDAL/PDAL/pull/4518 - Protect against including null strings when reading PDAL VLR types by @hobu in https://github.com/PDAL/PDAL/pull/4566
writers.pcdbinary mode fixes by @abellgithub in https://github.com/PDAL/PDAL/pull/4584- Fix where_merge == true when no views are returned. by @abellgithub in https://github.com/PDAL/PDAL/pull/4583
- Handle relative paths to STAC assets correctly by @ibell13 in https://github.com/PDAL/PDAL/pull/4603
- move
readers.copcthread pool init to initialize by @hobu in https://github.com/PDAL/PDAL/pull/4716 - Fix
readers.stactesting segfaults by @hobu in https://github.com/PDAL/PDAL/pull/4699 - Handle multiple extrabyte VLR definitions in
readers.lasandreaders.copcby @alavenant in https://github.com/PDAL/PDAL/pull/4577 - Fix floor values before cast when creating grid in
filters.voxelcentroidnearestneighborby @trns1997 in https://github.com/PDAL/PDAL/pull/4681 - Fixes the run-time "Missing value for positional argument 'filename' error in reading-streamer example by @Alex-Kent in https://github.com/PDAL/PDAL/pull/4649
- Guard against degenerate cases when computing delaunay triangulation. by @abellgithub in https://github.com/PDAL/PDAL/pull/4691
Compilation and Build
- Adapt standard gitignore for CMake files by @hobu in https://github.com/PDAL/PDAL/pull/4596
- Rename PDALDLL to PDALEXPORT (#2685) by @enno-t in https://github.com/PDAL/PDAL/pull/4528
- Adapt standard gitignore for CMake files by @hobu in https://github.com/PDAL/PDAL/pull/4596
- Use gdal_fwd.hpp when available for forward declarations by @hobu in https://github.com/PDAL/PDAL/pull/4608
- Add GDAL include dir to compile lasdump by @marisn in https://github.com/PDAL/PDAL/pull/4726
- Warn about JsonFwd.hpp usage by @hobu in https://github.com/PDAL/PDAL/pull/4731
- Add CMake
docstarget by @ibell13 in https://github.com/PDAL/PDAL/pull/4683 - Stop including
unless on WIN32 by @dg0yt in https://github.com/PDAL/PDAL/pull/4705 - Use modern CMake targets for required libraries by @hobu in https://github.com/PDAL/PDAL/pull/4666
- fix up alpine builds by @hobu in https://github.com/PDAL/PDAL/pull/4670
- Fix READTHEDOCSCANONICALURL by @hobu in https://github.com/PDAL/PDAL/pull/4675
- guard pragma usages only relevant to msvc by @hobu in https://github.com/PDAL/PDAL/pull/4680
- Support system-available GTest when found by @hobu in https://github.com/PDAL/PDAL/pull/4664
- de-vendor gtest by @hobu in https://github.com/PDAL/PDAL/pull/4679
- Fix build with GDAL 3.11.0 debug (
GDAL_DEBUG) by @dg0yt in https://github.com/PDAL/PDAL/pull/4697 - Fix compilation issue when using raster filter without stage runner by @blenderfan in https://github.com/PDAL/PDAL/pull/4646
- no need for PDAL_EXPORT in example code by @hobu in https://github.com/PDAL/PDAL/pull/4652
- switch GDALWriterTest to ENVI driver by @hobu in https://github.com/PDAL/PDAL/pull/4708
- Clean up some annoying warnings by @hobu in https://github.com/PDAL/PDAL/pull/4687
- Put arbiter forward declaration in the pdal namespace. by @abellgithub in https://github.com/PDAL/PDAL/pull/4710
Packaging
- Hexbin filter - remove "is H3" in OGR writer by @ibell13 in https://github.com/PDAL/PDAL/pull/4525
- Update community page with link to Matrix by @hobu in https://github.com/PDAL/PDAL/pull/4587
- Documentation updates by @hobu in https://github.com/PDAL/PDAL/pull/4527
- Add Pixi install instructions by @chambbj in https://github.com/PDAL/PDAL/pull/4565
- Rewicker the pixi config by @chambbj in https://github.com/PDAL/PDAL/pull/4571
- Detect path to conf.py and set JSON/CSV paths relative by @chambbj in https://github.com/PDAL/PDAL/pull/4560
- Isolate dependencies and tasks for doc generation and preview by @chambbj in https://github.com/PDAL/PDAL/pull/4579
- update community page with link to Matrix by @hobu in https://github.com/PDAL/PDAL/pull/4587
- Fix #4578, doc nit in readers.rdb by @hobu in https://github.com/PDAL/PDAL/pull/4590
- Local documentation build conveniences by @hobu in https://github.com/PDAL/PDAL/pull/4592
- add zenodo citation information by @hobu in https://github.com/PDAL/PDAL/pull/4610
- Fix typo in
filters.expressiondocs by @fnands in https://github.com/PDAL/PDAL/pull/4505 - Add new section to pipeline docs: "multiple writers and output types" by @j-tenny in https://github.com/PDAL/PDAL/pull/4609
- Fix references to PDAL/data repo by @ibell13 in https://github.com/PDAL/PDAL/pull/4602
pdal tindextutorial by @hobu in https://github.com/PDAL/PDAL/pull/4599- Add an example of using VSI by @oleg-alexandrov in https://github.com/PDAL/PDAL/pull/4714
- Update entwine.md by @DannyTheHeretic in https://github.com/PDAL/PDAL/pull/4717
- Validate checksums and version number in automated release CI by @hobu in https://github.com/PDAL/PDAL/pull/4564
- Adapt GDAL's backport bot by @hobu in https://github.com/PDAL/PDAL/pull/4580
- upload .conda files from conda package build CI by @hobu in https://github.com/PDAL/PDAL/pull/4624
New Contributors
- @enno-t made their first contribution in https://github.com/PDAL/PDAL/pull/4528
- @j-tenny made their first contribution in https://github.com/PDAL/PDAL/pull/4609
- @blenderfan made their first contribution in https://github.com/PDAL/PDAL/pull/4631
- @kasparas-k made their first contribution in https://github.com/PDAL/PDAL/pull/4634
- @Alex-Kent made their first contribution in https://github.com/PDAL/PDAL/pull/4649
- @DannyTheHeretic made their first contribution in https://github.com/PDAL/PDAL/pull/4717
- @marisn made their first contribution in https://github.com/PDAL/PDAL/pull/4726
- Changelog between 2.8.4 and 2.9.0 : https://github.com/PDAL/PDAL/compare/2.8.4...2.9.0
- Changelog between 2.8.0 and 2.9.0 : https://github.com/PDAL/PDAL/compare/2.8.0...2.9.0
- C++
Published by github-actions[bot] 9 months ago
pdal - 2.8.4
What's Changed
- Handle null strings as tests for startsWith and endsWith. by @hobu in https://github.com/PDAL/PDAL/pull/4606
- add zenodo citation information by @hobu in https://github.com/PDAL/PDAL/pull/4612
- Add new section to pipeline docs: "multiple writers and output types" by @hobu in https://github.com/PDAL/PDAL/pull/4613
- Use gdal_fwd.hpp when available for forward declarations by @hobu in https://github.com/PDAL/PDAL/pull/4614
- Source tree cleanups by @hobu in https://github.com/PDAL/PDAL/pull/4616
- fixes md5 link to 2.8.3 by @smellman in https://github.com/PDAL/PDAL/pull/4617
- Define destructor in source file for CSFilter. by @hobu in https://github.com/PDAL/PDAL/pull/4621
- upload .conda files from conda package build CI by @hobu in https://github.com/PDAL/PDAL/pull/4626
- Update include directives for LasReader and LasHeader in transition from libLAS to PDAL guide by @hobu in https://github.com/PDAL/PDAL/pull/4635
- Fix bad calculation for max width cases in
readers.copcby @hobu in https://github.com/PDAL/PDAL/pull/4640 - Read quickinfo or filters.stats to create TileDB array by @hobu in https://github.com/PDAL/PDAL/pull/4642
New Contributors
- @smellman made their first contribution in https://github.com/PDAL/PDAL/pull/4617
Full Changelog: https://github.com/PDAL/PDAL/compare/2.8.3...2.8.4
- C++
Published by hobu about 1 year ago
pdal - 2.8.3
What's Changed
- Isolate dependencies and tasks for doc generation and preview by @hobu in https://github.com/PDAL/PDAL/pull/4582
- Fix where_merge == true when no views are returned. by @hobu in https://github.com/PDAL/PDAL/pull/4586
writers.pcdbinary mode fixes by @hobu in https://github.com/PDAL/PDAL/pull/4585- update community page with link to Matrix by @hobu in https://github.com/PDAL/PDAL/pull/4588
- Fix #4578, doc nit in readers.rdb by @hobu in https://github.com/PDAL/PDAL/pull/4591
- adapt standard gitignore for CMake files by @hobu in https://github.com/PDAL/PDAL/pull/4597
- Local documentation build conveniences by @hobu in https://github.com/PDAL/PDAL/pull/4598
Full Changelog: https://github.com/PDAL/PDAL/compare/2.8.2...2.8.3
- C++
Published by github-actions[bot] about 1 year ago
pdal - 2.8.2
Bug Fixes
- Don't forward VLRs unless requested with
writers.copc#4549 - Stop quietly replacing
/with\inUtils::portable_open#4546 - Catch up to latest Dockerfile and update build #4545
- Report an error if we can't open filename in
writers.bpf#4538 - Clean up Kazhdan to compile with newer compilers #4555
- Automate release artifact creation #4559
Documentation
- Document that
filters.poissondoesn't scale colors #4493 - Document using non-deprecated array JSON syntax in examples #4543 (Thanks @rouault!)
- Fix current broken mention of PRøJ #4542 (Thanks @rouault!)
- Root link redirects on pdal.io now working #4491
- Use PROJ-style RTD config #4556
- Make doc builds faster by removing unused DOT doxygen usage #4558 (Thanks @chambbj!)
*2.8.1 – 2.8.2 Changelog *: https://github.com/PDAL/PDAL/compare/2.8.1...2.8.2 *Full 2.8 Changelog *: https://github.com/PDAL/PDAL/compare/2.8.0...2.8.2
- C++
Published by github-actions[bot] over 1 year ago
pdal - 2.8.1
Bug Fixes
- Include
<cstdlib>for gcc-15 (thanks @t0b3!) #4537 - Don't validate LAS header in
readers.lasuntil it is complete #4534 - Add
clsandclassasalt_nameforClassification#4532 - Fetch bounds in
readers.plypreview()#4529 readers.copcmight have memory leak in some situations (thanks @AbhinavAtrishi!) #4511- Consolidate
PDAL_VENDOR_EIGEN_DIRCMake variable definition #4503 - Allow override/set of
--breakoutdimension forpdal info#4502 - Use
processOneinstead of custom code in standard mode ofwriters.text#4501 - Always add Classification flag dimensions for laszip-based EPT data in
readers.ept(thanks @connormanning!) #4500
Documentation
- Documentation migrated to Jupyterbook (thanks @chambbj!) #4495 #4527
- Document how to write additional attributes (thanks @oleg-alexandrov!) #4522
Full Changelog: https://github.com/PDAL/PDAL/compare/2.8.0...2.8.1
- C++
Published by hobu over 1 year ago
pdal - 2.8.0
Changes of Note
- Warn instead of error for when global encoding is not set by @hobu in https://github.com/PDAL/PDAL/pull/4414
- Default writers.las to LAS 1.4 by @hobu in https://github.com/PDAL/PDAL/pull/4482
- Default writers.las.dataformat_id to 7 by @hobu in https://github.com/PDAL/PDAL/pull/4485
New Stages
- Implement
filters.label_duplicatesby @hobu in https://github.com/PDAL/PDAL/pull/4469 - Add
filters.expressionstatsandpdal info --breakoutoption by @hobu in https://github.com/PDAL/PDAL/pull/4487
Enhancements
- TileDB option to enable/disable duplicate points by @normanb in https://github.com/PDAL/PDAL/pull/4370
- implement 'auto' as default CRS for BPF writer #4418 by @hobu in https://github.com/PDAL/PDAL/pull/4428
- Allow forcing VLR creation as EVLR by @hobu in https://github.com/PDAL/PDAL/pull/4443
- add 'bins' item to filters.stats output by @hobu in https://github.com/PDAL/PDAL/pull/4477
- Optional stable sort for filters.sort by @abellgithub in https://github.com/PDAL/PDAL/pull/4478
- Support sorting multiple dimensions at once in
filters.sortby @hobu in https://github.com/PDAL/PDAL/pull/4468
Bug Fixes
- Don't break strict aliasing rules. by @abellgithub in https://github.com/PDAL/PDAL/pull/4361
- Don't do LAS ready processing if there are no points. by @abellgithub in https://github.com/PDAL/PDAL/pull/4363
- Make sure all stages are initialized before prepared is called. by @abellgithub in https://github.com/PDAL/PDAL/pull/4372
- Adding log pointer to stac class instantiation to connect to reader logs by @kylemann16 in https://github.com/PDAL/PDAL/pull/4353
- Don't attempt to execute tree location for isolated point in
filters.litreeby @abellgithub in https://github.com/PDAL/PDAL/pull/4373 - Fix integer overflows in pdal::Raster. by @abellgithub in https://github.com/PDAL/PDAL/pull/4376
- Fix sorting/iterator dereferencing by @abellgithub in https://github.com/PDAL/PDAL/pull/4387
- Fix H3 warnings by @abellgithub in https://github.com/PDAL/PDAL/pull/4391
- Fixing typo that caused Info to not fill gpstime_maximum on copc reads. by @kylemann16 in https://github.com/PDAL/PDAL/pull/4404
- Changes for Matlab plugin to compile under macOS. by @prennich in https://github.com/PDAL/PDAL/pull/4417
- Rewriting OGR Writer Test to match with new GDAL usage by @kylemann16 in https://github.com/PDAL/PDAL/pull/4411
- Join threads and cleanup on stage teardown. by @abellgithub in https://github.com/PDAL/PDAL/pull/4459
- Don't copy PointView pointers to temporaries. by @abellgithub in https://github.com/PDAL/PDAL/pull/4471
- Make DbWriters not need a filename. by @abellgithub in https://github.com/PDAL/PDAL/pull/4474
- add filter() method for filters.h3 and activate test by @hobu in https://github.com/PDAL/PDAL/pull/4479
- Prepare assignment statement in
filters.assignbefore checking dimension existence. by @abellgithub in https://github.com/PDAL/PDAL/pull/4483 - Add density information to output for poisson filter. by @hobu in https://github.com/PDAL/PDAL/pull/4490
Docs
- Update links on Python page by @jomey in https://github.com/PDAL/PDAL/pull/4378
- rotation matrix example corrected by @ovipaul in https://github.com/PDAL/PDAL/pull/4394
- Fixed grammer, sentencing, colons and added text to show that autzen should be included in files by @TomTheTonk in https://github.com/PDAL/PDAL/pull/4400
- Update readers.las.rst by @msmitherdc in https://github.com/PDAL/PDAL/pull/4409
- Update readers.rst by @msmitherdc in https://github.com/PDAL/PDAL/pull/4408
- Fix doc message in crop filter by @pierotofy in https://github.com/PDAL/PDAL/pull/4419
- Add 'dimension' output to filters.sample by @hobu in https://github.com/PDAL/PDAL/pull/4415
- Fix ref to readers.arrow in readers.rst by @wonder-sk in https://github.com/PDAL/PDAL/pull/4436
- Fix typo in chamfer python example by @gui2dev in https://github.com/PDAL/PDAL/pull/4438
- Update writers.tiledb.rst by @Garbage123King in https://github.com/PDAL/PDAL/pull/4441
- Update writers.pgpointcloud.rst by @Garbage123King in https://github.com/PDAL/PDAL/pull/4445
- add a note about readers.ept and forwarding by @hobu in https://github.com/PDAL/PDAL/pull/4484
Build
- use CONFIG for Draco and Arrow. Relax Draco to 1.5+ by @hobu in https://github.com/PDAL/PDAL/pull/4369
- we do not need to bring in GDAL for the Arrow plugins by @hobu in https://github.com/PDAL/PDAL/pull/4365
- catch up to arrow-cpp rename by @hobu in https://github.com/PDAL/PDAL/pull/4384
- use PROJ cmake CONFIG package instead of homespun find_package by @hobu in https://github.com/PDAL/PDAL/pull/4385
- we don't need to link GDAL for readers.arrow and writers.arrow by @hobu in https://github.com/PDAL/PDAL/pull/4377
- build config for filters.cpd STANDALONE by @hobu in https://github.com/PDAL/PDAL/pull/4396
- E57 plugins need to link against PDAL when building standalone by @hobu in https://github.com/PDAL/PDAL/pull/4421
- ensure libxml2 is found for PGPOINTCLOUD by @hobu in https://github.com/PDAL/PDAL/pull/4406
- Fix building on OpenBSD by @brad0 in https://github.com/PDAL/PDAL/pull/4434
- Fix CPD compilation of tests when building filters.cpd in non-standalone builds by @hobu in https://github.com/PDAL/PDAL/pull/4439
- Use POSIX endian.h header on OpenBSD by @brad0 in https://github.com/PDAL/PDAL/pull/4435
- Fix libdir path in pkgconfig file by @imincik in https://github.com/PDAL/PDAL/pull/4464
- CMakeLists: Fix a typo by @lbartoletti in https://github.com/PDAL/PDAL/pull/4488
New Contributors
- @jomey made their first contribution in https://github.com/PDAL/PDAL/pull/4378
- @ovipaul made their first contribution in https://github.com/PDAL/PDAL/pull/4394
- @TomTheTonk made their first contribution in https://github.com/PDAL/PDAL/pull/4400
- @prennich made their first contribution in https://github.com/PDAL/PDAL/pull/4417
- @brad0 made their first contribution in https://github.com/PDAL/PDAL/pull/4434
- @Garbage123King made their first contribution in https://github.com/PDAL/PDAL/pull/4441
- @imincik made their first contribution in https://github.com/PDAL/PDAL/pull/4464
Full Changelog: https://github.com/PDAL/PDAL/compare/2.7.0...2.8.0
- C++
Published by hobu over 1 year ago
pdal - 2.7.2
Bug Fixes
- Fix overflow in
pdal::Raster#4376 - Warn instead of error when
readers.lasGlobalEncoding is not set correctly for WKT #4414 gpstime_maximumnot being correctly read inreaders.copc#4404 (Thanks @kylemann16!)- Default
writer.bpf.coord_idtoauto#4428
Docs
- Fix rotation matrix example in
filters.transformationdoc (Thanks @ovipaul!) #4394 - Workshop updates #4400 (Thanks @TomTheTonk!)
- Describe
readers.las.threads#4409 (Thanks @msmitherdc!) - Fix doc message in
filters.crop#4419 (Thanks @pierotofy!) - Properly document
option_file#4425 - Update links for Python (Thanks @jomey!) #4378
Build
- Relax PROJ dependency to 9.0+ 5c5611a8a0b7c723127789050fdb2bdeb8e2f984
STANDALONEbuild config forfilters.cpd#4396- Matlab plugin compilation #4417 (Thanks @prennich!)
- E57 plugins need to link against PDAL in
STANDALONEbuilds #4421 - Do not link GDAL for Arrow plugins #4377
- Use CMake-provided config for finding PROJ #4385
Changelog since 2.7.1: https://github.com/PDAL/PDAL/compare/2.7.1...2.7.2
Changelog between 2.7.1 and 2.7.2: https://github.com/PDAL/PDAL/compare/2.7.2...2.7-maintenance
- C++
Published by hobu over 1 year ago
pdal - 2.7.1
Bug Fixes
- Add more logging to
readers.stac#4353 - Don't break strict aliasing rules #4361
- Don't do
readers.lasready()processing if there are no points #4363 readers.arrowandwriters.arrowdo not require GDAL CMake dependency #4365- Add
writers.tiledbduplicate points config #4370 - use
CONFIGCMakefind_packageforfilters.arrowandreaders.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
- C++
Published by hobu almost 2 years ago
pdal - 2.7.0
New Stages
- Add
filters.sparsesurfacesparse surface filter by @chambbj in https://github.com/PDAL/PDAL/pull/4330 - Add
filters.h3to add H3 index values to points by @hobu in https://github.com/PDAL/PDAL/pull/4345 - Add
filters.griddecimationgrid decimation filter by @alavenant in https://github.com/PDAL/PDAL/pull/4223
Enhancements
- implement
filters.hexbin.densityby @hobu in https://github.com/PDAL/PDAL/pull/4244 - add
ogrblock to filters.geomdistance by @hobu in https://github.com/PDAL/PDAL/pull/4236 - Threaded
readers.lasby @abellgithub in https://github.com/PDAL/PDAL/pull/4219 - Add math unary functions to AssignmentStatement in
filters.expressionandfilters.assignby @hobu in https://github.com/PDAL/PDAL/pull/4288 filters.assigncan now create dimensions by @hobu in https://github.com/PDAL/PDAL/pull/4282- Add
readers.las.ignore_missing_vlrsby @wintal in https://github.com/PDAL/PDAL/pull/4299 - Add extra dim support to
writers.copcby @abellgithub in https://github.com/PDAL/PDAL/pull/4309 - Added threading functionality to
filters.overlayby @bramton in https://github.com/PDAL/PDAL/pull/4307 filters.expressionmultiple expressions evaluation by @hobu in https://github.com/PDAL/PDAL/pull/4328- Add random filename support to Writers by @hobu in https://github.com/PDAL/PDAL/pull/4342
- update embedded Eigen to 3.4.0 by @hobu in https://github.com/PDAL/PDAL/pull/4335
Bug Fixes
Build
- update gitignore for xcode compilation by @alavenant in https://github.com/PDAL/PDAL/pull/4224
- Allow pdal to link with CURL target by @Faroito in https://github.com/PDAL/PDAL/pull/4235
- add OWNER_WRITE permissions to installs by @hobu in https://github.com/PDAL/PDAL/pull/4259
- Fix convention error with
xmlErrorPtrcaused bylibxml2API change by @aimixsaka in https://github.com/PDAL/PDAL/pull/4257 - Remove remaining pdal_util library references by @abellgithub in https://github.com/PDAL/PDAL/pull/4267
- Use standard CMake installation locations by @hobu in https://github.com/PDAL/PDAL/pull/4291
- add osx arm runner by @hobu in https://github.com/PDAL/PDAL/pull/4312
- Use correct location for bash completion files by @bramton in https://github.com/PDAL/PDAL/pull/4314
- WITH_GCS option by @hobu in https://github.com/PDAL/PDAL/pull/4323
General
- Fix
readers.stacdoing head requests before necessary by @kylemann16 in https://github.com/PDAL/PDAL/pull/4220 - Set while condition for
filters.litreeto be larger than min points by @fnands in https://github.com/PDAL/PDAL/pull/4218 readers.copc.boundsproduces different results thanfilters.crop.boundsby @abellgithub in https://github.com/PDAL/PDAL/pull/4246- Fix position calculation when parsing bounds. by @abellgithub in https://github.com/PDAL/PDAL/pull/4240
- StacReader::addDimensions implementation by @hobu in https://github.com/PDAL/PDAL/pull/4222
- Zero out point count fields when creating a LAS file that has no points. by @connormanning in https://github.com/PDAL/PDAL/pull/4249
- Correct metadata point counts for remote-las-file optimization by @connormanning in https://github.com/PDAL/PDAL/pull/4251
- Fixing seg fault referencing bounding box array entry. by @kylemann16 in https://github.com/PDAL/PDAL/pull/4266
- Fix classification mask for LAS V10 loader utility by @connormanning in https://github.com/PDAL/PDAL/pull/4269
- Fix getting/setting the pointFormat of LAZ-files via LasHeader by @AlexBass05 in https://github.com/PDAL/PDAL/pull/4286
- Added the height difference threshold as parameter to the CSF filter. by @bramton in https://github.com/PDAL/PDAL/pull/4289
- Fix LAS DOY calculation. by @abellgithub in https://github.com/PDAL/PDAL/pull/4296
- skip AutoIdentifyEPSG() call for identifyVerticalEPSG by @hobu in https://github.com/PDAL/PDAL/pull/4347
filters.decimationnon-integer step by @rcoup in https://github.com/PDAL/PDAL/pull/4348- Fixed logic for adding srs to bounds filtering by @kylemann16 in https://github.com/PDAL/PDAL/pull/4300
- Threading rework by @bramton in https://github.com/PDAL/PDAL/pull/4320
- Make sure transform is valid before use by @abellgithub in https://github.com/PDAL/PDAL/pull/4326
- Control
readers.eptthread queue more carefully to prevent it from filling too fast and using too much memory https://github.com/PDAL/PDAL/pull/4359 - Provide a better warning for classifications being written into PDRFs in
writers.lasthat will not fit https://github.com/PDAL/PDAL/pull/4358 - Warning noise cleanup https://github.com/PDAL/PDAL/pull/4354
- Memoize a few things in
writers.arrowfor better perfomrance https://github.com/PDAL/PDAL/pull/4349
Arbiter
- Update arbiter bundle by @connormanning in https://github.com/PDAL/PDAL/pull/4253
- Arbiter updates for S3 endpoints.json handling by @connormanning in https://github.com/PDAL/PDAL/pull/4254
- Update arbiter bundle for AWSENDPOINTURL env setting by @connormanning in https://github.com/PDAL/PDAL/pull/4325
- Update arbiter bundle to remove public crypto macros by @connormanning in https://github.com/PDAL/PDAL/pull/4334
TileDB
- Add and fix TileDB filter options by @jp-dark in https://github.com/PDAL/PDAL/pull/4233
- Add cellorder and tileorder options to TileDB writer by @jp-dark in https://github.com/PDAL/PDAL/pull/4274
- Fix time tile check for missing tile warning by @jp-dark in https://github.com/PDAL/PDAL/pull/4276
- Update how TileDB domain is set when not provided by user by @jp-dark in https://github.com/PDAL/PDAL/pull/4277
- Added tiledb metadata fields to easily tag array type by @normanb in https://github.com/PDAL/PDAL/pull/4293
- Update minimum TileDB version to 2.18.0 by @jp-dark in https://github.com/PDAL/PDAL/pull/4336
Docs
- Update ground.rst by @wiringa in https://github.com/PDAL/PDAL/pull/4213
- Update denoising.rst by @wiringa in https://github.com/PDAL/PDAL/pull/4212
- Add streaming tutorial by @oleg-alexandrov in https://github.com/PDAL/PDAL/pull/4238
- Use current PDAL for workshop by @j9ac9k in https://github.com/PDAL/PDAL/pull/4283
- Update hausdorff.rst by @jf-geo in https://github.com/PDAL/PDAL/pull/4285
- Fixed 'Edit on GitHub' link. by @bramton in https://github.com/PDAL/PDAL/pull/4290
- Update filters.groupby documentation. by @bramton in https://github.com/PDAL/PDAL/pull/4303
- Update LasWriter.compression documentation by @AlexBass05 in https://github.com/PDAL/PDAL/pull/4305
- Fixed anchor location of
Processing Modesby @bramton in https://github.com/PDAL/PDAL/pull/4306 - Update writers documentation about LAZ support by @AlexBass05 in https://github.com/PDAL/PDAL/pull/4311
- fixed spelling error in filters.rst -> filters.litree documentation. by @Keenan-Nicholson in https://github.com/PDAL/PDAL/pull/4316
- Add reading streamer example by @oleg-alexandrov in https://github.com/PDAL/PDAL/pull/4247
- Add an example of a standalone program for applying a filter by @oleg-alexandrov in https://github.com/PDAL/PDAL/pull/4250
- Add Workshop Setup Instructions for ArcGIS Users by @j9ac9k in https://github.com/PDAL/PDAL/pull/4344
New Contributors
- @n4z4m3 made their first contribution in https://github.com/PDAL/PDAL/pull/3952
- @mmuetzel made their first contribution in https://github.com/PDAL/PDAL/pull/3957
- @jshrake made their first contribution in https://github.com/PDAL/PDAL/pull/3958
- @andre-schulz made their first contribution in https://github.com/PDAL/PDAL/pull/3987
- @jp-dark made their first contribution in https://github.com/PDAL/PDAL/pull/4021
- @jgrocha made their first contribution in https://github.com/PDAL/PDAL/pull/4030
- @Faroito made their first contribution in https://github.com/PDAL/PDAL/pull/4032
- @cbrl made their first contribution in https://github.com/PDAL/PDAL/pull/4039
- @dg0yt made their first contribution in https://github.com/PDAL/PDAL/pull/4044
- @GannonGuess made their first contribution in https://github.com/PDAL/PDAL/pull/4054
- @kannes made their first contribution in https://github.com/PDAL/PDAL/pull/4087
- @fq made their first contribution in https://github.com/PDAL/PDAL/pull/4088
- @ibell13 made their first contribution in https://github.com/PDAL/PDAL/pull/4096
- @zdila made their first contribution in https://github.com/PDAL/PDAL/pull/4114
- @leavauchier made their first contribution in https://github.com/PDAL/PDAL/pull/4133
- @lukekas made their first contribution in https://github.com/PDAL/PDAL/pull/4152
- @dependabot made their first contribution in https://github.com/PDAL/PDAL/pull/4164
- @nilason made their first contribution in https://github.com/PDAL/PDAL/pull/4198
Full Changelog: https://github.com/PDAL/PDAL/compare/2.6.0...2.7.0
- C++
Published by hobu almost 2 years ago
pdal - 2.6.3
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.groupbydocumentation #4303 (thanks @bramton!) - Fixed speling error in
filters.litreedocumentation #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
- C++
Published by hobu about 2 years ago
pdal - 2.6.2
Bug Fixes
- Fix
xmlErrorPtrby new libxml2 API (thanks @aimixsaka!) #4257 - Add OWNER_WRITE permissions to installs #4259
- default to WITH_BACKTRACE=OFF #4262
- Fix segfault in
readers.stacin some situations #4266 - Remove remaining
pdal_utillibrary refrences #4267 - Add
cell_orderandtile_orderoptions towriters.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
- C++
Published by hobu about 2 years ago
pdal - 2.6.1
Bug Fixes
- Arbiter S3 endpoints #4254
- Arbiter cout lint #4253
- Correct counts for
readers.lasremote files #4251 #4249 writers.copcmissing 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.stacAddDimensions support #4222- Fix significant
readers.stacperformance 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
- C++
Published by hobu over 2 years ago
pdal - 2.6.0
Changes of Note
chamfer,delta,density,eval,ground,hausdorff, andrandomkernels are deprecated. These can now be implemented in Python. See https://github.com/PDAL/PDAL/pull/4209 for deprecation schedule.readers.lasandreaders.copcnow supportsrs_vlr_order, which allows users to explicitly control which CRS definition is used https://github.com/PDAL/PDAL/pull/4205- GDAL 3.4+ is now required by @hobu in https://github.com/PDAL/PDAL/pull/3997
- Alternative GeoJSON and object
pdal::Boundsspellings by @hobu in https://github.com/PDAL/PDAL/issues/4042 - Implement
-DSTANDALONE=ONplugin building for common plugins by @hobu in https://github.com/PDAL/PDAL/pull/4103 - Implement Gnuinstalldirs support by @hobu in https://github.com/PDAL/PDAL/pull/4052
- Add optional WKTv2 VLRs to LAS by @jjimenezshaw in https://github.com/PDAL/PDAL/pull/3998
- CMake 3.13 is now the minimum supported CMake version by @hobu in https://github.com/PDAL/PDAL/pull/4137
- pdal_util into pdalcpp are no longer separately installed libraries. Just use
pdalcpp.{dylib|so|dll}by @hobu in https://github.com/PDAL/PDAL/pull/4139 - Split out ClassFlags into its bitfields for
readers.las,readers.copc,writers.lasandwriters.copcby @connormanning in https://github.com/PDAL/PDAL/pull/4186
New Stages
filters.georeferencefilter by @gui2dev in https://github.com/PDAL/PDAL/pull/4109filters.straightenfilter by @gui2dev in https://github.com/PDAL/PDAL/pull/4108writers.arrowfor GeoParquet and Arrow IPC write support by @hobu in https://github.com/PDAL/PDAL/pull/4115readers.arrowfor GeoParquet and Arrow IPC read support by @hobu in https://github.com/PDAL/PDAL/pull/4115
Enhancements
- Add optional debug argument to
filters.csfby @n4z4m3 in https://github.com/PDAL/PDAL/pull/3952 - add allow_empty option to
writers.gdalto support writing empty GDAL output by @hobu in https://github.com/PDAL/PDAL/pull/3984 readers.stacnow streamable by @hobu in https://github.com/PDAL/PDAL/pull/3989-
readers.tindexnow streamable by @hobu in https://github.com/PDAL/PDAL/pull/3992 readers.gdalperformance enhancements by @hobu in https://github.com/PDAL/PDAL/pull/3991pdal infonow outputs PROJJSON as actual JSON for pdal info by @hobu in https://github.com/PDAL/PDAL/pull/4003- Add spherical coordinates support to
readers.e57readers by @Faroito in https://github.com/PDAL/PDAL/pull/4032 - Implement in and out coordinate epoch support in SRS transformations by @hobu in https://github.com/PDAL/PDAL/pull/4049
- Add
RollandPitchtoreaders.rxpby @hobu in https://github.com/PDAL/PDAL/pull/4067 - remote
readers.bpfandwriters.bpfstage-n-push support by @hobu in https://github.com/PDAL/PDAL/pull/4066 - Support remote files for
readers.nitf#4025 by @hobu in https://github.com/PDAL/PDAL/pull/4062 - Update TileDB compression filter support by @jp-dark in https://github.com/PDAL/PDAL/pull/4056
- Update S3 driver for IMDSv2 instance profile flow by @connormanning in https://github.com/PDAL/PDAL/pull/4063
- add
.vpcto recognized extensions forreaders.stacand QGIS #4072 by @hobu in https://github.com/PDAL/PDAL/pull/4073 - add
filters.stats.commonsrsto allow user to override the default coordinate system for bounds computation by @hobu in https://github.com/PDAL/PDAL/pull/4150 - add 'normal x', 'normal y', 'normal z', and 'height above ground' as dimension name aliases @hobu in https://github.com/PDAL/PDAL/pull/4188
- Add tolerance in barycentric interpolation by @leavauchier in https://github.com/PDAL/PDAL/pull/4155
readers.i3sandreaders.slpkare now always-on readers by @hobu in https://github.com/PDAL/PDAL/pull/4145- Update arbiter bundle by @connormanning in https://github.com/PDAL/PDAL/pull/4089
readers.tindex.reader_argsby @hobu in https://github.com/PDAL/PDAL/pull/4098- Enhancements/fixes related to coordinate system epochs by @rouault in https://github.com/PDAL/PDAL/pull/4154
- Support GeoJSON with 'srs' override as 'polygon' parameters in pipelines by @hobu in https://github.com/PDAL/PDAL/pull/4101
Bug Fixes
- Fix building with MinGW by @mmuetzel in https://github.com/PDAL/PDAL/pull/3957
- Fix case where endpoint lies exactly on a grid intersection. by @abellgithub in https://github.com/PDAL/PDAL/pull/3959
- Fix S3 HEAD requests by @connormanning in https://github.com/PDAL/PDAL/pull/3961
- Remove redundant header include in EsriReader.hpp by @andre-schulz in https://github.com/PDAL/PDAL/pull/3987
- Fix UB when casting negative doubles by in
filters.voxelcentroidnearestneighbor@pierotofy in https://github.com/PDAL/PDAL/pull/4015 - Fix MinGW builds by @dg0yt in https://github.com/PDAL/PDAL/pull/4044
- Don't use const_cast by @dg0yt in https://github.com/PDAL/PDAL/pull/4043
- Don't open
readers.nitfstream multiple times if already open by @hobu in https://github.com/PDAL/PDAL/pull/4017 - Check that the userId of the first VLR is 'copc' by @hobu in https://github.com/PDAL/PDAL/pull/4006
- rethrow arbiter::ArbiterError in situations where we can't open a file by @hobu in https://github.com/PDAL/PDAL/pull/4033
- Include
to fix GCC 13 compatibility by @cbrl in https://github.com/PDAL/PDAL/pull/4039 - Update TileDB array timestamp handling by @jp-dark in https://github.com/PDAL/PDAL/pull/4038
- TileDB deprecated function clean-up by @jp-dark in https://github.com/PDAL/PDAL/pull/4037
- Allows mixing user set and auto-generate domains for the TileDB writer by @jp-dark in https://github.com/PDAL/PDAL/pull/4040
- Fix handling of string
readers.lasheader items containing spaces by @abellgithub in https://github.com/PDAL/PDAL/pull/3967 - Handle 0 points in
filters.greedyprojectionby @hobu in https://github.com/PDAL/PDAL/pull/4022 - prevent invalid conversion from const compile error by @jgrocha in https://github.com/PDAL/PDAL/pull/4030
- Point view sorting not working on newer OSX compilers by @connormanning in https://github.com/PDAL/PDAL/pull/4058
- Make EPT reader origin query more robust by @connormanning in https://github.com/PDAL/PDAL/pull/4075
- Write las header bounding box using the converted coordinates by @fq in https://github.com/PDAL/PDAL/pull/4088
- Fix legacy return count in
writers.lasby @leavauchier in https://github.com/PDAL/PDAL/pull/4133 - COPC/LAS: properly set legacy return counts for LAS1.4/PDRF>=6 by @rcoup in https://github.com/PDAL/PDAL/pull/4183
- fix crashing for non-sql OGR filters in
readers.eptandreaders.copcby @hobu in https://github.com/PDAL/PDAL/pull/4181 - Terminate when input is smaller than requested output size or radius has grown too small in
filters.relaxationdartthrowingby @chambbj in https://github.com/PDAL/PDAL/pull/4184 - Fix edge cases in EPT origin query by @connormanning in https://github.com/PDAL/PDAL/pull/4141
- Fix
readers.pcdreading of 64bit values by @hobu in https://github.com/PDAL/PDAL/pull/4158 - Fix OB1 error in
pdal tileby @abellgithub in https://github.com/PDAL/PDAL/pull/4122 writers.copc: round X/Y/Z values to matchwriters.lasby @rcoup in https://github.com/PDAL/PDAL/pull/4180- Always read COPC file VLRs and add to metadata by @hobu in https://github.com/PDAL/PDAL/pull/4136
TileDB
- Fix FindTileDB.cmake to check version by @jp-dark in https://github.com/PDAL/PDAL/pull/4077
- Refactor internal TileDB plugin by @jp-dark in https://github.com/PDAL/PDAL/pull/4082
- Fix TileDBWriter argument types by @jp-dark in https://github.com/PDAL/PDAL/pull/4100
- Create updated filter profiles for TileDB writer by @jp-dark in https://github.com/PDAL/PDAL/pull/4107
- Add bit field packing to TileDB reader/writer by @jp-dark in https://github.com/PDAL/PDAL/pull/4134
- Set default chunk_size to be larger than capacity by @jp-dark in https://github.com/PDAL/PDAL/pull/4135
Docs
- PDAL Workshop updated to use COPC by @GannonGuess @ibell13 @TomTheTonk in https://github.com/PDAL/PDAL/pull/4054
- Update docs for TileDB stages by @jp-dark in https://github.com/PDAL/PDAL/pull/4079
- Additional example for filter.assign by @kannes in https://github.com/PDAL/PDAL/pull/4087
- Update filters.chipper.rst by @lukekas in https://github.com/PDAL/PDAL/pull/4152
- Add workshop instructions for offline/USB install + small fixes by @j9ac9k in https://github.com/PDAL/PDAL/pull/4167
New Contributors
- @n4z4m3 made their first contribution in https://github.com/PDAL/PDAL/pull/3952
- @mmuetzel made their first contribution in https://github.com/PDAL/PDAL/pull/3957
- @jshrake made their first contribution in https://github.com/PDAL/PDAL/pull/3958
- @andre-schulz made their first contribution in https://github.com/PDAL/PDAL/pull/3987
- @jp-dark made their first contribution in https://github.com/PDAL/PDAL/pull/4021
- @jgrocha made their first contribution in https://github.com/PDAL/PDAL/pull/4030
- @Faroito made their first contribution in https://github.com/PDAL/PDAL/pull/4032
- @cbrl made their first contribution in https://github.com/PDAL/PDAL/pull/4039
- @dg0yt made their first contribution in https://github.com/PDAL/PDAL/pull/4044
- @GannonGuess made their first contribution in https://github.com/PDAL/PDAL/pull/4054
- @kannes made their first contribution in https://github.com/PDAL/PDAL/pull/4087
- @fq made their first contribution in https://github.com/PDAL/PDAL/pull/4088
- @ibell13 made their first contribution in https://github.com/PDAL/PDAL/pull/4096
- @zdila made their first contribution in https://github.com/PDAL/PDAL/pull/4114
- @leavauchier made their first contribution in https://github.com/PDAL/PDAL/pull/4133
- @lukekas made their first contribution in https://github.com/PDAL/PDAL/pull/4152
- @dependabot made their first contribution in https://github.com/PDAL/PDAL/pull/4164
- @nilason made their first contribution in https://github.com/PDAL/PDAL/pull/4198
Full Changelog: https://github.com/PDAL/PDAL/compare/2.5.0...2.6.0
- C++
Published by hobu over 2 years ago
pdal - 2.5.6
Bug Fixes
- Address header scaling issues in
writers.copcandwriters.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
- C++
Published by hobu over 2 years ago
pdal - 2.5.5
Bug Fixes
- Add
.vpcto recognized extensions forreaders.stac#4072 #4073 - Provide S3 IMDS V2 auth fallback #4070
- Add Roll and Pitch per-point output to
readers.rxp - Support remote
readers.bpfandwriters.bpfwith 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
- C++
Published by hobu over 2 years ago
pdal - 2.5.4
Bug Fixes
- Random shuffling of
pdal::PointRefdoes not work correctly on some compilers. For PDAL the impact was limited tostd::stable_sort. It has been addressed by #4065 and #4058 with possibly breaking changes coming in 2.6.0 readers.ntifdidn't support remote files #4025- standalone builds of
readers.rxpdid not work #4060 Utils::trimLeadingandUtils:trimTrailingmight not have worked correctly on some compilers #4055- Remove unneeded
readers.icebridgeheap allocation that was being improperly freed #4050 - Fixup mingw builds #4044 (thanks @dg0yt!)
<cstdint>now needed for E57 library (thanks @cbrl!) #4039- Rethrow
arbiter::ArbiterErrorwhich was being swallowed inopenFile#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
- C++
Published by hobu almost 3 years ago
pdal - 2.5.3
Bug Fixes
pdal info --metadatawas 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.nitfstreams multiple times if already open #4017 - Harden
pdal::Geometryfrom 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
- C++
Published by hobu almost 3 years ago
pdal - 2.5.2
Enhancements
- Provided
allow_emptyoption toreaders.gdal#3984
Bug Fixes
filters.trajectorywindows compilation fixes #3976- Fix streaming support on
readers.tindex#3992 - Fix streaming support on
readers.stac#3989 - Update
simple.laztest file from LAZ 1.0 to LAZ 1.3 #3978 - Do not encode
-std=c++11intopdal-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
- C++
Published by hobu about 3 years ago
pdal - 2.5.1
Enhancements
- Optional
debuginfilters.csfto improve performance #3952 (thanks @n4z4m3!) - Connection classes for
readers.copcandreaders.eptconsolidated (#3962)
Bug Fixes
- Numerous
readers.stacfixes #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
- C++
Published by hobu about 3 years ago
pdal - 2.5.0
Changes of Note
- TileDB 2.3 now required for TileDB read/write support (#3722)
readers.fbxandreaders.mrsidhave 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.fbiandreaders.fbisupports TerraSolid binary format(#3822) (Thanks @alavenant!)filters.trajectoryestimates trajectory for certain data configurations (#3743)filters.geomdistancecomputes the (2D) distance of points to a given geometry (#3891)readers.stacdereferences STAC Catalogs to read point cloud data (#3915)filters.expressionuses the same syntax aswhereto filter data (#3930)
Enhancements
boundary_jsonGeoJSON added topdal infooutput (#3750)- Sort COPC output by GPSTime if available (#3747)
filters.zsmoothenabled 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 infooutput (#3780) - QuickInfo now supports adding Metadata (#3894)
- stage-n-push support for writers.copc (#3790)
pdal translatewill not overwrite data by default (#3794)- 'bounds' option to limit
filters.overlayusage (#3815) - wmain usage of
pdalcomand for wide filename character support on Windows (#3824) binmodeadded towriters.gdalto count only points inside pixels (#3840)attr_dimsandogr_optionsoptions towriters.ogr(#3837) Thanks @rcoup!- Add metadata to
readers.lasQuickInfo (#3897) writers.copc.threadsoption (#3910)- Support spaces in dimension names (#3907)
writers.copc.a_srsoption (#3908)readers.copcoutputscopc_infometadata on read (#3936)
Bug Fixes
- UTF-16 filename conversion and multibyte character filename support on windows (#3761) (#3764) (#3757)
- Invalid LogPtr usage in
filters.normalin some scenarios (#3781) - 'count' metadata added to
readers.bpf(#3744) readers.plyQuickInfo 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.nosrsnot 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.ogrcrs bug (#3863) Thanks @rcoup!writers.ogrdon't set OGR FID (#3865) Thanks @rcoup!writers.lasnot preserving classFlags (#3879) Thanks @craigds!- Screen width computation (#3893)
- Make
writers.ogruse transactions if they are available (#3898) Thanks @wonder-sk - Limit stream resets in
readers.las(#3900) - Make
readers.copc.threadsrespect explicit thread count (#3913) - Extra bytes support in
writers.copcwas borken (#3912) readers.copcwas reading past its buffer (#3918)writers.dracowas reading incorrect dimension size (#3919)- Low precision WKT export from
filters.hexbin(#3922) - Close HTTP pools and connections in
readers.eptandreaders.copc(#3920) - handle CURLVERSIONASYNCHDNS in Arbiter (#3926)
filters.overlayfiltering geometries not reprojecting as expected (#3940) Thanks @wonder-sk!
New Contributors
- @sunpoet made their first contribution in https://github.com/PDAL/PDAL/pull/3728
- @davidcaron made their first contribution in https://github.com/PDAL/PDAL/pull/3730
- @gmwwho made their first contribution in https://github.com/PDAL/PDAL/pull/3751
- @jef-n made their first contribution in https://github.com/PDAL/PDAL/pull/3806
- @rcoup made their first contribution in https://github.com/PDAL/PDAL/pull/3837
- @craigds made their first contribution in https://github.com/PDAL/PDAL/pull/3879
- @wonder-sk made their first contribution in https://github.com/PDAL/PDAL/pull/3877
- @jjimenezshaw made their first contribution in https://github.com/PDAL/PDAL/pull/3873
- @0-wiz-0 made their first contribution in https://github.com/PDAL/PDAL/pull/3916
Full Changelog: https://github.com/PDAL/PDAL/compare/2.4.0...2.5.0
- C++
Published by hobu about 3 years ago
pdal - 2.4.3
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.copcremote file writing was added #3819filters.overlayboundsoption 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.normalwas using an invalid LogPtr #3781readers.las.nosrsdid 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
- C++
Published by hobu over 3 years ago
pdal - 2.4.1
Changes of Note
writers.copcnow 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.bpfnow adds acountof the number of points to metadata.- The
pdal infocommand now always writes a GeoJSON metadata entry of the area boundary calledboundary_json.
Bug Fixes
- The
pdal pipeline --pipeline-serializationcommand now maintains input directory separators. (#3574) - Better handling of UTF-8 -> UTF-16 filenames on Windows has been added. (#3756, #3760)
- C++
Published by abellgithub almost 4 years ago
pdal - 2.4.0
Changes of Note
- A compiler that supports C++17 is now required to build PDAL or include PDAL headers in your code.
- The PDALSTATICBUILD cmake option has been removed. We do not support building PDAL as a static library, though it may work.
- The behavior of
readers.eptwhen specifying bothboundsandpolygonoptions has changed such that a point must pass both the filters independently in order to be accepted. (#3506) readers.eptwill now ignore the spatial reference on a clip region if the point source has no spatial reference. This behavior is consistent withfilters.crop. (#3580)readers.lasandwriters.lasno longer support the laszip library. Both stages now use the lazperf library, which is embedded into the PDAL library. Thecompressionoption is still accepted inreaders.las, but is ignored. Thecompressionoption onwriters.lasstill accepts theLASZIPandLAZPERF, but those values are treated the same asTRUE.- 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.copcandwriters.copchave been added to support reading and writing of COPC files.readers.smrmsgwas added to read from post-processed MMS accuracy files to be used with SBET data.
Enhancements
- The performance of
filters.litreehas been improved. (#3518) - Support for time query/storage in
readers.tiledbandwriters.tiledbhas 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.rxphas been added. (#3565) - Add a cmake macro
PDAL_CREATE_PLUGINthat may simplify the creation of some PDAL plugin stages. (#3588) writers.nullis now streamable. (#3591)- Added support for multiple output files in
writers.ply(#3617 - Thanks @longhuan2018) filters.csfnow permits selective output of debugging/analysis files. (#3488)- Comments in JSON input files (pipelines) are now supported. (#3670)
- Added support in
writers.lasfor 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 usingreaders.gdal. (#3479) - Fix potential error in computing mean-square error computation for
filters.icp. (#3471) - Fix crash in
writers.pcdwhen the stage is run twice. (#3548) - Prevent pipeline from being read more than once when using PipelineExecutor. (#3587)
- Initialize
m_curCountinwriters.ogrto 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.gltfwould 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)
- C++
Published by abellgithub almost 4 years ago
pdal - 2.3.0
Changes of Note
- GDAL version 3 is now required. (#3428)
readers.tiledbnow defaults to unordered reads. (#3267)readers.tiledbnow supports Hilbert ordering. (#3345)writers.pcdnow 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 evalto print a classification report from two input point clouds. (#3346) - Added
pdal chamferto 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.gpstimeconvertallows conversion between the various GPS time standards.filters.teaseruses the truncated least squares estimation and semidefinite relaxation (TEASER) algorithm to create a rigid transformation between two datasets.readers.dracoreads the Draco format.writers.dracowrites the Draco format.filters.zsmoothsets a dimension to a value determined by nearby points. (#3408)
Removed Stages
readers.ociwriters.oci
Enhancements
pdal pipelineandpdal translatenow support a--dimsoption that allows the stored dimensions to be easily controlled. (#3310)readers.lasnow reports and terminates on some previously undetected LAS file errors. (#3226)- Added
override_srsanddefault_srsoptions toreaders.gdalto 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_failureoption tofilters.reprojectionto allow the program to terminate if a projection operation fails. (#3316) - Added the
--startoption toreaders.lasto 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
--whereoption to all writers. (#3319) - Added a
--nosrsoption toreaders.lasto avoid reading the SRS information. (#3441) - Improved performance of
readers.eptin stream mode. (#3331)
Bug Fixes
readers.tindexcould improperly filter based on a provided polygon. This has been fixed (#3236)- A bug in
filters.eigenvalueswas fixed where improper eigenvalues would be returned if the minimum number of neighbors wasn't satisfied. (#3245) - A regression in
filters.csfwhere an extra loop would substantially slow processing has been fixed. (#3248) - An infinite loop could occur in
readers.eptif there was no data to be read. This has been fixed. (#3268) - A situation where
readers.eptwould attempt to transform an invalid polygon has been fixed. (#3276) readers.objis 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.hagif there were no points to process has been fixed. (#3343) - The
dimbuilderutility now sets the exit code as appropriate. (#3353) - The
pdalprogram 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.colorizationnow properly ignores points outside the input raster in streaming mode. (#3391)- A bug in handling HTTP
Content-Lengthheaders of various case has been fixed. - A bug in the order of reading the min/max values for
readers.bpfversion 1 has been fixed. (#3394) - Fixed a bug in
readers.i3swhere 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.fpsnow returns all points if input contains fewer points than requested. (#3447)filters.headnow returns the specified number of points for all input PointViews in standard mode. (#3448)
- C++
Published by abellgithub almost 5 years ago
pdal - 2.2.0
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_ttoint64_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 (
refineoption) infilters.normalis now off by default. (#3133) - All filters now accept a
whereoption 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
ColumnPointTableis now the default PDAL point table. If you have written code that expects row-major data rather than column-major data, be sure to useRowPointTableinstead.
New Stages
filters.lloydkmeanslabels points with aClusterIDbased on Lloyd's algorithm. (#3075)filters.litreeprovides segmentation of points into trees and non-trees. (#3111)filters.facerastercreates a raster from an existing triangulation. (#3152)filters.optimalneighborhoodcomputes the optimal number of neighbors and corresponding radii (#3180)reader.objallows reading of OBJ files.writers.rasteruses GDAL to write rasters created by PDAL filters. (#3228)
Removed Stages
filters.haghas been removed. Usefilters.hag_dem,filter.hag_delaunayorfilters.hag_nninstead.
Deprecated Stages
filters.ferry. Use thevalueoption offilters.assigninstead.writers.oci. OCI support will be removed in a future release.readers.oci. OCI support will be removed in a future release.
Enhancements
filters.colorinterpnow provides theclampoption 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
seedoptionreaders.fauxin order to allow consistent generation of random data. (#3014) - Improvements have been made to cmake installation to better support downstream projects. (#2262)
- Added
color_verticesoption towriters.gltfto allow writing of RGB and normals. (#3043 - Thanks to Emma Krantz) - Added
classbitsoption tofilters.smrfto specify points to be ignored by the SMRF algorithm. (#3055) - Delaunay triangulation performance has been improved on systems using libstdc++. (#3076)
filters.covariancefeaturesnow provides the optionsmin_kandradiusto support radius search of neighbors in addition to k-nearest. (#3083)filters.clusternow provide the optionis3dto support 2-dimensional clustering. (#3084)filters.icpnow emits a fully composed transformation matrix as metadata that can be provided tofilters.transformationto modify point locations using a single operation. (#2939, #2962)filters.eigenvaluesadded the optionsstride,radiusandmin_kto allow radius and strided neighbor searching. (#3132)writers.lasnow accepts thefilenamekey in thevlrsoption to import VLR data from files. (#3146)filters.transformationnow provides theinvertoption to apply the inverse of the providedmatrix. (#3126)readers.eptnow returns a clipped boundary in the summary to match the behavior of the point count. (#3168)filters.headis now streamable.readers.i3sis now streamable.readers.slpkno longer expands the source file into a temporary directory.filters.assignadded thevalueoption to allow standard expression-based conditional assignment of values.(#1468)readers.tiledbandwriters.tiledbnow 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.neighborclassifierhas 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.smrfhas been fixed. (#3069) - An error in calculating neighbors for isolated points in
filters.smrfhas been fixed. (#3071) readers.lasnow creates dimensionsScanChannelandClassFlagsonly when reading point formats 6-10. It used to create them for any version 1.4 file. (#3092)filters.poissonnow throws exceptions instead of callingexit()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 tindexnow ensures that traditional GIS axis order is used. (#3099)readers.tindexnow uses the file SRS rather than the tile index column SRS unless overridden by thesrs_columnoption. (#3012)- An error in
readers.eptthat could create bad data when both theboundsandaddonsoptions were specified has been fixed. (#3054) filters.hag_nnandfilter.hag_delaunaynow 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.epthas been fixed. (#3120) pdal tindexnow stores WKT instead of EPSG codes to handle vertical SRS instances. (#3100)- A bug in
filters.cropthat didn't properly handle 2D cropping has been fixed. (#3115) readers.textnow 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.pcdwhen preview() was called before execute(). (#3169) - The compression level for
writers.tiledbis now properly set to 7. (#3198) - An issue where
filters.neighborclassifierwould modify classifications as it calculated them has been fixed. (#3210) - An extra comma was written using
readers.textwhen creating GEOJson output. This has been fixed. (#3204)
- C++
Published by abellgithub over 5 years ago
pdal - 2.1.0
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.pythonhas been removed from the primary PDAL library and is part of the PDAL python library.- When the
boundsoption offilters.croprepresents a 3D volume, the filter now does 3D cropping, rather than 2D cropping as in previous releases. (#2904) writers.plyno longer acceptsdefaultas a valid value for thestorage_modeoption. (#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.voxeldownsizeprovides streamed support for voxel filtering. (#2699 - Thanks Helix.re!)filters.separatescanlinesplits input into separate output point views based on associated scan lines. (#2724 - Thanks Guilhem Villemin)filters.farthestpointsamplingadd 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.skewnessbalancingclassifies ground points using the method of Bartels. (#2740)filters.dbscanprovides density-based clustering. (#2748)filters.csfprovides ground classification of points using the cloth simulation method of Zhang. (#2765)readers.hdfprovides generic support for many HDF files. (#2934)filters.hag_nn,filters.hag_delaunayandfilters.hag_demhave been created to replacefilters.hag. (#2886)
Deprecated Stages
filters.hagis deprecated and will be removed in a future release. Usefilters.hag_nn,filters.hag_delaunayandfilters.hag_deminstead.
Removed Stages
readers.sqliteandwriters.sqlite
Enhancements
readers.eptnow supports theheadersandqueryoptions to be forwarded to remote endpoints. (#2690)readers.eptnow supports multipolygons for point filtering. (#2758)readers.eptnow supports asynchronous operation when streaming. (#2772)readers.eptnow supports filtering via OGR queries. (#2295)writers.eptnow supports Zstandard compression. (#2561)writers.gdalnow supports apoweroption that can be used to impact the output of inverse distance weighting mode. (#2550)- Eliminated an error as exception in
readers.e57in order to improve performance. (#2721) readers.rxpnow supports reading theEdgeOfFlightLinedimension. (#2367)filters.randomizenow has aseedoption to initialize the random number generator. (#2736)filters.rdbandfilters.rxpnow support fetching data from remote sources.filters.hexbinnow has the optionsmooth, to smooth generated geometry, andpreserve_topologythat forces creation of valid geometry during the smoothing operation.filters.transformationnow has aspatialreferenceoption to set the spatial reference of output data. (#2796)filters.overlaynow uses the same point-in-polygon algorithm used byfilters.crop. (#2812)writers.tiledbnow supports TileDB attribute filters. (#2828)- Output from
pdal translatecan now be directed to the null device by using eitherdevnullor/dev/nullas the output filename. (#2835) filters.transformationnow supports providing a filename as thematrixoption if the referenced file contains a matrix that matches the format supported inline. (#2856)writers.lasnow allows specification of afilesource_idas an option. (#2862)readers.textnow handles quoted dimension names in a header line. (#2201)pdal infonow reports the reader used for a file, the current time and the size of the file. (#2900)filters.reprojectionnow supports the optionsin_axis_orderingandout_axis_orderingto allow the matching feature in GDAL 3+ be accessed. (#2916)filters.normaladded therefineoption to re-orient normal vectors using a minimum spanning tree. (#2860)
Bug Fixes
readers.e57andwriters.e57now build cleanly on Windows.writers.pgpointcloudno 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.voxelcentroidnearestneighborcould return points for a voxel that weren't actually in the voxel. (#2703) - Fixed a typo in the alternate names of the
NormalYdimension. (#2723) filters.dividernow 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.plyunder certain API uses. (#2791) - Crashes in filters using the delaunay triangulation code have been fixed. (#2805)
writers.pcdnow 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.elmnow works properly when input is an empty point view. (#2921)filters.pmfnow 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.laswould fail to properly set a spatial reference in some cases. This has been fixed. writers.lasnow always uses WKT version 1. In the previous release it may have used WKT version 2 in some cases. (#2943)- A bug in
pdal tilewhere the input spatial reference wasn't set on the output has been fixed. (#2976)
- C++
Published by hobu almost 6 years ago
pdal - 2.0.1
Note
- Version 2.0.0 has been retracted as it was mistagged.
Changes of Note
- Python support now requires at least version 3.5+ of Python and version 1.13 of Numpy.
filters.icpis no longer a plugin and provides options not previously available.- Linear algebra that was using single-precision math is now using double-precision math.
- Support was added for GDAL version 3+.
- PCL support has been removed. PCD read/write and
filters.icpis now natively supported. The PCL filters have been moved to the unsupported-plugins repository for those that might need functionality they provided. - PDAL now uses a JSON library that doesn't support comments. If your pipelines contain non-standard JSON, they will no longer be accepted.
- PDAL now supports GCC 9.2, clang 8.0.1 and Visual Studio 17
New Stages
filters.covariancefeaturescomputes statistics about features of points in a neighborhood. (#2455 - Thanks Helix.re!)readers.e57reads the E57 format. (#2442 - Thanks Helix.re!)writers.e57writes the E57 format. (#2442 - Thanks Helix.re!)writers.gltfprovides simple glTF mesh output support. (#2643)filters.reciprocitycomputes the percentage of points that are considered uni-directional. (#2504 - @chambbj)filters.miniballcomputes a criterion for neighbors based on the miniball algorithm. (#2504 - @chambbj)filters.planefitcomputes a deviation of a point from a manifold approximating its neighbors. (#2504 - @chambbj)readers.memoryviewprovides an API interface for direct reading of row-oriented point data. (#2620)filters.projpipelineprocesses point through a PROJ pipeline. (#2626 - Thanks @vilaa!)
Deprecated Stages
- readers.sqlite (will be moved to unsupported-plugins in a future release)
- writers.sqlite (will be moved to unsupported-plugins in a future release)
- readers.geowave (will be moved to unsupported-plugins in a future release)
- writers.geowave (will be moved to unsupported-plugins in a future release)
Removed Stages
filters.mongusfilters.kdistancereaders.greyhound
Enhancements
readers.mrsidnow supports more recent versions of the Mr. Sid SDK. (#2460)readers.tiledbandwriters.tiledbnow support stream mode processing. It also supports anappendoption.readers.eptnow accepts an optional\<spatial reference>after the bounds specification in theboundsoption to indicate the SRS of the provided boundary. (#2295)filters.hagnow supports interpolation from a TIN (triangulated network) of points. (#2520 - Thanks James McClain!)filters.poissonnow properly applies an inverse transform to points it creates. (#1840)pdal --driversnow shows the file extensions associated with each driver. It also shows when stages are streamable. (#2571, #2528)- Some threaded execution has been added to
readers.ept. - Alternate dimension names have been added for "Red", "Green" and "Blue" to better support PLY input. (#2570)
Bug Fixes
- Fixed a problem where data in a forwarded LAS VLR would be lost. (#2542)
- Clear dimension list in
filters.colorizationto eliminate the possibility of writing invalid data. (#2487) - Delete code that removed control characters when converting to JSON. (#2355)
- Fixed an issue where nested geometries were being written as invalid WKT in
filter.hexbin. (#2507) - Fixed a segmentation fault in
readers.bpfif the specified file didn't exist. (#2515) - Fixed an issue in
writers.gdalwhere interpolation would terminate if the process hit the raster edge. (#2545) - Fixed an issue writing JSON when characters needed to be escaped. (#2558)
- Delaunay triangulation no longer segfaults with fewer than three points. (#2513)
- Issues with reading binary data with
filters.epthave been fixed. (#2585) pdalnow errors if an option is provided that wasn't expected. (#2574)- Forwarding for scale with multiple LAS inputs was fixed. (#2663)
- C++
Published by abellgithub over 6 years ago
pdal - 1.9.1
Version 1.9.1 is a bug fix release.
Bug Fixes
- When writing numerous LAS files with the PDAL API, an internal list of fields to forward could grow excessively. This has been fixed. (#2452)
- A computation in
writers.gdalthat could overflow with very large rasters has been fixed. (#2454) - A bug that could result in the same pipeline tag name being used for multiple stages of the same type has been fixed. (#2458)
- A potential segmentation fault in
pdal densityhas been fixed. (#2461) - A segmentation fault in
filters.chipperwhen processing multiple inputs has been fixed. (#2479) - An issue with
readers.eptoverwriting temporary files before they weren’t needed has been fixed. (#2474) - Fixed an issue where
filters.icpwould create data that appeared invalid due to the precision of data when positions weren’t located near the origin. (#2492)
- C++
Published by abellgithub almost 7 years ago
pdal - 1.9.0
Important Functionality Note
- The meaning of the
precisionoption forfilters.hexbinfor WKT output has changed from "digits after the decimal point" to "total digits of precision". If you need text output as precise as possible, you should set the value to 17. This change is most obvious when using theboundaryoption with thepdal infocommand.
Changes of Note
- PDAL now requires at least version 2.2 of GDAL.
- Pipelines can optionally be specified as an array of stages (without an encapsulating "pipeline" object).
- The location of installed cmake files has been changed to match the cmake convention.
filters.delaunaynow uses the delaunator library instead of geogram.- PDAL no longer depends on the GEOS library. However, some polygon functions will not work if PDAL isn't built with a version of the GDAL library that has GEOS support.
- PDAL now uses the standard cmake script to locate the necessary GDAL files when building.
readers.sbetnow reads angles as degrees rather than radians. (#2354)- The
tindexcommand now requires one of the subcommandscreateormerge. It no longer accepts themergeoption, which has been replaced by themergesubcommand. - The argument for the function
PipelineManager::executeStreamis now of typeStreamPointTable&instead ofFixedPointTable&.
Enhancements
- All readers now accept the
default_srsandoverride_srsoptions.override_srsis an alias for the existingspatialreferenceoption.default_srsapplies only if no spatial reference exists in the source file. (#2194, #2195) - Added some dimension detection capability to
readers.pts. (#2317) - The build system now has enhanced conflict detection of mixed python 2/3 installations. Make sure that you have header files/libraries/interpreter/numpy support for either python 2 or python 3.
- Hardened API use of LASzip in
writers.lasfor points with data format 6 and above and set the extendedpointtype variable. (#2320, #2329) - Support the
libgeotiffpath suffix when searching for the geotiff library with cmake. - Added a
resolutionoption toreaders.eptto limit the number of points read. (#2331) readers.rxpnow supports stream mode.- Added the
invertoption tofilters.headandfilters.tail. - Added support for subcommands in kernels. (#2293)
New stages
filters.mongo- Filtering of points using the mongo expression language.readers.tiledb- Reads points from the tileDB database.writers.tiledb- Writes points to the tileDB database.writers.ept_addon- Adds sidecar data to an existing EPT dataset.
Deprecated stages
filters.kdistance- Replaced byfilters.nndistance.filters.kdistancewill be removed in the next PDAL release.filters.mongus- Replaces byfilters.pmfandfilters.smrf
Bug fixes
- The tindex command now uses sufficient precision when using the
fast_boundaryoption (#2271) filters.smrfandfilters.pmfnow process all points if theNumberOfReturnsorReturnNumberdimension is missing. This fixes a regression introduced with PDAL 1.8. (#2275)- The density command is now found by pdal. This fixes a regression introduced with PDAL 1.8. (#2378)
- The
scale=autoandoffset=autooptions now work withwriters.bpfin stream mode. (#1983) - Pipelines with diamond shapes now properly re-execute ancestor stages. This fixes a regression introduced with PDAL 1.8. (#2290)
filters.cropnow uses the correct logic when theoutsideoption is used in standard mode. (#2305)- A bug in
writers.gdalwith streaming mode that caused an improper location shift in some instances has been fixed. (#2292) - Added an explicit dependency on the arbiter library for curl. This fixes build issues on some Unix platforms. (#1822)
- Fixed a bug in
filters.icpintroduced by a change in PCL (see: https://github.com/PointCloudLibrary/pcl/issues/2724) that improperly removed a function call. (#2319) readers.tindexnow provides a default of "EPSG:4326" for thefilter_srsoption. (#2316)- Points in buffer corners are now properly placed in tiles in
filters.splitter. (#2372) - Fixed reference counting in
filters.pythonthat might have caused a crash in some circumstances. - Generalized the python library re-loaded by PDAL when being used as a python extension. This is only relevant on some Unix distributions.
- Fixed a bug in
writers.gdalthat might access invalid memory in some situations. (#2448)
- C++
Published by abellgithub almost 7 years ago
pdal - 1.8.0
Important Issue
- Those using PDAL to compress to LAZ should be aware that we have found an issue with LASzip that may cause PDAL to create compressed data for LAS 1.4 point types 6 and greater that caused them to be unable to be fully read. See https://github.com/LASzip/LASzip/issues/50 for more information or to see if the issue has been resolved in LASzip.
Changes of Note
- PointTableRef is now publicly accessible from PointView (#1926)
- Minimum CMake version is now 3.5
filters.hexbinis now a built-in stage, rather than a plugin. (#2001)- Removed support for
ghtcompression inwriters.pgpointcloud. (#2148) - On OSX, plugins are now installed with ID of
@rpathrather than@loader_path/../lib - The API for
StreamPointTable::StreamPointTable()now requires the capacity of the table to be passed as an argument.
Enhancements
- Added
denoiseandresetoptions topdal ground. (#1579) readers.gdalnow supports stream mode and provides theheaderoption to map dimensions. It also supports fetching bounds without reading the entire file. (#1819)readers.mbioaddeddatatypeoption to support reading sidescan data. (#1852)filters.statswas computing expensive kurtosis and skewness statistics by default. These statistics are now available with theadvancedoption. (#1878)- Added backtrace support for alpine linux-based Docker containers. (#1904)
- Added a
conditionoption forfilters.assignto limit assignment. (#1956) - Add access to artifact manager keys. (#2026)
- Added support for LAZ compression in
writers.pgpointcloud(#2050) - Replaced
lastoption withreturnsto support more flexible segmentation infilters.smrfandfilters.pmf. (#2053) writers.textnow supports stream mode. (#2064)- Added
pdal tilekernel with streaming support to conveniently tile data. (#2065) - A KD-tree used in one filter will now be reused in subsequent filters when possible. (#2123)
writers.plynow has aprecisionoption to specify output precision. (#2144)filters.smrfandfilters.pmfsupports complete range syntax for theignoreoption. (#2157)filters.hexbinnow supports stream mode. (#2170)readers.numpynow has theorderoption, which replaces the previousx,yandzoptions. It also supports structured numpy arrays and maps values to the X, Y and Z dimensions accordingly.- All readers now support setting a spatial reference to override any in the data with the
spatialreferenceoption. - Add support for unicode filenames in pipelines on Windows platforms.
- Added NumpyReader::setArray() to support direct setting of a numpy array into
readers.numpy. - Added StreamPointTable::setNumPoints() and support in Streamable::execute() allowing custom point tables to know the number of points in each pass through the point table.
- Added SpatialReference::isProjected() to allow callers to determine if a spatial reference specifies a projection. Also added SpatialReference::identifyHorizontalEPSG() and SpatialReference::identifyVerticalEPSG() to return an EPSG code from a spatial reference if possible.
- Added support for reading BPF files stored remotely.
New stages
readers.rdb- Support reading RIEGL RDB data.readers.i3s- Support reading of web service-style Esri I3S point clouds.readers.slpk- Support reading of file-based I3S-style point clouds.writers.fbx- Experimental Unity engine (SDK required) support. (#2127)filters.nndistance- Replacesfilters.kdistanceand adds average distance support. (#2071)filters.dem- Filter data based on bounds relative to a raster value. (#2090)filters.delaunay- Create a delauany triangulation of a point cloud. (#1855)filters.info- Generate metadata about an input point set. Used bypdal info.
Deprecated stages
filters.kdistance- Replaced byfilters.nndistance.
Bug fixes
- Fixed an incorrect error message suggesting there were multiple SRSs in some cases when reading multiple inputs. (#2009)
- Fixed a problem in
filters.reprojectionin stream mode that would improperly reproject when there were multiple input sources with differing SRSs. (#2058) - Fixed a problem in stream mode where a stage with no SRS would override the active SRS during processing. (#2069)
- Fixed a problem in
writers.gdalwhere output would be aggregated if multiple inputs were provided. (#2074) - The
countoption was not respected in stream mode. It now properly limits the number of points read. (#2086) - Fixed an off-by-one error that could create improper values in
writers.gdal. Most data differences were small and not usually problematic. (#2095) - Multiple option values can be specified on the command line by repeating the option assignment. (#2114)
- Added a missing initialization in
filters.returnsthat could cause more point views to be returned than requested. (#2115) - Emit an error if the
countoption isn't set forreaders.faux. (#2128) - PipelineManager::getStage() now returns a proper leaf node. (#2149)
- Fixed logic for
filters.cropin streaming mode with multiple crop areas that could return too few points. (#2198) - Added the
minimaloption forreaders.rxpthat was documented but not fully implemented. (#2225) - Fixed an error in failing to read all points in
readers.rxpexposed with a newer SDK. (#2226) - Fixed an error in fetching floating point data from a PointContainer when the value was NaN. (#2239)
- C++
Published by abellgithub over 7 years ago
pdal - 1.7.2
Bug fixes
- Don't write LAS GeoTIFF VLRs if they contain no data (#1914)
- Centroid computation should use doubles instead of floats (#1919)
- Fixup
-Werror-related warnings (#1915) - Fix linking to libdl for dlopen (#1902)
- BPF doesn't build with ZLIB (#1929)
- Packaging improvements (#1942, #1976, #1980, #1943)
- Explicitly allow underscores and capital letters in stage names (implicit pre-1.7, hardened to disallow in 1.7.1) (#1923)
- Warn about auto scaling
writers.lasin stream mode (#1940) - Handle cr/lf endings in Windows for
readers.text(#1939 ) - Make
pdal-configowner writeable for Conda packaging (#1964) - Allow replacement of artifacts (#1994)
- Fixed problem with UTM calculation for southern zones (#1989)
- Fixed issue with kernel plugins failing to load (#1971)
- Fixed problem where
filters.ferrywould create dimensions with bad types (#1930)
- C++
Published by hobu almost 8 years ago
pdal - 1.7.1
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) - PDALDRIVERPATH 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
- C++
Published by abellgithub almost 8 years ago
pdal - 1.6.0
Changes of Note
- PDAL's Travis CI configuration is now based on Alpine Linux.
- PDAL is now built into containers with Alpine linux in addition to Ubuntu linux. Tags exist for each release, starting with 1.4, as well as the master branch.
- Pipeline tag names can now contain capital letters. They can also contain underscores after the first character.
- Replace
filters.programmableandfilters.predicatewith the more generalfilters.python. - Add support for Matlab with
filters.matlab(#1661). - Remove the
approximateoption fromfilters.pmfand add anexponentialoption.p - Placed base64 encoded VLR data in a subnode of the VLR itself with the key "data" rather than duplicate the VLR node itself (#1648).
- XML pipelines are no longer supported (#1666).
- The number of proprietary dimensions in
readers.textwas expanded from 255 to 4095 (#1657). - API hooks have been added to support the use of PDAL with JVM languages such as Java or Scala.
- Added support for LASzip 1.4 and switch to use the new LASzip API. (#1205). LASzip support in PDAL will require LASzip.org release 3.1.1 or greater.
- The cpd kernel has been replaced with
filters.cpd. - No more warnings about ReturnNumber or NumberOfReturns for LAS permuations (#1682).
- The KernelFactory class has been removed. Its functionality has been moved to StageFactory.
- Built-in eigen support has changed from version 3.2.8 to 3.3.4 (#1681).
Enhancements
- API users can now create synonyms for existing arguments to a stage.
filters.splittercan now create buffered tiles with thebufferoption.writers.plycan now be made to write faces of an existing mesh (created withfilters.greedyprojectionorfilters.poisson) if thefacesoption is used. An optiondimshas also been added that allows specification of the dimensions to be written as PLY elements. The writer also now supports streaming mode.readers.textis now automatically invoked for .csv files.- PDALPLUGININSTALL_PATH can now be set via override when building PDAL from source.
- Changed the use of null devices to eliminate potentially running out of file descriptors on Windows.
filters.randomizecan now be created by the stage factory (#1598).- Provide the ability to specify a viewpoint and normal orientation in
filters.normal(#1638). readers.lasnow provides theignore_vlroption to allow named VLRs to be dropped when read (#1651).- Allow
writers.gdalto write output rasters of type other than double (#1497). filters.sqliteis now invoked automatically for .gpkg files.filters.colorinterpcan now be used in streaming mode in some cases (#1675).- Pointers can now be stored as metadata.
filters.ferrycan now create new dimensions without copying data (#1694).
Documentation
- Remove some leftover references to the
classifyandextractoptions that were removed fromfilters.groundin the last release. - Add a note about running pgpointcloud tests.
- Added a tutorial on filtering data with python.
- Remove lingering XML pipeline examples and replace with JSON.
- Many updates and corrections to the workshop.
- Added to the FAQs and entry about why a stage might not be found.
- Added information to stage docs to indicate whether or not they were buit-in rather than plugins (#1612).
- Added information to stage docs to indicate when they are streamable (#1606).
New filters
filters.greedyprojection- Performs triangulation of points (surface reconstruction) based on the greedy projection algorithm.filters.poisson- Performs triangulation of points (surface reconstruction) based on the algorithm of Kazhdan.filters.head- Passes through only the first N points.filters.tail- Passes through only the last N points.filters.cpd- Calculates and applies a transformation to align two datasets using the Coherent Point Drift registration algorithm.filters.icp- Calculates and applies a transformation to align two datasets using the Iterative Closest Point registration algorithm.filters.voxelcenternearestneighbor- Finds points closest to the center of a voxel (#1597).filters.voxelcentroidnearestneighbor- Finds points closest to the controid of points in a voxel (#1597).filters.python- Replacesfilters.predicateandfilters.programmable.filters.matlab- Provides support for matlab manipulation of PDAL points and metadata (#1661).
New readers
- Add
readers.osgto support Open Scene Graph format. - Add
readers.matlabto support reading data from a user-defined Matlab array struct. The same structure is written bywriters.matlab.
Bug fixes
- Fixed a case where
kernels.tindexwould unconditionally set the spatial reference on a feature from thea_srsoption. The spatial reference stored ina_srsis now only used if explicitly set or no spatial reference was present. - Fixed a case where
writers.gdalcould fail to check for an out-of-bounds point, potentially leading to a crash. - Fix an error in
filters.clusterwhere the points wouldn't properly be placed in the first cluster because the starting cluster number was incorrect. - Fixed an error in freeing OGR features that could cause a crash when running "pdal density".
- Fix potential memory leaks when creating OGRSpatialReference objects.
- Make sure the
global_encodingoption is initialized to 0 inwriters.las(#1595). - Fix eigen::computeCovariance to compute the correct sample covariance.
- In some cases, the
filters.cropwould attempt to treat a 2D bounding box as 3D, yeilding a NULL bounding box and an error in behavior (#1626). - Fixed potential crash when using PDAL with multiple threads by providing locking for gdal::ErrorHandler (#1637)
- Made sure that an uncompressed LAS file would be properly read even if the
compressionoption was provided. - Throw an exception instead of crash when attempting to access a non-existent color ramp. (#1688)
- C++
Published by abellgithub over 8 years ago
pdal - 1.5.0
Changes of Note
- PCL
--visualizecapability of thepdalcommand line application has been removed. writer.derivativehas been removed. Use gdaldem for faster and more featureful equivalent functionality.- GeoTIFF and Proj.4 are now required dependencies.
writers.p2ghas been removed. It was replaced bywriters.gdalin 1.4, but the P2G writer was essentially unmaintained and we will be using the GDAL one going forward.filters.attributewas split intofilters.assignandfilters.overlayto separate their functionalitiesfilters.pmfandfilters.outlierhave dropped theclassifyandextractoptions. They now only classify points and leave it downstream filters to ignore/extract classifications as needed.filters.outlierhas changed the default classification for noise points from18to7to match the LAS classification code for "Low point (noise)".
Enhancements
pdal pipelinenow supports a--streamoption 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 withwriters.gdalfilters.cropwas enhanced to support transformed filter polygons, streaming, and radius cropping.readers.greyhoundupdated to support greyhound.io 1.0 release, with the most significant enhancement being support for passing downstream JSON filters.user_dataJSON 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. #1427writers.lasnow can writepdal_metadataandpdal_pipelineVLRs for processing history tracking. #1509 #1525metadata,schema, andspatialreferenceobjects added to global module forfilters.programmableandfilters.predicatePython filters.pdalargsoption forfilters.programmableandfilters.predicateallow 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.sortnow supports descending order and usesstd::stable_sort#1530 (Thanks to new contributor @wrenoud )pdal tindexwill now use data bounds iffilters.hexbincannot be loaded for boundaries #1533filters.pmfandfilters.smrfimproved performance #1531 and #1541filters.assignnow supports Range-based filtersfilters.outliernow accepts a user-specifiedclassto override the default value of7for points deemed outliers. #1545filters.pmfandfilters.smrfnow accept a Range via theignoreoption to specify values that should be excluded from ground segmentation. #1545filters.pmfandfilters.smrfnow consider only last returns (when return information is available) as the default behavior. Thelastoption can be set tofalseto consider all returns. #1545
Documentation
- New About page adapted from workshop
- New LAS reading and writing tutorial
- Consolidation of Python information
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.mbioBathymetric point cloud support for formats supported by the MB-System software library
Bug fixes
writers.pgpointcloudneeded to treat table schema correctly https://github.com/PDAL/PDAL/pull/1540 (thanks @elemoine)pdal densitykernel now supports overridingfilters.hexbinoptions #1487- Arbiter embedded library updated to support setting Curl options (certificate settings, etc).
- Provided a default value for
radiusinwriters.gdal#1475 writers.plybroken for non-standard dimensions #1556- No EVLRs for
writers.lasfor files < LAS 1.4 #1551 - LAS extra dims handling for standard PDAL dimension names #1555
- LASzip defines #1549
- C++
Published by hobu almost 9 years ago
pdal - 1.4.0
Changes of Note
- GeoTIFF is now required to compile PDAL
--scaleand--offsetkernel options are no longer supported. Specify using stage-specific options as needed.- The
--validateoption of thepdal pipelinecommand now invokes the preparation portion of the pipeline to force validation of options. - The
--verboseoption topdalnow accepts log level names ("Error", "Warning", "Info", "Debug", "Debug1", "Debug2", "Debug3", "Debug4" and "Debug5") in addition to the corresponding numeric values (0 - 8).
Enhancements
New filters
filters.colorinterp- Ramp RGB colors based on a specified dimension. By @hobufilters.mad- Filter outliers in a given dimension by computing Median Absolute Deviation (MAD). By @chambbjfilters.lof-Filters outliers by Local Outlier Factor (LOF). By @chambbjfilters.estimaterank- Estimate rank of each neighborhood of k-nearest neighbors. By @chambbjfilters.eigenvalues- Compute pointwise Eigenvalues. By @chambbjfilters.iqr- Filter outliers in a given dimension by computing Interquartile Range (IQR). By @chambbjfilters.kdistance- Compute pointwise K-distance. By @chambbjfilters.radialdensity- Compute pointwise radial density. By @chambbjfilters.outlier- Radius and statistical outliers. By @chambbj
New writers
writers.gdal- points2grid replacement. By @abellgithub
New kernels
kernels.hausdorff- Compute Hausdorff distance between two point clouds. By @chambbj
Improvements
- Filename globbing is now supported in the JSON pipeline specification of reader input files. Note that tilde expansion is NOT supported.
- Source tree reorganization https://lists.osgeo.org/pipermail/pdal/2016-December/001099.html
- CMake updates to utilize
target_include_directoryandtarget_link_libraries. - JSON output for
pdal --showjson --driversandpdal --showjson --optionsto support application builders being able to fetch active lists of stages, kernels, and options. https://github.com/PDAL/PDAL/issues/1315 - Stacktrace logging to stderr on Unix systems https://github.com/PDAL/PDAL/pull/1329
- Geometry ingestion enhancements now support using GeoJSON or WKT in pipeline options https://github.com/PDAL/PDAL/pull/1339.
- Significant Python extension refactor https://github.com/PDAL/PDAL/pull/1367 including ability to fetch data schema, log, and pipeline information. Common utility classes to support the Python extension were refactored in support of the Java extension.
- Java extension by Azavea to support using PDAL in Spark and friends. https://github.com/PDAL/PDAL/pull/1371
kernels.density- Density kernel now supports writing into an existing OGR datasource https://github.com/PDAL/PDAL/pull/1396readers.greyhound- Greyhound reader refactor.- Multi-threaded read support
- Server-side filtering pass-through
writers.derivative- Derivative writer refactor.slope_d8slope_fdaspect_d8aspect_fdcontour_curvatureprofile_curvaturetangential_curvaturehillshadetotal_curvature- Output to any GDAL-writable format https://github.com/PDAL/PDAL/issues/1146
filters.crop- Radial cropping https://github.com/PDAL/PDAL/issues/1387filters.stats- Optional per-dimension median and MAD computation- Support was added for the recently added cartesian coordinate in BPF files.
writers.p2gnow uses the InCoreInterp method of the points2grid code. This uses more memory but runs faster and doesn't crash.- The application now provides better error feedback on command-line errors by indicating the invoked kernel when an error is detected.
- PDAL now searches by default in the following locations for plugins:
"." "./lib", "../lib", "./bin", "../bin". UsePDAL_DRIVER_PATHto explicitly override the plugin search location. - Vector-based command-line arguments now accept default values in the API.
- JSON parsing errors of pipeline files now provide more detailed messages.
- Writers now add output filenames to metadata.
- Stage names provided as input to other stages in pipelines can now be specified as strings or arrays of strings. The previous version required single input stage names to be placed in an array.
- Added
--smoothoption tofilters.hexbinto allow user control of boundary smoothing.
Bug fixes
- Well-known text provided as a spatial reference isn't interpreted by GDAL unless necessary.
filters.hexbinnow returnsMULTIPOLYGON EMPTYwhen it is unable to compute a boundary.- Reading a not a number (nan) value from a text file now works properly.
- The
--compressionoption forwriters.pcdhas been fixed so that the writer actually compresses as requested. - The stage manager (and hence, pipelines) now properly recognizes the text reader as
readers.text. readers.textnow detects the case when a dimension has been specified more than once in an input file.- Fixed a problem where
filters.splittercould create cells larger than requested about the X and Y axes. writers.nitfnow errors if it attempts to write an FTITLE field that exceeds the allowable length.- If PDAL is build with LAZperf but without LASzip, the program now properly defaults to using LAZperf.
- Fixed a problem where
filters.sortcould fail to properly order points depending on the implementation of the C++ sort algorithm. - Fixed a problem in pgpostgres readers and writers where a failure in a query could lead to a crash.
- C++
Published by hobu about 9 years ago
pdal - 1.3.0
Changes of Note: - Command line parsing has been reworked to cause invalid options to emit an error message. Stage options specified in pipelines and on the command line are handled similarly. - The dimension PlatformHeading has been renamed to Azimuth. When looking up a dimension by name, the string "platformheading" is still accepted and returns Azimuth. - Errors detected by GDAL are no longer thrown as exceptions. A log message is emitted instead. - Well-known dimensions are now added to PDAL by editing a JSON file, Dimension.json. - Linking with PDAL using CMake no longer requires explicit linking with curl, jsoncpp or arbiter libraries. - PDAL now searches for plugins in the following locations and order by default: ./lib, ../lib, ../bin, the location where PDAL was installed. - The '--debug' and '--verbose' options are no longer supported as stage options. The '--verbose' option is accepted on the PDAL command line. The '--debug' option is deprecated, and if specified on the command line is equivalent to '--verbose=3'. One can enable logging programmatically by calling setLog() on a PipelineManager or a specific stage. - pdal::Dimension types are now C++11 enumeration classes. The change may require editing any Stage implementations you might have and removing the extraneous ::Enum type specification.
Enhancements: - Pipelines can now be read directly from standard input. - Files can now be read from Amazon S3 buckets by providing an appropriate URL. - Many new filters have been added: filters.approximatecoplanar, filters.eigenvalues, filters.estimaterank, filters.hag, filters.normal, filters.outlier, filters.pmf, filters.sample. Most of these are algorithm extractions from the PCL library, with the hope of eliminating the need for PCL in some future PDAL release. - The PLY reader now loads dimensions that aren't predefined PDAL dimensions. - A '--driver' option has been added to allow a specific driver to be loaded for a file without regard to its extension. - The PDALDRIVERPATH environment variable now accepts a list of locations to search for drivers. - Beta release quality drivers improvements in readers.greyhound - Beta quality implementation of Mongus and Zalik ground filter - Experimental implementation of Pingel et al. ground filter - writers.pcd enhancements by Logan Byers (binary, compression) -- requires PCL - Docker images upgraded to Ubuntu Xenial - Cyclone PTS reader -- readers.pts - skewness, kurtosis, stddev, and variance added to filters.stats output - Python API now available https://pypi.python.org/pypi/pdal
Fixes: - A failure that may have resulted when using filters.hexbin to calculate density in the southern hemisphere has been corrected. - A failure to create the index file with 'pdal tindex' and GDAL 2.X has been fixed. - The '--tindex' option for the 'pdal tindex' command is now a positional option as specified in the documentation. - The icebridge reader now reads the X dimension as longitude and forces the value in the range (-180, 180]. It also properly uses the dimension Azimuth instead of ScanAngleRank. - An error in writers.pgpointcloud where it ignored SQL to be run at the end of the stage has been fixed. - An error that might incorrectly write values stored internally as bytes when written as a different data type has been fixed. - A problem where 'pdal info' wouldn't properly report dimension names not predefined by PDAL has been fixed. - A bug in filters.crop that wouldn't properly transform coordinates when provided the '--a_srs' option has been fixed.
- C++
Published by hobu over 9 years ago
pdal -
1.2.0:
Changes of Note: - The GEOS library is now required to build PDAL. In earlier versions it was an optional component. - Boost is no longer a required component. Unless you are building plugins that require boost (notably PCL and Geowave), you no longer will need boost installed on your system to build or run PDAL. - PDAL now builds on Microsoft Visual Studio 2015. - The PipelineReader class has been removed and its functionality has been merged into PipelineManager. - Plugin libraries now support Linux versioning. - Naming changes have been made to allow packaging with the Debian release. - filters.height now uses the dimension 'HeightAboveGround' instead of a dimension named 'Height' to be compatible with the filters.heightaboveground. - Option names no longer contain lowercase characters. - PDAL now works with GDAL version 1.9 and later. - Stages created with the StageFactory are now owned by the factory. - filters.dartthrowing has been renamed filters.dartsample - 'pipeline-serialization' now produces JSON output instead of XML.
Enhancements: - Pipelines may now be specified using a JSON syntax. XML syntax is still supported but users should switch to JSON when possible as the XML support will be removed in a future version. - PDAL now can be built into a Docker container. - Many stages now support "streaming," which allows control of the number of points stored in memory during processing. See Stage::execute(StreamPointTable&) for more information. - A basic text reader has been added. - Added support for the dimension 'ClassFlags' in readers.las. - The derivative writer can now produce output for multiple primitive types with a single execution. - 'pdal info' now provides bounding box output instead of a more refined boundary when the hexbin plugin isn't found. - Added 'pdal density' to provide a command-line interface to the filters.hexbin density calcuations. - The icebridge reader can now load an associated metadata file. The reader also now marks the associated coordinate system as WGS84. - The stats filter now emits bounding box information in native and WGS84 projections. - PDAL command-line programs now (generally) check their argument lists for correctness and report syntax errors. - 'pdal info' now provides spatial reference attributes in addition to the actual well-known text. - Geometry can now be specified as GeoJSON as well as well-known-text in most contexts. Geometry optionally provides Z-dimension output. - Stage and plugin creation is now thread-safe (NOTE: Most of PDAL is NOT thread-safe, so tread carefully). - Many, many documentation enhancements.
Fixes: - A bug in generating PCIDs when with multiple simultaneous PDAL executions to the same Postgres database has been fixed. - Fixed a bug in generated SQL delete statements when certain table names were used in the writers.postgres driver. - Properly escape quotes when generating JSON output. - Fix an off-by-one error when writing data with the derivative writer that could lead to a crash. - Fixed a dependency error during builds that could lead to a failure to properly load Python extensions on Linux. - Fixed a bug where passing certain options to 'pdal info' could be handled in ambiguous ways. - Fixed bugs in the reading of raster data using readers.gdal. - Fixed population of the AIMIDB and ACFTB attributes in writers.nitf. - Corrected the parsing of some dimension names in filters.colorization. - Fixed a potential truncation in the GlobalEncoding dimension of readers.las.
- C++
Published by abellgithub over 9 years ago
pdal - PDAL 1.1.0
1.1.0:
Enhancements: - Add support for the LAZperf LAS compressor in decoding/encoding LAS files. LAZperf can be enabled with the 'compression' option in readers.las and writers.las. - Add PCL functionality as filters (filters.greedyprojection, filters.gridprojection, filters.ground filters.movingleastsquares, filters.poisson, filters.radiusoutlier, filters.statisticaloutlier, filters.voxelgrid, filters.height, filters.dartsample) - Add readers.gdal to support reading raster sets as point clouds - Update writers.geowave and readers.geowave to work with the latest version of GeoWave software. - Add readers.ilvis2 to support the Icebridge ILVIS2 format. - Disallow nested options. Check stage documentation for changes in option names and handling. (filters.ferry, filters.colorization, filters.attribute, filters.crop). Change filters.attribute to handle only a single dimension. - Add 'outputdims' options in writers.bpf to allow control of the dimensions that should be written. - Add 'all' keyword in 'extradims' options of writers.las to cause all dimensions to be written to either the standard or extra dimensions of a LAS point. - Add filters.randomize to allow randomized order of points. - Add filters.divider to split a set of points into subsets of a fixed number or into subsets containing a specific number of points. - Update to version 1.1.4 of rply in readers.rply. - Change the logic of the range filter to allow multiple ranges for a single dimension and support a simple boolean logic. - Change the default scaling on writer.bpf to 'auto'. - Add support for smoothing boundaries generated by filters.hexbin. - Add readers.tindex to allow vector-filtered input of point cloud files. - Allow merging of datasets with non-matching spatial references. - Many, many documentation enhancements.
Fixes: - Handle error with Pgpointcloud when pointcloud extension is not installed on postgres server. Skip tests if extention is missing. - Set precision on output of doubles to metadata. - Fix a divide-by-zero error in readers.faux when the point count was 1. (https://github.com/PDAL/PDAL/issues/1015) - Fix fatal error loading numpy library that occurred when running filters.predicate or filters.programmable. (https://github.com/PDAL/PDAL/issues/1010) - Correct readers.las to properly check WKT bit when choosing spatial reference VLR. (https://github.com/PDAL/PDAL/issues/1040) - Correct writer.las to emit only WKT or GeoTiff VLR, not both. (https://github.com/PDAL/PDAL/issues/1040) - Check object ID against table column id (attrelid) to ensure correct PCID retrieval in readers.pgpointcloud. (https://github.com/PDAL/PDAL/pull/1051)
- C++
Published by abellgithub over 10 years ago