Changed
- Changed `scipy.spatial.cKDTree` for `scipy.spatial.KDTree` and use parallel queries to speed up computations.
Fixed
- Removed few harmless unused variables.
- Modified boolean filtering in `clean_cloth()` so it accounts for cases where DTM is completely flat. This happens, for instance, when a DTM is fitted to an already normalized point cloud.
Added
- Added clearer error messages in certain situations where point density of input point cloud was low and no clusters were found in step "1.-Extracting the stripe and peeling the stems". Previous error messages were Python's defaults "zero-size array to reduction operation minimum which has no identity" and "min() arg is an empty sequence".
- Added `ground.check_normalization`. This function slices a normalized point cloud and compares its area vs. a scalar. It's intended use it's to compare the area of a point cloud to the area of a slice of points around ground level from the height-normalized version of the same point cloud. This is useful to check for inconsistencies in the height-normalization.
- Added support of Python 3.12