Set of tools to manipulate Digital Elevation Models (DEMs)
Project description
xdem
Set of tools to manipulate Digital Elevation Models (DEMs)
More documentation to come!
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.pywith tools covering differet aspects of DEM coregistrationspatial_tools.pyfor spatial operations on DEMsdem.pyfor 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".
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xdem-0.0.7.tar.gz.
File metadata
- Download URL: xdem-0.0.7.tar.gz
- Upload date:
- Size: 94.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fe46e09e4682374ac3084cf3e48526a0689ad1ffe20f24f174abfcf0a4f878c
|
|
| MD5 |
e5fce5b8598ffac1c67aa30ece65eab2
|
|
| BLAKE2b-256 |
d1777f4476cd97196145924b713cb7bac71fa0fa5d58c806dced54db1b039c24
|
File details
Details for the file xdem-0.0.7-py3-none-any.whl.
File metadata
- Download URL: xdem-0.0.7-py3-none-any.whl
- Upload date:
- Size: 97.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d377d498cd7af96dd46aae8106c19ae13490016170648646ce562199dd816825
|
|
| MD5 |
20aae8c0200f4d2bf6ff13307e29fae9
|
|
| BLAKE2b-256 |
84598aceaa3da9ff4e4d691d5389a8c5e30185c070a14528062d1fbe1e0d4451
|