xpswmm/xpstorm Resource Center xps

Urban area flood modeling could be very challenging due to the complexity of flow patterns. It is almost impossible to predict the flow patterns of shallow overland flow using simple one-dimensional (1D) model. However, the urban flood flow through drainage pipes is essentially 1D and requirement of the 1D/2D integrated modeling is quite obvious. Innovyze incorporated 2D hydrodynamic engine XP2D to XPSWMM/XPStorm in addition to the 1D hydrodynamic engine to enable the seamless 1D/2D modeling of urban floods.

In this tutorial, a 1D urban drainage network and a 1D open channel will be added to an urban area 2D model. That means that the flow through the drainage network and open channel will be modeled as 1D and the overflow from the junctions and overbank flow from the open channel will be modeled as 2D. A diagrammatic representation of the modeling approach adopted for this tutorial is as follows:

  • Create a 1D drainage network

  • Create a 1D open channel

  • Create 2D urban model and combine with 1D network

  • Analyze the 1D/2D model and review results

Time2 hours
Data files
  • Aerial_Photo_M04.bmp (background image file)

  • Aerial_Photo_M04.bpw (world file)

  • Post_Development.xptin

  • Urban_Flooding01.xp (starter model which contains the global databases for design rainfall, loss model, and 2D Landuses)

  • Urban_Flooding_Completed.xp (completed model file)

  • Urban_Flooding_Completed_Pond.xp (completed model with a detention pond as mitigation)

The following sections (1D Drainage Network and Hydrology and 2D Model Setup) are optional. This section describes the set up of 1D drainage network and hydrology model. You may skip this section and go to the last section Analysis and Review Results. In that case, you can open the completed model Urban_Flooding_Completed.xp, analyze, and review results.

Part 1 - 1D Drainage Network and Hydrology:

This section describes how to set up a 1D drainage network model for the urban development. Note that this network is already designed and you will construct/import this designed network into the model.

  1. Launch the program:
    1. At the opening dialog, open the file Urban_Flooding01.xp
    2. Save the model as Urban_Flooding02.xp.

  2. Load the background image:
    1. Right-click the Background Image layer and select Add Background Image
    2. Locate the file Aerial_Photo_M04.bmp, select and open the file. You will see an urban residential subdivision development, roadways, narrow open channels, playground, and ponds in the aerial map.

  3. Load the DTM:
    1. Right-click the DTM layer and select Load XPTIN File

    2. Locate the file Post_Development.xptin and then click OK
    3. Right-click the added DTM layer and select Edit Colors

    4. Adjust the transparency of the DTM layer to view the DTM and background image together. Select the Section Profile tool and take some cross sections at different locations and you will see that the DTM represents the project area terrain very well.

  4. Create the 1D drainage network. You will import the designed drainage area network from the XPX file. 
    1. Go to File menu and select Import/Export Data > Import XPX/EPA Data.
    2. Click the XPX Format File radio button, and then the Select button, 
    3. Locate the file Drainage_Network.xpx
    4. Select the file and then click Import. Ignore the generic warning message. 
    5. Click the Fit to window tool and you will see the whole 1D drainage network. 
    6. Double-click and open the links and nodes. 
    7. Review the data. You will see that the network consists of pipes and open channels.

  5. Hydrology model.

    Note that the hydrology model setup is already completed and imported through the XPX file. 
    1. Click the Runoff mode icon. Now the model is in the Rnf mode. 
    2. Double-click the nodes and review the data.

  6. For the entire model, RUNOFF routing has been used. The rainfall used for this model is a 100 year ARI design rainfall with 30 minutes duration. 
    1. Click the Rainfall button, highlight Q100 and then click the Edit button. 
    2. In the Rainfall dialog, select Constant Time Intervals. You can review the design rainfall data. The absolute depth of rainfall is 77 mm and the temporal pattern also shown. 

    3. Click Graph button to view the rainfall hyetograph.

    4. Click Close on the graph window. 

    5. Click OK twice and select Q100 as the rainfall and you will reach the subcatchment dialog again. 

    6. Click the Infiltration button. Highlight the database Loss and click the Edit button. 

    7. Click the Hurton button. A Horton infiltration model is specified as the loss model. 


    8. Click OK to exit from the dialogs. 

