All Projects → openearth → glofrim

openearth / glofrim

Licence: GPL-3.0 License
Globally Applicable Framework for Integrated Hydrological-Hydrodynamic Modelling (GLOFRIM)

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
PLSQL
303 projects
fortran
972 projects

Projects that are alternatives of or similar to glofrim

juxta
Generates large collages of images using OpenSeadragon
Stars: ✭ 41 (+57.69%)
Mutual labels:  large-scale
RivWidthCloudPaper
A Google Earth Engine based algorithm that extracts river centerlines and widths from satellite images
Stars: ✭ 62 (+138.46%)
Mutual labels:  hydrology
CRRouter
A simple and powerful router
Stars: ✭ 54 (+107.69%)
Mutual labels:  coupling
hydro examples
Simple one-dimensional examples of various hydrodynamics techniques
Stars: ✭ 83 (+219.23%)
Mutual labels:  hydrodynamics
daas-with-github-actions
A low code learning project run with github actions
Stars: ✭ 15 (-42.31%)
Mutual labels:  large-scale
chinese-postman-problem
C++ solution for the chinese postman problem
Stars: ✭ 19 (-26.92%)
Mutual labels:  large-scale
CWatM
CWatM represents one of the new key elements of IIASA’s Water Security program to assess water supply, water demand and environmental needs at global and regional level.
Stars: ✭ 30 (+15.38%)
Mutual labels:  hydrology
EFDCPlus
www.eemodelingsystem.com
Stars: ✭ 9 (-65.38%)
Mutual labels:  hydrodynamics
MAESTRO
A low Mach number stellar hydrodynamics code
Stars: ✭ 29 (+11.54%)
Mutual labels:  hydrodynamics
WEC-Sim
Wave Energy Converter Simulator (WEC-Sim), an open-source code for simulating wave energy converters.
Stars: ✭ 90 (+246.15%)
Mutual labels:  hydrodynamics
SpinNet
[CVPR 2021] SpinNet: Learning a General Surface Descriptor for 3D Point Cloud Registration
Stars: ✭ 181 (+596.15%)
Mutual labels:  large-scale
learning2hash.github.io
Website for "A survey of learning to hash for Computer Vision" https://learning2hash.github.io
Stars: ✭ 14 (-46.15%)
Mutual labels:  large-scale
capytaine
Python BEM solver for linear potential flow, based on Nemoh.
Stars: ✭ 73 (+180.77%)
Mutual labels:  hydrodynamics
ffhqr-dataset
FFHQR -- the first large-scale retouching dataset for computer vision research.
Stars: ✭ 85 (+226.92%)
Mutual labels:  large-scale
euler2d kokkos
Simple 2d finite volume solver for Euler equations using c++ kokkos library
Stars: ✭ 27 (+3.85%)
Mutual labels:  hydrodynamics
wetterdienst
Open weather data for humans
Stars: ✭ 190 (+630.77%)
Mutual labels:  hydrology
wflow
A distributed hydrological modeling platform
Stars: ✭ 83 (+219.23%)
Mutual labels:  hydrology
HydroData
An R 📦 for finding and getting geospatial earth systems data
Stars: ✭ 30 (+15.38%)
Mutual labels:  hydrology
Stormwater-Management-Model
Open Water Analytics Stormwater Management Model repository
Stars: ✭ 71 (+173.08%)
Mutual labels:  hydrology
AbstractOperators.jl
Abstract operators for large scale optimization in Julia
Stars: ✭ 26 (+0%)
Mutual labels:  large-scale

GLOFRIM 2.1

Globally Applicable Framework for Integrated Hydrological-Hydrodynamic Modelling (GLOFRIM)

development by Jannis M. Hoch (Utrecht University, Deltares), Dirk Eilander (VU Amsterdam, Deltares), and Hiroaki Ikeuchi (University of Tokyo)
contact: Jannis M. Hoch ([email protected]), Dirk Eilander ([email protected])

We also want to acknowledge the contributions of all colleagues at the insitues involved in the development of GLOFRIM.

DOI

Documentation Status

Description

GLOFRIM offers a flexible and modular tool to couple hydrologic, routing, and hydodynamic models across scales. This enables integration of physical processes from different models. The coupling process is spatially explicit (i.e. on grid-to-grid basis) and model information is exchanged online (i.e. per time step).

GLOFRIM is designed as a “human interface” with additional and user friendly Python functions on top of the basic model interface (BMI), which makes it easy to setup and run coupled model simulations. For the model developer, only the BMI needs to be implemented in the model in a scripting language of choice, which makes it easy to develop and maintain.

While version 1 allowed for coupling PCR-GLOBWB with either Delft3D Flexible Mesh or LISFLOOD-FP, version 2 has a more generic setup and has been extended with the hydrologic modelling suite wflow and the global routing model CaMa-Flood.

With the available models, different coupled hydrologic and hydrodynamic model runs can be done, for instance:

  • 2-step coupling: hydrology -> 1D routing or hydrology -> full 2D hydrodynamics
  • 3-step coupling: hydrology -> 1D routing -> full 2D hydrodynamics

alt text

Warrants

