Skip to content

v0.2.0

Choose a tag to compare

@rhugonnet rhugonnet released this 12 Jan 07:16
· 35 commits to main since this release
6b8eeae

xDEM version 0.2 is the second minor release, notably marked by the merge in efforts with the team from demcompare (no longer maintained) to build a unified tool for elevation analysis! 馃コ
It is the result of months of work to consolidate several features, in particular support for elevation point clouds (EPCs) and new terrain attributes. Parallel work on scalability with Dask and Multiprocessing is ongoing, and should soon be released in a 0.3.

This new version adds:

  • Elevation point cloud objects (for vector files and preliminarily for LAS files) with relevant methods (coregistration, vertical referencing) that builds on the point cloud object of GeoUtils (to interface easily with rasters and vectors),
  • Support for elevation point clouds in coregistration and bias-correction pipelines,
  • New terrain attributes options, including different types of local derivatives (used for slope, aspect, ...), more rigorous curvature definitions and the addition of texture shading for DEM visualization,
  • An experimental command-line interface for multi-step workflows such as DEM accuracy assessment,
  • Statistical analysis features common to rasters and point clouds based on GeoUtils (being expanded with binning and spatial statistics).

Computationally, we started introducing parallel out-of-memory functionalities (for now through Multiprocessing, soon available also through Dask) for:

  • Blockwise coregistration,
  • Terrain attributes (that also benefit from a general performance improvement, and the option of using SciPy as engine instead of Numba).

Internally, xDEM has now defined a governance, nearly doubled its number of tests, robustified its packaging and minimized its required dependencies.
Its required dependencies are now only Rasterio, GeoPandas, SciPy (and soon Xarray), through GeoUtils.

A few changes might be required to adapt from previous versions (also seen in deprecation warnings):

  • The curvature() function is being deprecated in favor of other clearly defined curvatures,
  • The slope_method= argument of slope() and aspect() is being deprecated in favor of a surface_fit= argument for all surface derivatives (including curvatures),
  • The spatialstats.nmad() function is being deprecator in favor of geoutils.stats.nmad(),
  • The .save() function is being deprecated in favor of .to_file(),
  • Specify DEM.interp_points(as_array=True) to mirror the previous behaviour of returning a 1D array of interpolated values, otherwise now returns an elevation point cloud by default,
  • The Mask class of GeoUtils is deprecated in favor of Raster(is_mask=True) to declare a boolean-type Raster, but should keep working until 0.3.

What's Changed

New Contributors

Full Changelog: v0.1.6...v0.2.0