Skip to content

Feature Request: Catchment Delineation #32

Description

@evan-powers

Motivation

  • Spatial scale is a fundamental metric to be considered when quantifying a hydrological response.
  • Generally the spatial scale of a hydrological response is that of the catchment/watershed.
  • The DRL, as a toy hydrological model, would benefit from the inclusion of a catchment delineation functionality.

Challenge

  • Terrain generation in the DRL (dem_generator.py) consists of a 2D stochastic noise field which is iteratively perturbed, smoothed and modified by a simple river carving effect.
  • Consequently, DRL terrains are hydrologically plausible, but highly simplified.
  • This means that traditional catchment delineation tools should be able to be used to define catchments on DRL terrains, but
  • These tools will need to be modified and/or applied in a more limited capacity than as intended.

Solution

  • Pysheds https://github.com/pysheds/pysheds is a simple and fast catchment delineation tool in python, matching the scale and function of the DRL.
  • I have successfully implemented Pysheds into the DRL workflow.

Remaining Work to be Done

  • The current catchment delineation module implementing Pysheds is functional but the code needs to be condensed, cleaned and organized before it can meet the educational requirements of the DRL.

Considerations of including Pysheds in the DRL

  • A primary value of the DRL is its simplicity. Including another codebase like Pysheds adds to the general complexity, and necessitates treatment in DRL communications such as the readme files and code comments.
  • Pysheds is intended for use on more topographically realistic DEM's, certain functionalities, such as pit filling, may have unintended and unwanted effects in the DRL setup.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions