I’m happy to announce the release of cpd v0.5.0, as well as the associated PDAL plugin update. cpd is a C++ library I have developed for running the Coherent Point Drift (CPD) point cloud change detection algorithm.

One of my research areas is whether CPD is a viable tool for point cloud change detection and registration as compared to existing methods. One place where I’ve used cpd is with repeat LiDAR scans to measure glacier velocity, e.g. at the Helheim Glacier in southeast Greenland:

Helheim velocity field

There’s a lot of space and work to be done with CPD, and at this point I’m just scratching that ol’ surface. But the cpd codebase is reaching, if not maturity, then the equivalent of its early twenties, so I’m hopeful that I will be able to slow down on direct development and focus more on applications and downstream science.

The PDAL plugin in pretty limited, and it this point exists mostly as a proof-of-concept. Rather than use it directly, I usually create a new project (e.g. hunky-dory) for a specific use-case. However, the plan is to eventually roll all of my external change detection projects back into PDAL once my tools mature enough that I won’t be over-churning the PDAL codebase. At that point, the PDAL cpd plugin should become more powerful; it might even evolve into a higher-level changes plugin that can run multiple change detection algorithms, e.g. ICP. Stay tuned.