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.spz and readers.spz (open 3DGS format from Niantic) by @ibell13 in https://github.com/PDAL/PDAL/pull/4653
  • Add filters.supervoxel stage by @bramton in https://github.com/PDAL/PDAL/pull/4735

New Features and Enhancements

  • Multi-thread support, where query, and new options for pdal tindex by @ibell13 in https://github.com/PDAL/PDAL/pull/4531
  • FileSpec support for readers.tindex and readers.stac by @ibell13 in https://github.com/PDAL/PDAL/pull/4738
  • Extend filters.gpstimeconvert to handle day seconds. by @gui2dev in https://github.com/PDAL/PDAL/pull/4562
  • Add filters.expression support for filtering NaN and LOWEST/HIGHEST by @abellgithub in https://github.com/PDAL/PDAL/pull/4561
  • Add H3-based tessellation in filters.hexbin by @ibell13 in https://github.com/PDAL/PDAL/pull/4506
  • Enhance filters.gpstimeconvert to make it streamable by @gui2dev in https://github.com/PDAL/PDAL/pull/4568
  • Implement filters.divider.expression to break on expression by @hobu in https://github.com/PDAL/PDAL/pull/4689
  • Support remote files in readers.sbet by @trns1997 in https://github.com/PDAL/PDAL/pull/4684
  • Add check for unsupported field lengths in tindex create by @ibell13 in https://github.com/PDAL/PDAL/pull/4703
  • Add common ogr option argument to filters.crop, readers.copc, readers.ept, readers.tindex, and filters.geomdistance stages by @ibell13 in https://github.com/PDAL/PDAL/pull/4573
  • Add readers.stac.ogr option 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.copc by @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.covariancefeatures error message by @chambbj in https://github.com/PDAL/PDAL/pull/4704
  • Add some logging and error handling for filters.covariancefeature edge 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 dimension argument to filters.neighborclassifier @abellgithub in https://github.com/PDAL/PDAL/pull/4535
  • Update vendored delaunator for filters.hag_delaunay by @abellgithub in https://github.com/PDAL/PDAL/pull/4695
  • tindex create SRS 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.poisson unable 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.arrow and writers.arrow by @abellgithub in https://github.com/PDAL/PDAL/pull/4611
  • Read quickinfo or filters.stats to 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.geomdistance initialization and distance comparisons by @hobu in https://github.com/PDAL/PDAL/pull/4510
  • Set correct CRS when outputting density surface in filters.hexbin by @ibell13 in https://github.com/PDAL/PDAL/pull/4514
  • Harden readers.copc thread 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.pcd binary 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.copc thread pool init to initialize by @hobu in https://github.com/PDAL/PDAL/pull/4716
  • Fix readers.stac testing segfaults by @hobu in https://github.com/PDAL/PDAL/pull/4699
  • Handle multiple extrabyte VLR definitions in readers.las and readers.copc by @alavenant in https://github.com/PDAL/PDAL/pull/4577
  • Fix floor values before cast when creating grid in filters.voxelcentroidnearestneighbor by @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 docs target 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.expression docs 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 tindex tutorial 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.copc by @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.pcd binary 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 \ in Utils::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.poisson doesn'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.las until it is complete #4534
  • Add cls and class as alt_name for Classification #4532
  • Fetch bounds in readers.ply preview() #4529
  • readers.copc might have memory leak in some situations (thanks @AbhinavAtrishi!) #4511
  • Consolidate PDAL_VENDOR_EIGEN_DIR CMake variable definition #4503
  • Allow override/set of --breakout dimension for pdal info #4502
  • Use processOne instead of custom code in standard mode of writers.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_duplicates by @hobu in https://github.com/PDAL/PDAL/pull/4469
  • Add filters.expressionstats and pdal info --breakout option 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.sort by @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.litree by @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.assign before 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.las GlobalEncoding is not set correctly for WKT #4414
  • gpstime_maximum not being correctly read in readers.copc #4404 (Thanks @kylemann16!)
  • Default writer.bpf.coord_id to auto #4428

