lisflood-code

Lisflood OS - LISFLOOD

https://github.com/ec-jrc/lisflood-code

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 18 committers (5.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

copernicus cordex efas environmental-modelling flood forecasting glofas hydrological-modelling lisflood lisvap

Keywords from Contributors

projection interactive serializer cycles packaging charts network-simulation archival shellcodes hacking
Last synced: 6 months ago · JSON representation

Repository

Lisflood OS - LISFLOOD

Basic Info
Statistics
  • Stars: 143
  • Watchers: 16
  • Forks: 57
  • Open Issues: 23
  • Releases: 21
Topics
copernicus cordex efas environmental-modelling flood forecasting glofas hydrological-modelling lisflood lisvap
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

Lisflood OS

This repository hosts source code of LISFLOOD model. Go to Lisflood OS page for more information.

Other useful resources

| Project | Documentation | Source code | | ------------------- | --------------------------------------------------------- | ------------------------------------------------------------ | | Lisflood | Model docs | https://github.com/ec-jrc/lisflood-code (this repository) | | | User guide | | | Lisvap | Docs | https://github.com/ec-jrc/lisflood-lisvap | | Calibration tool | Docs | https://github.com/ec-jrc/lisflood-calibration | | Lisflood Utilities | | https://github.com/ec-jrc/lisflood-utilities | | Lisflood Usecases | | https://github.com/ec-jrc/lisflood-usecases |

Quick start

You can use conda environment to easily install dependencies.

  • Install miniconda
  • Create a conda env named "lisflood" and install dependencies:

bash conda create --name lisflood python=3.7 -c conda-forge conda activate lisflood conda install -c conda-forge pcraster gdal

  • Install lisflood-model pypi package bash pip install lisflood-model

Command above will also install the executable lisflood in the conda env, so that you can run LISFLOOD with the following: bash lisflood /absolute_path/to/my/local/folder/LF_ETRS89_UseCase/settings/cold.xml

You can also clone the repository which contains datasets to test the model. Follow this instruction for a basic test (included in this repository under tests/data)

  • Clone the master branch of this repository (you need to have git installed on your machine).

bash git clone --single-branch --branch master https://github.com/ec-jrc/lisflood-code.git

  • Install requirements into a python 3 conda env

bash conda create --name lisflood python=3.7 -c conda-forge conda activate lisflood conda install -c conda-forge pcraster gdal cd lisflood-code pip install -r requirements.txt

If you don't use conda but a plain virtualenv, you need to install PCRaster and GDAL by your own and include its python interface in PYTHONPATH environment variable. For details, please follow instruction on official docs.

  1. Run a cold run for the test catchment

Now your environment should be set up to run lisflood. Try with a prepared settings file for one of the two test catchments:

bash mkdir tests/data/LF_ETRS89_UseCase/out python src/lisf1.py tests/data/LF_ETRS89_UseCase/settings/cold.xml

If the command above successed without errors, producing dis.nc into tests/data/LFETRS89UseCase/out folder, your lisflood installation was correct.

Docker image

You can use the updated docker image to run lisflood, so without taking care to install dependencies on your system.

Pull image from repository:

bash docker pull jrce1/lisflood:latest

Run test catchments in image:

bash docker run -v /absolute_path/to/my/local/folder:/usecases jrce1/lisflood:latest usecases

After this command, you can find all files to run tests against catchments under the directory you mapped: /absolute_path/to/my/local/folder/

/absolute_path/to/my/local/folder/LF_ETRS89_UseCase /absolute_path/to/my/local/folder/LF_lat_lon_UseCase

Now, you can run LISFLOOD as a docker container to test included catchments. Only thing you need to do is to map the test catchment folder to the container folder input, by using -v option.

In the XML settings file, all paths are adjusted to be relative to the very same settings file, so you don't need to edit paths, as long as you keep same folders structure.

Execute lisflood with a Docker image:

bash docker run -v /absolute_path/to/my/local/folder/LF_ETRS89_UseCase:/input jrce1/lisflood /input/settings/cold.xml

Once LISFLOOD finished, you find reported maps in /absolute_path/to/my/local/folder/LF_ETRS89_UseCase/out/ folder.

Pypi packaged LISFLOOD

LISFLOOD is also distributed as a standard python package. You can install the pip package in your Python 3 virtualenv:

bash pip install lisflood-model

Command above will also install the executable lisflood in the virtualenv, so that you can run LISFLOOD with the following:

bash lisflood /absolute_path/to/my/local/folder/LF_ETRS89_UseCase/settings/cold.xml

IMPORTANT NOTE 1

Please note that there are known issues when installing the LISFLOOD code on Windows (source code and pypi package). We cannot provide Windows support and strongly recommend using LINUX to install the LISFLOOD code. Windows users are recommended to execute LISFLOOD with a Docker image.

IMPORTANT NOTE 2

The users are recommended to download the reference settings xml file and adapt it by inserting their own paths and modelling choices.

Collaborate

If you find an issue in our code, please follow the GitHub flow to propose your changes (Fork, commit your changes and ask for a Pull Request). You are required to run unit tests during your development and before to propose a pull request.

To execute unit tests:

bash pytest tests/

Furthermore, before to propose a pull request, there are additional tests we ask you to execute:

bash pytest tests/ -m "slow"

These tests could take 30 minutes or several hours, depending on your machine.

You can find full description and implementation details at Test documentation page.

Note: If yuor pull request is about a new feature you may want to integrate in LISFLOOD, ensure to include tests with good coverage for it.

For more info about pytest, see official website.

Owner

  • Name: European Commission, Joint Research Centre (JRC)
  • Login: ec-jrc
  • Kind: organization

GitHub Events

Total
  • Issues event: 17
  • Watch event: 18
  • Delete event: 20
  • Issue comment event: 58
  • Push event: 84
  • Pull request review event: 3
  • Pull request review comment event: 3
  • Pull request event: 30
  • Fork event: 8
  • Create event: 10
Last Year
  • Issues event: 17
  • Watch event: 18
  • Delete event: 20
  • Issue comment event: 58
  • Push event: 84
  • Pull request review event: 3
  • Pull request review comment event: 3
  • Pull request event: 30
  • Fork event: 8
  • Create event: 10

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 659
  • Total Committers: 18
  • Avg Commits per committer: 36.611
  • Development Distribution Score (DDS): 0.718
Past Year
  • Commits: 32
  • Committers: 5
  • Avg Commits per committer: 6.4
  • Development Distribution Score (DDS): 0.344
Top Committers
Name Email Commits
Domenico Nappo d****o@g****m 186
StefaniaGrimaldi S****I@e****u 129
Carlo Russo c****o@e****t 92
Corentin Carton De Wiart C****n@e****t 87
thiemve 4****e 67
Cinzia Mazzetti c****i@e****t 29
Carlo Russo c****o@h****m 21
valeriolorini 3****i 18
GELATI Emiliano e****i@e****u 12
dependabot[bot] 4****] 6
Cinzia Mazzetti m****m@e****t 3
Christopher Barnard C****d@e****t 2
Damien Decremer d****r@g****m 2
Alessio Spadaro 3****l 1
agahirpa 4****a 1
lane15 1****5 1
ltrotter l****r@g****m 1
Emiliano Gelati e****i@g****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 118
  • Total pull requests: 95
  • Average time to close issues: 7 months
  • Average time to close pull requests: 25 days
  • Total issue authors: 49
  • Total pull request authors: 19
  • Average comments per issue: 2.86
  • Average comments per pull request: 0.53
  • Merged pull requests: 71
  • Bot issues: 0
  • Bot pull requests: 14
