-
Notifications
You must be signed in to change notification settings - Fork 62
RTX Code Release (PI-4): Additions to T-Route to be run at the Old River Control Center to connect disconnected flowline networks and assimilate using observations #847
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…to old-river-lock
I believe this PR is diverting surface runoff ( The testing example of this PR is also confusing This is providing the streamflow of the segment ID as the forcing |
This is from the NWMv3.0 retrospective
|
Thanks for the feedback, @shorvath-noaa It seems like it's a simple switch from adding flows from the Old River Lock Gauge to Regarding the q_lateral from the retrospective, one problem that arises from this test case is how large the subsets are as the Old River Lock is in VPU 8. The input files required for testing are > 50MB (github's file size limit) and if we were to have q_lateral from the NWM-retrospective for all upstream catchments, the amount of data uploaded into this repo would be significant. Thus, to ensure testability when delivering I used the streamflow from the retrospective set at a point just above the old river lock to ensure the flows were accurate as streamflow is comparable in that situation. My question is how to ensure your requests of |
@taddyb I'm not sure simply switching I'm not familiar with what the mandate was for this new DA method, but I imagine it's desirable for it to be similar to |
If I remember correctly, this is the first of several diversion locations that should eventually be implemented in t-route. If that's the case, I also think it's worth making this more generic so it can be easily extended to future locations. |
As to the second point, I agree that it's not good to add tons of data files to the repo. One option would be to create a restart file for this test which puts water in the channels at initialization, then just include a subset of forcing data for the domain. Or I suppose some clever unit tests could capture whether this diversion is working properly. |
I'll try to address all of the comments in one message. Hopefully it won't get too winded/long
The deliverable is: "Perform a simulation in which a time series of streamflow values is subtracted from the flow of the Mississippi River and is added to the flow of the Atchafalaya River at the Old River Control Structure.assimilated into the T-route channel network as a subtraction from flow at one node and as an addition to flow at another node. Demonstrate the above simulation in a way that the last specified value in the flow time series final assimilated value persists instead of transitioning back to the simulated flow." Looking more into the
Correct! This was supposed to be a specific, targeted, notebook and example for how one would subtract streamflow from one river reach into the other. Examples of where this will be made more generic (this is planned work for the future) is:
restart files are a good idea. But, just know I'm always down for some clever unit tests 👍 |
Thanks for providing this! It does seem to me that the flow should be diverted at every time step (I believe that is what "time series of streamflow" means). So I think this DA method needs to be performed somewhere within
I think you hit the nail on the head here! Extracting flow from one network and moving it to another seems to be the real challenge. Difficult, but I think doable. I believe providing the flow to the Atchafalaya via |
I think we're on the same page then with what needs to be done with for this PR to be merged. imho, any future deliveries related to this capability should be tacked onto this PR as:
I think the work is fine, but it shouldn't be merged yet as it's not a "large-scale" solution/ as you said needs to be more generic I'm also a fan of squashing these commits once the full capability is built out as the commit history is already long. I appreciate the comments/feedback and code review @shorvath-noaa |
Today, Raytheon showcased the following code to NOAA-OWP demonstrating the ability for a graph breakage at the old-river-control center to be connected and assimilated within T-Route using USGS observations. This PR is the accompanying code that contains only feature code related to that release (Note: provided test files are in
test/water_transfer
and this only works with Hydrofabric v20.1NOTE: A significant number of these additions/files come from including forcing files and a jupyter notebook to test this code
Additions
If you look in our config file, we're using the following fields to reference the data:
With an addition to
compute_parameters.py
:and a new class in the
DataAssimilation.py
file to follow the patterns within the fileRemovals
Changes
LICENSE
to include information that this work was paid for by a government contract, and data attributions to Lynker Spatial for geopackage files for hydrofabric v20.1Testing
test/water_transfer/README.md
for testing informationScreenshots
Notes
Todos
Checklist
Testing checklist
Target Environment support
Accessibility
Other