Skip to content

Divergence aware accumulation. #17

@dblodgett-usgs

Description

@dblodgett-usgs

There are three cases for divergence aware downstream accumulation.

Q. Is "apportion" the write word to use here? There are various usages in the wild that could be considered.

  1. No apportionment: where upstream values are passed without being apportioned such that each downstream connection gets the full upstream value and there is special handling where diversions join back to the main flow to avoid double counting. -- this as also been referred to as "total upstream routing"
  2. Divergence apportioned: Where upstream values are passed with fractional apportionment such that each downstream connection gets between 0 and 100 percent of the upstream value. This has also been referred to as "divergence routing"
  3. Dendritic: Where upstream values are not passed to secondary paths at all -- this is essentially a special case of 2 where no diversion fraction value is provided and 0 is assumed for all divergences.

The accumulation function in hydroloom currently only supports dendritic accumulation and should support all three types.

The function signature: accumulate_downstream(x, var) could be maintained with an additional parameter apportion = NULL/{TRUE/FALSE}. If NULL, dendritic would be used. If TRUE, apportioned would be used. If FALSE, no apportionment would be used.

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