For this particular model, you will not use this hydrology set up. You will use a 2D rainfall over grid instead of this 1D methodology. Hence, you should not select the Create Interface File option under the Configuration Menu. Please refer to Rainfall on Grid section under 2D Model Setup.

Part 2 - 2D Model Setup:

This section describes how to set up a 2D model for the urban flooding. You will link this 2D model with the 1D model created before. Click the Hydraulics Mode button  to switch the mode back to hydraulics.

  1. Create the 2D grid:

    1. Select the Grid Extents under the 2D Model layer. Alternatively, select the 2D Model layer, then all the layers beneath the 2D Model Layer will be selected. 

    2. Click and highlight the Grid Extents and select the Polygon tool. 

    3. Digitize a polygon to cover the model area. 

    4. After digitizing the polygon, right-click the Grid Extents layer again and select Properties

    5. Adjust the Grid Step Size to 5 m.

      If your current license only has 10000 cells then consider using a Grid Step Size of 9 m.

  2. Set up the inactive 2D area. Note that there are open channels upstream and downstream of the urban development and the average width of these channels is 15-20 m. The 2D grid size adopted for simulation is 5 m. Literature review has shown that the minimum number of grids required to model an open channel as 2D is 4-5. However, the grid size is reduced to less than 5 m, it will increase the simulation time considerably.

    Hence, you will model these open channels as 1D. You will represent these channels by 1D cross-section taken from the DTM. To avoid duplication of the channel storage, you need to make these 1D channels areas inactive in the 2D domain. 

    1. Right-click the 2D Model Layer and select Add New Set > Inactive Areas. A window appears where you need to enter the name of the new set. 

    2. Name as 2D Inactive Area and then click OK.


  3. To save time, import the inactive 2D area polygon from GIS file:

    1. Right-click the newly created Inactive Area layer and select Import from GIS File


    2. Browse for the file 2D_Inactive_Area.mif, select Open, and then click Import.


  4. 1D/2D integration. Now, you need to connect this 2D inactive area with the 2D active area. 1D/2D Interfaces and 1D/2D Connections lines are used to accomplish the interaction between 1D and 2D. The following figure shows the 1D and 2D models’ interaction using interface and connection lines: 

    1D/2D interface lines have to be snapped around the 2D Inactive area polygon. The 1D nodes to be connected to these interface lines using 1D/2D connection lines. The water levels will be interpolated at the cells through which interface line passes. Computed water levels at nodes will be used for this interpolation. 

  5. Next, digitize the 1D/2D interface and connection lines:

    1. Right-click the 2D Model layer and select Add New Layer > 1D/2D Interfaces

    2. Name the new set as 1D/2D Interfaces

    3. Highlight the 1D / 2D Interfaces layer, and then select the Polyline tool and digitize polylines along the Inactive Areas. Alternatively, select the new set, right-click and select Import from GIS File option. Browse for the file 1D_2D_Interface.MIF, click Open, and then click Import

    4. Next create a new set for 1D/2D Connections as you did for the interface line. 

    5. Select this layer and digitize the connection lines for nodes 100,99,C1_u/s, 97,96,C3_u/s, 95, and 94 (nodes within the 2D inactive areas). Remember to select the Snap tool and snap the connection polylines to the interface lines.

  6. Link node spill crests of manholes/pits of drainage network to 2D domain. 

    1. Double-click any node in the drainage network. 

    2. Under the Ponding option, make sure that you activate the Link Spill Crest to 2D option by selecting it. When you select this option, the interface will connect this node to the 2D domain. You will enter a rating curve for this node to do the mass balance during simulation. 

    3. Select the 2D Inflow Capture button and you can enter the multiplication coefficient and non-linearity coefficient for the rating curve that is suitable for the manhole/pit type for your projects. For this example, accept the default values, and then click OK.


  7. Now you need to complete this procedure for all the nodes: 

    1. To make this procedure easy, click the copy button on the top-right corner of the window and you will see the cursor changes. 

    2. Click the Link Spill Crest to 2D option again and the 1 database record copied message appears. 


    3. Select all nodes using Select All Nodes tool and press <Ctrl> + V button. You will get a message that the database has been pasted to all the nodes.

    4. Repeat this procedure for 2D Inflow Capture.
  8. Set up the 2D landuse:

    Under the 2D Model layer, you can see that the Landuse types specified for the model. For each landuse, right-click the layer and select Import from GIS file. Import the MIF files on each layer as you did previously.

    LanduseImport File







    Note that you do not need to import any polygons for Pasture because you will assign the default 2D landuse as pasture in the 2D model setting later. This means the model will assume 2D landuse as Pasture for all the non-landuse specified areas.

  9. Rainfall on the grid:

    xp2D has the ability to model the 2D overland flow due to the rainfall over the 2D grids. The 2D engine solves the 2D (depth averaged) St-Venant’s equation, which contains continuity and momentum equations. This is also known as shallow water equations. Alternating Direction Implicit Finite Difference scheme is used for solution.

    1. Right-click the 2D Model layer and select Add New Layer > Rainfall /Flow Areas

    2. Select the newly added layer, right-click to select Import From GIS File. 
    3. Locate the file import 2D_Rainfall_Area.MIF, click Open, and then click Import
    4. Right click the imported 2D rainfall area polygon and click Edit Data

    5. Select Type as Rainfall and using the drop-down menu, select the 100 year-30min design rainfall event Q100. Click OK.

  10. Water level lines (WLL):

    These lines are used to generate water levels and other output of 1D domain. This allows the combined viewing of 2D and 1D domain results together. A water level line is essentially a line of horizontal water level and they must be from left to right looking in the direction of flow. 

    1. Click Select All Links tool.
    2. Go to Tools > Calculate Conduit > Water Level Lines
    3. Apply to All Links and enter the Maximum distance between lines as 20 m. Enter the Water level line widths as 30 m for both Right and Left

    4. Click Yes and OK on the next window. 

    5. When you click OK on the Water Level Line Generation dialog, you will see in the network that WLLs have been created for the open channel links. WLLs will be created only for the open channel links. 
    6. Zoom-in to the upstream most link XS 100-99, select the Inactive Areas layer, click to select the link.
    7. Right-click and select Water Level Lines Trim Water Level Lines to Polygon or Polyline. Alternatively, select Automatically Trim Water Level Lines to innermost Polygons or Polylines.

    8. Click the edge of the inactive area polygon. You can see the WLLs trimmed. Repeat this for all the open channel links where you specified WLLs. 


  11. Boundary conditions:
    1. Inflow and outflow boundaries are already assigned for the model at node 100 and 94 respectively. Double-click and open the node 100. There you will see an inflow hydrograph entered as User Inflow. This is the Q100 flow from the u/s areas through the open channel. 
    2. Similarly, double-click and open the Node 94. There you will see an Outfall is assigned as downstream boundary.

      Note that the inflow and outflow boundaries can be 2D as well. If you want to assign 2D flow boundaries instead of 1D flow boundaries, new layer for flow and head need to be added. 

    3. Go to Configuration Job Control Hydraulics. The Time Step for simulation as 1 s. Click OK

    4. Go to Configuration Job Control 2D Model Settings and for General, enter the 1D/2D Sync timestep, etc. as shown in the following figure. 

    5. Select Always use double-precision solver under General, as it is required when the rainfall on grids option is used. 

    6. For Model Output, set all output intervals to 60 seconds as shown below. 

    7. For Map Results Type, select the six elements as shown in the image below. 

    8. If you are using XPSWMM/XPStorm 2018.2.1 or later, go to the Advanced Settings tab and clear the check box for PRE 2012.

      PRE-2013 and earlier are no longer supported in XPSWMM/XPStorm 2018.2.1 and later.

    9. Click OK and exit from the dialog boxes.

  12. Finally, add some water level output points and lines at the locations shown below.

    Note that the water level lines are used for extracting the flow hydrographs and water level points for water level hydrographs from the 2D results.
    1. Select the Time Series Outputs in the Layers Control Panel.

    2. Click and highlight the plot output lines or points layer.  

    3. Select the Point tool  or the Polyline Line tool  to digitize the points or lines. 

    4. For Flow, add two Flow Lines by right-clicking Flow under Time Series Outputs, select Define Flow Line. The mouse pointer will change to the Polyline tool that allows you to draw water lines. 

    5. For Head/Velocity, add four points by right-clicking Head / Velocity under Time Series Outputs, select Define Head / Velocity Point. The mouse pointer will change to the Point tool and you can create points. Name the water lines and head/velocity points as shown below. 

  13. Save the file as Urban_Flooding_03.xp.