Past Year
  • Issues: 15
  • Pull requests: 29
  • Average time to close issues: 3 months
  • Average time to close pull requests: 15 days
  • Issue authors: 11
  • Pull request authors: 8
  • Average comments per issue: 3.27
  • Average comments per pull request: 0.34
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • domeniconappo (30)
  • Nooshdokht-Bayatafshary (8)
  • emiliano-gelati (6)
  • EdgarEspitia (5)
  • StavrosChlorokostas (4)
  • carolinarias (4)
  • corentincarton (4)
  • diksha922 (4)
  • valeriolorini (3)
  • KumaGIS (3)
  • agahirpa (2)
  • Hrekhani97 (2)
  • Sailor596 (2)
  • nikhilteja91 (2)
  • WWWkingMMM (2)
Pull Request Authors
  • doc78 (31)
  • dependabot[bot] (14)
  • corentincarton (13)
  • ecCinziaMazzetti (11)
  • StefaniaGrimaldi (5)
  • JensenLaura (4)
  • r3dmos (4)
  • domeniconappo (3)
  • ltrotter (3)
  • emiliano-gelati (2)
  • madiej6 (2)
  • lane15 (2)
  • sverhoeven (2)
  • nicola-martin (2)
  • casadoj (2)
Top Labels
Issue Labels
enhancement (8) bug (6) Fix Docs (4) help wanted (3) Urgent (1) Minor (1)
Pull Request Labels
dependencies (14)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 176 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 43
  • Total maintainers: 3
