All Projects → GlacioHack → xdem

GlacioHack / xdem

Licence: MIT license
Analysis of digital elevation models (DEMs)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to xdem

ww tvol study
Process global-scale satellite and airborne elevation data into time series of glacier mass change: Hugonnet et al. (2021).
Stars: ✭ 26 (-48%)
Mutual labels:  uncertainty-quantification, error-analysis
illogical
A micro conditional javascript engine used to parse the raw logical and comparison expressions, evaluate the expression in the given data context, and provide access to a text form of the given expressions.
Stars: ✭ 16 (-68%)
Mutual labels:  comparison
benchmark VAE
Unifying Variational Autoencoder (VAE) implementations in Pytorch (NeurIPS 2022)
Stars: ✭ 1,211 (+2322%)
Mutual labels:  comparison
frameworks-code-comparison
🆚 🔥 Code comparison of modern web frameworks, based on React, Angular and Vue.js
Stars: ✭ 87 (+74%)
Mutual labels:  comparison
PowerShell-Watch
A PowerShell Watch-Command cmdlet for repeatedly running a command or block of code until a change in the output occurs.
Stars: ✭ 49 (-2%)
Mutual labels:  comparison
DiffEqUncertainty.jl
Fast uncertainty quantification for scientific machine learning (SciML) and differential equations
Stars: ✭ 61 (+22%)
Mutual labels:  uncertainty-quantification
jtl-reporter
JtlReporter is an online application that allows users to generate beautiful, customizable and easy to understand performance reports from JMeter(Taurus), Locust, and other tools.
Stars: ✭ 85 (+70%)
Mutual labels:  comparison
json-path-comparison
Comparison of the different implementations of JSONPath and language agnostic test suite.
Stars: ✭ 64 (+28%)
Mutual labels:  comparison
reactive-states
Reactive state implementations (brainstorming)
Stars: ✭ 51 (+2%)
Mutual labels:  comparison
uncertainty-wizard
Uncertainty-Wizard is a plugin on top of tensorflow.keras, allowing to easily and efficiently create uncertainty-aware deep neural networks. Also useful if you want to train multiple small models in parallel.
Stars: ✭ 39 (-22%)
Mutual labels:  uncertainty-quantification
pestpp
tools for scalable and non-intrusive parameter estimation, uncertainty analysis and sensitivity analysis
Stars: ✭ 90 (+80%)
Mutual labels:  uncertainty-quantification
py3dep
A part of HyRiver software stack for getting topography data within the US through 3D Elevation Program (3DEP)
Stars: ✭ 30 (-40%)
Mutual labels:  digital-elevation-model
GeoStatsTutorials
GeoStats.jl tutorials
Stars: ✭ 49 (-2%)
Mutual labels:  geostatistics
spatial-smoothing
(ICML 2022) Official PyTorch implementation of “Blurs Behave Like Ensembles: Spatial Smoothings to Improve Accuracy, Uncertainty, and Robustness”.
Stars: ✭ 68 (+36%)
Mutual labels:  uncertainty-quantification
won
A new way to see HTML Web Pages
Stars: ✭ 15 (-70%)
Mutual labels:  comparison
UQ360
Uncertainty Quantification 360 (UQ360) is an extensible open-source toolkit that can help you estimate, communicate and use uncertainty in machine learning model predictions.
Stars: ✭ 211 (+322%)
Mutual labels:  uncertainty-quantification
SIVI
Using neural network to build expressive hierarchical distribution; A variational method to accurately estimate posterior uncertainty; A fast and general method for Bayesian inference. (ICML 2018)
Stars: ✭ 49 (-2%)
Mutual labels:  uncertainty-quantification
BedMachine
Matlab tools for loading, interpolating, and displaying BedMachine ice sheet topography.
Stars: ✭ 18 (-64%)
Mutual labels:  glaciers
octoclairvoyant-webapp
Compare GitHub changelogs across multiple releases in a single view.
Stars: ✭ 45 (-10%)
Mutual labels:  comparison
speech-recognition-evaluation
Evaluate results from ASR/Speech-to-Text quickly
Stars: ✭ 25 (-50%)
Mutual labels:  comparison