Part 3 - Analysis and Review Results.

  1. Click the Solve button to solve the model. It will take a while to complete the simulation. If you skipped 1D Drainage Network and Hydrology and 2D Model Setup sections, open the completed model Urban_Flooding_Completed.xp and solve the model.

  2. Flood Map:

    1. After the analysis, select the Max Water Depth layer under Reporting 2D Maps


    2. Right-click the Max Water Depth layer, select Properties and adjust the transparency. You can also select the Minimum and Maximum Water Depth or Elevation Maps.

    3. You will see that the flood depth varies from 0 – 5.5 m. The urban area is flooded and the flood depth at these areas is less compared to the open channel areas. In many areas of the open channels, the flood depth is around  5 m, which is due to the deep channels. The playground is fully submerged due to the overflow from the channel and is acting as a flood water storage area. Right-click the Water Depth and select the PropertiesRestrict the Display Range between 0 and 1 m. You will see that the flood depth at the urban area is from 0 – 1 m. If you further restrict the depth from 0 – 0.25 m, you will see that for most of the urban area, the flood depth is less than 25 cm. The reason behind this shallow urban flood depth is due to the 2D rainfall over the grids. In this way, you are able to simulate both the local urban flooding and major river flooding due to the huge flow from the upstream catchments. You may verify the local urban area flood depth by clearing the upstream inflow in the node 100. 

      Flood depth map and flow in the most d/s link due to the rainfall on the grids (no Q100 inflow from the most u/s node 100)

      Flood depth map and flow in the most d/s link due to the rainfall on the grids plus Q100 inflow from the u/s node 100 (local + general river flood)

    4. The maximum flow at the d/s most link due to rainfall on the urban area is 11.31 m3/s with a velocity of 0.9 9 m/s. This peak flow happens at 0.5 hrs.The peak flow at the d/s most link due to both the runoff from the urban area and u/s node inflow is 45.53 m3/s with velocity 1.67 m/s and happens at 1.5 hrs. This additional 1 hr is due to the lag time of hydrograph from u/s most node to d/s most node. Note that the length between these nodes is 1150 m.

    5. Zoom-in to the area shown below near the u/s culvert. You will see the flow depth is high through the roads compared to the other areas. Use the Section Profile tool to review the four sections below and you will see that the cross-sections of the roads are acting as open channels for conveying the flood flow,  which overtops the roadway shown in the first cross-section.

  3. Upstream Culvert:

    1. Zoom-in further to view the u/s most culvert clearly and select the 2D Vectors (Flows) under the Reporting layer. You may right-click this 2D Vectors layer and adjust the flow arrows, etc.

    2. You will see from the flow vectors that flow is getting stagnant near the u/s of the culvert. This is due to the limited conveyance of the culvert barrels and downstream condition together. The culvert is box type with 1.8 m x 1.8 m and 3 barrels. Right-click the plot output line Culvert_U/S_Flow and select the Graph option. You will see the flow hydrographs at the u/s and d/s of the culvert together. The peak flow at the u/s and d/s are 91 and 66 m3/s respectively and happens at 1 hr. Note that the remaining flow is conveyed through the culvert barrels to the connected drainage pipes. Click the Close button, select the culvert link and click the Review Results button. The peak flow through the culvert is 44.47 m3/s. The peak velocity of flow is 3.88 m/s, which might be a bit high for a concrete culvert to carry safely. You will see a sudden dip in the flow and velocity at 1.06 hrs and at the same time a raise in the d/s water level. This is due to the overtopping flow through the road embankment. Click the water level point and review Intersection_depth and  Culvert1_Road_Depth.

  4. Effect of buildings:
    You might have noticed that the water depth is shown at the building locations. Check the flow vectors and you will see flow is going into and through the buildings. This cannot be a true representation of reality as the buildings can block the flow up to certain depths. Zoom-in and get a cross-section for any building location and you will see that the buildings are not present in the DTM. 


    There are many techniques to overcome this drawback. A few popular techniques are the following:

    • Making the buildings’ polygon inactive: When you make the buildings’ areas inactive, the polygon boundary acts as a vertical glass wall so that flood water cannot enter the buildings. This may not be a good modeling approach for every application. The assumption of vertical water proof walls is not valid if the flow exceeds some depth. When the water depth exceeds the sill level of doors and windows, water can enter the buildings through these openings or the building has a basement or crawl space. Hence, this method may overestimate the water depth around the buildings. 
    • Adding fill areas to represent the buildings: Another technique is adding fill areas on the buildings’ locations. You can import polygons to the Fill Areas layer and specify the fill elevation. The fill elevation can be up to the sill of the openings and once the water level reaches above this level, it can enter the buildings. 

      This may be an appropriate approach as it represents the flow condition properly. However, estimation of the fill depths for buildings might not be easy as this varies for each building. 
    • Assigning a very high Manning’s roughness value for the buildings’ polygon: A very high roughness value for building polygons limits the flow entering the buildings. The very high roughness values reduces the velocity head locally and hence the water depth around the buildings increases. However, the proper estimation of Manning’s roughness value would not be easy. 
    • Assigning varying Manning’s roughness based on depth: Another technique could be varying Manning’s roughness depending upon the depth of flow. The roughness value can be very high up to the sill level of the opening and can be reduced after this depth. You can right-click each 2D Landuse layer and edit the depth dependent 'n' value by selecting the Variable button and then the Edit Curve button. As per the entry in the following dialog box, the n value will be 3 for depths <=0.3m and 0.05 for depths >=2.3 m. The n value for the depths between 0.3 m and 2.3 m will be linearly interpolated. 

      You can test each method and determine the most appropriate method for the project. The flow pattern for the model with very high n (3.0) for buildings is shown below. The flow entering the buildings is reduced considerably by increasing the n value for the buildings. Most of the flow is going around the buildings. 

      For the high ‘n’ value model (graphs on the left), the water surface has risen considerably. For plot output point 1, the water level increased from 49.03 – 49.40 (0.37 m), and for point 2, the water level increased from 48.55 – 48.88 (0.33 m). Note that the plot output point 1 is located just u/s of the building in the flow direction. This is the reason behind a high difference of 0.37 m in water surfaces. 

  5. Hazard classification: 

    1. In the Reporting Layer, right-click and select Hazard.

    2. Right-click again and restrict the range between 0 and 0.5. Note that this hazard map is obtained by multiplying the maximum depth and maximum velocity for each cell.

      You can see from the map that the areas along the open channels and some of the main roads are showing a hazard value of 0.5, probably these areas can be classified as high hazard areas. 

    3. For more detailed hazard maps, you can use the XP2D (Result Export) Utility, which can be found under the Tools menu. Browse to the XP2D Utility Interface and select the 2D Results to GIS tab. 

    4. Select the Urban_Flooding_Completed.xmdf file and input the Output Properties and Grid Size as shown in the following image. 


    5. Click OK once this information has been entered. This will generate a ESRI *.asc grid file of the maximum 2D depth result at the same 5 m grid size that was used in the simulation. Post-processing of the data by a third-party software, such as GIS or CAD, can allow custom manipulation and comparison of results if depth and velocity vector maps for several models are exported. 

  6. Mitigation option:

    The manhole/pit overflows are due to the less conveyance of the drainage pipes. The easiest way to tackle this issue is to increase the conveyance of the drainage pipes. However, this increased conveyance will create more flood in the d/s channel overbanks. 

    As a huge inflow is coming from the u/s during a 100 yr-30min design event, the designed drainage system is unable to carry the flow to downstream due to less conveyance. An upstream detention is the most obvious solution in this case. A model with detention pond at upstream area is completed. Open the model Urban_Flooding_Completed_Pond.xp

    The detention pond is made using the Fill Areas option under the Topography layer. The following table shows the storage characteristics of the pond:

    7 numbers of 2 m diameter concrete pipes are connected from the channel to the pond to divert the flow from the channel to the pond. Solve the model for 10 hrs and review results. Switch the water depth map and restrict the display from 5 cm to maximum depth. You will see that the flood depth at the urban areas is much reduced due to the u/s pond. 

    If you check the hydrographs u/s and d/s of the node where the diversion pipes is connected and flow from the node to the pond, you will see that huge flow is diverted to the pond. After 1.5 hrs, the pond discharges back to the channel and retains 3 m depth of water in the pond. Thus, the pond acts as an offline detention/retention pond.