pypi.org: lisflood-model

LISFLOOD model python module

  • Versions: 43
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 176 Last month
  • Docker Downloads: 0
Rankings
Docker downloads count: 4.6%
Forks count: 6.3%
Stargazers count: 7.4%
Dependent packages count: 10.1%
Average: 10.7%
Downloads: 13.9%
Dependent repos count: 21.5%
Maintainers (3)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • Cython >=0.29.14
  • GDAL >=3.3.0
  • PyYAML >=5.4
  • attrs >=19.3.0
  • beautifulsoup4 >=4.8.1
  • cftime >=1.0.4.2
  • coverage >=6.0
  • dask >=2021.10.0
  • future >=0.18.0
  • importlib-metadata >=0.23
  • iniconfig >=1.1.1
  • lisflood-utilities >=0.12.19
  • llvmlite >=0.37.0
  • lxml >=4.6.5
  • more-itertools >=7.2.0
  • netCDF4 >=1.5.3
  • nine >=1.0.0
  • numba >=0.54.0
  • numexpr >=2.7.0
  • numpy >=1.21.0
  • packaging >=19.2
  • pandas >=0.25.1
  • pathlib2 >=2.3.5
  • pkginfo >=1.5.0.1
  • pluggy >=0.13.0
  • py >=1.10.0
  • pyparsing >=2.4.2
  • pyproj >=2.4.0
  • pytest >=6.2.5
  • pytest-cov >=3.0.0
  • pytest-mock >=3.6.1
  • python-dateutil >=2.8.1
  • pytz >=2019.3
  • six >=1.12.0
  • soupsieve >=1.9.5
  • toml >=0.10.0
  • tomli >=1.2.1
  • toolz >=0.10.0
  • xarray >=0.20.2
  • zipp >=0.6.0
Dockerfile docker
  • continuumio/miniconda3 latest build
