Nels Frazier - A Hydrology Data (HydroData) plugin For QuantumGIS (QGIS)

Preview:

DESCRIPTION

2015 CUAHSI Conference on Hydroinformatics

Citation preview

HydroQGIS

A Hydrology Data (HydroData) pluginFor QuantumGIS (QGIS)

Nels FrazierUniversity of Wyoming

Example Workflow● Flood Frequency Analysis using HEC-FQ:

− Find USGS Stations in Area of Interest− Download Peak Flow data from USGS for each

station− Convert each series to HEC-FQ input format− Run HEC-FQ (Requires DOS emulator!) for each

station− Parse output to use for analysis− Analyze results

Motivation● Problem:

− Hydrology produces data across space and time− Research hampered by complicated workflows

● Goal:− Reduce steps in data life cycle via automation− Develop tools for finding, displaying, and

processing hydrological data− Cross-Platform, easy to use, simplified workflow

HydroQGIS Workflow

● Flood Frequency Analysis using HydroQGIS:− Identify a watershed (Optional)− Find USGS Stations− Run Flood Frequency Analysis− Analyze results

HydroQGIS Watershed Delineation

● With one click:− Get coordinates from mouse click− Call the EPA Waters web service− Add polygon to map layer

Station Search

● With one click:− Get coordinates from mouse click− Call the USGS Water Services web service− Add NWIS stations, located within X miles of

clicked point, to the map

Flood Frequency Analysis

● Select one or more features, or an entire layer, containing USGS site codes

● With one click:− Download Peak Flow Data from USGS− Perform flood frequency analysis− Plot frequency curve− Save output

Frequency Curves

Numerical Outputs

● Numerical outputs saved in CSV format for easy re-use

− Frequency Curve− Confidence Intervals− Plotting Positions

Implementation Details● QGIS

− Full Python API− Plugin Framework

− Cross-platform, open source

− Qt-Designer for building GUI's

● Q-Threads− Tools are threaded for performance

− All network related tasks are threaded

− Keeps the QGIS application responsive and available to multi-task

Modularity● Services and Tools implemented independently● New tools can easily be added to the framework● Python Foo could allow for dynamic loading of new tools

− This would allow for simple drop-in of code directory to add features

● Rapid Development/Prototyping− Full use of Python Modules/Packages

− No compilation required

− Easily added to any QGIS installation

Benefits● Cross Platform, Open Source Solution

● Consistent, integrated environment

● Free GIS tools

● Community Support

● Development focuses on research and data

Future Development● Integration with Data Providers

● Precipitation interpolation tools

● User Selected Instantaneous Values Data Download and Plotting

● Integration with Climata − Python package for accessing hydrologically relevant data

from multiple public data sources

AcknowledgementsThis work was started in the Fall 2014 Hydroinformatics course as a class project at the University of Wyoming. The following people have contributed code and/or proofs of concept for utilities that are or will be integrated into HydroQGIS:

● Jason Regina− NWIS Station Search

● Yanyan Cheng− Rainfall Interpolation using IDW method

● Leticia Pureza− USGS Instantaneous Values Data Download

● Guy Litt− Interfacing with Climata

References● Climata

− http://github.com/heigeo/climata

● EPA WATERS− http://www.epa.gov/waters/

● NWIS− http://waterdata.usgs.gov/

● QGIS− http://www.qgis.org/