- 07 Mar 2023
- 8 Minutes to read
Getting Started with 1D River Modelling
- Updated on 07 Mar 2023
- 8 Minutes to read
In this guide, we introduce 1D river modelling. You will load a river network and learn how to setup and run 1D simulations. We will explore a selection of the multiple ways Flood Modeller allows us to visualise the results from this.
The data used in this guide is available below.
In this guide, we will look at loading an existing 1D river network into Flood Modeller, running a simulation and viewing the results from this.
We assume (and highly recommend!) readers of this guide have previously read the Introduction to flood modelling, however the guide can still be followed without having done so.
Please note that there are a variety of ways to undertake different tasks in Flood Modeller. Throughout this guide, we provide details of selected methods only.
We will use data contained in the River Network.zip folder for this tutorial. This can be downloaded via the link above.
Let’s get going!
Initially open Flood Modeller (or start a new project if already open).
A project file references all the different parts of the model – you might refer to multiple network files and simulation files, among other file types, all within a single project.
Let’s add a background map and save the project before progressing.
Background mapping is for visualisation only and is not used as part of the calculations.
Flood Modeller will automatically select the default projection specified in the ‘Application Settings’ window, which will be set at OSGB 1936 as needed (unless you have changed your default projection, in which case you will want to adjust the projection for this tutorial).
If you are having issues with your basemap not displaying, the article here may help.
Load the network River_Network.dat (in the River Network folder). This represents part of the River Severn using a series of nodes. The nodes are shown in the map window, from M029 furthest upstream to M054 furthest downstream. Save the project again.
The network contains River Section nodes providing the cross-sectional data and physical properties of the river, such as roughness of the channel. A Flow-Time boundary (QTBDY) node specifies the flow entering the system upstream. Boundaries are also required at the end of a network; a Flow-Head boundary (QHBDY) node is used in this case. The general rule is flow in and water level (e.g. head) out.
You may notice your map is on 1D River selection mode; this is the default when Flood Modeller is opened. The selection mode can be switched between 1D Urban and 1D River through the right-click menu on the map view. For this tutorial, river selection mode is used throughout.
The river network has loaded in several areas of the interface.
Alongside the river sections in the map window, you will also see the river network loaded into the Project panel on the left of the screen. The Layers panel is below the Project panel; this will remain blank for now (and throughout this tutorial) as it is used for loading GIS datasets to the map view.
The network is also visible in the 1D River Network panel on the right; the most upstream node is given in the top row of the network table, followed by the remaining nodes heading downstream. The default initial conditions table is shown in the 1D River Network panel too, below the network table, but more on these later!
View the details of some of the nodes. Try plotting the flow entering the system at the flowtime boundary. Notice when the storm peaks and its duration.
Plot the cross-sectional view of some of the river sections to get a feel for the underlying topography.
As we have a network together with upstream and downstream boundaries, all connected correctly, we simply require initial conditions to start a simulation.
Initial conditions tell the software the initial water level in the river. These are very important – an (unsteady) 1D simulation requires some water at every river section, at all times throughout the simulation. No part of your channel can ever “run dry” as the mathematical calculations in the 1D river solver will break down.
To calculate these initial conditions, we will run a steady-state simulation.
Since Flood Modeller prompts you to choose a filename when creating a new file, do not be tempted to choose an existing one (since this will be overwritten) – always choose a new filename.
Run a new steady (direct) simulation to calculate some initial conditions.
This will take the flow entering the system (through the QTBDY) in only a single timestep (time = 0hrs, i.e. the start of the analysis period). The software will calculate the water level at each node assuming this single timestep flow is steady throughout the simulation (does not change over time). These water levels can then be used as the initial conditions for an unsteady simulation (where the flow does change over time).
If you have multiple river networks loaded into the Project panel, bold font indicates which is active. Double-click a river network to make it active.
Once your simulation is complete, you can just close the window – the results are automatically saved in the same folder as your project. For river only simulations, these are contained in a pair of files with extension .zzl and .zzn.
Alongside the Files and Times tabs, you may notice other tabs (visible via View > Tabs). These can all be left with the default settings unchanged for the purposes of this guide.
Let’s look at the results from our steady-state simulation.
Clicking View… after the simulation finished showed the results file itself in a text editor e.g. Notepad++. View a Cross Section plot of a node to visualise the water levels further.
Now let’s consider an unsteady simulation. Run a new unsteady (fixed timestep) 1D simulation for long enough to cover the inflow defined in the QTBDY.
This will simulate the flow entering the river from the Flow-Time boundary upstream (recall the data plotted from this boundary earlier) and calculate the water level (alongside other parameters) at all the nodes at each timestep.
Use a timestep of 2.5 seconds, a save interval of 300 seconds and the initial conditions from your steady simulation.
Larger timesteps are advantageous for faster simulation runtimes but could be too coarse to capture the detail necessary or could lead to large “jumps” in data calculated (which in turn can lead to instabilities and cause a simulation to crash). When running integrated simulations, it is also necessary to ensure timesteps of the various components are multiples of each other, but this is not something we need to consider for the purposes this guide.
Look at some of the results from your unsteady simulation.
Animate a Long Section plot to see the water levels changing along the entire network.
Time Series plots are also available for your 1D river results, with options provided to plot flow, stage, velocity and water depth, alongside other outputs.
You have now had an initial introduction to 1D river modelling.
We loaded a river network into Flood Modeller and noticed how it starts and ends with boundary units. In our particular river network, a Flow-Time boundary detailed the flow entering the system furthest upstream. We noticed that boundaries are connected to the network by sharing the same node label as the nearest River Section node. We viewed this boundary and plotted the flow from this. Flood Modeller also provides a variety of other boundary units.
Instead of loading a pre-existing river network, we may be in a situation where we are building the river network, for example by using options provided in Flood Modeller to import cross-sectional data for the river sections. In this case, it would still be required that the river network starts and ends with a boundary unit. We saw that we can confirm this is the case by checking they are the very first and very last rows in our network table.
We explored the river network in more detail and viewed some of the river sections in plots.
Alongside River Section nodes, Flood Modeller provides a vast selection of 1D units to represent features and structures, such as bridges, culverts, and weirs.
We ran a steady-state simulation to calculate initial conditions as 1D simulations always require water initially in the system. Low flows can often be a source of instability in 1D modelling. We then setup and ran an unsteady 1D simulation using these initial conditions.
We chose a timestep of 2.5 seconds and noticed that a larger timestep would decrease simulation time. We must always ensure the timestep is small enough to capture the data required. Too coarse a timestep can also lead to instability issues.
Finally, we visualised the results from our 1D simulation. We animated the stage data calculated, showing times when the water level exceeded the bank height. We noticed options were provided to plot flow, stage, velocity and water depth, alongside other outputs. We saw the water level exceeded the bank height in some locations and was lost from the system for our simulation. To explore where this water goes, one option would be to integrate our 1D river network with other modelling components, connecting to a 1D urban network and/or 2D domains.
You may be interested in more about 1D River Modelling
You can also find helpful example data provided directly within this knowledgebase.
Alternatively, find out more with our other Getting Started guides:
Getting Started with 1D Urban Modelling