Gauge node - SRG
A Gauge node represents a location in a river network where either:
- There is measured flow and/or constituent data available that can be compared to modelled flows or constituent concentrations, or
- Modelled outputs (flows or constituents) need to be recorded and then made available for viewing and comparison.
A rating curve can be associated with a gauge node to water levels to be determined from flows. It is also possible to compare forecast recession with actual recessions at gauge nodes if measured data are available.
Gauge nodes can be used as part of model calibration and verification, by comparing observed and predicted outputs (flows and constituents).
Gauge nodes are not used to input data for subsequent use in a Source model. Flow and constituent data are input via inflow nodes or via an unaccounted difference node. Data at gauge nodes are used for recording and comparison only.
A gauge node can be configured as an unaccounted difference node, which is described in more detail in the Rules-Based Ordering - SRG entry. At an unaccounted difference node:
- the difference between observed and modelled flow and constituents can be calculated and reported by the model.
- The input observed gauge data (flow and/or constituents) replaces modelled data (flow and /or constituents).
Scale
The Gauge model is implemented at the site-scale where a gauge is physically located within the catchment. The temporal scale is usually determined by the time-step of the measured data. Common temporal scales are daily or monthly.
Principal developer
eWater Forecasting (Rules-based ordering) - SRG
Scientific provenance
Gauge node was introduced in Source Rivers, WaterCAST and subsequently, Source Catchments.
Version
Source version 2.17
Dependencies
The gauge node must be part of a node link network.
Availability
Gauge is automatically installed with Source.
Structure and processes
A gauge node either marks:
- a point in a river where there is a physical gauge where measurements of flow or constituents are made; or
- a logical point in a river model where you need to be able to compare and view modeled outputs (flow or constituents).
If time-series data for the physical gauge location is available, the data can be loaded into the gauge node. Alternatively, a time series from another scenario can be loaded. If necessary, a rating curve can be specified and used to convert gauge measurements (water levels) to flow.
The output for the gauge node allows comparison between the loaded flow or constituent data and modeled flow or constituent data at a point in the network. This can be used to assist model calibration and validation when observed flow or constituents (from a physical gauge) and simulated flow or constituents are compared.
Ownership
When ownership is enabled, the unaccounted difference is shared between owners using the using the sharing rules specified for the ownership system that is specified for the gauge node.
The user can specify each owner’s share of the gauge node input (when the gauge node is operating as an unaccounted difference node) as a percentage, time series or function. The user can also specify that at a gauge node, ownership remains as is.
Unaccounted difference
The unaccounted difference is calculated as a time series of differences between measured and modelled flows.
Rating curve
A rating curve relates water level (stage or gauge reading), discharge, and surface width. Data is entered as a table directly into Source or as a csv file. Linear interpolation is used between the specified values.
Determination of rating curves is governed by an Australian Standard AS 3778.2.3 - Measurement of water flow in open channels - Part 2.3: General determination of the stage discharge relation (2001). It can be a deceptively complex issue, see for example Fenton and Keller (2001).
Forecast
The modeller can forecast unaccounted difference for flow and constituents at an unaccounted difference node. Refer to Ordering for details.
Definition of variables
Variables are defined in Table 1.
Table 1. Definition of Variables
System | Purpose/Description | Units | Model Phase |
---|---|---|---|
cc | Index of a conservative constituent | n/a | Initialisation, Flow |
Deficit(o) | Amount of order capacity (order phase) or flow (flow phase) that owner o needs to borrow from other owners. | volume | Ordering, Flow |
dt | Length of the model time-step | time | Initialisation, Flow |
FlowLoss | Difference between total modelled inflow and modelled outflow volume at the gauge in the current time-step. | volume | Flow |
FlowLoss(o) | Difference between owner o’s modelled inflow volume and their modelled outflow volume at the gauge in the current time-step. | volume | Flow |
Inflow | Volume of flow entering the gauge from upstream in the current time-step (as calculated by the model) | volume | Flow |
InflowConc(cc) | Concentration of conservative constituent cc in flow entering the gauge from upstream in the current time-step (as calculated by the model). The calculation of this variable is described in the Marker routing (Particle tracking) - SRG. | Mass/ volume | Flow |
InflowMass(cc) | Mass of conservative constituent cc in flow entering the gauge from upstream in the current time-step (as calculated by the model). The calculation of this variable is described in the Marker routing (Particle tracking) - SRG. | Mass | Flow |
Inflow(o) | Volume of owner o’s share of the flow entering the gauge from upstream in the current time-step (as calculated by the model). | volume | Flow |
InflowRate | Rate of flow entering the gauge from upstream in the current time-step (as calculated by the model). | Volume/ time | Flow |
InflowRate(o) | Rate of owner o’s share of the flow entering the gauge from upstream in the current time-step (as calculated by the model). | Volume/ time | Flow |
j | A number of time-steps - added to current time-step t to reference a future time-step in which an order is due to be delivered at the gauge. | n/a | Flow |
MassLoss(cc) | Difference between inflow and outflow mass of conservative constituent cc at the gauge in the current time-step. | Mass | Flow |
no | Number of owners at the gauge node. | n/a | Initialisation, Ordering Flow |
o | Index of an owner. | n/a | Initialisation, Ordering, Flow |
ObservedConc(cc) | Observed concentration of conservative constituent cc for the current time-step - which is either the value returned from the configured function fHistConc(cc,t), or if t is not covered by the function, inflow concentration minus forecast UD. | Mass/ volume | Flow |
ObservedFlowRate | Observed flow rate for the current time-step - which is either the value returned from the configured function fhistFlowRate(cc,t), or if t is not covered by the function, inflow rate minus forecast UD. | Volume/ time | Flow |
ObservedMass(cc) | Observed mass of conservative constituent cc for the current time-step - which is the observed concentration multiplied by the outflow rate. | Mass | Flow |
OrderDS(o,t+j) | Owner o‘s ordered volume to be delivered to the gauge node for future time-step t+j, before adjustments for UD have been made (ie. the order volume passed from downstream for that time-step). | Volume | Ordering |
OrderUS(o,t+j) | Owner o‘s ordered volume to be delivered to the gauge node future time-step t+j, which has been adjusted for UD. This is the order volume to be passed upstream for that time-step. | Volume | Ordering |
Outflow | Volume of flow leaving the gauge in the current time-step. | volume | Flow |
OutflowConc(cc) | Concentration of conservative constituent cc in flow leaving the gauge in the current time-step. | Mass/ volume | Flow |
OutflowMass(cc) | Mass of conservative constituent cc in flow leaving the gauge in the current time-step. | Mass | Flow |
Outflow(o) | Volume of owner o’s share of the flow leaving the gauge in the current time-step. | volume | Flow |
OutflowRate | Rate of flow leaving the gauge in the current time-step | Volume/ time | Flow |
OutflowRate(o) | Rate of owner o’s share of the flow leaving the gauge from upstream in the current time-step | Volume/ time | Flow |
OwnerBorrowed(o) | Amount of order (order phase) or flow (flow phase) that owner o borrowed from other owners | Volume | Ordering, Flow |
OwnerLent(o) | Amount of order (order phase) or flow (flow phase) that owner o lent to other owners | Volume | Ordering, Flow |
SetFlow | Option as to whether to set downstream outflow rate to the observed flow rate at the gauge node. | n/a | Initialisation |
SetOwnership | Option as to whether to change downstream flow ownership at the gauge node. | n/a | Initialisation |
ShareRatio(o) | Owner o’s share of orders (ordering phase), outflow or observed UD (flow phase) at the gauge in the current time-step. | n/a | Ordering, Flow |
Surplus(o) | Amount of order capacity (order phase) or flow (flow phase) that owner o can lend to other owners. | Volume | Ordering, Flow |
system.owner% | An owner’s configured share of lateral flows (losses and gains) for all links in the gauge’s ownership system. | % | Initialisation, Flow |
t | Time-step index, usually used to represent the current time-step. | n/a | Flow |
UDConcForecast(cc,t+j) | Forecast of unaccounted difference in concentration of conservative constituent cc at the gauge node for future in time-step t+j. | Mass/ volume | Ordering, Flow |
UDFlowForecast(t+j) | Forecast of total unaccounted difference in flow rate at the gauge node for future time-step t+j. | volume | Ordering, Flow |
UDFlowForecast(o,t+j) | Owner o’s forecast of unaccounted difference in flow rate at the gauge node for future time-step t+j. | volume | Ordering, Flow |
UDFlowObserved | Difference between the total modelled inflow and the observed value for the current time-step at the gauge node. | volume | Flow |
UDConcObserved(cc) | Difference between modelled inflow concentration of conservative constituent cc and the observed value for the current time-step at the gauge node. | volume | Flow |
UDMassObserved(cc) | Difference between modelled inflow mass of conservative constituent cc and the observed value for the current time-step at the gauge node. | volume | Flow |
WSE(t) | Water surface elevation at the gauge node in the time-step. | Elevation | Flow |
fHistFlowRate(t) | Function (time series) that returns the observed flow rate at the gauge in time-step t. | Volume/time | Initialisation, Flow |
fHistConc(cc,t) | Function (time series) that returns the observed concentration of conservative constituent cc in time-step t. | Mass/volume | Initialisation, Flow |
fOutflowShare(o,t) | Configured outflow sharing function. | n/a | Initialisation, Flow |
fUDConcForecast(cc,t+j) | Function that returns the forecast unaccounted difference between modelled and observed concentration at the gauge for conservative constituent cc in future time-step t+j. | Mass/volume | Initialisation, Ordering |
fUDFlowForecast(t+j) | Function that returns the total forecast unaccounted difference between modelled and observed flow rate at the gauge in future time-step t+j. | Volume/time | Initialisation, Ordering |
fWSE(flowRate) | Function that returns a water surface elevation for a given flow rate flowRate. | Elevation | Initialisation, Flow |
Order phase
Forecast unaccounted differences are used to adjust orders and the volume released from storage so that all accounted and unaccounted demands are satisfied from the releases.
Note that the forecast of unaccounted difference for a future time-step may be updated at each time-step.
For each future time-step t+j from the shortest to the longest delivery time from upstream storage(s) to the gauge node (note that in the following UD means unaccounted difference):
Step 1
Calculate the current UD flow forecast for time-step t+j (positive number is a gain, negative number is a loss).
For each conservative constituent cc where the user has specified that the input concentration should replace the modelled concentration (Set(cc)=YES), forecast concentration using the configured forecast function (the default forecast function calculates the forecast using observed constituent concentration UDConcObserved(cc) in earlier time-steps):
Equation 1 |
where:
fUDConcForecast() is the function used to create the forecast
UDConcForecast is the forecast value
Get the flow forecast using the total UD flow forecast function (the default forecast function calculates the forecast using observed flow UDFLowObserved in earlier time-steps):
Equation 2 |
where:
fUDFlowForecast() is the function used to create the forecast
UDFlowForecast is the forecast value
If ownership is enabled:
- Find the sharing ratio for each owner o (which is initially zero)
- If the ownership system’s Other Lateral Flux Sharing = Fixed Ratio
Equation 3 |
- Otherwise, the ratio is the owner’s share of total downstream orders due for delivery at the gauge node in time-step t+j
Equation 4 |
where:
OrderDS(o,t+j) is order volume passed from downstream for time-step (t+j) for owner o.
- Apply the sharing ratio to get each owner’s initial share of forecast UD:
Equation 5 |
Step 2
Get the order volume for time-step t+j to pass upstream:
If ownership is enabled
- if any owner o has a unaccounted difference gain greater than their order (UDFlowForecast(o,t+j) > OrderDS(o,t+j)), share to those that don’t:
- Get each owner’s UD surplus/deficit, ie. the amount of order capacity that the owner can lend to other owners (or needs to borrow from other owners);
Equation 6 |
Equation 7 |
- Use the borrow method to determine how much each owner borrows/lends OwnerBorrowed(o), OwnerLent(o). In this case the borrow accounts are NOT updated;
- Adjust each owner’s UD forecast to get a final one:
Equation 8 |
- Adjust the owner’s downstream order for UD to get the volume of order to pass upstream, ensuring that order volume is not negative:
Equation 9 |
Otherwise (no ownership), adjust the downstream order for UD to get the upstream order, ensuring that the order volume is not negative:
Equation 10 |
Flow phase
Details on calculation procedures during the flow phase are provided next.
Step 1
Calculate total flow rates and volumes:
- Observed flow rate (see Table 2)
Table 2. Observed flow rate decision table
Data Loaded1 | Scenario2 | ObservedFlowRate | Flow leaving gauged node |
---|---|---|---|
No | All | InflowRate | Modelled flow arriving at the gauge node. |
Yes | River Manager | fHistFlowRate(t) | Forecast flow rate at the gauge in time-step t |
Yes | River Operator | InflowRate + UDFlowForecast | Flow arriving at gauged node + forecast unaccounted difference |
1 Data refers to flows and constituents being provided by the user
2 In a river operator scenario, for the current time-step t there is no observed data and a forecast must be used
- Observed flow UD (used in River Operator forecasting, also reported)
Equation 11 |
---|
- Outflow rate (see Table 3)
Table 3. Outflow rate decision table
SetFlow Option | Node type | OutflowRate |
---|---|---|
No | Gauge | InflowRate |
Yes | Unaccounted Difference | ObservedFlowRate |
- Total outflow, water surface elevation (this only applied if a rating table is loaded):
Equation 12 |
---|
Equation 13 |
Step 2
If ownership is enabled, determine owner flow rates and volumes.
- If setOwnerhip=YES,
- Determine the owner outflow share percentages:
- If the modeller has specified a sharing function:
Equation 14 |
- Otherwise use the configured fixed percentage
Equation 15 |
- Get each owner’s outflow rate and volume:
Equation 16 |
Equation 17 |
- Otherwise (when setOwnerhip=NO), share observed flow UD like a lateral flux:
- Calculate each owner’s outflow volume (see Table 4)
Table 4. Owner outflow volume decision table
SetFlow | Ownership System: lateral flux sharing | ShareRatio(o) | Outflow(o) |
---|---|---|---|
No | n/a | n/a | Inflow(0) |
Yes | Fixed Ratio | system.owner% | Inflow(0)+ShareRatio(0). UDFlowObserved |
Proportional | Inflow(0)/Inflow |
- Calculate each owner’s outflow rate
Equation 18 |
Step 3
If ownership is enabled, ensure no owner has a negative share of outflow (this could occur if SetFlow=YES and UDFlowObserved < 0), then determine unaccounted difference:
- If any owner has negative outflow, adjust owner shares:
Equation 19 |
Equation 20 |
Use the borrow method to get OwnerBorrowed(o) and OwnerLent(o) (See the Borrow & Payback description). The borrow accounts need to be updated for borrow that occurs. Once this is done:
Equation 21 |
- Update each owner’s downstream outflow rate:
Equation 22 |
- Calculate each owner’s unaccounted difference.
Equation 23 |
Step 4
Get inflow concentration and mass for each conservative constituent modelled (InflowConc(cc), InflowMass(cc)) - see Marker routing (Particle tracking) - SRG.
Step 5
For each conservative constituent cc modelled, calculate:
- Observed Concentration (see Table 5)
Table 5. Observed concentration decision table
Data Loaded? | Scenario | ObservedConc(cc) | Concentration leaving node |
---|---|---|---|
No | All | InflowConc(cc) | Modelled concentration arriving at the gauge node. |
Yes | River Manager | fHistConc(cc,t) | Forecast concentration at the gauge in time-step t. |
River Operator | InflowConc(cc) + UDConcForecast(cc,t+j) | Concentration arriving at gauged node + forecast unaccounted difference. |
- Observed Mass:
Equation 24 |
- Observed UD for concentration and mass:
Equation 25 |
Equation 26 |
---|
Observed UD (concentration) is used in forecasting when the set option is YES, and reported under this name. When the set option is NO it is reported as "Error". Observed UD mass is not used in forecasting, but is reported (as UD when set=YES, and Error when set=NO) |
- Outflow concentration and mass (see Table 6)
Table 6. Outflow concentration and mass decision table
Set(cc) Option1 | OutflowConc(cc) | OutflowMass(cc) |
---|---|---|
No | InflowConc(cc) | InflowMass(cc) |
Yes | ObservedConc(cc) | ObservedMass(cc) |
1 should concentrations be set to metred values? (yes/no)
Settings
Two settings are considered here; in addition see Input data.
Enabling the Set flow check box enables the calculation of a time series of differences between modelled flows and flow loaded at the gauge node. Modelled flows will be replaced by loaded flows.
Enabling the Set to metered values check box enables the calculation of a time series of differences between modelled concentrations and concentrations loaded at the gauge node. Modelled concentrations will be replaced by loaded concentrations
Recession forecasts can be based on the current time-step or the previous time-step. Forecasting functionality is discussed further in the section on the Inflow node.
Input data
Four types of input data can be specified.
- Details - station number, river name and station name;
- Gauge flow - time series of flow data either measured or modelled, to be compared with data from the current scenario at the gauge node;
- Rating curve - site specific rating curve with rows of values that specify gauge reading, discharge and surface width. Data can be entered directly or as a csv file; and
- Constituents - time series of constituent flow data either measured or modelled, to be compared with data from the current scenario.
In addition, the k value in the recession equation can be input. See Forecasting (Rules-based ordering) - SRG for details.
For details on importing data files into Source, see the Source User Guide.
Output data
The gauge node outputs any flow and constituent data (that have been loaded) and any modelled data that has been calculated at the location of the gauge node in the model.
Reference list
Fenton, J. D. and R. J. Keller (2001). The calculation of streamflow from measurements of stage. Melbourne, Cooperative Research Centre for Catchment Hydrology. http://www.catchment.crc.org.au/pdfs/technical200106.pdf
Australian Standard AS 3778.2.3-Measurement of water flow in open channels - Part 2.3: General determination of the stage discharge relation (2001)