|
|
# Table of Contents
|
|
|
|
|
|
[**9. Flow Calculation**](#flow-calculation)
|
|
|
|
|
|
- [Principles](#book-principles)
|
|
|
- [Specify One or More Bathymetric Transects](#pencil2-specify-one-or-more-bathymetric-transects)
|
|
|
- [Invert Transects](#invert-transects)
|
|
|
- [Transect Parameters](#gear-transect-parameters)
|
|
|
- [Flow Calculation](#timer-flow-calculation-1)
|
|
|
- [Export Gaging Report](#newspaper-export-gaging-report)
|
|
|
|
|
|
#
|
|
|
|
|
|
# :book: Principles
|
|
|
|
|
|
Fudaa-LSPIV can **calculate a flow rate from averaged velocities** if one or more **known bathymetric transects** are provided.
|
|
|
|
|
|
<details><summary><b> :mag_right: In-depth explanations :tools: </b></summary>
|
|
|
<br>
|
|
|
|
|
|
# :mag: Flow Calculation Principles
|
|
|
|
|
|
Given the [bathymetric profile](#specify-one-or-more-bathymetric-transects) of at least one section within the analysis zone, **_Fudaa-LSPIV_** can calculate the flow passing through this section. The bathymetric transect can be [interpolated at a step defined by the user](##Flow-calculation/transect-parameters), and a surface velocity is calculated for each step from the nearest LSPIV velocities (weighted by distance). The user also defines a coefficient relating the surface velocity to the depth-averaged velocity for each calculation step. The flow is then calculated using the median section method, with velocity interpolation at the edges done according to the assumption that the Froude number varies linearly to zero at the edge.
|
|
|
|
|
|
## :mag: Definition and Interpolation of the Bathymetric Profile
|
|
|
|
|
|
The **bottom points** must be ordered **from left bank to right bank**.
|
|
|
|
|
|
The **transect** must contain at least **one point with an elevation below the water level** and the points at the ends must have an elevation above the water level. It is possible to have points located above the water level (islands) surrounded by water.
|
|
|
|
|
|
The bathymetric transect is not necessarily measured in the field along a straight line. Therefore, an **orthogonal projection** of the measured points onto the **line defined by the extreme points of the transect** (first and last point) is required.
|
|
|
|
|
|
![image116](uploads/98c1c433430ee6714bdb883cc9fb6f1b/image116.png){width="680px"}
|
|
|
|
|
|
Since we are going to calculate a velocity associated with each known bathymetric point, it is essential that the transect contains a **sufficient number of bathymetric points in the flow zone (at least 20)**. If the initial field survey is too sparsely spaced, it is possible to **interpolate points**.
|
|
|
|
|
|
The user defines an **_Interpolation Space Step for the Bathymetry_**, in meters, in the [**_Transect Parameters_**](#Flow-calculation/transect-parameters). Starting from the left bank, a bathymetric point will be added when the distance between two measurements exceeds the Interpolation Space Step. The depth associated with this added point is calculated as a linear interpolation between the surrounding measurement points.
|
|
|
|
|
|
![image117](uploads/5c1a94222468cb39b5cd7cd74b47ca59/image117.png){width="790px"}
|
|
|
|
|
|
![image118](uploads/29de0c885f5827cf0a4ac4b0f808556b/image118.png){width="790px"}
|
|
|
|
|
|
## :mag: Estimating the Average Velocity at Each Point of the Transect
|
|
|
|
|
|
For each transect, the user defines a _**search radius**_. Within this neighborhood around each node, the at most **3 closest velocity results are searched**.
|
|
|
If at least one result is found, the average velocity on the vertical $`V_{i}`$ at node _i_ is calculated as the weighted average of the neighboring velocities, weighted by the inverse of the distances, and multiplied by the surface coefficient α specified by the user for the given transect:
|
|
|
|
|
|
```math
|
|
|
V_{i} = \alpha \frac{\sum_{j = 1}^{N_{i}}{\frac{v_{i,j}}{d_{i,j}}}}{\ \sum_{j = 1}^{N_{i}}{\ \frac{1}{d_{i,j}}}}
|
|
|
```
|
|
|
With $`N_{i}`$ being the number of velocity results $`v_{i,j}`$ found in the vicinity of node $`i`$ of the transect ($N_{i} \\leq 3$); the distance $`d_{i,j}`$ is the distance between the position $`(x_{j},y_{j})`$ of the grid node of the velocity result $`v_{i,j}`$ and the position $`(x_{i},y_{i})`$ of node _i_, with a safety distance set to 1 mm:
|
|
|
|
|
|
```math
|
|
|
d_{i,j} = max\lbrack 0.001;\left( x_{j} - x_{i} \right)^{2} + \left( y_{j} - y_{i} \right)^{2}\rbrack
|
|
|
```
|
|
|
When **no LSPIV velocity result is found in the vicinity** of a transect node, the average velocity normal to the transect is **reconstructed by linear interpolation of the local Froude numbers**, between the two closest nodes, to the left and right, which have interpolated velocities.
|
|
|
|
|
|
> In order to best utilize the depth measurement made on the bathymetric profile, it is interesting to use a hydraulic assumption of the linear evolution of the local Froude number, instead of simply correcting the areas of the wetted sub-sections, or linearly interpolating the velocities. The linear interpolation of local Froude numbers is proposed by several references: Boiten (2000), Despax (2016), Fulford and Sauer (1986), ISO/TR 9823 (1990), Le Coz et al. (2008, 2012, 2014).
|
|
|
|
|
|
![image119](uploads/d93ab95e5bcf6c9d08cdb3c3ba045ec1/image119.png){width="500px"}
|
|
|
|
|
|
Let a transect node be positioned at the abscissa $x_p$, with the closest full verticals (including depth and velocities) positioned at $x_{i-1}$ and $x_{i+1}$.
|
|
|
|
|
|
At $i-1$, the full vertical provides the depth $h_{i-1}$ as well as the average velocity over the depth $V_{i-1}$. The local Froude number is then calculated as:
|
|
|
|
|
|
```math
|
|
|
{Fr}_{i - 1} = \frac{V_{i - 1}}{\sqrt{g.h_{i - 1}}}
|
|
|
```
|
|
|
with $g$ being the acceleration due to gravity at the Earth's surface ($g = 9.81 m/s^{-2}$).
|
|
|
|
|
|
At $i+1$, the local Froude number is given by:
|
|
|
|
|
|
```math
|
|
|
{Fr}_{i + 1} = \frac{V_{i + 1}}{\sqrt{g.h_{i + 1}}}
|
|
|
```
|
|
|
The Froude number of the $i$ bathymetric vertical is computed with a linear interpolation as :
|
|
|
|
|
|
```math
|
|
|
Fr_{i} = \frac{\left\lbrack \left( x_{i + 1} - x_{i} \right).{Fr}_{i - 1} + \left( x_{i} - x_{i - 1} \right).{Fr}_{i + 1} \right\rbrack}{x_{i + 1} - x_{i - 1}}
|
|
|
```
|
|
|
With $h_i$ the depth in $i$, we compute the associated average velocity as :
|
|
|
```math
|
|
|
V_{i} = {Fr}_{i}.\sqrt{g.h_{i}}
|
|
|
```
|
|
|
In the case of a bathymetric vertical located between the riverbank and the other verticals, an assumption must be made about the velocity at the bank: it is theoretically zero, but a constant extrapolation or an extrapolated bank velocity calculated with a bank coefficient (as in the Barème software) can be more realistic than a linear extrapolation to zero, in practice.
|
|
|
|
|
|
The flow calculation can then be performed normally across all the verticals, now all equipped with an estimated average velocity.
|
|
|
|
|
|
## :mag: Flow calculation across each transect
|
|
|
|
|
|
TODO...
|
|
|
-Median velocity, velocity normal to the transect
|
|
|
-Edge flow rates?
|
|
|
-Measured/extrapolated flow rate ratio
|
|
|
|
|
|
:clap: **End of in-depth explanations** :nerd_face:
|
|
|
|
|
|
#
|
|
|
|
|
|
</details>
|
|
|
|
|
|
# :pencil2: Specify one or more bathymetric transects
|
|
|
|
|
|
Three methods are available to specify one or more bathymetric transects:
|
|
|
|
|
|
![image84](uploads/fe81e6c627cbc16e1a2dd9c01aa551c7/image84.png)
|
|
|
|
|
|
- The **_Flow 🡪 Transect 🡪 New_** menu opens the interface to define a bathymetric profile. A profile is specified along a straight line, preferably perpendicular to the flow.
|
|
|
- First, enter the Z coordinate in the real coordinate system at the left bank of the transect, then click on the corresponding point in the orthorectified image.
|
|
|
- Repeat this for all the points of the bathymetric transect.
|
|
|
The **first two points** entered define the **orientation of the bathymetric profile**.
|
|
|
|
|
|
Bathymetric profiles are stored in **_outputs.dir/bathy_p.dat_**.
|
|
|
|
|
|
The default velocity coefficient is set to 0.85 and applies to all points of the transect. By unchecking the **_Unique velocity coefficient_** box, it becomes possible to define a coefficient for each node of the transect.
|
|
|
If coefficient values are missing for some nodes, they will be linearly interpolated along the transect according to the distance, with a constant extrapolation at the ends. The parameters of each transect (see details in the next section) can be defined.
|
|
|
|
|
|
![image85](uploads/4bf54926527d1dee4655e3b2b11e47b1/image85.png)
|
|
|
|
|
|
- The **_Flow 🡪 Transect 🡪 Import_** menu allows you to **load an existing bathymetric profile** in the form of an **X,Y,Z text file**. If the points of this transect are not perfectly aligned on a straight line, they are projected onto the line defined by the first and last points of the transect. Multiple transects can be imported at once.
|
|
|
|
|
|
- The **_Flow 🡪 Transect 🡪 New transect in abscissa-elevation_** menu automatically calculates the XYZ coordinates of a **transect defined in abscissa-elevation coordinates**. First, a window opens for the user to define the origin of the transect (given by the first point to click) and its orientation (given by a second point to click, which will not necessarily be the end of the transect):
|
|
|
|
|
|
![image86](uploads/fdc44a2306fbcb17c3a28cffab120b70/image86.png)
|
|
|
|
|
|
Next, a window opens to define the transect parameters (see details in the next section), add points with the button ![image87](uploads/ed2ba36f1c452f1a2f71c7bedd38b00f/image87.png), delete points with the button ![image88](uploads/fbd2ae66c1f7fb4e65f0da770f79228a/image88.png), and freely edit their abscissa-elevation coordinates in the table.
|
|
|
|
|
|
The button ![image89](uploads/04089448972cf30d5a695ae784c5825f/image89.png) allows you to import a transect as a simple text file with two columns for abscissa and elevation, separated by a space or tab.
|
|
|
|
|
|
The window also offers a visualization of the transect points in the vertical abscissa-elevation plane:
|
|
|
|
|
|
![image90](uploads/f6a1a3f067fbac6d2fb5a9e39b6285c2/image90.png)
|
|
|
|
|
|
## Reverse transects
|
|
|
|
|
|
If the orientation of one or more transects is incorrect (right bank and left bank are swapped), select the **_Transects_** layer from the **_Flow_** layer group, select the incorrectly oriented transect(s) using the selection tool ![](./media/image91.png), then use the **_Edit 🡪 Reverse transects_** menu.
|
|
|
|
|
|
![image92](uploads/570197d5654fcd16f16895e039c55b1e/image92.png)
|
|
|
|
|
|
Or right-click **_Reverse transects_**:
|
|
|
|
|
|
![image93](uploads/bb1d0c7294cb5298894751b7e4793691/image93.png)
|
|
|
|
|
|
# :gear: Transect Parameters
|
|
|
|
|
|
Select the **_Transects_** layer from the **_Flow_** layer group, select the transect(s) to configure using the selection tool ![image91](uploads/74a8fee0fd451818b860c4451d1c3023/image91.png), then use the **_Flow 🡪 Transect Parameters_** menu.
|
|
|
|
|
|
![image94](uploads/948c7ce01aaa71b33c859a5688de0fd6/image94.png)
|
|
|
|
|
|
- The **_Bathymetry interpolation spacing (m)_** allows you to **interpolate a bathymetric transect** that is not sufficiently sampled. The interpolation in Z is done linearly from neighboring data. The graphical display shows the effect of interpolation on the orthorectified image.
|
|
|
|
|
|
> :loudspeaker: _**Warning!**_
|
|
|
>
|
|
|
> Since the flow is calculated using the speeds at the known bathymetric points (see [Principles of Flow Calculation](Manuel-utilisateur/Approfondissements#principes-du-calcul-de-débit)), the **transect should have approximately 20 points in the wetted area**.
|
|
|
|
|
|
- The **_Velocity search radii (m)_** define the axes of the **ellipsoidal area** around the known bathymetric point where the **LSPIV calculated velocities** (Averaged surface velocities) will be averaged to assign a surface velocity value (see [Principles of Flow Calculation](Manuel-utilisateur/Approfondissements#principes-du-calcul-de-débit)).
|
|
|
- The search radii Rx and Ry define the semi-axes of the ellipsoids along the horizontal and vertical axes, respectively. If the **_Link/Unlink_** icon ![image95](uploads/fcab67908f529e8de911d052019fba3c/image95.png) is checked ![image96](uploads/c2f66a59d265d1b8e19b44c63a5b8ca9/image96.png), the values of Rx and Ry will be equal, meaning circular search areas are defined. The graphical display shows the extent of the search radii around each bathymetric point.
|
|
|
|
|
|
- The **_Velocity coefficient_** is the **ratio of the averaged velocity over depth to the surface velocity**. It allows for the calculation of an averaged velocity over depth from the surface velocity assigned to the bathymetric point (see [Principles of Flow Calculation](Manuel-utilisateur/Approfondissements#principes-du-calcul-de-débit)).
|
|
|
|
|
|
- The **Max number of points** allows you to **reduce the number of points in the transect** (under-sampling of the bathymetry) by eliminating points whose removal changes the wetted area of the transect the least.
|
|
|
|
|
|
The data and parameters of a transect can also be edited node by node: select the transect, then right-click on **_Edit_**.
|
|
|
|
|
|
![image97](uploads/065f22d9b3ae6340ee0c1ceb9c38c30d/image97.png)
|
|
|
|
|
|
In addition to the transect parameters mentioned above, the XYZ coordinates of the transect nodes can be modified. Additional nodes can be added and defined. Selected nodes can be deleted or moved up and down in the list to change their order.
|
|
|
|
|
|
If the **_Unique velocity coefficient_** box is unchecked, different velocity coefficients can be specified for each node of the transect. If coefficient values are missing for some nodes, they will be linearly interpolated along the transect's distance, with constant extrapolation to the edges. This also applies when new nodes are created, i.e., if the interpolation step is smaller than the greatest distance between two consecutive nodes on the transect.
|
|
|
|
|
|
# :timer: Flow Calculation
|
|
|
|
|
|
The **_Flow 🡪 Calculate Flow_** menu starts the flow calculation for the bathymetric transects present. For details on flow calculation, see the [Principles of Flow Calculation](Manuel-utilisateur/Approfondissements#principes-du-calcul-de-débit). At the end of the calculation, the flow results window will open.
|
|
|
|
|
|
![image98](uploads/08ce62293ca819a984d75dc3465c9554/image98.png)
|
|
|
|
|
|
The **_Water Level_** used in the calculation is displayed for reference (non-modifiable).
|
|
|
|
|
|
The table (non-modifiable) shows the calculated parameters for all the transects (one line per transect) and compares each result to the average of all transects (indicated in the last row): the difference from the average is expressed as **_Deviation (%)_**.
|
|
|
|
|
|
The **_Velocity coefficient_** column displays the average velocity coefficient. In the case of varying coefficients along a transect, it shows the constant coefficient that would have resulted in the same flow. It is calculated by dividing the total flow by the virtual flow calculated with a constant coefficient equal to 1.
|
|
|
|
|
|
The **_Total Q_**, **_Wetted Area_**, and **_Avg. Velocity_** columns show the flow, wetted area, and flow velocity.
|
|
|
|
|
|
The **_Measured Q / Total Q_** column shows the ratio between the flow calculated from the measured velocities only (i.e., interpolated from the nearby LSPIV velocities) and the total flow (including extrapolated velocities for missing parts of the transect). This is a measure of the impact of velocity extrapolation on the total flow result.
|
|
|
|
|
|
The **_Flow 🡪 View Flow Results_** menu allows you to review the flow calculation table without recalculating.
|
|
|
|
|
|
The **_Flow 🡪 Averaged Velocities_** layer (i.e., velocity averaged over depth) is created and displayed on the orthophoto. It allows visualizing the velocities averaged over depth at each bathymetric point.
|
|
|
By default, **_interpolated velocities_** (calculated as the weighted average of the three closest velocities around each node of the transect, multiplied by the velocity coefficient) are displayed as yellow vectors.
|
|
|
**_Extrapolated velocities_** (whose magnitude is calculated from the closest interpolated velocities and the local flow depth, assuming the local Froude number varies linearly) are displayed as brown vectors. The orientation of the extrapolated velocities is interpolated from the orientation of the closest interpolated velocities. For more details, see the [Principles of Flow Calculation](Manuel-utilisateur/Approfondissements#principes-du-calcul-de-débit).
|
|
|
|
|
|
![image99](uploads/08f384fd89186de8b1da1b34ab161218/image99.png)
|
|
|
|
|
|
After selecting the transects of interest, the **_Flow 🡪 3D View of Transect(s)_** menu allows for a 3D visualization of the transects' bathymetry, water level, and velocities averaged over depth.
|
|
|
|
|
|
![image100](uploads/f0d8e4070c7a3087b1418ee4b49a8cb5/image100.png)
|
|
|
|
|
|
# :newspaper: Export Gauge Report
|
|
|
|
|
|
The **_Flow 🡪 Export Gauge Report_** menu allows you to generate a gauge report containing all study parameters and results. Fill in the fields in the dialog box regarding the location, date, and measurement details.
|
|
|
|
|
|
![image101](uploads/b53c94a552de5f327e27d1ade3fbe111/image101.png)
|
|
|
|
|
|
After confirmation, choose the directory to save the gauge report. The report is an Excel file, printable on an A4 page (front/back).
|
|
|
|
|
|
![image102](uploads/18ea5f706b60cda20c7ee261ba4af000/image102.png) ![image103](uploads/d51d6ddb50cbe458cd039806e0071b03/image103.png)
|
|
|
|
|
|
#
|
|
|
-> [**Next Section: 10. Data Export**](Manuel-utilisateur/Export-des-données) |