Flood Risk Assessment using Grass GIS
Contents
Introduction
With the prevalence of climate change in society today many individuals are discovering the advantageous functionality of Geographic Information Systems (GIS) for modelling and predicting the ramifications of climate change to their localities. The climate crisis brings about many pressing issues to the world, but this tutorial will prioritize emulating rising water levels to demonstrate a very basic flood risk assessment using open source software and data. This tutorial will make use of GRASS GIS to demonstrate the recently updated user-friendly Graphical User Interface and will focus on conducting a basic flood risk analysis on one of Canada's most populated coastal cities, Vancouver BC. This tutorial uses open source data from USGS's Earth Explorer and the City of Vancouver's Open Data website.
Vancouver is one of Canada's largest coastal cities and experiences the ramifications of climate change much more severely than us at Carleton University in Ottawa. An article by CBC ([1]) provides some context to the tutorial with recent (as of 2022) flooding in the city to emphasize the importance as well as the potential that GIS holds in aiding communities at a national scale.
Software and Data
This tutorial uses the latest version of Grass GIS 8.3.0, which can be downloaded for Windows, MacOSX, and Linux from their website ([2]). After downloading, run the installer and install GRASS onto your computer. Ensure to download it to a secure directory with a known location so you can easily keep track of things. The installer will most likely prompt you to install the Microsoft Visual C++ Redistributable; allow this install as it is integral for the GRASS GIS runtime. This tutorial aims to focus on using the updated GUI but will brush on the command console and its ease of use in GRASS.
The data used for this lesson are derived from two main sources, the US Geological Survey Earth Explorer tool ([3]) and the City of Vancouver Open Data website ([4]); both are open data sources, although the USGS requires you to create an account to access their data.
First, let's begin by collecting the data needed from the City of Vancouver Open Data Website:
- 1. Open the link provided above
- 2. Select the Catalogue tab in the left of the home page
- 3. A catalogue browser will open, in the search bar enter "Local Area Boundary"
- 4. Select the file containing the cities 22 planning areas (this will serve as our city boundary)
- 5. Inspect the integrity of the data by reviewing the metadata, paying specific attention to the Data Accuracy, Last Processed Date and the Data Owner
- 6: Select the "Export" tab and select the hyperlink for the Shapefile download
- 7: Repeat this process for another Shapefile called "Public Streets"
- 8. Store the data in a folder you'll keep tabs on (we will export it to the GRASS database later)
Next, we will collect the data from the Earth Explorer website:
- 1. Open the link provided from above
- 2. Select the Data Sets tab at the top of the window
- 3. Expand the Digital Elevation menu, expand the SRTM submenu, select SRTM 1 Arc-Second Global
- 4. Return to the Search Criteria tab
- 5. Under the "Select a Geocoding Method" drop down tab select Address/Place and enter Vancouver
- 6. Select the coordinates for Vancouver BC and click the "Results" tab
- 7. Under results a DEM should appear, start by inspecting the metadata
- 8. First click "Show Footprint" to ensure the image covers the study area
- 9. Next click "Show metadata" and browse, paying close attention to acquisition date and Resolution
- 10. Finally click "Download Options" and select "TIFF" format; store the resulting TIFF file somewhere safe for now
Methods
Starting a GRASS session
- Now that GRASS is properly installed, and our data has been collected and inspected, we can continue with starting a GRASS session. A reminder that the software for this tutorial is 8.3.0; a benefit to open source software, like GRASS, isthat previous software releases are still available for public use if you find need for following an older tutorial.
- Let us being by creating a GRASS session:
- First, open Grass GIS by clicking on the desktop icon; if your installer did not create a desktop shortcut manually search for the GRASS GIS app in your operating system's search bar
- Next, you will see (any returning users will be shocked) that the GRASS GUI loads an automatic "demolocation"
- Notice:
- On the left hand side, under the pane titled "Data", GRASS GIS has loaded a "demolocation" as well as a "PERMANENT" mapset
- This is a new feature of GRASS GIS and provides a much more user friendly experience for learning the storage method used by GRASS
- This tutorial will briefly outline the basics behind the GRASS storage system while walking you through the simple GUI
The Data Panel
- Notice: On the left hand side of the GUI there is a data panel as mentioned above
- This panel allows the user to control a few factors:
- 1. The GRASS Database: This allows the user to add new/existing databases and remove them as well
- 2. The project's location: This feature allows the user to specify a location which is essentially a sub-directory in the database
- 3. Creating a Mapset: This allows the user to create a new map workspace much like the already created "PERMANENT" mapset
- The other two icons in the data panel will be made of later when importing our data.
The Layers Panel
- Notice: To the left is an image of the layers panel
- The layers panel includes a few more tools than the Data panel and may come across as intimidating to beginners but is quite simple for our application
- The layers panel allows users to view the loaded layers in the Map Display, as well as gives users the tools to add or create a user defined raster/vector layer or map
- There is an option to add a service layer (WMS, WMTS, NASA OnEarth) which are map layers online
- For the purpose of this tutorial we will focus on the layers that are currently displayed in our map display, and in this current instance that is the "country_boundaries" layer loaded in the mapset "PERMANENT" (represented by @PERMANENT)
The Map Display and Tools Panel
- Notice: Above is the "Map Viewer" and "Tools" panel
- Finally the map viewer and tools panel are the last two components of the GUI to address with the remainder of the applications found at the top of the GUI
- The map viewer is a basic view of the loaded layers in the mapset and multiple viewers can be opened at once under File and Map display
- The tools panel is home to all of the potential GIS operational tools
- Since this software is open source all of these tools are available to all users, and are also accessible in a development environment without even loading the GUI!
Importing Vector Data into GRASS
The GRASS session is now setup, and we can start importing the data we collected from earlier, starting with the boundary file
- 1. Under the File tab from the top of the window, select Import Vector Data and choose the Import of common vector formats [v.in.ogr]
- 2. Browse to the location of the Daytona Beach boundary file
- 3. Under the Optional tab, select the Override projection check and click on Run
- 4. At the top toolbar select the Add vector map layer button
- 5. Select the boundary file under the drop-down menu and click OK
- 6. Right-click on the boundary file in the Layer Manager and select Set computational region from selected map(s), this creates an area of interest (AOI) and sets the computational extent around the city
Next, we will import the major roads file using the same process as above, without setting the computational region (Step 6)
Importing Raster Data into GRASS
Now we can import the SRTM DEM we downloaded earlier from the USGS:
- 1. Under the File tab, select Import raster data and choose Import of common raster formats [r.in.gdal]
- 2. Browse to the location of the SRTM DEM and input a name for the output raster map
- 3. Select Override projection check under the Projection tab and click on Run
Changing Symbology
Now that we have the data displayed, we can adjust the symbology to better suit our applications:
- 1. Right-click on the SRTM DEM layer and select Set color table
- 2. Ensure that the correct raster file is selected
- 3. Under the Define tab, click on the drop-down menu under Name of color table and select the elevation color table, and click on Run
- 4. Right-click on the boundary file and select Properties
- 5. Under the Colors tab, select a color for the boundary itself and check Transparent for the Area fill color, and click on OK
Creating flooding scenarios
We have our map ready to run a basic flood risk assessment using the raster calculator. The lowest points of elevation in Daytona Beach is approximately 4m, but we will simulate an initial rise of 2m to conservatively determine the effects of flooding.
- 1. Under the Raster tab, select Raster map calculator [r.mapcalc]
- 2. Input this expression to simulate water levels of 6m: DaytonaFLOOD2m = ( ( DaytonaSRTM@PERMANENT <= 6 ) == 1 ) & ( ( DaytonaSRTM@PERMANENT >= 6 ) == 0 ) *supplement DaytonaSRTM with whatever you named the SRTM DEM file*
- 3. Click on Run, make sure the Add created raster map into layer tree option is selected before doing so
The resultant raster map shows which areas are inundated (yellow) and the non-inundated areas (purple) at 2m sea level rise. Next we will create another raster map showing an example of 5m of rising sea level.
- 1. Under the Raster tab, select Raster map calculator [r.mapcalc]
- 2. Input this expression to simulate water levels of 6m: DaytonaFLOOD2m = ( ( DaytonaSRTM@PERMANENT <= 9 ) == 1 ) & ( ( DaytonaSRTM@PERMANENT >= 9 ) == 0 ) *supplement DaytonaSRTM with whatever you named the SRTM DEM file*
- 3. Click on Run, make sure the Add created raster map into layer tree option is selected before doing so
Results
By toggling between the original SRTM DEM, 2m Flooding, and 5m Flooding layers, we can ascertain the levels of flooding we could see in areas in and around Daytona Beach.