Skip to content

Commit c9ba06b

Browse files
authored
Merge pull request #179 from ec-jrc/feature/mct_optim
MCT diffusive wave routing
2 parents 6c21d2f + d8c21ad commit c9ba06b

File tree

514 files changed

+194498
-5652
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

514 files changed

+194498
-5652
lines changed

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.3.1
1+
4.3.1.9998

docs/3_step3_preparing-setting-file/index.md

+54-3
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,41 @@ These parameters are all related to the [routing of water in the channels](https
378378

379379

380380

381+
### Diffusive wave routing parameters
382+
383+
The following parameters are related to the [diffusive wave routing](https://ec-jrc.github.io/lisflood-model/3_14_optLISFLOOD_diffusive-wave/) in river channels. The multiplier *CalChanMan3* can be used to fine-tune the diffusive wave propagation when using the Muskingum-Cunge-Todini (MCT) routing, and it can be defined as either a single value or a map. The map *ChannelsMCT* is a Bolean map with the mask of rivers where MCT wave routing must be used. The parameter *ChanGradMaxMCT* defines the maximum riverbed slope for river grid cells using the MCT wave routing. The parameter is provided as a single number and it is recommended to set it to values < 0.001 and > *ChanGradMin*
384+
```xml
385+
<comment>
386+
**************************************************************
387+
MUSKINGUM-CUNGE-TODINI ROUTING PARAMETERS
388+
**************************************************************
389+
</comment>
390+
<textvar name="CalChanMan3" value="$(PathParams)/params_CalChanMan3">
391+
<comment>
392+
default: 3.0 [-]
393+
Multiplier [-] applied to Channel Manning's n for MCT routing
394+
</comment>
395+
</textvar>
396+
<textvar name="ChannelsMCT" value="$(PathRoot)/maps/chanmct">
397+
<comment>
398+
Boolean map with value 1 at channel pixels where MCT is
399+
used, and 0 at all other pixels
400+
</comment>
401+
</textvar>
402+
<textvar name="ChanGradMaxMCT" value="0.001">
403+
<comment>
404+
Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0)
405+
Default: 0.001
406+
</comment>
407+
</textvar>
408+
```
409+
410+
- **CalChanMan3** is a multiplier that is applied to the Manning’s roughness map of the [channel system](https://ec-jrc.github.io/lisflood-model/2_16_stdLISFLOOD_channel-routing/) [-] for the grid cells where MCT routing is used
411+
- **ChannelsMCT** is Bolean mask including the rivers grid cells using the MCT wave routing [-]
412+
- **ChanGradMaxMCT** is a upper limit for the channel gradient used in the calculation of the MCT wave routing [m/m]
413+
414+
415+
381416
### Parameters related to numerics
382417

383418
This category only contains one parameter at the moment, which can only be a single value. We strongly recommend keeping this parameter at its default value.
@@ -530,8 +565,8 @@ Note that a couple of variables can be [initialized internally](https://ec-jrc.g
530565
</comment>
531566
</textvar>
532567
<comment>
533-
**************************************************************
534-
The following variables can also be initialized in the model internally. if you want this to happen set them to bogus value of -9999
568+
**************************************************************
569+
The following variables can also be initialized in the model internally. If you want this to happen set them to bogus value of -9999
535570
**************************************************************
536571
</comment>
537572
<textvar name="LZInitValue" value="-9999">
@@ -571,7 +606,19 @@ Note that a couple of variables can be [initialized internally](https://ec-jrc.g
571606
only needed for lakes reservoirs and transmission loss
572607
-9999: use discharge of half bankfull
573608
</comment>
574-
</textvar>
609+
</textvar>
610+
<textvar name="PrevCmMCTInitValue" value="-9999">
611+
<comment>
612+
Courant number at previous step for MCT routing
613+
Cold start: -9999: use 1
614+
</comment>
615+
</textvar>
616+
<textvar name="PrevDmMCTInitValue" value="-9999">
617+
<comment>
618+
Reynolds number at previous step for MCT routing
619+
Cold start: -9999: use 0
620+
</comment>
621+
</textvar>
575622
```
576623

577624
- **WaterDepthInitValue** is the initial amount of water on the soil surface $[mm]$
@@ -604,6 +651,10 @@ Note that a couple of variables can be [initialized internally](https://ec-jrc.g
604651

605652
- **PrevDischarge** is the initial discharge from previous run $[\frac{m^3} {s}]$ used for lakes, reservoirs and transmission loss (only needed if option is on for lakes or reservoirs or transmission loss). Note that PrevDischarge is discharge as an average over the time step (a flux) . A value of **-9999** sets the initial amount of discharge to equivalent of half bankfull.
606653

654+
- **PrevCmMCTInitValue** is the Courant number at the end of the previous step and it is only used for MCT wave routing [-]. A value of **-9999 ** sets the initial value to 1.
655+
656+
- **PrevDmMCTInitValue** is the Reynols number at the end of the previous step and it is only used for MCT wave routing [-]. A value of **-9999 ** sets the initial value to 0.
657+
607658
```xml
608659
<comment>
609660
**************************************************************

docs/3_step4_preparing-input-files/index.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ The section [Static Maps](../4_Static-Maps-introduction) provides detailed guide
3131
+ [land use maps](../4_Static-Maps_land-use/): fraction of forest; fraction of irrigated crops; fraction of rice crops; fraction of inland water; fraction of sealed surfaces; fraction of other land uses.
3232
+ [land use depending](../4_Static-Maps_land-use-depending/):crop coefficient; crop group number; Manning/s's surface roughness; soil depth.
3333
+ [soil hydraulic properties](../4_Static-Maps_soil-hydraulic-properties/): saturated hydraulic conductivity; soil water content at saturation; residual soil water content; parameters alpha and lambda of Van Genuchten's equations.
34-
+ [channel geometry](../4_Static-Maps_channel-geometry/): channels mask; channels side slope; channels length; channels gradient; Manning's rougheness coefficient of the channels; channels bottom width; floodplain width; bankfull channels depth.
34+
+ [channel geometry](../4_Static-Maps_channel-geometry/): channels mask; channels side slope; channels length; channels gradient; Manning's rougheness coefficient of the channels; channels bottom width; floodplain width; bankfull channels depth; MCT diffusive wave routing channels.
3535
+ [leaf area index](../4_Static-Maps_leaf-area-index/): evolution of vegetation over time (leaf area index) for land covers forest, irrigated areas, others.
3636
+ [reservoirs and lakes](../4_Static-Maps_reservoirs-lakes/): lake mask; lakes ID points; reservoirs ID points. These maps are required only upon activation of the [lakes module](https://ec-jrc.github.io/lisflood-model/3_02_optLISFLOOD_lakes/) and/or of the [reservoirs module](https://ec-jrc.github.io/lisflood-model/3_03_optLISFLOOD_reservoirs/).
3737
+ [rice calendar](../4_Static-Maps_rice-calendar/): rice calendar for planting and harvesting seasons. These maps are required only when activating the [rice irrigation module](https://ec-jrc.github.io/lisflood-model/2_17_stdLISFLOOD_irrigation/)
3838
+ inflow points: locations and IDs of the points in which LISFLOOD adds an inflow hydrograph, as explained [here](https://ec-jrc.github.io/lisflood-model/3_09_optLISFLOOD_inflow-hydrograph/)
3939
+ water demand maps: domestic, energetic, livestock, industrial water use. These maps represent the time series of spatially distributed values of water demand for domestic, energetic, livestock, and industrial water use. These maps are required only when activating the [water use module](https://ec-jrc.github.io/lisflood-model/2_18_stdLISFLOOD_water-use/)
4040
+ outlet points: locations and IDs of the points for which LISFLOOD provides the time series of discharge values.
4141

42-
#### Role of "mask" and "channels" maps
42+
#### Role of "mask", "channels" ans "channelsMCT" maps
4343

44-
The mask map (i.e. "area.map") defines the model domain. In order to avoid unexpected results, **it is vital that all maps that are related to topography, land use and soil are defined** (i.e. don't contain a missing value) for each pixel that is "true" (has a Boolean 1 value) on the mask map. The same applies for all meteorological input and the Leaf Area Index maps. Similarly, all pixels that are "true" on the channels map must have some valid (non-missing) value on each of the channel parameter maps. Undefined pixels can lead to unexpected behaviour of the model, output that is full of missing values, loss of mass balance and possibly even model crashes. Some maps needs to have values in a defined range e.g. the gradient map has to be greater than 0.
44+
The mask map (i.e. "area.map") defines the model domain. In order to avoid unexpected results, **it is vital that all maps that are related to topography, land use and soil are defined** (i.e. don't contain a missing value) for each pixel that is "true" (has a Boolean 1 value) on the mask map. The same applies for all meteorological input and the Leaf Area Index maps. Similarly, all pixels that are "true" on the channels map must have some valid (non-missing) value on each of the channel parameter maps. At the same time, all pixels that have value "true" in the MCT rivers mask must also belong to the "channels" map. Undefined pixels can lead to unexpected behaviour of the model, output that is full of missing values, loss of mass balance and possibly even model crashes. Some maps needs to have values in a defined range e.g. the gradient map has to be greater than 0.
4545

4646
#### Geometrical properties of the computational grid cell
4747

docs/4_Static-Maps_channel-geometry/index.md

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
In the LISFLOOD model flow through the channel is simulated using the kinematic wave equations. Channel maps describe the sub grid information of the channel geometry, i.e. the length, slope, width and depth of the main channel inside a grid-cell. <br/>
44
+ The **channel mask** map is the Boolean field with '1' for all grid-cells with channels and NoData for all grid-cells with no channels. <br/>
5+
+ The **MCT channel mask** map is the Boolean field with '1' for all river grid-cells using MCT wave routing and '0' for other channel grid cells. <br/>
56
+ The **channel side slope** map (referred as 's' in Figure 41) defines the slope of the channel banks. <br/>
67
+ The **channel length** map is the length of the river in each grid-cell, and the value can exceed grid-size to account for meandering rivers. <br/>
78
+ The **channel gradient** (or channel slope) map is the average gradient of the main river inside a cell. <br/>
@@ -23,6 +24,7 @@ Channel characteristics, explained above, are shown in the Figure 41 below. <br
2324
| Map name | File name;type | Units; range | Description |
2425
| :---| :--- | :--- | :--- |
2526
|Channel mask | chan.nc; <br> Type: Boolean | Units: -;<br> Range: NoData or 1 |Boolean map that identifies the channel grid-cells |
27+
|MCT Channel mask | chanmct.nc; <br> Type: Boolean | Units: -;<br> Range: [0-1] |Boolean map that identifies the channel grid-cells using the MCT diffusive river routing |
2628
|Side slope |chans.nc; <br> Type: Float32 | Units: m;<br> Range>0 |Channel side slope|
2729
|Channel length |chanlength.nc; <br> Type: Float32 | Units: m;<br> Range>0 |Channel length (value can exceed grid size, to account for meandering rivers)|
2830
|Channel gradient |changrad.nc; <br> Type: Float32 |Units: m/m;<br> Range: [0-1] |Channel longitudinal gradient|
@@ -45,6 +47,9 @@ Channel characteristics, explained above, are shown in the Figure 41 below. <br
4547
### Channel mask (chan)
4648
The channel mask map is used to identify the cells that have channels. The grid-cells that have a channel length (see chanlength map creation below) above zero are assigned to the Boolean field '1', the grid-cells that have a channel length below or equal to zero are assigned with NoData.
4749

50+
### MCT Channel mask (chanmct)
51+
The MCT channel mask map is used to identify the cells using the Muskingum-Cunge-Todini diffusive wave routing. The grid-cells that have a riverbed slope < *ChanGradMaxMCT* (default value 0.001) and a set number of upstream grid cells also meeting the same condition are assigned to the mask. All downstream channel pixels of any of the pixels using MCT wave routing are also added to the mask.
52+
4853
### Side slope (chans)
4954
The channel side slope map is calculated by dividing the horizontal distance (referred as 'dx' in Figure 42) by vertical distance (referred as 'dy' in Figure 42); here ‘1’ was assigned to all the grid cells, which correspond to a 45° angle of the side slope.
5055

docs/4_annex_input-files/index.md

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ To this end a dedicated pre-processing application has been developed (LISVAP),
8686
| Sat2 for forest and other | ksat2.map | U.: $\frac{mm} {day}$ <br> R.: map>0 | Saturated conductivity layer 2 |
8787
| **CHANNEL GEOMETRY** | | | |
8888
| Channels | chan.map | U.: [-] <br> R.: 0 or 1 | Map with Boolean 1 for all channel pixels, and Boolean 0 for all other pixels on MaskMap |
89+
| MCT Channels | chanmct.map | U.: [-] <br> R.: 0 or 1 | Map with Boolean 1 for channel pixels using MCT diffusive wave routing, and Boolean 0 for all other pixels on MaskMap |
8990
| ChanGrad | changrad.map | U.: $\frac{m} {m}$ <br> R.: map > 0 <br> !!! | Channel gradient |
9091
| ChanMan | chanman.map | U.: $m^{-1/3} s$ <br> R.: map > 0 | Manning's roughness coefficient for channels |
9192
| ChanLength | chanleng.map | U.: $m$ <br> R.: map > 0 | Channel length (can exceed grid size, to account for meandering rivers) |

docs/4_annex_output-files/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ LISFLOOD can generate a wide variety of outputs. Output files can be time series
99
| Description | Units | File name |
1010
| ------------------------------------------------------------ | ---------------- | --------------------- |
1111
| **RATE VARIABLES AT GAUGES** | | |
12-
| $^{1,2}$ channel discharge | $\frac{m^3} {s}$ | dis.tss |
12+
| $^{1,2}$ average river discharge | $\frac{m^3} {s}$ | dis.tss |
13+
| $^{1,2}$ instantaneous rivers discharge | $\frac{m^3} {s}$ | chanq.tss |
1314
| **NUMERICAL CHECKS** | | |
1415
| $^2$ cumulative mass balance error | $m^3$ | mbError.tss |
1516
| $^2$ cumulative mass balance error, expressed as mm water slice (average over catchment) | $mm$ | mbErrorMm.tss |

0 commit comments

Comments
 (0)