Docs

  • Fix rotation matrix example in filters.transformation doc (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
  • STANDALONE build config for filters.cpd #4396
  • Matlab plugin compilation #4417 (Thanks @prennich!)
  • E57 plugins need to link against PDAL in STANDALONE builds #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.las ready() processing if there are no points #4363
  • readers.arrow and writers.arrow do not require GDAL CMake dependency #4365
  • Add writers.tiledb duplicate points config #4370
  • use CONFIG CMake find_package for filters.arrow and readers.draco/writers.draco #4369
  • Don't attempt tree isolation for isolated point in filters.litree #4373

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

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

- C++
Published by hobu almost 2 years ago

pdal - 2.7.0

New Stages

  • Add filters.sparsesurface sparse surface filter by @chambbj in https://github.com/PDAL/PDAL/pull/4330
  • Add filters.h3 to add H3 index values to points by @hobu in https://github.com/PDAL/PDAL/pull/4345
  • Add filters.griddecimation grid decimation filter by @alavenant in https://github.com/PDAL/PDAL/pull/4223

Enhancements

  • implement filters.hexbin.density by @hobu in https://github.com/PDAL/PDAL/pull/4244
  • add ogr block to filters.geomdistance by @hobu in https://github.com/PDAL/PDAL/pull/4236
  • Threaded readers.las by @abellgithub in https://github.com/PDAL/PDAL/pull/4219
  • Add math unary functions to AssignmentStatement in filters.expression and filters.assign by @hobu in https://github.com/PDAL/PDAL/pull/4288
  • filters.assign can now create dimensions by @hobu in https://github.com/PDAL/PDAL/pull/4282
  • Add readers.las.ignore_missing_vlrs by @wintal in https://github.com/PDAL/PDAL/pull/4299
  • Add extra dim support to writers.copc by @abellgithub in https://github.com/PDAL/PDAL/pull/4309
  • Added threading functionality to filters.overlay by @bramton in https://github.com/PDAL/PDAL/pull/4307
  • filters.expression multiple 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 xmlErrorPtr caused by libxml2 API 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.stac doing head requests before necessary by @kylemann16 in https://github.com/PDAL/PDAL/pull/4220
  • Set while condition for filters.litree to be larger than min points by @fnands in https://github.com/PDAL/PDAL/pull/4218
  • readers.copc.bounds produces different results than filters.crop.bounds by @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.decimation non-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.ept thread 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.las that 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.arrow for 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 Modes by @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.groupby documentation #4303 (thanks @bramton!)
  • Fixed speling error in filters.litree documentation #4316 (thanks @Keenan-Nicholson!)
  • Fix getting/setting PDRF in LasHeader #4286 (thanks @AlexBass05!)
  • Update hausdorff.rst #4285 (thanks @jf-geo!)
  • Update PDAL workshop #4283 (thanks @j9ac9k!)
  • Fixed logic of srs bounds filtering for readers.stac #4300 (thanks @kylemann16!)

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

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

- C++
Published by hobu about 2 years ago

pdal - 2.6.2

Bug Fixes

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

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

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

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

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

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

- C++
Published by hobu over 2 years ago

pdal - 2.6.0

Changes of Note

  • chamfer, delta, density, eval, ground, hausdorff, and random kernels are deprecated. These can now be implemented in Python. See https://github.com/PDAL/PDAL/pull/4209 for deprecation schedule.
  • readers.las and readers.copc now support srs_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::Bounds spellings by @hobu in https://github.com/PDAL/PDAL/issues/4042
  • Implement -DSTANDALONE=ON plugin 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.las and writers.copc by @connormanning in https://github.com/PDAL/PDAL/pull/4186

New Stages

  • filters.georeference filter by @gui2dev in https://github.com/PDAL/PDAL/pull/4109
  • filters.straighten filter by @gui2dev in https://github.com/PDAL/PDAL/pull/4108
  • writers.arrow for GeoParquet and Arrow IPC write support by @hobu in https://github.com/PDAL/PDAL/pull/4115
  • readers.arrow for GeoParquet and Arrow IPC read support by @hobu in https://github.com/PDAL/PDAL/pull/4115

Enhancements

  • Add optional debug argument to filters.csf by @n4z4m3 in https://github.com/PDAL/PDAL/pull/3952
  • add allow_empty option to writers.gdal to support writing empty GDAL output by @hobu in https://github.com/PDAL/PDAL/pull/3984
  • readers.stac now streamable by @hobu in https://github.com/PDAL/PDAL/pull/3989
  • readers.tindex now streamable by @hobu in https://github.com/PDAL/PDAL/pull/3992
  • readers.gdal performance enhancements by @hobu in https://github.com/PDAL/PDAL/pull/3991
  • pdal info now outputs PROJJSON as actual JSON for pdal info by @hobu in https://github.com/PDAL/PDAL/pull/4003
  • Add spherical coordinates support to readers.e57 readers 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 Roll and Pitch to readers.rxp by @hobu in https://github.com/PDAL/PDAL/pull/4067
  • remote readers.bpf and writers.bpf stage-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 .vpc to recognized extensions for readers.stac and QGIS #4072 by @hobu in https://github.com/PDAL/PDAL/pull/4073
  • add filters.stats.commonsrs to 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.i3s and readers.slpk are 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_args by @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.nitf stream 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.las header items containing spaces by @abellgithub in https://github.com/PDAL/PDAL/pull/3967
  • Handle 0 points in filters.greedyprojection by @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.las by @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.ept and readers.copc by @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.relaxationdartthrowing by @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.pcd reading of 64bit values by @hobu in https://github.com/PDAL/PDAL/pull/4158
  • Fix OB1 error in pdal tile by @abellgithub in https://github.com/PDAL/PDAL/pull/4122
  • writers.copc: round X/Y/Z values to match writers.las by @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.copc and writers.las #4088 #4099
  • Fix gcc12 eigen warnings #4102
  • Update arbiter bundle for IMDSv2 AWS improvements #4089
  • More workshop instruction improvements #4096 (Thanks @ibell13 !)

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

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

- C++
Published by hobu over 2 years ago

pdal - 2.5.5

Bug Fixes

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

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

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

- C++
Published by hobu over 2 years ago

pdal - 2.5.4

Bug Fixes

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

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

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

- C++
Published by hobu almost 3 years ago

pdal - 2.5.3

Bug Fixes

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

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

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

- C++
Published by hobu almost 3 years ago

pdal - 2.5.2

Enhancements

  • Provided allow_empty option to readers.gdal #3984

Bug Fixes

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

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

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

- C++
Published by hobu about 3 years ago

pdal - 2.5.1

Enhancements

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

Bug Fixes

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

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

- 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.fbx and readers.mrsid have been removed (#3841)
  • Make PDAL Locale agnostic (#3873) Thanks @jjimenezshaw!
  • Non-public symbols are now hidden on unix (#3931) Thanks @abellgithub!
  • PipelineExecutor class is now deprecated (#3937)

New Stages

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

Enhancements

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

Bug Fixes

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

Bug Fixes

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

- C++
Published by hobu over 3 years ago

pdal - 2.4.2

2.4.2

Changes of Note

None

Enhancements

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

Bug Fixes

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

- C++
Published by hobu over 3 years ago

pdal - 2.4.1

Changes of Note

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

Enhancements

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

Bug Fixes

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

- 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.ept when specifying both bounds and polygon options has changed such that a point must pass both the filters independently in order to be accepted. (#3506)
  • readers.ept will now ignore the spatial reference on a clip region if the point source has no spatial reference. This behavior is consistent with filters.crop. (#3580)
  • readers.las and writers.las no longer support the laszip library. Both stages now use the lazperf library, which is embedded into the PDAL library. The compression option is still accepted in readers.las, but is ignored. The compression option on writers.las still accepts the LASZIP and LAZPERF , but those values are treated the same as TRUE.
  • PDAL now builds on MinGW, though future support depends on community contributions.
  • Source code supporting las and ept has been moved to a private namespace.

New Stages

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

Enhancements

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

Bug Fixes

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

- C++
Published by abellgithub almost 4 years ago

pdal - 2.3.0

Changes of Note

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

New Command

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

New Stages

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

Removed Stages

  • readers.oci
  • writers.oci

Enhancements

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

Bug Fixes

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

- 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_t to int64_t.
  • Most operations now store data using ColumnPointTable, which stores data in arrays of dimensions, rather than arrays of point data. This can improve the performance of some operations substantially. Generally, this change should not be noticeable to users.
  • Normal refinement (refine option) in filters.normal is now off by default. (#3133)
  • All filters now accept a where option to allow points to skip the filters. (#3118)
  • PDAL now searches for plugins in the same directory containing the PDAL library. (#3181)

API User Notes

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

New Stages

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

Removed Stages

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

Deprecated Stages

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

Enhancements

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

Bug Fixes

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

- 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.python has been removed from the primary PDAL library and is part of the PDAL python library.
  • When the bounds option of filters.crop represents a 3D volume, the filter now does 3D cropping, rather than 2D cropping as in previous releases. (#2904)
  • writers.ply no longer accepts default as a valid value for the storage_mode option. (#2385)

API User Notes

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

New Stages

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

Deprecated Stages

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

Removed Stages

  • readers.sqlite and writers.sqlite

Enhancements

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

Bug Fixes

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

- 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.icp is 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.icp is 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.covariancefeatures computes statistics about features of points in a neighborhood. (#2455 - Thanks Helix.re!)
  • readers.e57 reads the E57 format. (#2442 - Thanks Helix.re!)
  • writers.e57 writes the E57 format. (#2442 - Thanks Helix.re!)
  • writers.gltf provides simple glTF mesh output support. (#2643)
  • filters.reciprocity computes the percentage of points that are considered uni-directional. (#2504 - @chambbj)
  • filters.miniball computes a criterion for neighbors based on the miniball algorithm. (#2504 - @chambbj)
  • filters.planefit computes a deviation of a point from a manifold approximating its neighbors. (#2504 - @chambbj)
  • readers.memoryview provides an API interface for direct reading of row-oriented point data. (#2620)
  • filters.projpipeline processes point through a PROJ pipeline. (#2626 - Thanks @vilaa!)

Deprecated Stages

Removed Stages

  • filters.mongus
  • filters.kdistance
  • readers.greyhound

Enhancements

  • readers.mrsid now supports more recent versions of the Mr. Sid SDK. (#2460)
  • readers.tiledb and writers.tiledb now support stream mode processing. It also supports an append option.
  • readers.ept now accepts an optional \<spatial reference> after the bounds specification in the bounds option to indicate the SRS of the provided boundary. (#2295)
  • filters.hag now supports interpolation from a TIN (triangulated network) of points. (#2520 - Thanks James McClain!)
  • filters.poisson now properly applies an inverse transform to points it creates. (#1840)
  • pdal --drivers now 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.colorization to 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.bpf if the specified file didn't exist. (#2515)
  • Fixed an issue in writers.gdal where 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.ept have been fixed. (#2585)
  • pdal now 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.gdal that 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 density has been fixed. (#2461)
  • A segmentation fault in filters.chipper when processing multiple inputs has been fixed. (#2479)
  • An issue with readers.ept overwriting temporary files before they weren’t needed has been fixed. (#2474)
  • Fixed an issue where filters.icp would 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 precision option for filters.hexbin for 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 the boundary option with the pdal info command.

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.delaunay now 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.sbet now reads angles as degrees rather than radians. (#2354)
  • The tindex command now requires one of the subcommands create or merge. It no longer accepts the merge option, which has been replaced by the merge subcommand.
  • The argument for the function PipelineManager::executeStream is now of type StreamPointTable& instead of FixedPointTable&.

Enhancements

  • All readers now accept the default_srs and override_srs options. override_srs is an alias for the existing spatialreference option. default_srs applies 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.las for points with data format 6 and above and set the extendedpointtype variable. (#2320, #2329)
  • Support the libgeotiff path suffix when searching for the geotiff library with cmake.
  • Added a resolution option to readers.ept to limit the number of points read. (#2331)
  • readers.rxp now supports stream mode.
  • Added the invert option to filters.head and filters.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 by filters.nndistance. filters.kdistance will be removed in the next PDAL release.
  • filters.mongus - Replaces by filters.pmf and filters.smrf

Bug fixes

  • The tindex command now uses sufficient precision when using the fast_boundary option (#2271)
  • filters.smrf and filters.pmf now process all points if the NumberOfReturns or ReturnNumber dimension 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=auto and offset=auto options now work with writers.bpf in stream mode. (#1983)
  • Pipelines with diamond shapes now properly re-execute ancestor stages. This fixes a regression introduced with PDAL 1.8. (#2290)
  • filters.crop now uses the correct logic when the outside option is used in standard mode. (#2305)
  • A bug in writers.gdal with 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.icp introduced by a change in PCL (see: https://github.com/PointCloudLibrary/pcl/issues/2724) that improperly removed a function call. (#2319)
  • readers.tindex now provides a default of "EPSG:4326" for the filter_srs option. (#2316)
  • Points in buffer corners are now properly placed in tiles in filters.splitter. (#2372)
  • Fixed reference counting in filters.python that 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.gdal that 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.hexbin is now a built-in stage, rather than a plugin. (#2001)
  • Removed support for ght compression in writers.pgpointcloud. (#2148)
  • On OSX, plugins are now installed with ID of @rpath rather than @loader_path/../lib
  • The API for StreamPointTable::StreamPointTable() now requires the capacity of the table to be passed as an argument.

Enhancements

  • Added denoise and reset options to pdal ground. (#1579)
  • readers.gdal now supports stream mode and provides the header option to map dimensions. It also supports fetching bounds without reading the entire file. (#1819)
  • readers.mbio added datatype option to support reading sidescan data. (#1852)
  • filters.stats was computing expensive kurtosis and skewness statistics by default. These statistics are now available with the advanced option. (#1878)
  • Added backtrace support for alpine linux-based Docker containers. (#1904)
  • Added a condition option for filters.assign to limit assignment. (#1956)
  • Add access to artifact manager keys. (#2026)
  • Added support for LAZ compression in writers.pgpointcloud (#2050)
  • Replaced last option with returns to support more flexible segmentation in filters.smrf and filters.pmf. (#2053)
  • writers.text now supports stream mode. (#2064)
  • Added pdal tile kernel 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.ply now has a precision option to specify output precision. (#2144)
  • filters.smrf and filters.pmf supports complete range syntax for the ignore option. (#2157)
  • filters.hexbin now supports stream mode. (#2170)
  • readers.numpy now has the order option, which replaces the previous x, y and z options. 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 spatialreference option.
  • 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 - Replaces filters.kdistance and 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 by pdal info.

Deprecated stages

  • filters.kdistance - Replaced by filters.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.reprojection in 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.gdal where output would be aggregated if multiple inputs were provided. (#2074)
  • The count option 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.returns that could cause more point views to be returned than requested. (#2115)
  • Emit an error if the count option isn't set for readers.faux. (#2128)
  • PipelineManager::getStage() now returns a proper leaf node. (#2149)
  • Fixed logic for filters.crop in streaming mode with multiple crop areas that could return too few points. (#2198)
  • Added the minimal option for readers.rxp that was documented but not fully implemented. (#2225)
  • Fixed an error in failing to read all points in readers.rxp exposed 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.las in stream mode (#1940)
  • Handle cr/lf endings in Windows for readers.text (#1939 )
  • Make pdal-config owner 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.ferry would create dimensions with bad types (#1930)

- C++
Published by hobu almost 8 years ago

pdal - 1.7.1

Changes of Note

  • filter.ferry now creates output dimensions with the same type as the input dimension. It also takes an arrow '=>' in addition to '=' in the --dimension specification.
  • filters.hexbin now 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.gdal and filters.colorization now 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 pipelineand pdal translate now use stream mode if the operation being performed is streamable. An option --nostream has been added to both commands to prevent the use of stream mode. The --stream option of pdal pipeline is 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 --timegap and --speedmin to readers.mbio to allow configuration of which points should be read.
  • Added support for compression schemes (xz, lzma, zstd) and created a standardized interface (#1722).
  • writers.bpf now supports the option auto for the coord_id option 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_file option (#1641).
  • Replace the GDAL point-in-polygon with a much faster implementation in filters.crop.
  • Add a --reverse option to filters.mortonorder to provide a point ordering for good dispersal.
  • readers.bpf now supports the TCR (ECEF - earth centered, earth fixed) coordinate system.
  • Added option --use_eb_vlr to allow readers.las to interpret an extra bytes VLR as if the file were version 1.4 even if it's using an earlier LAS version.
  • readers.text added options --header and --skip to provide an alternative header line and to allow skipping lines before reading the header, respectively.
  • writers.text now supports the ability to specify individual dimension precision using a colon (':') and integer following the dimension name in the --order option.
  • readers.numpy adds support for reading from Numpy (.npy) save files.
  • pdal info now provides the --enumerate option. See the documentation for filters.stats for details.
  • Added a general option --logtiming to 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 - Use filters.python to simulate the functionality.

Bug fixes

  • filters.range now always rejects NaN values as out of range.
  • Changed the default --timegap value in readers.mbio from 0 to 1 second.
  • Fixed a bug when reading pointers from metadata on some OSX systems.
  • Fixed a problem in pdal translate where 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.tindex that could cause a crash if the output file wasn't LAS.
  • Fixed JSON output from filters.hexbin when density/area can't be calculated.
  • Fixed a problem where output might be tagged with the wrong SRS when using filters.reprojection in 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 --stdin option for kernels.tindex didn't work. Now it does. Various other fixes were made.
  • writers.gdal now 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.pcd and writers.pcd could get confused with dimensions from readers.sbet and writers.sbet.
  • Fixed index computation in filters.voxelcentroidnearestneighbor and filters.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.programmable and filters.predicate with the more general filters.python.
  • Add support for Matlab with filters.matlab(#1661).
  • Remove the approximate option from filters.pmf and add an exponential option.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.text was 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.splitter can now create buffered tiles with the buffer option.
  • writers.plycan now be made to write faces of an existing mesh (created with filters.greedyprojection or filters.poisson) if the faces option is used. An option dims has also been added that allows specification of the dimensions to be written as PLY elements. The writer also now supports streaming mode.
  • readers.text is 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.randomize can now be created by the stage factory (#1598).
  • Provide the ability to specify a viewpoint and normal orientation in filters.normal (#1638).
  • readers.las now provides the ignore_vlr option to allow named VLRs to be dropped when read (#1651).
  • Allow writers.gdal to write output rasters of type other than double (#1497).
  • filters.sqlite is now invoked automatically for .gpkg files.
  • filters.colorinterp can now be used in streaming mode in some cases (#1675).
  • Pointers can now be stored as metadata.
  • filters.ferry can now create new dimensions without copying data (#1694).

Documentation

  • Remove some leftover references to the classify and extract options that were removed from filters.ground in 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 - Replaces filters.predicate and filters.programmable.
  • filters.matlab - Provides support for matlab manipulation of PDAL points and metadata (#1661).

New readers

  • Add readers.osg to support Open Scene Graph format.
  • Add readers.matlab to support reading data from a user-defined Matlab array struct. The same structure is written by writers.matlab.

Bug fixes

  • Fixed a case wherekernels.tindex would unconditionally set the spatial reference on a feature from the a_srs option. The spatial reference stored in a_srs is now only used if explicitly set or no spatial reference was present.
  • Fixed a case where writers.gdal could fail to check for an out-of-bounds point, potentially leading to a crash.
  • Fix an error in filters.cluster where 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_encoding option is initialized to 0 in writers.las (#1595).
  • Fix eigen::computeCovariance to compute the correct sample covariance.
  • In some cases, the filters.crop would 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 compression option 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 --visualize capability of the pdal command line application has been removed.
  • writer.derivative has been removed. Use gdaldem for faster and more featureful equivalent functionality.
  • GeoTIFF and Proj.4 are now required dependencies.
  • writers.p2g has been removed. It was replaced by writers.gdal in 1.4, but the P2G writer was essentially unmaintained and we will be using the GDAL one going forward.
  • filters.attribute was split into filters.assign and filters.overlay to separate their functionalities
  • filters.pmf and filters.outlier have dropped the classify and extract options. They now only classify points and leave it downstream filters to ignore/extract classifications as needed.
  • filters.outlier has changed the default classification for noise points from 18 to 7 to match the LAS classification code for "Low point (noise)".

Enhancements

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

Documentation

New filters

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

New readers

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

Bug fixes

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

- C++
Published by hobu almost 9 years ago

pdal - 1.4.0

Changes of Note

  • GeoTIFF is now required to compile PDAL
  • --scale and --offset kernel options are no longer supported. Specify using stage-specific options as needed.
  • The --validate option of the pdal pipeline command now invokes the preparation portion of the pipeline to force validation of options.
  • The --verbose option to pdal now 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

New writers

New kernels

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_directory and target_link_libraries.
  • JSON output for pdal --showjson --drivers and pdal --showjson --options to 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/1396
  • readers.greyhound - Greyhound reader refactor.
    • Multi-threaded read support
    • Server-side filtering pass-through
  • writers.derivative - Derivative writer refactor.
    • slope_d8
    • slope_fd
    • aspect_d8
    • aspect_fd
    • contour_curvature
    • profile_curvature
    • tangential_curvature
    • hillshade
    • total_curvature
    • Output to any GDAL-writable format https://github.com/PDAL/PDAL/issues/1146
  • filters.crop - Radial cropping https://github.com/PDAL/PDAL/issues/1387
  • filters.stats - Optional per-dimension median and MAD computation
  • Support was added for the recently added cartesian coordinate in BPF files.
  • writers.p2g now 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". Use PDAL_DRIVER_PATH to 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 --smooth option to filters.hexbin to allow user control of boundary smoothing.

Bug fixes

  • Well-known text provided as a spatial reference isn't interpreted by GDAL unless necessary.
  • filters.hexbin now returns MULTIPOLYGON EMPTY when it is unable to compute a boundary.
  • Reading a not a number (nan) value from a text file now works properly.
  • The --compression option for writers.pcd has 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.text now detects the case when a dimension has been specified more than once in an input file.
  • Fixed a problem where filters.splitter could create cells larger than requested about the X and Y axes.
  • writers.nitf now 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.sort could 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