diff --git a/changelog.html b/changelog.html index a505b51d3..e6d2bb22b 100644 --- a/changelog.html +++ b/changelog.html @@ -2,7 +2,7 @@ - + diff --git a/concept/allocation.html b/concept/allocation.html index 2938d1a2e..545f21957 100644 --- a/concept/allocation.html +++ b/concept/allocation.html @@ -2,7 +2,7 @@ - + @@ -578,7 +578,7 @@

4.4 Example

The following is an example of an optimization problem for the example shown here:

-
+
Code
using Ribasim
@@ -600,27 +600,27 @@ 

println(p.allocation.allocation_models[1].problem)

-
Min F[(Basin #5, UserDemand #6)]² + F[(Basin #2, UserDemand #3)]²
+
Min F[(Basin #2, UserDemand #3)]² + F[(Basin #5, UserDemand #6)]²
 Subject to
+ flow_conservation[Basin #5] : -F[(Basin #5, TabulatedRatingCurve #7)] + F[(UserDemand #6, Basin #5)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, UserDemand #6)] = 0
+ flow_conservation[Basin #2] : -F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] - F[(Basin #2, UserDemand #3)] + F[(UserDemand #3, Basin #2)] + F[(FlowBoundary #1, Basin #2)] = 0
  flow_conservation[LinearResistance #4] : F[(Basin #2, LinearResistance #4)] - F[(LinearResistance #4, Basin #2)] - F[(LinearResistance #4, Basin #5)] + F[(Basin #5, LinearResistance #4)] = 0
- flow_conservation[Basin #5] : F[(UserDemand #6, Basin #5)] - F[(Basin #5, UserDemand #6)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, TabulatedRatingCurve #7)] = 0
+ flow_conservation[TabulatedRatingCurve #7] : F[(Basin #5, TabulatedRatingCurve #7)] - F[(TabulatedRatingCurve #7, Terminal #8)] = 0
  flow_conservation[Terminal #8] : F[(TabulatedRatingCurve #7, Terminal #8)] = 0
- flow_conservation[TabulatedRatingCurve #7] : -F[(TabulatedRatingCurve #7, Terminal #8)] + F[(Basin #5, TabulatedRatingCurve #7)] = 0
- flow_conservation[Basin #2] : -F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] + F[(FlowBoundary #1, Basin #2)] + F[(UserDemand #3, Basin #2)] - F[(Basin #2, UserDemand #3)] = 0
  source[(FlowBoundary #1, Basin #2)] : F[(FlowBoundary #1, Basin #2)] ≤ 172800
- source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
  source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 0
+ source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
+ F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
  F[(Basin #2, LinearResistance #4)] ≥ 0
  F[(LinearResistance #4, Basin #2)] ≥ 0
  F[(UserDemand #6, Basin #5)] ≥ 0
  F[(TabulatedRatingCurve #7, Terminal #8)] ≥ 0
- F[(FlowBoundary #1, Basin #2)] ≥ 0
- F[(Basin #5, UserDemand #6)] ≥ 0
- F[(UserDemand #3, Basin #2)] ≥ 0
  F[(LinearResistance #4, Basin #5)] ≥ 0
  F[(Basin #5, LinearResistance #4)] ≥ 0
  F[(Basin #2, UserDemand #3)] ≥ 0
- F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
+ F[(UserDemand #3, Basin #2)] ≥ 0
+ F[(FlowBoundary #1, Basin #2)] ≥ 0
+ F[(Basin #5, UserDemand #6)] ≥ 0
 
diff --git a/concept/concept.html b/concept/concept.html index 837b1f299..3569fcaed 100644 --- a/concept/concept.html +++ b/concept/concept.html @@ -2,7 +2,7 @@ - + diff --git a/concept/core.html b/concept/core.html index d3eb57242..05e7cafab 100644 --- a/concept/core.html +++ b/concept/core.html @@ -2,7 +2,7 @@ - + diff --git a/concept/equations.html b/concept/equations.html index c38087243..f2539642d 100644 --- a/concept/equations.html +++ b/concept/equations.html @@ -2,7 +2,7 @@ - + diff --git a/concept/modelconcept.html b/concept/modelconcept.html index 40b5e1ab6..9a5558598 100644 --- a/concept/modelconcept.html +++ b/concept/modelconcept.html @@ -2,7 +2,7 @@ - + diff --git a/concept/numerics.html b/concept/numerics.html index 3ba6b8de4..a8441a57e 100644 --- a/concept/numerics.html +++ b/concept/numerics.html @@ -2,7 +2,7 @@ - + diff --git a/dev/addnode.html b/dev/addnode.html index fd4ddbe47..1b2544d79 100644 --- a/dev/addnode.html +++ b/dev/addnode.html @@ -2,7 +2,7 @@ - + diff --git a/dev/allocation.html b/dev/allocation.html index 154973a29..269aac6ee 100644 --- a/dev/allocation.html +++ b/dev/allocation.html @@ -2,7 +2,7 @@ - + @@ -371,66 +371,66 @@

1 Overview of all

1.1 The Allocation struct

The Allocation struct stores necessary data and calculation results.

- +
- + - + - + - + - + - + - + - + - + - + - + @@ -441,36 +441,36 @@

1.2 The AllocationModel struct

The AllocationModel struct has all the data that is needed for the JuMP optimization problem.

-

field type description
subnetwork_ids Vector{Int32} The unique sorted allocation network IDs
allocation_models AllocationModel The allocation models for the main network and subnetworks corresponding to subnetwork_ids
main_network_connections Vector{Vector{Tuple{NodeID, NodeID}}} (from_id, to_id) from the main network to the subnetwork per subnetwork
priorities Vector{Int32} All used priority values.
subnetwork_demands Dict{Tuple{NodeID, NodeID}, Vector{Float64}} The demand of an edge from the main network to a subnetwork
subnetwork_allocateds Dict{Tuple{NodeID, NodeID}, Vector{Float64}} The allocated flow of an edge from the main network to a subnetwork
mean_input_flows Dict{Tuple{NodeID, NodeID}, Float64} Flows averaged over Δt_allocation over edges that are allocation sources
mean_realized_flows Dict{Tuple{NodeID, NodeID}, Float64} Flows averaged over Δt_allocation over edges that realize a demand
record_demand A record of demands and allocated flows for nodes that have these
record_flow A record of all flows computed by allocation optimization, eventually saved to output file
+
- + - + - + - + - + diff --git a/dev/benchmark.html b/dev/benchmark.html index bb61ce684..223ee6ca9 100644 --- a/dev/benchmark.html +++ b/dev/benchmark.html @@ -2,7 +2,7 @@ - + diff --git a/dev/bmi.html b/dev/bmi.html index 17372636d..a3c65f4d3 100644 --- a/dev/bmi.html +++ b/dev/bmi.html @@ -2,7 +2,7 @@ - + @@ -283,55 +283,55 @@

1 Basic Model Int

1.1 Functions

The following functions are available to interact with the Ribasim model”

-

field type description
subnetwork_id Int32 The ID of this allocation network
capacity JuMP.Containers.SparseAxisArray The capacity per edge of the allocation network, as constrained by nodes that have a max_flow_rate
problem JuMP.Model The JuMP.jl model for solving the allocation problem
Δt_allocation Float64 The time interval between consecutive allocation solves
+
- + - + - + - + - + - + - + - + - + - + - + @@ -342,7 +342,7 @@

1.2 Memory pointers

The following pointers to memory containing Ribasim internal arrays are given via the BMI using get_value_ptr(string):

-

signature description
initialize(config_path) Initialize a model from the path to the TOML configuration file
finalize() Write all results to the configured files
get_current_time() Get the current time of the Ribasim simulation
get_end_time() Get the final time of the Ribasim simulation in seconds
get_start_time() Get the start time of the Ribasim simulation (0.0)
get_time_step() Get the proposed next internal Ribasim timestep
get_time_units() Get the time unit (s)
get_value_ptr(string) Get the pointer to a Ribasim internal array (see below)
update() Perform a Ribasim internal time step
update_until(time) Set Ribasim internal timesteps until the specified time
+
@@ -353,7 +353,7 @@

- + @@ -364,7 +364,7 @@

- + @@ -373,7 +373,7 @@

no

- + @@ -382,7 +382,7 @@

no

- + @@ -391,7 +391,7 @@

yes

- + @@ -400,7 +400,7 @@

yes

- + @@ -409,7 +409,7 @@

yes

- + @@ -418,7 +418,7 @@

yes

- + @@ -427,7 +427,7 @@

no

- + @@ -436,7 +436,7 @@

yes

- + diff --git a/dev/ci.html b/dev/ci.html index 6a9fed6a2..b1f470b50 100644 --- a/dev/ci.html +++ b/dev/ci.html @@ -2,7 +2,7 @@ - + diff --git a/dev/core.html b/dev/core.html index 472dc8fb8..156a8973e 100644 --- a/dev/core.html +++ b/dev/core.html @@ -2,7 +2,7 @@ - + diff --git a/dev/index.html b/dev/index.html index d309c6e2a..0ecbc84c3 100644 --- a/dev/index.html +++ b/dev/index.html @@ -2,7 +2,7 @@ - + diff --git a/dev/python.html b/dev/python.html index 2ebfa9366..3162dc528 100644 --- a/dev/python.html +++ b/dev/python.html @@ -2,7 +2,7 @@ - + diff --git a/dev/qgis.html b/dev/qgis.html index 97817ccad..4a399282e 100644 --- a/dev/qgis.html +++ b/dev/qgis.html @@ -2,7 +2,7 @@ - + diff --git a/dev/qgis_test_plan.html b/dev/qgis_test_plan.html index cbcfbb817..3d41dd2d4 100644 --- a/dev/qgis_test_plan.html +++ b/dev/qgis_test_plan.html @@ -2,7 +2,7 @@ - + diff --git a/dev/release.html b/dev/release.html index ea068a3c7..318a3381d 100644 --- a/dev/release.html +++ b/dev/release.html @@ -2,7 +2,7 @@ - + diff --git a/guide/coupling.html b/guide/coupling.html index 9989d6153..e04426de1 100644 --- a/guide/coupling.html +++ b/guide/coupling.html @@ -2,7 +2,7 @@ - + diff --git a/guide/delwaq.html b/guide/delwaq.html index 1e33318c6..e06dd147b 100644 --- a/guide/delwaq.html +++ b/guide/delwaq.html @@ -2,7 +2,7 @@ - + @@ -273,13 +273,13 @@

Ribasim Delwaq coupling

string meaning type
basin.storage storage per basin Float64basin node ID
basin.level level per basin Float64basin node ID
basin.infiltration infiltration flux per basin Float64basin node ID
basin.drainage drainage flux per basin Float64basin node ID
basin.infiltration_integrated cumulative infiltration per basin Float64basin node ID
basin.drainage_integrated cumulative drainage per basin Float64basin node ID
basin.subgrid_level subgrid level Float64subgrid ID
user_demand.demand demand per node ID per priority Float64user_demand node ID, priority index
user_demand.realized cumulative intake flow per user Float64
- + - + @@ -287,25 +287,25 @@

Ribasim Delwaq coupling

- + - + - + - + @@ -322,7 +322,7 @@

Ribasim Delwaq coupling

node_id substance concentration
fid
0 1 Cl 0.0
1 3 Cl 0.0
2 6 Cl 0.0
3 9 Cl
- + @@ -330,7 +330,7 @@

Ribasim Delwaq coupling

- + @@ -340,7 +340,7 @@

Ribasim Delwaq coupling

- + @@ -348,7 +348,7 @@

Ribasim Delwaq coupling

- + @@ -356,7 +356,7 @@

Ribasim Delwaq coupling

- + @@ -364,7 +364,7 @@

Ribasim Delwaq coupling

- + @@ -372,7 +372,7 @@

Ribasim Delwaq coupling

- + @@ -380,7 +380,7 @@

Ribasim Delwaq coupling

- + @@ -388,7 +388,7 @@

Ribasim Delwaq coupling

- + @@ -396,7 +396,7 @@

Ribasim Delwaq coupling

- + @@ -404,7 +404,7 @@

Ribasim Delwaq coupling

- + @@ -412,7 +412,7 @@

Ribasim Delwaq coupling

- + @@ -420,7 +420,7 @@

Ribasim Delwaq coupling

- + @@ -428,7 +428,7 @@

Ribasim Delwaq coupling

- + @@ -447,14 +447,14 @@

Ribasim Delwaq coupling

node_id timedrainage precipitation
fid
0 1 2020-01-01 00:00:000.0 0.0
1 1 2020-01-02 00:00:001.0 1.0
2 1 2020-01-01 00:00:001.0 1.0
3 3 2020-01-01 00:00:000.0 0.0
4 3 2020-01-02 00:00:001.0 1.0
5 3 2020-01-01 00:00:001.0 1.0
6 6 2020-01-01 00:00:000.0 0.0
7 6 2020-01-02 00:00:001.0 1.0
8 6 2020-01-01 00:00:001.0 1.0
9 9 2020-01-01 00:00:000.0 0.0
10 9 2020-01-02 00:00:001.0 1.0
11 9 2020-01-01 00:00:00
- + - + @@ -463,28 +463,28 @@

Ribasim Delwaq coupling

- + - + - + - + @@ -502,14 +502,14 @@

Ribasim Delwaq coupling

node_id time substance concentration
fid
0 15 2020-01-01 00:00:00 Cl 0.0
1 15 2020-01-01 00:00:00 Tracer 1.0
2 16 2020-01-01 00:00:00 Cl 0.0
3 16 2020-01-01 00:00:00
- + - + @@ -518,14 +518,14 @@

Ribasim Delwaq coupling

- + - + diff --git a/guide/delwaq_files/figure-html/cell-3-output-5.png b/guide/delwaq_files/figure-html/cell-3-output-5.png index 3ac6e4e3b..5eb10e256 100644 Binary files a/guide/delwaq_files/figure-html/cell-3-output-5.png and b/guide/delwaq_files/figure-html/cell-3-output-5.png differ diff --git a/guide/delwaq_files/figure-html/cell-8-output-1.png b/guide/delwaq_files/figure-html/cell-8-output-1.png index 4e094d715..70ec4463b 100644 Binary files a/guide/delwaq_files/figure-html/cell-8-output-1.png and b/guide/delwaq_files/figure-html/cell-8-output-1.png differ diff --git a/guide/examples.html b/guide/examples.html index b03407430..d1830bc88 100644 --- a/guide/examples.html +++ b/guide/examples.html @@ -2,7 +2,7 @@ - + @@ -590,26 +590,26 @@

2 Model with disc

The pump data defines the following:

-

node_id time substance concentration
fid
0 11 2020-01-01 00:00:00 Cl 34.0
1 17 2020-01-01 00:00:00
+
- + - + - + - + diff --git a/guide/examples_files/figure-html/cell-15-output-1.png b/guide/examples_files/figure-html/cell-15-output-1.png index 27f0b48ee..0c3c7d5ed 100644 Binary files a/guide/examples_files/figure-html/cell-15-output-1.png and b/guide/examples_files/figure-html/cell-15-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-18-output-1.png b/guide/examples_files/figure-html/cell-18-output-1.png index fb682ced3..dc2e1fc79 100644 Binary files a/guide/examples_files/figure-html/cell-18-output-1.png and b/guide/examples_files/figure-html/cell-18-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-19-output-1.png b/guide/examples_files/figure-html/cell-19-output-1.png index 0b020d328..f8657f228 100644 Binary files a/guide/examples_files/figure-html/cell-19-output-1.png and b/guide/examples_files/figure-html/cell-19-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-28-output-1.png b/guide/examples_files/figure-html/cell-28-output-1.png index 5a001f7f9..ea86751dc 100644 Binary files a/guide/examples_files/figure-html/cell-28-output-1.png and b/guide/examples_files/figure-html/cell-28-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-31-output-1.png b/guide/examples_files/figure-html/cell-31-output-1.png index 49130cb75..8b2e5c364 100644 Binary files a/guide/examples_files/figure-html/cell-31-output-1.png and b/guide/examples_files/figure-html/cell-31-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-40-output-1.png b/guide/examples_files/figure-html/cell-40-output-1.png index c38adf6db..dc1f72779 100644 Binary files a/guide/examples_files/figure-html/cell-40-output-1.png and b/guide/examples_files/figure-html/cell-40-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-43-output-1.png b/guide/examples_files/figure-html/cell-43-output-1.png index f42ee9a48..f0ea95165 100644 Binary files a/guide/examples_files/figure-html/cell-43-output-1.png and b/guide/examples_files/figure-html/cell-43-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-53-output-1.png b/guide/examples_files/figure-html/cell-53-output-1.png index 7d3776574..b20e4996e 100644 Binary files a/guide/examples_files/figure-html/cell-53-output-1.png and b/guide/examples_files/figure-html/cell-53-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-56-output-1.png b/guide/examples_files/figure-html/cell-56-output-1.png index e2c582fbe..b48a630d8 100644 Binary files a/guide/examples_files/figure-html/cell-56-output-1.png and b/guide/examples_files/figure-html/cell-56-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-57-output-2.png b/guide/examples_files/figure-html/cell-57-output-2.png index c2eec98f5..339114a0f 100644 Binary files a/guide/examples_files/figure-html/cell-57-output-2.png and b/guide/examples_files/figure-html/cell-57-output-2.png differ diff --git a/guide/examples_files/figure-html/cell-65-output-1.png b/guide/examples_files/figure-html/cell-65-output-1.png index eca336276..11bb85193 100644 Binary files a/guide/examples_files/figure-html/cell-65-output-1.png and b/guide/examples_files/figure-html/cell-65-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-68-output-1.png b/guide/examples_files/figure-html/cell-68-output-1.png index 457f24211..def9d2acc 100644 Binary files a/guide/examples_files/figure-html/cell-68-output-1.png and b/guide/examples_files/figure-html/cell-68-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-75-output-1.png b/guide/examples_files/figure-html/cell-75-output-1.png index 2c08771ee..1f798ac75 100644 Binary files a/guide/examples_files/figure-html/cell-75-output-1.png and b/guide/examples_files/figure-html/cell-75-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-79-output-1.png b/guide/examples_files/figure-html/cell-79-output-1.png index dacece06e..0cfbc0383 100644 Binary files a/guide/examples_files/figure-html/cell-79-output-1.png and b/guide/examples_files/figure-html/cell-79-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-79-output-2.png b/guide/examples_files/figure-html/cell-79-output-2.png index eb5456c8d..c4fcdd7ac 100644 Binary files a/guide/examples_files/figure-html/cell-79-output-2.png and b/guide/examples_files/figure-html/cell-79-output-2.png differ diff --git a/guide/examples_files/figure-html/cell-80-output-1.png b/guide/examples_files/figure-html/cell-80-output-1.png index e7398b498..baa2e69d4 100644 Binary files a/guide/examples_files/figure-html/cell-80-output-1.png and b/guide/examples_files/figure-html/cell-80-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-81-output-1.png b/guide/examples_files/figure-html/cell-81-output-1.png index 881135fa7..db297b28f 100644 Binary files a/guide/examples_files/figure-html/cell-81-output-1.png and b/guide/examples_files/figure-html/cell-81-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-90-output-1.png b/guide/examples_files/figure-html/cell-90-output-1.png index 62603c667..cbf66b4d4 100644 Binary files a/guide/examples_files/figure-html/cell-90-output-1.png and b/guide/examples_files/figure-html/cell-90-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-93-output-1.png b/guide/examples_files/figure-html/cell-93-output-1.png index d292bb525..ddc10f5a7 100644 Binary files a/guide/examples_files/figure-html/cell-93-output-1.png and b/guide/examples_files/figure-html/cell-93-output-1.png differ diff --git a/guide/qgis.html b/guide/qgis.html index e998078c3..ab34fdcc8 100644 --- a/guide/qgis.html +++ b/guide/qgis.html @@ -2,7 +2,7 @@ - + diff --git a/index.html b/index.html index 514c12a07..fddc981ed 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + diff --git a/install.html b/install.html index 0401b3139..76bfdb7ec 100644 --- a/install.html +++ b/install.html @@ -2,7 +2,7 @@ - + diff --git a/known_issues.html b/known_issues.html index a18012c7e..7c9d48ca1 100644 --- a/known_issues.html +++ b/known_issues.html @@ -2,7 +2,7 @@ - + diff --git a/reference/index.html b/reference/index.html index fb44caedf..7cf115744 100644 --- a/reference/index.html +++ b/reference/index.html @@ -2,7 +2,7 @@ - + diff --git a/reference/node/basin.html b/reference/node/basin.html index 2ac787a05..197935451 100644 --- a/reference/node/basin.html +++ b/reference/node/basin.html @@ -2,7 +2,7 @@ - + @@ -112,7 +112,7 @@ require.undef("plotly"); requirejs.config({ paths: { - 'plotly': ['https://cdn.plot.ly/plotly-2.35.0.min'] + 'plotly': ['https://cdn.plot.ly/plotly-2.35.2.min'] } }); require(['plotly'], function(Plotly) { @@ -426,9 +426,9 @@

1 Tables

1.1 Static

The Basin / static table can be used to set the static value of variables. The time table has a similar schema, with the time column added. A static value for a variable is only used if there is no dynamic forcing data for that variable. Specifically, if there is either no time table, it is empty, or all timestamps of that variable are missing.

-
Control state Pump #2 flow rate (m/s) Pump #3 flow rate (m/s)
“none” 0.0 0.0
“in” 2e-3 0.0
“out” 0.0 2e-3
+
- + @@ -436,31 +436,31 @@

- + - + - + - + @@ -476,7 +476,7 @@

1.2.1 Interpolation

At the given timestamps the values are set in the simulation, such that the timeseries can be seen as forward filled.

-
+
Code
import numpy as np
@@ -524,31 +524,31 @@ 

display(Markdown(markdown_table))

-

column type unitnode_id Int32 - sorted
precipitation Float64 \(\text{m}/\text{s}\) non-negative
potential_evaporation Float64 \(\text{m}/\text{s}\) non-negative
drainage Float64 \(\text{m}^3/\text{s}\) non-negative
infiltration Float64 \(\text{m}^3/\text{s}\)
+
- + - + - + - + - + - + @@ -569,9 +569,9 @@

1.3 State

The state table gives the initial water levels of all Basins.

-

time forcing
0.0923386 0.417022
0.278599 0.720324
0.62416 0.000114375
1.02093 0.302333
1.55974 0.146756
+
- + @@ -579,13 +579,13 @@

- + @@ -601,7 +601,7 @@

1.4 Profile

The profile table defines the physical dimensions of the storage reservoir of each basin.

-

column type unitnode_id Int32 - sorted
level Float64 \(\text{m}\)
+
@@ -609,7 +609,7 @@

- + @@ -617,19 +617,19 @@

- + - + @@ -638,31 +638,31 @@

+

column type unitnode_id Int32 - sorted
area Float64 \(\text{m}^2\) non-negative, per node_id: start positive and not decreasing
level Float64 \(\text{m}\)
- + - + - + - + - + @@ -675,7 +675,7 @@

1.4.1.1 Level to area

The level to area relationship is defined with the Basin / profile data using linear interpolation. An example of such a relationship is shown below.

-
+
Code
fig, ax = plt.subplots()
@@ -714,23 +714,23 @@ 

display(Markdown(markdown_table))

-

node_id area level
2 1.0 6.0
2 1000.0 7.0
2 1000.0 9.0
3 1.0 2.2
+
- + - + - + - + @@ -758,7 +758,7 @@

\[ S(h) = \int_{h_0}^h A(h')\text{d}h'. \]

-
+
Code
storage = np.diff(level) * area[:-1] + 0.5 * np.diff(area) * np.diff(level)
@@ -803,7 +803,7 @@ 

1.4.1.3 Interactive basin example

The profile data is not detailed enough to create a full 3D picture of the basin. However, if we assume the profile data is for a stretch of canal of given length, the following plot shows a cross section of the basin.

-
+
Code
import plotly.graph_objects as go
@@ -918,9 +918,9 @@ 

fig.show()

-

level area
0.140387 16.7617
0.338488 27.1943
1.13923 41.1616