Loading...
HomeMy WebLinkAboutAppendix B - Finalized Inflow Data Development - New and Watauga 1 APPENDIX B – Finalized Inflow Data Development for the New and Watauga River Basins 2 Section 1. Introduction This report provides a detailed account of the inflow development for the New and Watauga River Basins. The inflow record runs from October 1929 to September 2017.a There are 6 streamflow gages in the basin that are used in this project. These are listed in Table 1 and are mapped in Figures 1a-1b along with the reservoir inflow locations. These gages have at least 10 years of daily data with which to make valid statistical comparisons with other gages. Most of the gages have incomplete records; they either started after 1930 or ended before 2017. Additional reference gages outside the gages were used just to provide more data for fillin (see Section 2) when computing statistics. The inflow dataset is based on “unimpaired” gage flows. Gages only show the actual flow in the stream; they have no information about what the flow would have been without human intervention. “Impairments” are modifications of the natural flows due to change in reservoir storage (including evaporation and precipitation on the reservoir surface) and consumptive withdrawals of water (municipal, industrial, or agricultural). If water is withdrawn above a gage and returned to the river below the gage, the impairment is the entire withdrawal. The next section describes the process used to compute daily flows and gains. Because of the noise in the data, it is important to look at the data at each step to find unrealistic values. These are noted later. The summary of the inflow development process was provided to the stakeholder group as a slide deck (Upper New & Watauga OASIS Modeling Mtg#2 10-02-2018.pptx, Oct. 2018). a A provisional record extends beyond September 2017, but this does not account for most of the actual impairments. Future updates will require impairment data for the inflow dataset to be considered finalized. 3 Table 1. List of Gages used in the New and Watauga Model Inflow Development Site Number Site Name Period of Record Drainage Area (sq. mi.) Basin 03164000 New River near Galax, VA 1/1930 – Present 1141 Upper New 03161000 South Fork New River near Jefferson, NC 1/1930 – Present 205 Upper New 03481000 Elk River Near Elk Park, NC 10/1934 – 9/1955 42 Watauga 03479500 Watauga R at NC-TN State Line 10/1942 – 6/1955 152 Watauga 3480000 Watauga River At Stump Knob, TN 1/1930 – 9/1931; 6/1934 - Present 171 Watauga 03479000 Watauga River near Sugar Grove, NC 4/1940 - Present 92.1 Watauga 4 Figure 1a. Map of gages used as inflow nodes in the New Basin 5 Figure 1b. Map of gages used as inflow nodes in the Watauga Basin 6 Section 2. Data and General Procedure The first step in building the record is to compute the unimpaired gage flows. These computations are contained in the spreadsheets Upper New - Inflow_Unimpairment.xlsx, and Watauga - Inflow_Unimpairment.xlsx, in the ‘Inflow Development’ directory. The unimpaired gage data is summarized in the Watauga and Upper New - Unimpaired Summary.xlsxx file. Impairments in the basin accumulate as each downstream gage is included. For example, the impairments upstream of the State Line gage include the impairments on the mainstem Watauga and the tributaries upstream. The unimpairment of a gage is calculated as follows: Unimpaired gage flow = gage flow + upstream water withdrawal (by agricultural, municipal, and industrial users) – upstream discharge (water or wastewater from municipal or industrial users, including power plants) + upstream change in reservoir storage + upstream evaporation on the reservoir surface - upstream precipitation on the reservoir surface. The impairment data collection effort was led by HDR and is described in a companion data collection report. HDR collected withdrawal and discharge data from databases provided by NC DWR and stakeholders. Evaporation and precipitation data were also collected by Hazen. Evaporation data are based on based on a USGS study of Lake Michie in Durham, NC. This has the advantage of being measured at the surface of the lake rather than in a pan, avoiding the need for a monthly adjustment factor for converting from pan to surface. Precipitation data are based on daily measurements from the following stations in the basin collected from the NCDC: • JEFFERSON, NC US • FLEETWOOD 3.1 SSE, NC US • GLENDALE SPRINGS, NC US • SPARTA 3.5 SSW, NC US • SPARTA, NC US • BEECH MOUNTAIN, NC US • BOONE, NC US • BANNER ELK, NC US • CROSSNORE, NC US • GRANDFATHER MOUNTAIN, NC US • JEFFERSON, NC US • TRANSOU, NC US Data from the station closest to a reservoir are used to estimate the precipitation at the reservoir. When these data are missing, data from the next nearest station are used, and so on. For each reservoir, Hazen calculated a daily timeseries of net evaporation (or the difference between evaporation and precipitation) for the hydrologic record. These data are contained in spreadsheets in the “Evap-Precip” folder. These data are used to (1) estimate the historic change in reservoir storage due to net evaporation and (2) estimate net evaporation on the reservoir surface during OASIS model simulation. The streamflow data for 4 gages was unimpaired. The other gages are on rivers where impairments are negligible or not quantified, or not required for the inflow methodology. A timeline showing the period of record of the gages used for inflow development is shown in Figure 3. 7 Figure 3. Timeline of New and Watauga gages used for inflow development 8 The second step in inflow development is to compute the gains – i.e., the local inflow between two gages. This is done by subtracting the upstream gage flow(s) from the next downstream gage flow. Gains calculations are done using the Python script compute_gains.py. The third step in the inflow development process is to fill in the missing flows and gains for each gage with missing records. This requires assembling a monthly record of unimpaired flows and gains based on the daily unimpaired data computed above. These flows and gains are fed into a program named fillin (developed by William Alley and Alan Burns of the USGSb). We will refer to these as “extended” flows and gains. This is done on a monthly basis because fillin only works with monthly data. Fillin completes the missing record of flows and gains by selecting the mostly highly correlated gages. The gages associated with the flows and gains used in the remainder of this document are shown in Table 2. Table 2. Gages Where Flows and Gains Are Computed Flow or Gain Gain Calculation Upper New SF New Flow Galax Gain Galax – SF New Watauga Sugar Grove Flow Elk Park Flow State Line Gain State Line – Sugar Grove Cataloochee Flow The fourth step is to apportion the extended flows and gains to make sure that their volumes match downstream unimpaired gage flows. The monthly flows and gains are then disaggregated into daily values using local, unimpaired gages. These steps are described in detail in Section 3. Before undertaking these steps, we made some simplifications to certain gage records: From 1931 – 1942, a drainage area adjustment of the Watauga at Stump Knob, TN gage was used to fill in the gap for that period for the Watauga at State Line gage. Since neither the Stump Knob or State Line gage had data after 1955, the record was extended using fillin and treated as an actual gage record before moving on to the subsequent steps. b “Mixed-Station Extension of Monthly Streamflow Records,” Journal of Hydraulic Engineering, ASCE, Vol. 109, No. 10, October 1983. 9 Section 3. Computation of Extended Gage Flows and Reach Gains All the computations outlined in this section are done on monthly data, which reduces noise and is required for statistical hydrology programs like fillin. Noisy data occurs when time of travel differences occur or when the impairment data create artificial variation in the flows. First, the actual gains are determined from the unimpaired gage flows as described previously. Next, fillin is run to compute the extended flows and gains for the gages with missing records. Note that fillin preserves the actual flows and gains where they exist. These extended flows and gains are then “scaled.” The objective of scaling is to ensure that the sum of filled-in flows upstream of a gage with an actual record equals the actual unimpaired flow at that gage. The fillin program does not ensure this for two reasons. First, it utilizes only a single correlated record for each value generated, thus ignoring sums, and second, it works with log transforms, and not actual flows. With the limited number of gages in these basins, this is the only example of scaling used for inflow development: We want to compute the unimpaired flow at the Sugar Grove gage and unimpaired gain at the State Line gage from 1930 - 1940 when the Sugar Grove gage data are missing. As a result, we have no actual (unimpaired) flow at Sugar Grove and no actual gain at State Line. So we extend the gage record at Sugar Grove gage and extend the gain at State Line using fillin. Now we want to adjust those extended values so that the sum of the flows at Sugar Grove and the remaining gain down to State Line match the unimpaired flow at Marshall. So we maintain the State Line flow by scaling with the sum of the Sugar Grove and the State Line extended gain. The calculation is: Scaled State Line extended gain = (State Line flow – Sugar Grove flow)* (State Line extended gain) / (State Line extended gain + Sugar Grove extended flow) The companion calculation for the flow at Sugar Grove is: Scaled Sugar Grove extended flow = (State Line flow – Sugar Grove flow)* (Sugar Grove extended flow) / (State Line extended gain + Sugar Grove extended flow) Thus the sum of the the scaled flow (Sugar Grove) and scaled gain (State Line) equals the unimpaired gage flow at State Line. This way, we ensure that the total volume of all the flows and gains, be they actual or extended, upstream from a given gage match the unimpaired flow at the gage, preserving the unimpaired gaged flows. These computations are done in the Python script scale_flow_gain.py The script contains all of the scaling equations for each flow or gain that needs to be scaled for different time periods. 10 The next step is to disaggregate the monthly flows into daily flows. This is done using flows for a daily, unimpaired gage that is local or has similar drainage area (call it a “reference gage”) along with our monthly flows. We multiply the monthly value by the ratio of that day’s flow to that month’s flow at the reference gage. The disaggregation formula is: daily ratio = daily reference value / monthly reference value daily computed value = monthly computed value * daily ratio The disaggregation calculations are done in using two Python scripts – first convert_month_to_day.py converts the monthly extended and scaled flows/gains into a daily timestep, and then disaggregate.py computes the daily disaggregated flows as described above. The gages used to disaggregate flows and gages for different time periods are shown in the second script. It is important to note that we are not trying to replicate history in computing the OASIS inflows; rather, we are trying to build daily flows whose variation is representative of history while preserving unimpaired gaged flows as “ground truth”. Note that actual daily values of unimpaired gage flows are often maintained in the script files. Actual daily gains between gages are generally not maintained due to their “noise”, so the script files aggregate them monthly and then disaggregate them back to daily values using a locally unimpaired gage. Therefore, actual flows and gains on a monthly basis are maintained, but generally the former will only be maintained on a daily basis. 11 Section 4. Computing Inflows at OASIS Nodes from the Flows and Gains To assign inflows to points in the models between USGS gages (i.e. reservoirs, intakes, and other points of interest), the final disaggregated unimpaired gage flow dataset is apportioned by drainage area to those points. The drainage areas for non-gage locations were taken from local water supply plans and supplemented with the USGS StreamStats website. The computations are done “on the fly” using an OASIS run that invokes the OCL file called set_inflows.ocl. The comments of that OCL file (provided in Appendix A) show in detail the calculations being made. 12 Section 5. Error Checking and Inflow Filtering As noted in Section 1, because of the noisy data, a lot of error checking is necessary. These are some of the errors that can occur. Often the available impairment data is only available on a monthly average basis, which can cause issues when applying to daily gage flows. • Negative unimpaired gage flow. These are physically impossible and should be corrected unless the value is small, say between 0 and -10 cfs, because the impact is negligible. • Negative gains. These are sometimes legitimate. However, there are times when a flood hits a gage at the very end of the month, while not arriving at the gage downstream until the beginning of the next month. This can cause a highly negative gain in the first month and a highly positive gain the next month. These should be corrected. • There are pathological cases where the scaling can cause one gage to have a large positive flow, while the adjacent gage has a large negative flow. This can occur when the two extended values are similar in magnitude but opposite in sign. These need to be adjusted. • For this work, the changes are tracked in the file hand_mods.xlsx. No daily adjustments were made for the basin. Monthly flows were adjusted in the “Unimp Adjustments” sheet of hand_mods.xlsx. Revisions were done for certain flows and gains in the unimpaired.dss. To prevent model infeasibility from provisional inflows (see Appendix C), we added code in the OCL to filter remaining daily negative inflows. The negative inflow is “stored” until there is a sufficiently positive inflow to release the accumulated negative flows, thereby preserving mass over a multi-day period. Since the negative inflows are generally very small and infrequent, the filtering has negligible impact on being able to match the monthly unimpaired gage flow. To test that all flows, gains, and drainage areas have been properly accounted for, we check that the “reconstituted,” unimpaired gage flows match the actual unimpaired gage flows. In this case, reconstituted means that the flow at a given gage is computed by summing the appropriate upstream flows and gains. File gage_comp.xlsx compares the actual monthly unimpaired gage flows with the computed values from the scaling and disaggregation process. 13 Section 6. Time of Travel / Flow Routing On the recommendation of DWR, no time of travel / flow routing was included in the Upper New and Watauga modeling.