Currently, the coupling process in only one-directional, i.e. only downstream along the model cascade. Work is currently performed to extend it to a full feedback loop.

It is important to note that GLOFRIM provides only a tool to coupled models across scales and processes. The quality of simulations therefore still depends on the quality of the model discretizations used.

The framework has successfully been tested on Linux platforms. Please note that it running it on Windows is currently not supported.

Model specs

  • PCR-GLOBWB: since the model does not generically contain BMI function, a bespoke version is provided with the GLOFRIM package.
  • Delft3D Flexible Mesh: the model is freely available, but currently needs to be requested; version 1.1.201 or higher is required
  • LISFLOOD-FP: version 5.9 extended with BMI-functionality is available at GitLab
  • wflow: the latest version is required for full functionality and can be downloaded from GitHub
  • CaMa-Flood: a BMI'ed version of CaMa-Flood (v3.6.2) is available upon request

Content of package

  • glofrim: python package containing the functions required to execute the various coupling models
  • scripts: convienence scripts and examples to run GLOFRIM

Setting up GLOFRIM

We recommend you setup GLOFRIM within its own python environment. You can do so using conda environments with the provided envrionment.yml file in the glofrim-py folder. This should also install the required python BMI-wrapper for you.

# create environmnet named glofrim
conda env create -f environment.yml
# activate glofrim environment
source activate glofrim

To install GLOFRIM do (currently we recommend using the csdms-compliant branch):

# get copy of source code from git repos
git clone [email protected]/openearth/glofrim.git@csdms-compliant
# navigate to the py-glofrim folder
cd glofrim/py-glofrim
# install for (the -e links the source code folder for development, this can be left out)
pip install -e <path/to/glofrim>/py-glofrim

Then, download and install the required models. More detailed descriptions how to install the models can be found in the model-specific _bmi.py files. For instance, for PCR-GLOBWB, first install PC-RASTER, then:

# pcr-globwb is provided inside the glofrim distribution (will be changed)
pip install <path/to/glofrim>/pcrglobwb_bmi_v203

Note that glofrim has only been tested on Linux.

Usage

GLOFRIM exists of a series of uniformed BMI wrappers for each model and a overarching BMI wrapper for running coupled models.

To run a coupled model from python use the following lines. The glofrim.ini (see example in root directory) configuration file hold the information of the individual model configuration files and exchanges between the models.

from glofrim import Glofrim 
cbmi = Glofrim() # initialize coupled bmi
cbmi.initialize_config(/path/to/glofrim.ini) # initialize the coupling with the glofrim.ini configuration file

A basic model run uses the following statements:

bmi.get_start_time() # optional: get the model start time
bmi.initialize_model() # initialize model
bmi.update_until(bmi.get_end_time()) # run until set endtime
bmi.finalize()

To run stand alone models via the GLOFRIM BMI wrapper you can use followed by the same statements as before:

from glofrim import CMF # import the CaMa-Flood bmi wrapper
bmi = CMF(/path/to/model_engine) # intialize bmi with reference to engine (only for non-python models)
bmi.initialize_config(/path/to/model_configuration_file)

Convenience script:

The GLOFRIM library contains a script to run combined and single (for testing purposes) models with a single line from a terminal. This script can be found in the glofirm-py/scripts folder

GLOFRIM can be executed as follows on Linux command line:

python glofrim_runner.py run /path/to/glofrim.ini --env /path/to/glofrim.env -s 200-01-01 -e 2001-01-01

For more info on coupled runs, check

python glofrim_runner.py run –help

and for stand-alone runs:

python glofrim_runner.py run_single –help

Literature and sources:

GLOFRIM development and applications
https://www.geosci-model-dev.net/10/3913/2017/gmd-10-3913-2017.html

BMI
https://bmi-spec.readthedocs.io/en/latest
http://www.sciencedirect.com/science/article/pii/S0098300412001252

BMI-wrapper for Python
https://github.com/openearth/bmi-python

PCR-GLOBWB
https://www.geosci-model-dev.net/11/2429/2018
https://github.com/UU-Hydro/PCR_BMI/

Delft3D Flexible Mesh
https://link.springer.com/article/10.1007%2Fs10236-011-0423-6
https://www.deltares.nl/en/software/delft3d-flexible-mesh-suite/#7

LISFLOOD-FP
http://www.sciencedirect.com/science/article/pii/S002216940000278X
https://gitlab.com/ChippChapp/LISFLOOD-BMI

CaMa-Flood
https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2010wr009726
https://github.com/hii600/cama-flood_bmi_v3.6.2

wflow
https://wflow.readthedocs.io/en/latest/index.html
https://github.com/openstreams/wflow

GLOFRIM 1.0
https://doi.org/10.5281/zenodo.597107

Disclaimer:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Copyright (C) 2017,2018 Jannis Hoch

The disclaimers/warranty statements of each component involved in this coupling (i.e. PCR-GLOBWB, LIFLOOD-FP, Delft3D Flexible Mesh, BMI Wrapper, CaMa-Flood, wflow) remain valid unless stated otherwise. No warranty/responsibility for any outcome of using this coupling script. Please ensure to cite the models involved in case of making use of this coupling script. And of course don't forget to cite the associated paper as well :)

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].