Catchment delineation

A common task in hydrology is identifying the catchment area for a given point in a river network. Catchment delineation determines the area that drains into a specific outlet point.

../_images/catchment.gif

In earthkit-hydro, you specify start locations and label all nodes flowing towards those locations with labels from 0, … ,number of locations - 1. If start locations belong to the same catchment, the node furthest downstream takes priority and overwrites any upstream start locations.


import earthkit.hydro as ekh

network = ekh.river_network.load("efas", "5")
labelled_field = ekh.catchments.find(network, locations)

Subcatchments

Subcatchments can be found by setting overwrite=False, which preserves all subcatchment boundaries rather than letting downstream outlets overwrite upstream ones.

../_images/subcatchment.gif
labelled_field = ekh.catchments.find(
    network,
    locations,
    overwrite=False
)

See also