Fix partitioning when partition boundaries fall on the edge of a domain. - #934
Conversation
…es in the standard
…minal nexuses NJF removed LOG call from original commit
|
@hellkite500, should we expect a different set of nexus ids? Using these changes, and testing on the |
|
To expand on my last comment slightly, this appears to be the only terminal nexus in the hydrofabric file I used for testing that doesn't actually have any catchments going to it. So it's probably not really a problem that it is in there. It may have something to do with the nexus now having a downstream sentinel feature, though I don't immediately see where in the code that causes the difference. |
|
So, high-level, I think this looks good enough. I'm not yet marking it approved myself, to avoid accidentally giving the wrong at-a-glance impression of this being finished before it gets a review from those assigned, but I'm happy to come back and formally approve if you like @hellkite500. Nit-picking a little here, but I do want to at least note that I am slightly uneasy with this approach as a permanent solution. Least importantly, it adds noise to the partition config, with a lot sentinel features not even involved in remote connections. Not unrelated, it also seems (granted, with limited time spent analyzing other solution options) more like a workaround than something addressing the real issue. And it introduces an inconsistency between the ngen and hydrofabric data models. This inconsistency currently has no side effects, but that is incidental to the current implementation and not necessarily to the underlying problem. |
|
It's absolutely a workaround, to ensure that the generated partitions satisfy the assumptions made in ngen's parallelism logic. I would have much rather addressed this inside ngen, but that posed much higher hurdles. There were expedient NGWPC needs to get things running at all that led to me taking this approach. |
robertbartel
left a comment
There was a problem hiding this comment.
Turns out no reviewers were actually assigned as I previously thought (only suggested), so I'm going to go ahead and approve this.
Cherry picked critical partitioning fix from NGWPC#32
With a manual rebase to include just the fixes without dependence on the not-yet-integrated logging mechanism.
Added a small fix to ensure the sentinel features don't raise errors that shouldn't be considered errors.
Addresses #284, as mentioned in the original NGWPC PR.