Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nens/threedidepth
Calculate waterdepths for 3Di results.
https://github.com/nens/threedidepth
Last synced: 4 days ago
JSON representation
Calculate waterdepths for 3Di results.
- Host: GitHub
- URL: https://github.com/nens/threedidepth
- Owner: nens
- License: other
- Created: 2020-07-14T15:06:05.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-22T08:20:36.000Z (8 months ago)
- Last Synced: 2024-04-23T19:24:34.093Z (7 months ago)
- Language: Python
- Size: 144 KB
- Stars: 0
- Watchers: 14
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
README
threedidepth
============Calculate waterdepths for 3Di results. For results of type 'raw' the variable
's1' is used as waterlevel. For results of type 'aggregate', the variable
's1_max' is used as waterlevel.* Interpolated or gridcell-constant waterlevels
* Interfaces with threediresults via `threedigrid`
* Progress indicator support
* Low memory consumptionFor the interpolated mode, the 'lizard'-method is used. For a detailed
description, read the docstring for the `LizardLevelCalculator`.For the maximum waterlevel calculation, the maximum waterlevel for each point
is taken before the interpolation is applied. This can lead to situations where
the highest waterlevel for a pixel for a certain timestep is higher than the
maximum waterlevel for the pixel.Installation
------------Make sure GDAL is available as (`from osgeo import gdal`)
$ pip install threedidepth
Usage
-----From the cli::
$ threedidepth gridadmin.h5 results_3di.nc dem.tif waterdepth.tif
Or python::
>>> threedidepth.calculate_waterdepth(...)
Development installation with Docker Compose
--------------------------------------------For development, clone the repository and use a docker compose setup::
$ docker compose build --build-arg uid=`id -u` --build-arg gid=`id -g` lib
$ docker compose up --no-start
$ docker compose start
$ docker compose exec lib bashCreate a virtualenv::
# note that Dockerfile prepends .venv/bin to $PATH
(docker)$ virtualenv .venv --system-site-packagesInstall dependencies & package and run tests::
(docker)$ pip install -r requirements.txt
(docker)$ pip install -e .[test]
(docker)$ pytestUpdate packages::
(docker)$ rm -rf .venv
(docker)$ virtualenv .venv --system-site-packages
(docker)$ pip install -e .
(docker)$ pip freeze | grep -v threedidepth > requirements.txt