xdem

Set of tools to manipulate Digital Elevation Models (DEMs)

More documentation to come!

Documentation Status build Conda Version Conda Platforms Conda Downloads Coverage Status

To cite this package: Zenodo

Installation

With conda (recommended)

conda install -c conda-forge --strict-channel-priority xdem

The --strict-channel-priority flag seems essential for Windows installs to function correctly, and is recommended for UNIX-based systems as well.

Solving dependencies can take a long time with conda. To speed up this, consider installing mamba:

conda install mamba -n base -c conda-forge

Once installed, the same commands can be run by simply replacing conda by mamba. More details available through the mamba project.

If running into the sklearn error ImportError: dlopen: cannot load any more object with static TLS, your system needs to update its glibc (see details here). If you have no administrator right on the system, you might be able to circumvent this issue by installing a working environment with specific downgraded versions of scikit-learn and numpy:

conda create -n xdem-env -c conda-forge xdem scikit-learn==0.20.3 numpy==1.19.*

On very old systems, if the above install results in segmentation faults, try setting more specifically numpy==1.19.2=py37h54aff64_0 (worked with Debian 8.11, GLIBC 2.19).

Installing with pip

NOTE: Setting up GDAL and PROJ may need some extra steps, depending on your operating system and configuration.

pip install xdem

Installing for contributors

Recommended: Use conda for depencency solving.

$ git clone https://github.com/GlacioHack/xdem.git
$ cd ./xdem
$ conda env create -f dev-environment.yml
$ conda activate xdem
$ pip install -e .

After installing, we recommend to check that everything is working by running the tests:

$ pytest -rA

Structure

xdem are for now composed of three libraries:

  • coreg.py with tools covering differet aspects of DEM coregistration
  • spatial_tools.py for spatial operations on DEMs
  • dem.py for DEM-specific operations, such as vertical datum correction.

How to contribute

You can find ways to improve the libraries in the issues section. All contributions are welcome. To avoid conflicts, it is suggested to use separate branches for each implementation. All changes must then be submitted to the dev branch using pull requests. Each PR must be reviewed by at least one other person.

Please see our contribution page for more detailed instructions.

Documentation

See the documentation at https://xdem.readthedocs.io

Testing - again please read!

These tools are only valuable if we can rely on them to perform exactly as we expect. So, we need testing. Please create tests for every function that you make, as much as you are able. Guidance/examples here for the moment: https://github.com/GeoUtils/georaster/blob/master/test/test_georaster.py https://github.com/corteva/rioxarray/blob/master/test/integration/test_integration__io.py

Examples

Coregister a DEM to another DEM

import xdem

reference_dem = xdem.DEM("path/to/reference.tif")
dem_to_be_aligned = xdem.DEM("path/to/dem.tif")

nuth_kaab = xdem.coreg.NuthKaab()

nuth_kaab.fit(reference_dem.data, dem_to_be_aligned.data, transform=reference_dem.transform)


aligned_dem = xdem.DEM.from_array(
	nuth_kaab.apply(dem_to_be_aligned.data, transform=dem_to_be_aligned.transform),
	transform=dem_to_be_aligned.transform,
	crs=dem_to_be_aligned.crs
)

aligned_dem.save("path/to/coreg.tif")

This is an implementation of the Nuth and Kääb (2011) approach. Please see the documentation for more approaches.

Subtract one DEM with another

import xdem

first_dem = xdem.DEM("path/to/first.tif")
second_dem = xdem.DEM("path/to/second.tif")

difference = first_dem - second_dem

difference.save("path/to/difference.tif")

By default, second_dem is reprojected to fit first_dem. This can be switched with the keyword argument reference="second". The resampling method can also be changed (e.g. resampling_method="nearest") from the default "cubic_spline".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].