{"id":13764255,"url":"https://github.com/GlacioHack/xdem","last_synced_at":"2025-05-10T19:30:47.008Z","repository":{"id":38313041,"uuid":"312108171","full_name":"GlacioHack/xdem","owner":"GlacioHack","description":"Analysis of digital elevation models (DEMs)","archived":false,"fork":false,"pushed_at":"2025-05-07T07:14:06.000Z","size":25036,"stargazers_count":172,"open_issues_count":153,"forks_count":43,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-07T08:25:49.483Z","etag":null,"topics":["coregistration","dem","digital-elevation-model","error-analysis","geostatistics","gis","python","surface-elevation-data","terrain-analysis","uncertainty-quantification","variogram"],"latest_commit_sha":null,"homepage":"https://xdem.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GlacioHack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-11T22:43:21.000Z","updated_at":"2025-05-05T22:19:32.000Z","dependencies_parsed_at":"2023-09-26T00:40:22.840Z","dependency_job_id":"15b1feaf-7a08-4336-aac2-8659ff54e638","html_url":"https://github.com/GlacioHack/xdem","commit_stats":{"total_commits":510,"total_committers":15,"mean_commits":34.0,"dds":0.592156862745098,"last_synced_commit":"34e5049ae76a858b9c95c8763d9763b298c56e3c"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacioHack%2Fxdem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacioHack%2Fxdem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacioHack%2Fxdem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacioHack%2Fxdem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GlacioHack","download_url":"https://codeload.github.com/GlacioHack/xdem/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253470596,"owners_count":21913699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coregistration","dem","digital-elevation-model","error-analysis","geostatistics","gis","python","surface-elevation-data","terrain-analysis","uncertainty-quantification","variogram"],"created_at":"2024-08-03T16:00:17.543Z","updated_at":"2025-05-10T19:30:47.001Z","avatar_url":"https://github.com/GlacioHack.png","language":"Python","funding_links":[],"categories":["Cryosphere - across all subspheres"],"sub_categories":["Cryo Software"],"readme":"# xDEM: robust analysis of DEMs in Python.\n\n[![Documentation Status](https://readthedocs.org/projects/xdem/badge/?version=latest)](https://xdem.readthedocs.io/en/latest/?badge=latest)\n[![build](https://github.com/GlacioHack/xdem/actions/workflows/python-tests.yml/badge.svg)](https://github.com/GlacioHack/xdem/actions/workflows/python-tests.yml)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/xdem.svg)](https://anaconda.org/conda-forge/xdem)\n[![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/xdem.svg)](https://anaconda.org/conda-forge/xdem)\n[![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/xdem.svg)](https://anaconda.org/conda-forge/xdem)\n[![PyPI version](https://badge.fury.io/py/xdem.svg)](https://badge.fury.io/py/xdem)\n[![Coverage Status](https://coveralls.io/repos/github/GlacioHack/xdem/badge.svg?branch=main)](https://coveralls.io/github/GlacioHack/xdem?branch=main)\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/GlacioHack/xdem/main)\n[![Pre-Commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Formatted with black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336)](https://pycqa.github.io/isort/)\n\n**xDEM** is an open source project to develop a core Python package for the analysis of digital elevation models (DEMs).\n\nIt aims at **providing modular and robust tools for the most common analyses needed with DEMs**, including both geospatial\noperations specific to DEMs and a wide range of 3D alignment and correction methods from published, peer-reviewed studies.\nThe core manipulation of DEMs (e.g., vertical alignment, terrain analysis) are **conveniently centered around a `DEM` class** (that, notably, re-implements all tools\nof [gdalDEM](https://gdal.org/programs/gdaldem.html)). More complex pipelines (e.g., 3D rigid coregistration, bias corrections, filtering) are **built around\nmodular `Coreg`, `BiasCorr` classes that easily interface between themselves**. Finally, xDEM includes advanced\nuncertainty analysis tools based on spatial statistics of [SciKit-GStat](https://scikit-gstat.readthedocs.io/en/latest/).\n\nAdditionally, xDEM inherits many convenient functionalities from [GeoUtils](https://github.com/GlacioHack/geoutils) such as\n**implicit loading**, **numerical interfacing** and **convenient object-based geospatial methods** to easily perform\nthe most common higher-level tasks needed by geospatial users (e.g., reprojection, cropping, vector masking). Through [GeoUtils](https://github.com/GlacioHack/geoutils), xDEM\nrelies on [Rasterio](https://github.com/rasterio/rasterio), [GeoPandas](https://github.com/geopandas/geopandas) and [Pyproj](https://github.com/pyproj4/pyproj)\nfor georeferenced calculations, and on [NumPy](https://github.com/numpy/numpy) and [Xarray](https://github.com/pydata/xarray) for numerical analysis. It allows easy access to\nthe functionalities of these packages through interfacing or composition, and quick inter-operability through object conversion.\n\nIf you are looking for an accessible Python package to write the Python equivalent of your [GDAL](https://gdal.org/) command lines, or of your\n[QGIS](https://www.qgis.org/en/site/) analysis pipeline **without a steep learning curve** on Python GIS syntax, xDEM is perfect for you! For more advanced\nusers, xDEM also aims at being efficient and scalable by supporting lazy loading and parallel computing (ongoing).\n\n## Documentation\n\nFor a quick start, full feature description or search through the API, see xDEM's documentation at: https://xdem.readthedocs.io.\n\n## Installation\n\n### With `mamba`\n\n```bash\nmamba install -c conda-forge xdem\n```\nSee [mamba's documentation](https://mamba.readthedocs.io/en/latest/) to install `mamba`, which will solve your environment much faster than `conda`.\n\n### With `pip`\n\n```bash\npip install xdem\n```\n\n## Citing methods implemented in the package\n\nWhen using a method implemented in xDEM, please **cite both the package and the related study**:\n\nCiting xDEM: [![Zenodo](https://zenodo.org/badge/doi/10.5281/zenodo.4809697.svg)](https://zenodo.org/doi/10.5281/zenodo.4809697)\n\nCiting the related study:\n\n- **Coregistration**:\n  - Horizontal shift from aspect/slope relationship of *[Nuth and Kääb (2011)](https://doi.org/10.5194/tc-5-271-2011)*,\n  - Iterative closest point (ICP) of *[Besl and McKay (1992)](http://dx.doi.org/10.1109/34.121791)*,\n- **Bias correction**:\n  - Along-track multi-sinusoidal noise by basin-hopping of *[Girod et al. (2017)](https://doi.org/10.3390/rs9070704)*,\n- **Uncertainty analysis**:\n  - Heteroscedasticity and multi-range correlations from stable terrain of *[Hugonnet et al. (2022)](https://doi.org/10.1109/JSTARS.2022.3188922)*,\n- **Terrain attributes**:\n  - Slope, aspect and hillshade of either *[Horn (1981)](http://dx.doi.org/10.1109/PROC.1981.11918)* or *[Zevenbergen and Thorne (1987)](http://dx.doi.org/10.1002/esp.3290120107)*,\n  - Profile, plan and maximum curvature of *[Zevenbergen and Thorne (1987)](http://dx.doi.org/10.1002/esp.3290120107)*,\n  - Topographic position index of *[Weiss (2001)](http://www.jennessent.com/downloads/TPI-poster-TNC_18x22.pdf)*,\n  - Terrain ruggedness index of either *[Riley et al. (1999)](http://download.osgeo.org/qgis/doc/reference-docs/Terrain_Ruggedness_Index.pdf)* or *[Wilson et al. (2007)](http://dx.doi.org/10.1080/01490410701295962)*,\n  - Roughness of *[Dartnell (2000)](http://dx.doi.org/10.14358/PERS.70.9.1081)*,\n  - Rugosity of *[Jenness (2004)](https://doi.org/10.2193/0091-7648(2004)032[0829:CLSAFD]2.0.CO;2)*,\n  - Fractal roughness of *[Taud et Parrot (2005)](https://doi.org/10.4000/geomorphologie.622)*.\n\n## Contributing\n\nWe welcome new contributions, and will happily help you integrate your own DEM routines into xDEM!\n\nAfter discussing a new feature or bug fix in an issue, you can open a PR to xDEM with the following steps:\n\n1. Fork the repository, make a feature branch and push changes.\n2. When ready, submit a pull request from the feature branch of your fork to `GlacioHack/xdem:main`.\n3. The PR will be reviewed by at least one maintainer, discussed, then merged.\n\nMore details on [our contributing page](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGlacioHack%2Fxdem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGlacioHack%2Fxdem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGlacioHack%2Fxdem/lists"}