OpenRES enables QGIS users to extract up to fifteen physical and environmental features along river segments (typically 5–10 km) to support classification of river networks into Functional Process Zones (FPZs).
Functional Process Zone (FPZ) classification is a method used to divide a river network into river valley scale (5-10 km) segments (or “zones”) that share similar physical, hydrological, and geomorphic characteristics. Rather than treating a river as a continuous longitudinal gradient of changing physical conditions, FPZ classification recognizes that rivers are composed of a discontinuous set of hydrogeomorphic patches, each shaped by different landscape and hydrologic processes (Hestir 2007). These zones reflect how the river behaves in a given segment, including how it flows, how it transports sediment, how it interacts with its floodplain, and what types of habitats it supports.
After classifying a river network in FPZs, research questions posed by the tenets of the Riverine Ecosystem Synthesis hypothesis (Thorp et al. 2006, Thorp et al. 2023) can be explored.
Note: OpenRES requires QGIS version >=3.28.
Installation from QGIS:
Offline installation from .zip file :
Go to releases of this repository -> select desired version -> download the .zip file (Note: use OpenRES.zip, not the source .tar).
Open QGIS -> Plugins -> Manage and Install Plugins… -> install from ZIP tab –> select the downloaded zip –> install plugin (ignore warnings, if any).
Users should prepare the following six datasets for your watershed of interest. Use consistent CRS and units (projected meters recommended, e.g., UTM) for all layers.
| Dataset | Format | Description |
|---|---|---|
| Mean Annual Precipitation Layer | .tif |
Raster of mean annual precipitation for the watershed. |
| Digital Elevation Model (DEM) Layer | .tif |
Elevation raster used for slopes, valley floors, and longitudinal gradients. |
| Simplified Geology Layer | .shp |
Polygon layer with generalized classes (e.g., alluvial, mixed, bedrock). Typically a simplified version of a detailed map. |
| Geomorphically Corrected Stream Network Layer | .shp |
Stream lines generated from the DEM and manually corrected to follow observed channel positions in imagery for the analysis period (Whitebox Workflows recommended here). |
| Valley-Boundary Line Layer | .shp |
Lines delineating both the valley floor boundary and valley-edge boundary. Suggested workflow: (1) delineate valley floor, (2) edit to remove holes and unrealistic extents, (3) derive 1-2 km² microsheds/isobasins from the DEM (Whitebox Workflows recommended here), (4) apply intersection/difference/polygon-to-line to extract combined boundaries as a line feature. |
| Channel Belt Layer (Optional) | .shp |
Lines delineating the channel belt (active/recent fluvial influence, including channel and depositional features). Suggested workflow: (1) OpenRES → Geomorphology Tools → Generate Channel Belt, (2) manual refinement to match meanders and depositional forms visible in imagery. |
Some of these layers may not be very common for most river systems
(especially the Valley-Boundary Line Layer and
Channel Belt Layer). For these less common datasets,
OpenRES provides several geomorphology utility tools to
allow users to create these datasets for their watershed of
interest.
Data quality tips
Ensure all inputs share the same projected CRS and unit (meters)
Snap and clean linework to avoid sliver gaps that can break intersections
OpenRES provides geomorphology utilities to prepare key boundary layers and a set of sequential extraction tools that produce a standard suite of 15 hydrogeomorphic attributes for FPZ classification.
Use these tools to produce your Valley-Boundary Line Layer and Channel Belt .
OpenRES includes geomorphology utility tools to help
users prepare the valley boundaries and channel belt layers required for
subsequent feature extraction :
| Tool | Purpose | Output | GIS Data Type |
|---|---|---|---|
| Generate Channel Belt | Creates lateral offsets from the stream network to approximate the channel belt extent; intended for manual refinement. | Channel belt layer | Vector (line) |
| Valley Floor Delineation – Sechu | Identifies low-relief valley floor areas from a DEM using a slope-based cost accumulation method [@sechu_2021]. | Valley floor layer | Vector (polygon) |
| Generate Microsheds | Generates microsheds using a threshold-based watershed approach (1–3 km² typical) to capture valley tops in confining valleys. | Microshed layer | Vector (polygon) |
| Create Valley Boundary | Applies a difference operation between valley floor and microsheds and converts the result to a line layer representing valley boundaries. | Valley boundary layer | Vector (line) |
Run these tools in order. Together, they generate all attributes required for FPZ classification.
| Step / Tool | Features | Description | Required |
|---|---|---|---|
| [1] Generate Transects | t_ID | Generates perpendicular transects from river centerlines to valley boundaries, ensuring consistent sampling and linking outputs via a transect ID. | Yes |
| [2] Extract ELE, PRE, and GEO | ELE, PRE, GEO | Samples elevation, precipitation, and geologic class from user-provided datasets. | Yes |
| [3] Extract VW, VFW, and RAT | VW, VFW, RAT | Measures valley width and valley floor width from transects and computes their ratio. | Yes |
| [4] Extract LVS, RVS, and MVS | LVS, RVS, MVS | Computes left, right, and mean valley slopes from elevation differences along transects. | Yes |
| [5] Extract DVS and SIN | DVS, SIN | Calculates down-valley slope and river sinuosity from segment geometry. | Yes |
| [6] Extract CBW | CBW | Measures channel belt width from transect intersections with the channel belt layer. | Optional |
| [7] Extract LCS, RCS, and CBS | LCS, RCS, CBS | Quantifies within-belt channel sinuosity on each side and summarizes with a mean value. | Optional |
Note: All the following processing steps should be done in a sequential manner, following the instructions below. Sample data for hydrogeomorphic feature extraction is provided in sample_data folder.
To demonstrate the use of OpenRES, we have provided a dataset from the Eerste River catchment, a small watershed located in the Greater Cape Floristic Region of South Africa.