setup.py pypi
environment.yml conda
  • _libgcc_mutex 0.1
  • _openmp_mutex 4.5
  • alsa-lib 1.2.6.1
  • attr 2.5.1
  • blosc 1.21.1
  • boost-cpp 1.74.0
  • bzip2 1.0.8
  • c-ares 1.18.1
  • ca-certificates 2022.5.18.1
  • cairo 1.16.0
  • cfitsio 4.1.0
  • curl 7.83.1
  • dbus 1.13.6
  • expat 2.4.8
  • fftw 3.3.10
  • font-ttf-dejavu-sans-mono 2.37
  • font-ttf-inconsolata 3.000
  • font-ttf-source-code-pro 2.038
  • font-ttf-ubuntu 0.83
  • fontconfig 2.14.0
  • fonts-conda-ecosystem 1
  • fonts-conda-forge 1
  • freetype 2.10.4
  • freexl 1.0.6
  • geos 3.10.3
  • geotiff 1.7.1
  • gettext 0.19.8.1
  • giflib 5.2.1
  • gst-plugins-base 1.20.2
  • gstreamer 1.20.2
  • hdf4 4.2.15
  • hdf5 1.12.1
  • icu 70.1
  • jack 1.9.18
  • jpeg 9e
  • json-c 0.16
  • kealib 1.4.14
  • keyutils 1.6.1
  • krb5 1.19.3
  • lcms2 2.12
  • ld_impl_linux-64 2.36.1
  • lerc 3.0
  • libblas 3.9.0
  • libcap 2.64
  • libcblas 3.9.0
  • libclang 14.0.4
  • libclang13 14.0.4
  • libcups 2.3.3
  • libcurl 7.83.1
  • libdap4 3.20.6
  • libdb 6.2.32
  • libdeflate 1.10
  • libedit 3.1.20191231
  • libev 4.33
  • libevent 2.1.10
  • libffi 3.4.2
  • libflac 1.3.4
  • libgcc-ng 12.1.0
  • libgdal 3.5.0
  • libgfortran-ng 12.1.0
  • libgfortran5 12.1.0
  • libglib 2.70.2
  • libglu 9.0.0
  • libgomp 12.1.0
  • libiconv 1.16
  • libkml 1.3.0
  • liblapack 3.9.0
  • libllvm14 14.0.4
  • libnetcdf 4.8.1
  • libnghttp2 1.47.0
  • libnsl 2.0.0
  • libogg 1.3.4
  • libopenblas 0.3.20
  • libopus 1.3.1
  • libpng 1.6.37
  • libpq 14.3
  • librttopo 1.1.0
  • libsndfile 1.0.31
  • libspatialite 5.0.1
  • libssh2 1.10.0
  • libstdcxx-ng 12.1.0
  • libtiff 4.4.0
  • libtool 2.4.6
  • libudev1 249
  • libuuid 2.32.1
  • libvorbis 1.3.7
  • libwebp-base 1.2.2
  • libxcb 1.13
  • libxkbcommon 1.0.3
  • libxml2 2.9.14
  • libzip 1.8.0
  • libzlib 1.2.12
  • lz4-c 1.9.3
  • mysql-common 8.0.29
  • mysql-libs 8.0.29
  • ncurses 6.3
  • nspr 4.32
  • nss 3.78
  • numpy 1.21.6
  • openjpeg 2.4.0
  • openssl 1.1.1o
  • pcraster 4.3.3
  • pcre 8.45
  • pip 22.1.2
  • pixman 0.40.0
  • poppler 22.04.0
  • poppler-data 0.4.11
  • portaudio 19.6.0
  • postgresql 14.3
  • proj 9.0.0
  • pthread-stubs 0.4
  • pulseaudio 14.0
  • python 3.7.12
  • python_abi 3.7
  • qt-main 5.15.4
  • readline 8.1
  • setuptools 62.3.3
  • snappy 1.1.9
  • sqlite 3.38.5
  • tiledb 2.9.3
  • tk 8.6.12
  • tzcode 2022a
  • tzdata 2022a
  • wheel 0.37.1
  • xerces-c 3.2.3
  • xorg-kbproto 1.0.7
  • xorg-libice 1.0.10
  • xorg-libsm 1.2.3
  • xorg-libx11 1.7.2
  • xorg-libxau 1.0.9
  • xorg-libxdmcp 1.1.3
  • xorg-libxext 1.3.4
  • xorg-libxrender 0.9.10
  • xorg-renderproto 0.11.1
  • xorg-xextproto 7.3.0
  • xorg-xproto 7.0.31
  • xz 5.2.5
  • zlib 1.2.12
  • zstd 1.5.2