Closed mikejohnson51 closed 2 years ago
Things are looking really good until VPU-03S is hit - In one case Gages are aggregated over by catchments but not by flowpath. This results in 2 NULL geometry catchments which in turn break the creation of weight grids.
The above was a error, this issue is complete!
Currently, aggregation looks like this:
And is control with
cs_group
based solely on an idealized area. It is then constricted further withagg_length_area
which enforces minimum area/length thresholds.The ideal behavior is to have something that looks like this:
The purpose is to ensure that
cs_group
will not aggregate over enforced nexus locations, and thatagg_length_area
will always push upstream/dowstream (respectively) of the enforced nexus.nexus_locations can be given base on refactored fabric IDs.
Process
Part 1: Fixing cs_group -
DONE
As part of the reference fabric, know POIs are provided. The primary one of interest now is the Type_WBOut.
POIs are POINT objects at the outlet of the ID they are associated with...
Created on 2022-07-20 by the reprex package (v2.0.1)
Therefore these IDs can be used to fracture a mainstem (currently implementation of cs_group), into sub mainstems, over which the current cs_group can run. The trick will be bringing these back into a single group set to aggregate over with
aggregate_sets
.Part 2: fixing agg_length_area
DONE
This was accomplished by modifying and adding
cs_group
;assign_id
;middle_massage
;pinch_sides
to removeagg_length_area
Part 3: fixing headwater collapse
DONE
This was done by adding
build_collapse_table
andcollapse_hw
to replacecollapse_network_inward
. These functions are (1) iterative, (2) more "graph" based (still requires computing outlets) and (3) can enforce predefined nexus locationsPart 4: Making sure predefined nexus locations end up in nexus output
This requires the creation of a type attribute for each features and a validation check that all enforce nexus locations appear as a computed nexus.
...