Package: xdem
xDEM: robust analysis of DEMs in Python.xDEMis an open source project to develop a core Python package for the analysis of digital elevation models (DEMs).It aims atproviding modular and robust tools for the most common analyses needed with DEMs, including both geospatial
operations specific to DEMs and a wide range of 3D alignment and correction methods from published, peer-reviewed studies.
The core manipulation of DEMs (e.g., vertical alignment, terrain analysis) areconveniently centered aroundDEManddDEMclasses(that, notably, re-implements all tools
ofgdalDEM). More complex pipelines (e.g., 3D rigid coregistration, bias corrections, filtering) arebuilt around
modularCoreg,BiasCorrandFilterclasses that easily interface between themselves. Finally, xDEM includes advanced
uncertainty analysis tools based on spatial statistics ofSciKit-GStat.Additionally, xDEM inherits many convenient functionalities fromGeoUtilssuch asimplicit loading,numerical interfacingandconvenient object-based geospatial methodsto easily perform
the most common higher-level tasks needed by geospatial users (e.g., reprojection, cropping, vector masking). ThroughGeoUtils, xDEM
relies onRasterio,GeoPandasandPyprojfor georeferenced calculations, and onNumPyandXarrayfor numerical analysis. It allows easy access to
the functionalities of these packages through interfacing or composition, and quick inter-operability through object conversion.If you are looking for an accessible Python package to write the Python equivalent of yourGDALcommand lines, or of yourQGISanalysis pipelinewithout a steep learning curveon Python GIS syntax, xDEM is perfect for you! For more advanced
users, xDEM also aims at being efficient and scalable by supporting lazy loading and parallel computing (ongoing).DocumentationFor a quick start, full feature description or search through the API, see xDEM's documentation at:https://xdem.readthedocs.io.Installationmambainstall-cconda-forgexdemSeemamba's documentationto installmamba, which will solve your environment much faster thanconda.Citing methods implemented in the packageWhen using a method implemented in xDEM, pleasecite both the package and the related study:Citing xDEM:Citing the related study:Coregistration:Horizontal shift from aspect/slope relationship ofNuth and Kääb (2011),Iterative closest point (ICP) ofBesl and McKay (1992),Bias correction:Along-track multi-sinusoidal noise by basin-hopping ofGirod et al. (2017),Uncertainty analysis:Heteroscedasticity and multi-range correlations from stable terrain ofHugonnet et al. (2022),Terrain attributes:Slope, aspect and hillshade of eitherHorn (1981)orZevenbergen and Thorne (1987),Profile, plan and maximum curvature ofZevenbergen and Thorne (1987),Topographic position index ofWeiss (2001),Terrain ruggedness index of eitherRiley et al. (1999)orWilson et al. (2007),Roughness ofDartnell (2000),Rugosity ofJenness (2004),Fractal roughness ofTaud et Parrot (2005).ContributingWe welcome new contributions, and will happily help you integrate your own DEM routines into xDEM!After discussing a new feature or bug fix in an issue, you can open a PR to xDEM with the following steps:Fork the repository, make a feature branch and push changes.When ready, submit a pull request from the feature branch of your fork toGlacioHack/xdem:main.The PR will be reviewed by at least one maintainer, discussed, then merged.More details onour contributing page.