-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
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.
- 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"
- 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"
- 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
Labels
No labels