Eerste River catchment, South Africa
The Eerste River originates in the Jonkershoek Mountains, part of the Hottentots-Holland mountain range, and flows westward through the Stellenbosch area before reaching the False Bay coast near Strand. It drains a catchment area of approximately 390 km². Dominated by fynbos vegetation, the area hosts numerous endemic plant species and is under increasing pressure from urban development, invasive species, and agricultural runoff.
Before starting the OpenRES workflow:
Processing > Toolbox).
The OpenRES Processing Toolbox
Use "Generate Channel Belt"
Location:
Processing Toolbox > OpenRES > Geomorphology
Round join style for smooth banks;
Miter for sharp corners (user will have to tune miter
limit).t_ID from input if present, otherwise creates
sequential t_ID.t_ID (int), side
{‘LEFT’|‘RIGHT’}, offset (double).Use "Valley Floor Delineation - Sechu"
Location:
Processing Toolbox > OpenRES > Geomorphology
[500*(resolution/10m)]
is a good starting pointThe following table summarizes the nine geomorphic and environmental
features that will be automatically derived across the Eerste River
catchment using the OpenRES tool suite. Each transect, generated
perpendicular to the stream network, will be assigned a unique
identifier t_ID, and the attributes listed below will be
extracted or calculated at the transect or segment level. Transects,
segment centers, and the river network segments are all linked together
by the t_ID field, enabling subsequent FPZ classification
methods to link using joins and relates to the stream network, river
segment centers, or transects as desired for visualization purposes.
| Feature | Name | Hydrogeomorphic role |
|---|---|---|
| ELE | Elevation | Longitudinal position and energy gradient |
| PRE | Precipitation | Hydroclimatic setting |
| GEO | Geologic class | Substrate and structural control |
| VW | Valley Width | Lateral accommodation space at the valley scale |
| VFW | Valley Floor Width | Floodplain/low relief valley floor extent |
| RAT | VW:VFW Ratio | Relative valley confinement |
| LVS | Left Valley Slope | Left side valley confinement |
| RVS | Right Valley Slope | Right side valley confinement |
| MVS | Mean Valley Slope | Overall valley confinement |
| DVS | Down Valley Slope | Longitudinal channel gradient |
| SIN | River Sinuosity | Planform complexity of the river |
| CBW | Channel Belt Width | Active channel belt extent |
| LCS | Left Channel Sinuosity | Left side within-belt planform curvature |
| RCS | Right Channel Sinuosity | Right side within-belt planform curvature |
| CBS | Channel Belt Sinuosity | Mean within-belt planform curvature |
Use: "[1] Generate Transects"
Location:
Processing Toolbox > OpenRES > Feature Extraction
t_ID.t_ID
field.Use: "[2] Extract Point Data"
Location:
Processing Toolbox > OpenRES > Feature Extraction
GEO or LITH)Use: "[3] Extract VW, VFW", and RAT
Location:
Processing Toolbox > OpenRES > Feature Extraction
VFW – Valley floor widthVW – Valley widthVFW and VW.Use: "[4] Extract LVS, RVS, and MVS"
Location:
Processing Toolbox > OpenRES > Feature Extraction
LVS – Left valley side slope (%)RVS – Right valley side slope (%)rise/run * 100).Use: "[5] Extract DVS and SIN"
Location:
Processing Toolbox > OpenRES > Feature Extraction
DVS – Down-valley slope (%)SIN – Sinuosity (unitless)DVS is calculated as
(start - end) / length * 100.SIN is the ratio of actual segment length to
straight-line distance.Use: "[6] Extract CBW"\ Location:Processing Toolbox
> OpenRES > Feature Extraction`
Geomorphology > Generate Channel BeltUse: "[7] Extract LCS, RCS, and CBS"
Location:
Processing Toolbox > OpenRES > Feature Extraction
Geomorphology > Generate Channel Belt)At the end of Step 7, your segment center point layer will contain all 15 hydrogeomorphic attributes:
t_ID, ELE, PRE,
GEO, VFW, VW,
RAT,LVS, RVS,MVS,
DVS, SIN, CBW, LCS,
RCS, CBSThe extracted attributes from OpenRES can be joined to
the river network output from [1] Generate Transects:
by using t_ID as the joining feature, then exported to
Python, R, or another software for hierarchical clustering analyses
commonly used to delineate FPZs.
To assist users in this process, we developed a separate Shiny app in R, ShinyFPZ, which contains common methods for FPZ classification as well as visualization tools for OpenRES output data.
Report issues or problems with the software here: https://github.com/jollygoodjacob/OpenRES/issues
For questions about the OpenRES plugin, contact: jnesslage@ucmerced.edu
Elgueta, Anaysa, Martin C Thoms, Konrad Górski, Gustavo Díaz, and Evelyn M Habit. 2019. “Functional Process Zones and Their Fish Communities in Temperate Andean River Networks.” River Research and Applications 35 (10): 1702–11.
Hestir, Erin L. 2007. “Functional Process Zones and the River Continuum Concept.” Center for Watershed Sciences, University of California, Davis, Los Angeles, USA.
Maasri, Alain, James H Thorp, Jon K Gelhaus, Flavia Tromboni, Sudeep Chandra, and Scott J Kenner. 2019. “Communities Associated with the Functional Process Zone Scale: A Case Study of Stream Macroinvertebrates in Endorheic Drainages.” Science of the Total Environment 677: 184–93.
Sechu, Gasper L., Bertel Nilsson, Bo V. Iversen, Mette B. Greve, Christen D. Børgesen, and Mogens H. Greve. 2021. “A Stepwise GIS Approach for the Delineation of River Valley Bottom within Drainage Basins Using a Cost Distance Accumulation Analysis.” Water 13 (6). https://doi.org/10.3390/w13060827.
Thorp, James H, Martin C Thoms, and Michael D Delong. 2006. “The Riverine Ecosystem Synthesis: Biocomplexity in River Networks across Space and Time.” River Research and Applications 22 (2): 123–47.
Thorp, James H, Martin C Thoms, and Michael D Delong. 2010. The Riverine Ecosystem Synthesis: Toward Conceptual Cohesiveness in River Science. Elsevier.
Thorp, James H, Martin C Thoms, Michael D Delong, and Alain Maasri. 2023. “The Ecological Nature of Whole River Macrosystems: New Perspectives from the Riverine Ecosystem Synthesis.” Frontiers in Ecology and Evolution 11: 1184433.
Williams, Bradley S, Ellen D’Amico, Jude H Kastens, James H Thorp, Joseph E Flotemersch, and Martin C Thoms. 2013. “Automated Riverine Landscape Characterization: GIS-Based Tools for Watershed-Scale Research, Assessment, and Management.” Environmental Monitoring and Assessment 185: 7485–99.