Difference between revisions of "Hydrological Analysis Using Whitebox Geospatial Analysis Tools"

From CUOSGwiki
Jump to navigationJump to search
 
(93 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Purpose==
 
==Purpose==
  +
The purpose of this tutorial is to guide the user through an exploration of hydrology tools through the process of analyzing the hydrology of an area.
The purpose of this tutorial is to guide the [http://www.qgis.org/en/site/ Quantum GIS (QGIS)] user through the steps necessary to create a slope analysis model workflow using the [http://docs.qgis.org/2.0/en/docs/user_manual/processing/toolbox.html Processing Toolbox]. The user will also learn the basics surrounding the creation of slope, hillshade and aspect maps. The user will also then learn how to export the model as a [http://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] script as well as preform geoprocessing tasks using the QGIS [http://docs.qgis.org/2.0/en/docs/user_manual/working_with_raster/raster_calculator.html Raster Calculator]. This tutorial is designed for a beginner GIS user who has experience with previous GIS software packages however no experience with QGIS.
 
  +
This tutorial uses the opensource software Whitebox Geospatial Analyst Tools and explores some of the most useful of the hydrology tools included in it.
  +
The intent of this tutorial is for the user to understand the process underwent, an to be able to build off of it for their specific hydrology needs.
  +
  +
This tutorial assumes that the user has some experience with GIS software.
   
 
==Introduction==
 
==Introduction==
  +
[[File:WhiteboxVersion.png]]
QGIS is a free open source geographical information system application that has geographical viewing, editing and analyzing capabilities. Within QGIS are tools called [https://plugins.qgis.org/ "Plug-ins"]. Plug-ins are essentially developed geoprocessing features made by the QGIS developers as well as independent users who would like to expand and contribute to the functionality of the software. One particular plug-in extension found in QGIS is the Processing toolbox extension. The Processing toolbox extension is similar to the features that are found in ArcMap’s ModelBuilder. Processing is an efficient application that is capable of creating, editing and managing geographical models. The user is able to connect together workflow diagrams that involve a series of geoprocessing algorithms. For the purposes of this tutorial, a workflow will be created using geographical data of [http://en.wikipedia.org/wiki/Carp,_Ontario Carp, Ontario] in order to create a [http://en.wikipedia.org/wiki/Digital_elevation_model digital elevation model (DEM)]. This will then be used to create the slope, hillshade and aspect maps.
 
   
  +
This tutorial uses Whitebox 3.4.0, an open source GIS software that was developed within the Center for Hydrogeomatics in Guelph University. As a result this software package has a heavy focus on hydrological analysis. For this reason Whitebox was chosen for this tutorial on hydrological analysis.
This tutorial was also done as a partial requirement of Carleton University's Advanced Topics in Geographic Information Systems 4008 course.
 
  +
The area of focus in this tutorial is Calabogie Ontario. This location was chosen because the Calabogie peak adds some relief to the area, and the author knew it well enough to tell if there were any errors that occurred during the analysis process.
   
  +
This tutorial uses a single input, a Digital Elevation model, and produces a multitude of outputs from it, adding information that could be used for future analysis. The process that will be undergone in this tutorial is displayed in the image below. To understand the context of each tool used in this tutorial please refer back to this image as needed.
[[File:QGIS2.18.13.png|center]]
 
  +
  +
[[File:Overview.PNG|700px]]
  +
  +
==Data Acquisition==
  +
In this tutorial the only necessary layer is a Digital Elevation Model (DEM) file of your area of interest. In this tutorial we are focusing on Calabogie, ON. It is recommended that you use tthis same dataset for following along.
  +
  +
It can be acquired and downloaded [https://www.dropbox.com/s/gd19qoa0bgqmue3/DEM.tif?dl=0 here].
   
==Data==
 
In this tutorial the only necessary layer is a Digital Elevation Model (DEM) file of your area of interest. In this tutorial we are focusing on Calabogie, ON. It is recommended that you use tthis same dataset for following along. It can be acquired and downloaded [https://www.dropbox.com/s/gd19qoa0bgqmue3/DEM.tif?dl=0 here].
 
 
A sample of this data is shown bellow.
 
A sample of this data is shown bellow.
   
[[File:DataExa.PNG]]
+
[[File:DataExa.PNG|700px]]
   
 
For the event that the dropbox link has become inactive the process of obtaining this data is described below to make this tutorial relevant for longer.
 
For the event that the dropbox link has become inactive the process of obtaining this data is described below to make this tutorial relevant for longer.
  +
 
Access the Government of Canada Geospatial Data Extraction Application [http://maps.canada.ca/czs/index-en.html here].
 
Access the Government of Canada Geospatial Data Extraction Application [http://maps.canada.ca/czs/index-en.html here].
   
Line 30: Line 41:
   
 
Under “Select Data to be extracted” Select “Elevation – Digital elevation model”.
 
Under “Select Data to be extracted” Select “Elevation – Digital elevation model”.
  +
 
Under “Select options and submit job” fill all of the required boxes so that it matches the figure below. Make sure to enter the email address that you would like to have the file sent to in the “Email Address” field.
 
Under “Select options and submit job” fill all of the required boxes so that it matches the figure below. Make sure to enter the email address that you would like to have the file sent to in the “Email Address” field.
   
Line 36: Line 48:
 
An email will be sent to the entered email address shortly which contains a URL for the direct download of the data.
 
An email will be sent to the entered email address shortly which contains a URL for the direct download of the data.
   
If neither of these options are available, any DEM in a tiff format can be used.
+
If neither of these options are available, any DEM raster can be used.
   
==Acquiring QGIS 2.18.13==
+
==Acquiring and Installing Whitebox 3.4.0==
QGIS version: 2.18.13 (The current long-term release version of QGIS as of October20th 2017 is QGIS 2.18.13 and this was the version used for this tutorial. A list of the download links for all of the versions of QGIS can be found [http://www.qgis.org/en/site/forusers/download.html here].
+
Whitebox version: 3.4.0 (The current version of Whitebox as of 2017 is 3.4.0 and this was the version used for this tutorial. A list of the download links for Windows, Mac and Linux platforms can be found [http://www.uoguelph.ca/~hydrogeo/Whitebox/download.shtml here].)
   
  +
After the correct .zip file has been downloaded and extracted to your directory of choice the installation process is complete.
==Getting Started==
 
   
  +
It is important that your machine has version 8 or higher of the Java SE Runtime Environment before trying to run Whitebox. This can be acquired [http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html here].
===Launching QGIS 2.18.13===
 
When the installation process has finished, an icon should appear on your desktop similar to the one shown below.
 
   
  +
==Getting Started==
[[File:DeskIcon.png]]
 
   
  +
===Launching Whitebox 3.4.0===
Double-click on that icon and QGIS 2.18.13 will display on your screen.
 
  +
After the file has been extracted the contents should look similar to the image below.
   
  +
[[File:FileContents.PNG]]
===Setting Project Coordinate Reference System (CRS)===
 
Following the launch of QGIS 2.18.13, navigate to the top menu bar, select '''Project''', '''Project Properties''', then '''CRS''' on the left column of the popup window.
 
   
  +
Double click on the "WhiteboxGIS.jar" file in order to launch the program.
[[File:ProjectionSelection.png]]
 
   
  +
'''Note:''' If you are running Windows 10 on your computer you may need to double click on the "Whitebox.bat" file to launch it instead.
Make sure that '''Enable 'on the fly' CRS transformation''' is checked. Once enabled, filter search '''NAD83 (1)''' and select '''NAD83''' under the '''Geographic Coordinate Systems''' '''(2)'''. When finished select '''OK (3)'''.
 
   
  +
=== Setting up a working Directory ===
[[File:ProjectionProperties.png]]
 
  +
For this Tutorial I created a working directory before starting any analysis processes. This step is not necessary, though it will aid in the organization of this project.
  +
Create a folder called "WhiteboxTutorial", or something similar.
  +
Within this folder create one folder called "Data", and another called "DataProducts".
   
  +
The final product will look like the image below.
===Adding Point Data===
 
   
  +
[[File:WorkingDirectory.PNG]]
Adding the Carp elevation data or your desired .csv data requires navigating to the menu bar, select '''Layer''' and '''Add Layer''', '''Add Delimited Text Layer...'''.
 
   
  +
Place the DEM.tif data file into the "Data" folder.
[[File:AddCSV.png]]
 
  +
All files created from the DEM file will be placed in the "DataProducts" folder. i.e. all files output by Whitebox tools while going through this tutorial.
  +
Also, project files will be saved directly within the "WhiteboxTutorial" folder itself.
   
  +
===Adding Elevation Data and Saving the Map Project===
In the popup window browse for the .csv file that holds the elevation point data. Select '''CSV (comma separated values)''' for the file type. The rest of the options should default to the correct settings, but if the popup does not match the figure below make sure that you correct these differences.
 
   
  +
To add the elevation data to the project select the icon in the top left of the Whitebox window, highlighted in red in the image below. (or use the hotkey Ctrl + L).
[[File:CSVSettings.png]]
 
   
  +
[[File:AddData.png]]
Next you will be asked to choose the projection that the data has. As before filter search '''NAD83 (1)''' and select '''NAD83''' under the '''Geographic Coordinate Systems (2)'''. When finished select '''OK (3)'''.
 
   
  +
A popup window will then appear.
[[File:ProjectionProperties.png]]
 
  +
In this window navigate to the location of the Calabogie DEM data file and select open.
   
  +
[[File:AddDEM.PNG]]
You should now be able to see your point data in the layers panel but your map view will not be focused on this data. Right click on the point data entry in the layers panel and select '''Zoom to layer'''.
 
   
  +
You will likely recive a popup message like the one below.
[[File:ZoomTo.png]]
 
  +
Select okay to add your data to the map.
   
  +
[[File:ErrorMsg.PNG]]
===Converting Point Data to a Shapefile===
 
   
Next we will save this CSV file as a Shapfile to allow for more analysis to be done with it. Right click on the point data entry in the layers panel once again and select '''Save As…'''
 
   
  +
To save your project select "Save Map" under the "Cartography" tab. (or use the hotkey Ctrl + S).
[[File:SaveAs.png]]
 
   
  +
[[File:SaveMap.png]]
In the popup that appears set the format to '''ESRI Shapefile''', set the file name and directory and ensure that the checkbox beside '''Add saved file to map''' is filled. Select '''OK''' once this is done.
 
   
  +
In the pop up window that appears navigate to the location that you would like to save the project and select "Save".
[[File:ToShapefile.png]]
 
  +
  +
[[File:SaveLoc.PNG]]
   
 
You should now be ready for analysis.
 
You should now be ready for analysis.
   
==Hydrological Tools==
+
==Hydrological Analysis==
  +
   
 
===DEM Pre-Processing===
 
===DEM Pre-Processing===
   
  +
Pre-processing is an important first step in any hydrological analysis as this process identifies and corrects all features within the DEM that may disrupt the flow analysis. Since all products are derived from the DEM it is important to make these corrections at the begging of the process to prevent these errors from carrying through into all of the hydrological outputs.
===Flow Pointers===
 
  +
All of the DEM Pre-Processing tools available in Whitebox can be found in the tools menu under the following directory:
  +
Tools> Hydrological Analysis> DEM Pre-Processing
  +
  +
The first tool used in this tutorial is "Find No-Flow Cells", and can be found in the highlighted location in the image below.
  +
This was used to identiy if there were any problem areas, and how extensive they were.
  +
  +
[[File:FindNoFlow.PNG]]
  +
  +
After double clicking the tool name in the tools list the dialogue box in the image bellow will appear.
  +
Set the Calabogie area DEM as the "Input DEM Raster File".
  +
Make sure that the "Output Raster File" will be saved within the DataProducts folder in the directory you set up and give it a name similar to "FindNoFlow.dep".
  +
After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:FindNoFlowMsg.PNG]]
  +
  +
After the tool runs it will produce a file that looks like the one below. The black areas in this image are all of the problem areas identified that could cause problems for flow analysis. These areas tend to correspond with errors in the DEM if they are small, or basins in the landscape if they are large. The high amount of no flow areas identified using this tool means that a pre-processing correction tool will be necessary.
  +
  +
[[File:FindNoFlowOtp.PNG|800px]]
  +
  +
In this tutorial the "Fill Depressions" tool is used to correct the no flow areas. This was chosen because it is much more computationaly efficient than any of the breach tools, finishing much quicker.
  +
  +
This tool is found in the location below.
  +
  +
[[File:Fill.PNG]]
  +
  +
The dialog box that appears for this tool is shown below. The input file should be set to the original Calabogie DEM, and the output should be set to the DataProducts folder and named something similar to "FillDepressions.dep".
  +
The "flat increment value" is the step value added to cells within a flat area in order to ensure that they have a slight slope instead of remaining flat. This was kept at the default value of "0.001". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:FillDepressions.PNG]]
  +
  +
The output of this tool is shown below. It does not appear very different to the original DEM, but will closer inspection differences within the areas identified in the Find No-Flow Cells output can be seen.
  +
  +
[[File:FillDepressionsOtp.PNG|800px]]
  +
  +
===Flow Pointer===
  +
  +
A flow pointer tool in Whitebox is a tool that identifies which area surrounding a cell is the lowest. The value of this cell is then assigned corresponding to the relative direction of this area. This information is not too useful on its own, but it is used as an input to many other hydrology tools because it denotes the direction that water will flow from each cell.
  +
  +
Whitebox has many different flow pointer tools that each use a different method to produce their results.
  +
In this tutorial "D8 Flow Pointer" was used because many of the tools in the "Watershed Tools" toolset will only work with the output from the D8 Flow Pointer as an input.
  +
This tool is found in the location shown below.
  +
  +
[[File:FlowPointer.PNG]]
  +
  +
The dialog box for this too is shown below. The input DEM raster file should be set to the output from the Fill Depressions tool (FillDepressions.dep), and the output should be set to the DataProducts folder and named something similar to "FlowPointer.dep". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:FlowPointerMsg.PNG|800px]]
  +
  +
The output from this tool is displayed below. This image contained 8 colours corresponding to the 8 directions of flow. This image appears chaotic, but will be used in other tools to create more informative data products.
  +
  +
[[File:FlowPointerOtp.PNG|800px]]
   
 
===Flow Accumulation===
 
===Flow Accumulation===
   
  +
Flow Accumulation tools analyze the magnitude of cells that pour into or through an area.
===Watershed Tools===
 
  +
This is useful on its own, allowing us to determine the relative flow through areas by comparing values of the output, and is also used as an input for many other analyses.
   
  +
In this tutorial the "D8 and Rho8 Flow Accumulation" tool was used, as this was the one that corresponded to the D8 Flow Pointer output that was created with the previous tool.
  +
This tool is located in the location displayed below.
   
  +
[[File:FlowAccumulation.PNG]]
==Conclusion==
 
In conclusion, this tutorial was aimed to give the user the skills to create workflows using the QGIS Processing Toolbox while also creating a workshop for slope and terrain analysis. This tutorial also gives the user the very basic introduction into the GIS world of Python scripting as well. The Python scripts that were exported can be slightly edited to preform the same geoprocessing tasks but with different parameters if necessary.
 
   
  +
The dialog box for this tool is displayed below. The input D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep), and the output should be set to the DataProducts folder and named something similar to "FlowAccumulation.dep". In the example the "Output Type" was set to "number of upslope grid cells" so that a greater cell value in the output would correspond to a greater number of cells flowing through that cell. The "Log-transformed flow accumulation values?" box was left unchecked in this example, though checking this would help normalize the data for better display. After these inputs have been set click "Run" in the bottom left of the popup window.
==Resource Links==
 
[http://docs.qgis.org/2.18/en/docs/index.html QGIS version 2.18 Documentation]
 
   
  +
[[File:FlowAccumulationMsg.PNG|800px]]
[http://www.gdal.org/ GDAL - Geospatial Data Abstraction Library]
 
   
  +
The output of this tool is displayed below. The brighter areas correspond to areas of higher accumulated flow. These areas of high flow correspond to the areas where more water gathers and flows together. A beter picture of the data can be gathered by zooming into the output in Whitebox.
[http://support.esri.com/en/knowledgebase/GISDictionary/term/aspect Aspect - GIS Dictionary]
 
   
  +
[[File:FlowAccumulationOtp.PNG|800px]]
[http://support.esri.com/en/knowledgebase/GISDictionary/term/hillshading Hillshade - GIS Dictionary]
 
   
  +
===Isobasin===
[http://support.esri.com/en/knowledgebase/GISDictionary/term/interpolation Interpolation - GIS Dictionary]
 
   
  +
The isobasin tool divides a study area into equally sized drainage areas (iso-basins) of a specified size.
[http://support.esri.com/en/knowledgebase/GISDictionary/term/slope Slope - GIS Dictionary]
 
   
  +
The location of this tool is displayed below.
[http://learnpythonthehardway.org/ Python - Learn Python the Hard Way]
 
   
  +
[[File:Isobasin.PNG]]
[http://notepad-plus-plus.org/ Notepad++ Homepage]
 
   
  +
The dialog box for this tool is displayed below. The input D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep), and the input contributing area file sould be set to the output from the D8 and Rho8 Flow Accumulation tool (FlowAccumulation.dep). The output should be set to the DataProducts folder and named something similar to "Isobasin.dep".
==References==
 
  +
For this example the "Target Basin Size" was set to 500,000 cells. This value was found using trial an error to find an output that looked appropriate. After these inputs have been set click "Run" in the bottom left of the popup window.
Crosetto, M., Tarantola, S., & Saltelli, A. (2000). Sensitivity and uncertainty analysis in spatial modelling based on GIS. ''Agriculture, Ecosystems and Environment'', 81(1), 71-79. doi:10.1016/S0167-8809(00)00169-9
 
  +
  +
[[File:IsobasinMsg.PNG|800px]]
  +
  +
The output from this look is displayed below. It can be seen that the area has been broken down into 11 different basins of approximately equal size. It also appears that the basins do not fill the entire study area. This is likely because no more basins of a size of 500,000 cells could be fit into these areas. If the target basin size was set to a lower number these basins would conform to the study area more completely.
  +
  +
[[File:IsobasinOtp.PNG|800px]]
  +
  +
===Extract Streams===
  +
  +
Stream networks can be useful as an input for other tools. Also, on their own they allow knowledge of areas of high water and nutrient flow, as well as connecting areas between water habitats.
  +
  +
The "Extract Streams" tool was used for this purpose. This tool extracts all values from a flow accumulation output that are greater than the specified value. This tool is not located within the Hydrology Tools toolset, and is part of the "Stream Network Analysis" toolset instead.
  +
The location of this tool is displayed below.
  +
  +
[[File:ExtractStreams.PNG]]
  +
  +
The dialog box for this tool is displayed below. The input flow-accumulation raster file should be set to the output from the D8 and Rho8 Flow Accumulation (D8 and Rho8 Flow Accumulation), and the output should be set to the DataProducts folder and named something similar to "ExtractStreams.dep". The "Channelization Threshold" is the cutoff value that will be used to determine which cells are a stream and which cells aren't. Trial and error was used to determine a value that produced an appropriate stream network. A value of 50,000 was settled on. The "Background Value" was set to "NoData" so that all of the cells that were not streams would be transparent. After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:ExtractStreamsMsg.PNG|800px]]
  +
  +
The output of the tool is displayed below. This output looks patchy at the full extent, but by zooming into it within Whitebox you can confirm that a network of continuous lines has been produced.
  +
  +
[[File:ExtractStreamsOtp.PNG|800px]]
  +
  +
===Sub-basins===
  +
  +
The sub-basin tool breaks the down the study area into a number of basins, with one basin for each segment of a stream network for the area. As a result each of these basins represent the catchment area for each segment of the river network.
  +
  +
The location of this tool is displayed below.
  +
  +
[[File:Subbasins.PNG]]
  +
  +
The dialog box for this tool is displayed below. The input streams raster file should be set to the output from the extract streams tool (ExtractStreams.dep), and the input D8 flow pointer raster should be set to the output from the D8 flow pointer tool (FlowPointer.dep). The output should be set to the DataProducts folder and named something similar to "Subbasins.dep". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:SubbasinsMsg.PNG|800px]]
  +
  +
The output from this tool is displayed below. This image shows a much greater number of basins than any of the outputs from other tools in this tutorial, likely due to the complexity of the stream network fed into the tool. It would be expected that if the channelization threshold used for the extract streams tool was higher, there would be less sub-basins, and if it was lower there would be more.
  +
  +
[[File:SubbasinsOtp.PNG|800px]]
  +
  +
===Watershed Analysis===
  +
In order to run the Watershed tool this first step will be to create pour points. Once this is done The watershed analysis can be done.
  +
====Pour Points====
  +
Pour points are used in watershed analysis to define each of the watersheds that will be output. Simply put, a watershed is the entire area that flows into a pour point. As a result the placement of these pour points greatly effects the output of the watershed analysis. Pour points are usually located in areas of high accumulated flow, so are usually located on points of a stream network.
  +
  +
There is no way to create a pour point file in Whitebox automaticaly, so this must be done manualy.
  +
The first step in making a pour point file is to make a blank file. This is achieved using the "Create Blank Outlet Raster" tool, which creates a file that is identical to the input file, except that every cell contains "NoData" values.
  +
  +
The location of this tool is displayed in the following image.
  +
  +
[[File:BlankOutletRaster.PNG]]
  +
  +
The dialog box of this tool is displayed below. The input raster file should be set to the original Calabogie DEM file and the output should be set to the DataProducts folder and named something similar to "OutletRaster.dep". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:BlankOutletRasterMsg.PNG|800px]]
  +
  +
The output of this tool will be a blank raster file.
  +
  +
Pour points must now be identified and added. Before this can be done, the layers in the data tab have to be set up. I made sure that only the extract streams output and the create blank outlet raster output were visible, and that only the create blank outlet raster output was highlighted in the layer list.
  +
  +
Next the Modify Pixel Values tool must be used. The location of this tool is displayed below.
  +
  +
[[File:ModifyPixelTool.png]]
  +
  +
After clicking this button your cursor will become a cross-hair when mousing over your data frame. The center of this cross-hair is the location of the pixel that will be altered using this tool.
  +
  +
Click on a location along the stream network, such as the location displayed below.
  +
  +
[[File:ModifyPixelToolUse.png|800px]]
  +
  +
When you click a small window like the one below will appear. This window tells you the co-ordinates of the pixel you are changing, and the current value of the pixel. The value should currently be NoData.
  +
  +
Change this value from NoData to 1.
  +
  +
[[File:ModifyPixelToolMsg.png]]
  +
  +
Repeat this process until you are happy with the placement of your pour points, making sure that the value of each pour point is unique.
  +
For the example in this tutorial 10 pour points were spread evenly along the stream network and were given sequential values from 1 to 10.
  +
  +
  +
It is important that the placement of these pour points is on the stream network, so the Jenson Snap Pour Points tool will now be used to make sure that this is true.
  +
  +
The location of this tool is displayed below.
  +
  +
[[File:SnapPourPoints.PNG]]
  +
  +
The dialog box for this tool is displayed below. The input outlets file should be set to the output from the create blank outlet raster tool that you have just modified (OutletRaster.dep). The input streams raster should be set to the output from the extract streams tool (ExtractStreams.dep). The output should be set to the DataProducts folder and named something similar to "PourPoints.dep". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:SnapPourPointsMsg.PNG|800px]]
  +
  +
====Watershed====
  +
  +
Now that the pour point raster has been created and snapped to the stream network the watershed analysis can be undergone. The location of this tool is displayed below.
  +
  +
[[File:Watershed.PNG]]
  +
  +
The dialog box for this tool is displayed below. The D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep). The pour point file should be set to the output from the Jenson snap pour points tool (PourPoints.dep). The output should be set to the DataProducts folder and named something similar to "Watershed.dep". After these inputs have been set click "Run" in the bottom left of the popup window.
  +
  +
[[File:WatershedMsg.PNG|800px]]
  +
  +
The output of this tool is displayed below. This shows 10 watershed ares, corresponding to the locations that the pour points were located. Each of these watersheds also conserve the value that its pour point had, meaning that any hierarchy or numbering system will be kept.
  +
  +
The number and location of your watershed areas will differ as a result of the different pour points used.
  +
  +
[[File:WatershedOtp.PNG|800px]]
  +
  +
==Conclusion==
   
  +
This tutorial aimed to give the user in introduction to hydrological analysis using Whitebox GAT 3.4.0. This was done by taking the user through an organized process that linked many of the hydrology tools together and explained why they were used and how the parameters were decided for each one.
Hutchinson, M.F., 1998. Interpolation of Rainfall Data with Thin Plate Smoothing Splines – Part II: Analysis of Topographic Dependence. ''Journal of Geographic Information and Decision Analysis'', vol.2, no. 2, pp. 152-167, 1998.
 
   
  +
The user should now have a good basis of knowledge that will help them with future hydrological analysis in Whitebox Geospatial Analysis Tools.
R.E. Crochiere and L.R. Rabiner. (1983). Multirate Digital Signal Processing. Englewood Cliffs, NJ: Prentice–Hall.
 

Latest revision as of 16:06, 3 January 2018

Purpose

The purpose of this tutorial is to guide the user through an exploration of hydrology tools through the process of analyzing the hydrology of an area. This tutorial uses the opensource software Whitebox Geospatial Analyst Tools and explores some of the most useful of the hydrology tools included in it. The intent of this tutorial is for the user to understand the process underwent, an to be able to build off of it for their specific hydrology needs.

This tutorial assumes that the user has some experience with GIS software.

Introduction

WhiteboxVersion.png

This tutorial uses Whitebox 3.4.0, an open source GIS software that was developed within the Center for Hydrogeomatics in Guelph University. As a result this software package has a heavy focus on hydrological analysis. For this reason Whitebox was chosen for this tutorial on hydrological analysis. The area of focus in this tutorial is Calabogie Ontario. This location was chosen because the Calabogie peak adds some relief to the area, and the author knew it well enough to tell if there were any errors that occurred during the analysis process.

This tutorial uses a single input, a Digital Elevation model, and produces a multitude of outputs from it, adding information that could be used for future analysis. The process that will be undergone in this tutorial is displayed in the image below. To understand the context of each tool used in this tutorial please refer back to this image as needed.

Overview.PNG

Data Acquisition

In this tutorial the only necessary layer is a Digital Elevation Model (DEM) file of your area of interest. In this tutorial we are focusing on Calabogie, ON. It is recommended that you use tthis same dataset for following along.

It can be acquired and downloaded here.

A sample of this data is shown bellow.

DataExa.PNG

For the event that the dropbox link has become inactive the process of obtaining this data is described below to make this tutorial relevant for longer.

Access the Government of Canada Geospatial Data Extraction Application here.

In the “Select Clipping Area” bar enter change the selection to "Predefined Clipping Area" and then select "Drainage areas" from the drop down list that appears.

SelectClipArea.png

This produces a long list of sequential drainage area names. Search through the names until you find "02KE000" and select it. I found this on the 17th page of drainage area names.

The map extent on the right side of the web page should now match the image below.

MapExtent.PNG


Under “Select Data to be extracted” Select “Elevation – Digital elevation model”.

Under “Select options and submit job” fill all of the required boxes so that it matches the figure below. Make sure to enter the email address that you would like to have the file sent to in the “Email Address” field.

SelectOptions.PNG

An email will be sent to the entered email address shortly which contains a URL for the direct download of the data.

If neither of these options are available, any DEM raster can be used.

Acquiring and Installing Whitebox 3.4.0

Whitebox version: 3.4.0 (The current version of Whitebox as of 2017 is 3.4.0 and this was the version used for this tutorial. A list of the download links for Windows, Mac and Linux platforms can be found here.)

After the correct .zip file has been downloaded and extracted to your directory of choice the installation process is complete.

It is important that your machine has version 8 or higher of the Java SE Runtime Environment before trying to run Whitebox. This can be acquired here.

Getting Started

Launching Whitebox 3.4.0

After the file has been extracted the contents should look similar to the image below.

FileContents.PNG

Double click on the "WhiteboxGIS.jar" file in order to launch the program.

Note: If you are running Windows 10 on your computer you may need to double click on the "Whitebox.bat" file to launch it instead.

Setting up a working Directory

For this Tutorial I created a working directory before starting any analysis processes. This step is not necessary, though it will aid in the organization of this project. Create a folder called "WhiteboxTutorial", or something similar. Within this folder create one folder called "Data", and another called "DataProducts".

The final product will look like the image below.

WorkingDirectory.PNG

Place the DEM.tif data file into the "Data" folder. All files created from the DEM file will be placed in the "DataProducts" folder. i.e. all files output by Whitebox tools while going through this tutorial. Also, project files will be saved directly within the "WhiteboxTutorial" folder itself.

Adding Elevation Data and Saving the Map Project

To add the elevation data to the project select the icon in the top left of the Whitebox window, highlighted in red in the image below. (or use the hotkey Ctrl + L).

AddData.png

A popup window will then appear. In this window navigate to the location of the Calabogie DEM data file and select open.

AddDEM.PNG

You will likely recive a popup message like the one below. Select okay to add your data to the map.

ErrorMsg.PNG


To save your project select "Save Map" under the "Cartography" tab. (or use the hotkey Ctrl + S).

SaveMap.png

In the pop up window that appears navigate to the location that you would like to save the project and select "Save".

SaveLoc.PNG

You should now be ready for analysis.

Hydrological Analysis

DEM Pre-Processing

Pre-processing is an important first step in any hydrological analysis as this process identifies and corrects all features within the DEM that may disrupt the flow analysis. Since all products are derived from the DEM it is important to make these corrections at the begging of the process to prevent these errors from carrying through into all of the hydrological outputs. All of the DEM Pre-Processing tools available in Whitebox can be found in the tools menu under the following directory: Tools> Hydrological Analysis> DEM Pre-Processing

The first tool used in this tutorial is "Find No-Flow Cells", and can be found in the highlighted location in the image below. This was used to identiy if there were any problem areas, and how extensive they were.

FindNoFlow.PNG

After double clicking the tool name in the tools list the dialogue box in the image bellow will appear. Set the Calabogie area DEM as the "Input DEM Raster File". Make sure that the "Output Raster File" will be saved within the DataProducts folder in the directory you set up and give it a name similar to "FindNoFlow.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

FindNoFlowMsg.PNG

After the tool runs it will produce a file that looks like the one below. The black areas in this image are all of the problem areas identified that could cause problems for flow analysis. These areas tend to correspond with errors in the DEM if they are small, or basins in the landscape if they are large. The high amount of no flow areas identified using this tool means that a pre-processing correction tool will be necessary.

FindNoFlowOtp.PNG

In this tutorial the "Fill Depressions" tool is used to correct the no flow areas. This was chosen because it is much more computationaly efficient than any of the breach tools, finishing much quicker.

This tool is found in the location below.

Fill.PNG

The dialog box that appears for this tool is shown below. The input file should be set to the original Calabogie DEM, and the output should be set to the DataProducts folder and named something similar to "FillDepressions.dep". The "flat increment value" is the step value added to cells within a flat area in order to ensure that they have a slight slope instead of remaining flat. This was kept at the default value of "0.001". After these inputs have been set click "Run" in the bottom left of the popup window.

FillDepressions.PNG

The output of this tool is shown below. It does not appear very different to the original DEM, but will closer inspection differences within the areas identified in the Find No-Flow Cells output can be seen.

FillDepressionsOtp.PNG

Flow Pointer

A flow pointer tool in Whitebox is a tool that identifies which area surrounding a cell is the lowest. The value of this cell is then assigned corresponding to the relative direction of this area. This information is not too useful on its own, but it is used as an input to many other hydrology tools because it denotes the direction that water will flow from each cell.

Whitebox has many different flow pointer tools that each use a different method to produce their results. In this tutorial "D8 Flow Pointer" was used because many of the tools in the "Watershed Tools" toolset will only work with the output from the D8 Flow Pointer as an input. This tool is found in the location shown below.

FlowPointer.PNG

The dialog box for this too is shown below. The input DEM raster file should be set to the output from the Fill Depressions tool (FillDepressions.dep), and the output should be set to the DataProducts folder and named something similar to "FlowPointer.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

FlowPointerMsg.PNG

The output from this tool is displayed below. This image contained 8 colours corresponding to the 8 directions of flow. This image appears chaotic, but will be used in other tools to create more informative data products.

FlowPointerOtp.PNG

Flow Accumulation

Flow Accumulation tools analyze the magnitude of cells that pour into or through an area. This is useful on its own, allowing us to determine the relative flow through areas by comparing values of the output, and is also used as an input for many other analyses.

In this tutorial the "D8 and Rho8 Flow Accumulation" tool was used, as this was the one that corresponded to the D8 Flow Pointer output that was created with the previous tool. This tool is located in the location displayed below.

FlowAccumulation.PNG

The dialog box for this tool is displayed below. The input D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep), and the output should be set to the DataProducts folder and named something similar to "FlowAccumulation.dep". In the example the "Output Type" was set to "number of upslope grid cells" so that a greater cell value in the output would correspond to a greater number of cells flowing through that cell. The "Log-transformed flow accumulation values?" box was left unchecked in this example, though checking this would help normalize the data for better display. After these inputs have been set click "Run" in the bottom left of the popup window.

FlowAccumulationMsg.PNG

The output of this tool is displayed below. The brighter areas correspond to areas of higher accumulated flow. These areas of high flow correspond to the areas where more water gathers and flows together. A beter picture of the data can be gathered by zooming into the output in Whitebox.

FlowAccumulationOtp.PNG

Isobasin

The isobasin tool divides a study area into equally sized drainage areas (iso-basins) of a specified size.

The location of this tool is displayed below.

Isobasin.PNG

The dialog box for this tool is displayed below. The input D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep), and the input contributing area file sould be set to the output from the D8 and Rho8 Flow Accumulation tool (FlowAccumulation.dep). The output should be set to the DataProducts folder and named something similar to "Isobasin.dep". For this example the "Target Basin Size" was set to 500,000 cells. This value was found using trial an error to find an output that looked appropriate. After these inputs have been set click "Run" in the bottom left of the popup window.

IsobasinMsg.PNG

The output from this look is displayed below. It can be seen that the area has been broken down into 11 different basins of approximately equal size. It also appears that the basins do not fill the entire study area. This is likely because no more basins of a size of 500,000 cells could be fit into these areas. If the target basin size was set to a lower number these basins would conform to the study area more completely.

IsobasinOtp.PNG

Extract Streams

Stream networks can be useful as an input for other tools. Also, on their own they allow knowledge of areas of high water and nutrient flow, as well as connecting areas between water habitats.

The "Extract Streams" tool was used for this purpose. This tool extracts all values from a flow accumulation output that are greater than the specified value. This tool is not located within the Hydrology Tools toolset, and is part of the "Stream Network Analysis" toolset instead. The location of this tool is displayed below.

ExtractStreams.PNG

The dialog box for this tool is displayed below. The input flow-accumulation raster file should be set to the output from the D8 and Rho8 Flow Accumulation (D8 and Rho8 Flow Accumulation), and the output should be set to the DataProducts folder and named something similar to "ExtractStreams.dep". The "Channelization Threshold" is the cutoff value that will be used to determine which cells are a stream and which cells aren't. Trial and error was used to determine a value that produced an appropriate stream network. A value of 50,000 was settled on. The "Background Value" was set to "NoData" so that all of the cells that were not streams would be transparent. After these inputs have been set click "Run" in the bottom left of the popup window.

ExtractStreamsMsg.PNG

The output of the tool is displayed below. This output looks patchy at the full extent, but by zooming into it within Whitebox you can confirm that a network of continuous lines has been produced.

ExtractStreamsOtp.PNG

Sub-basins

The sub-basin tool breaks the down the study area into a number of basins, with one basin for each segment of a stream network for the area. As a result each of these basins represent the catchment area for each segment of the river network.

The location of this tool is displayed below.

Subbasins.PNG

The dialog box for this tool is displayed below. The input streams raster file should be set to the output from the extract streams tool (ExtractStreams.dep), and the input D8 flow pointer raster should be set to the output from the D8 flow pointer tool (FlowPointer.dep). The output should be set to the DataProducts folder and named something similar to "Subbasins.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

SubbasinsMsg.PNG

The output from this tool is displayed below. This image shows a much greater number of basins than any of the outputs from other tools in this tutorial, likely due to the complexity of the stream network fed into the tool. It would be expected that if the channelization threshold used for the extract streams tool was higher, there would be less sub-basins, and if it was lower there would be more.

SubbasinsOtp.PNG

Watershed Analysis

In order to run the Watershed tool this first step will be to create pour points. Once this is done The watershed analysis can be done.

Pour Points

Pour points are used in watershed analysis to define each of the watersheds that will be output. Simply put, a watershed is the entire area that flows into a pour point. As a result the placement of these pour points greatly effects the output of the watershed analysis. Pour points are usually located in areas of high accumulated flow, so are usually located on points of a stream network.

There is no way to create a pour point file in Whitebox automaticaly, so this must be done manualy. The first step in making a pour point file is to make a blank file. This is achieved using the "Create Blank Outlet Raster" tool, which creates a file that is identical to the input file, except that every cell contains "NoData" values.

The location of this tool is displayed in the following image.

BlankOutletRaster.PNG

The dialog box of this tool is displayed below. The input raster file should be set to the original Calabogie DEM file and the output should be set to the DataProducts folder and named something similar to "OutletRaster.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

BlankOutletRasterMsg.PNG

The output of this tool will be a blank raster file.

Pour points must now be identified and added. Before this can be done, the layers in the data tab have to be set up. I made sure that only the extract streams output and the create blank outlet raster output were visible, and that only the create blank outlet raster output was highlighted in the layer list.

Next the Modify Pixel Values tool must be used. The location of this tool is displayed below.

ModifyPixelTool.png

After clicking this button your cursor will become a cross-hair when mousing over your data frame. The center of this cross-hair is the location of the pixel that will be altered using this tool.

Click on a location along the stream network, such as the location displayed below.

ModifyPixelToolUse.png

When you click a small window like the one below will appear. This window tells you the co-ordinates of the pixel you are changing, and the current value of the pixel. The value should currently be NoData.

Change this value from NoData to 1.

ModifyPixelToolMsg.png

Repeat this process until you are happy with the placement of your pour points, making sure that the value of each pour point is unique. For the example in this tutorial 10 pour points were spread evenly along the stream network and were given sequential values from 1 to 10.


It is important that the placement of these pour points is on the stream network, so the Jenson Snap Pour Points tool will now be used to make sure that this is true.

The location of this tool is displayed below.

SnapPourPoints.PNG

The dialog box for this tool is displayed below. The input outlets file should be set to the output from the create blank outlet raster tool that you have just modified (OutletRaster.dep). The input streams raster should be set to the output from the extract streams tool (ExtractStreams.dep). The output should be set to the DataProducts folder and named something similar to "PourPoints.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

SnapPourPointsMsg.PNG

Watershed

Now that the pour point raster has been created and snapped to the stream network the watershed analysis can be undergone. The location of this tool is displayed below.

Watershed.PNG

The dialog box for this tool is displayed below. The D8 flow pointer raster file should be set to the output from the D8 flow pointer tool (FlowPointer.dep). The pour point file should be set to the output from the Jenson snap pour points tool (PourPoints.dep). The output should be set to the DataProducts folder and named something similar to "Watershed.dep". After these inputs have been set click "Run" in the bottom left of the popup window.

WatershedMsg.PNG

The output of this tool is displayed below. This shows 10 watershed ares, corresponding to the locations that the pour points were located. Each of these watersheds also conserve the value that its pour point had, meaning that any hierarchy or numbering system will be kept.

The number and location of your watershed areas will differ as a result of the different pour points used.

WatershedOtp.PNG

Conclusion

This tutorial aimed to give the user in introduction to hydrological analysis using Whitebox GAT 3.4.0. This was done by taking the user through an organized process that linked many of the hydrology tools together and explained why they were used and how the parameters were decided for each one.

The user should now have a good basis of knowledge that will help them with future hydrological analysis in Whitebox Geospatial Analysis Tools.