Loading...
HomeMy WebLinkAbout03_CFNM_Appendix_B1_-_Cape_Fear_Finalized_Inflow_Data_Development 1 APPENDIX B1 – Finalized Inflow Data Development for the Cape Fear River Basin 2 Section 1. Introduction This report provides a detailed account of the inflow development for the Cape Fear River Basin. These inflows are used in the Cape Fear portion of the combined Cape Fear/Neuse OASIS model. The inflow record runs from January 1930 to September 2011.1 There are 45 streamflow gages in the basin and one gage in an adjacent basin that are used in this project. These are listed in Table 1. Most of the gages have incomplete records; they either started after 1930 or ended before 2011. Some of the gages were used just to provide more data for fillin (see below) 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. As discussed in more detail in the appended document, the inflow development method ensures that the monthly unimpaired flows at the gage locations match. 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. 1 A provisional record extends beyond September 2011, but this does not account for actual impairments. Future updates will require impairment data for the inflow dataset to be considered finalized. 3 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 spreadsheets in the “Unimpairment of gage data” directory. The unimpaired gage data is summarized in the unimpaired.xls file. They are identified by sub-basin, which is consistent with the approach used in the original inflow development by the previous consultant. The sub-basins are identified by the number of the most downstream gage in that sub-basin. Impairments in the basin accumulate as each downstream sub-basin is included. For example, the impairments upstream of the Cape Fear River include the impairments on the Haw River and Deep River. 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 discharge and withdrawal data were obtained by Moffatt and Nichol and NC DWR. The reservoir storage data were obtained by NC DWR from the reservoir owner/operator. Records for the largest reservoir, Jordan Lake, are available from the Army Corp of Engineers (Corps) since project inception in the early 1970s, although normal operation did not begin until 1982 when the reservoir had completely filled. Evaporation and precipitation data were collected by HydroLogics. Evaporation data are based on daily measurements from the Chapel Hill station, which is the only long-term station in the basin. When measurements are missing, the long-term monthly averages are used. Precipitation data are based on daily measurements from the following long-term stations: Graham, Greensboro, High Point, Siler City, Chapel Hill, Reidsville, Randleman, and Fayetteville. 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. For each reservoir, HydroLogics 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. HydroLogics unimpaired the streamflow data for twelve gages, which are highlighted in bold in Table 1. The other gages are on rivers where impairments are negligible or not quantified. 4 Table 1. List of Gages USGS Number Description Period of Record Ref. Num. Ref. Name Drainage Area 02093500 Haw R. nr. Benaja <1930 - 9/71 34 benaj 168 02093800 Reedy Fork nr. Oak Ridge 10/55 - present 33 oakri 20.6 02094500 Reedy Fork nr. Gibsonville 9/28 - present 32 gibso 131 02095000 S.Buffalo Ck nr. Greensboro 8/28 - 9/58; 8/98 - present 35 sbuff 15.4 02095500 N.Buffalo Ck nr. Greensboro 8/28 - 10/90; 8/98 - present 36 nbuff 37.1 02096000 Stony Ck nr. Burlington 8/52 - 9/59 30 burli 44.2 02096500 Haw R. at Haw R. 10/28 - present 31 hawri 606 02096700 Big Alamance Ck nr. Elon College 9/57 - 9/80 29 elonc 116 02096846 Cane Ck nr. Orange Grove 11/88 - present 26 orang 7.54 02096850 Cane Ck nr. Teer 10/59 - 9/73 25 teerx 33.7 02096960 Haw R. nr. Bynum 10/73 - present 28 bynum 1275 02097000 Haw R. nr. Pittsboro 1928 - 9/73 27 hrpit 1310 02097314 New Hope Ck nr. Blands 10/82 - present 22 bland 75.9 02097517 Morgan Ck nr. Chapel Hill 11/82 - present 23 chape 41 02098000 New Hope R. nr. Pittsboro 3/49 - 9/73 21 nhrpi 285 02098500 W.Fork Deep R. nr. High Pt 1928 - 9/58 44 wfdrh 32.1 02099000 Deep R. nr. High Point 7/28 - 3/94; 10/97 - present 45 highp 14.8 02099500 Deep R. nr. Randleman 10/28 – 09/2004 42 randl 125 02100000 Muddy Ck nr. Archdale 6/34 - 12/41 43 archd 16.7 02100500 Deep R. at Ramseur 11/22 - present 41 ramse 349 02101000 Bear Ck nr. Robbins 10/39 - 9/71 40 robbi 134 0210166029 Rocky R. nr. Crutchfield Crossroads 5/88 - present 38 crutc 7.42 02101800 Tick Ck nr. Mount Vernon Springs 7/58 - 9/81; 1/94 - present 39 mvspr 15.5 02102000 Deep R. at Moncure 8/30 - present 37 moncu 1434 02102192 Buckhorn Ck nr. Corinth 6/72 - present 20 corin 76.3 02102500 Cape Fear R. at Lillington 12/23 - present 19 lilli 3464 02102908 Flat Ck nr. Inverness 7/68 - present 16 inver 7.63 02103000 Little R. nr. Manchester 10/38 - 9/50 17 manch 348 02103500 Little R. at Linden 1928 - 6/71 18 linde 459 02104220 Rockfish Ck at Raeford 7/88 - present 15 raefo 93.1 02104500 Rockfish Ck nr. Hope Mills 1929-12/31; 3/39 - 12/54 14 hopem 292 02105500 Cape Fear at Huske Lk nr. Tarheel 10/37 - present 13 tarhe 4852 02105769 Cape Fear R. at Lock 1 nr. Kelly 7/69 - present 12 cfrke 5255 02105900 Hood Ck nr. Leland 10/56 - 9/73; 10/93 - present 1 lelan 21.6 02106000 Little Coharie Ck nr. Roseboro 2/50 - 3/92 4 roseb 92.8 02106500 Black R. nr. Tomahawk 10/51 - present 5 tomah 676 02107000 South R. nr. Parkersburg 10/51 - 9/86 3 parke 379 02107500 Colly Ck nr. Kelly 2/50 - 9/71 2 cckke 103 02107600 NE Cape Fear R. nr. Seven Springs 8/58 - 9/75 11 seven 47.5 0210789100 Grove Ck at Kenansville 8/82 - 9/90 8 kenan 22.6 02108000 NE Cape Fear nr. Chinquapin 8/40 - present 9 chinq 599 02108500 Rockfish Ck nr. Wallace 8/55 - 9/81 7 rckwa 69.3 02085500 Flat R. at Bahama 8/25 - present baham 149 5 Timeline for Gage Data 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 1930 1935 1940 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 Ga g e R e f e r e n c e N u m b e r The second 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 USGS2). We will refer to these as “extended” flows and gains. This is done on a monthly basis because fillin only works with monthly data. The gages associated with the flows and gains used in the remainder of this document are shown in Table 2. The third step is to apportion the extended flows and gains to make sure that their volumes match downstream unimpaired gage flows. Then, the monthly flows and gains are disaggregated into daily values using local, unimpaired gages. These steps are described in detail in Section 3. The last step in the process is to compute the OASIS nodal inflows based on the flows and gains computed above. This step is described in detail in Section 4. Before undertaking these steps, we made some simplifications to certain gage records. On the Haw River, two major gages were combined into one. The gages near Bynum (reference Bynum) and Pittsboro (reference Hrpit) are adjacent (drainage areas are 1275 mi2 and 1310 mi2, 2 “Mixed-Station Extension of Monthly Streamflow Records,” Journal of Hydraulic Engineering, ASCE, Vol. 109, No. 10, October 1983. 2011 6 respectively). Between them, they have a complete but non-overlapping record. We scaled the Bynum flows by 1310 / 1275 and treated the new flows as part of the Pittsboro record, thus making one long record at Pittsboro. The record of the gage on the Deep River at Moncure starts July 1930. We extended the record using fillin from January to June and used it as if it were the actual record, making that gage a complete record. The same treatment was given to the gage on the Cape Fear River near Tarheel (the most downstream gage with a long-term record) to generate the record from January 1930 through September 1937, and the Deep River at Randleman, to generate a record from when the gage ended in October 2004 through present. Again, this was used as if it were actual record, making that gage a complete record. Both of these extensions were done prior to any of the work whose description follows. Table 2. Gages Where Flows and Gains Are Computed Gage Flow or Gain Gain Calculation Oakri Flow Gibso Gain Gibso flow - Oakri flow Nbuff Flow Benaj Flow Hawri Gain Hawri flow - Gibso flow - Nbuff flow - Benaj flow Hrpit Gain Hrpit flow - Hawri flow Nhrpi Flow Wfdrh Flow Randl Gain Randl flow - Wfdrh flow Ramse Gain Ramse flow - Randl flow Moncu Gain Moncu flow - Ramse flow Lilli Gain Lilli flow - Hrpit flow - Nhrpi flow - Moncu flow Linde Flow Tarhe Gain Tarhe flow - Linde flow - Lilli flow Cfrke Gain Cfrke flow - Tarhe flow Note that the gains at Lillington and Kelly are are calculated with consideration made to the time of travel (flow routing) along the Cape Fear. See Section 6 for more information. 7 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. These computations are done with the DSSVue script, compute_gain.py. 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. Here is an example. We want to compute the flow at Benaj (reference name for the Haw River near Benaja gage) and gain at Hawri (reference name for the Haw River at Haw River gage) from October 1971 to October 1990 when the Benaj gage has no record. Because there is no record at Benaj, we have no actual flow at Benaj and no actual gain at Hawri. We extended the gage record at Benaj and extended the gain at Hawri using fillin. Now we want to adjust those extended values so that the sum of the flows at Benaj, Nbuff, and Gibso and the remaining gain down to Hawri match the unimpaired recorded flow at Hawri. So we say that we maintain the Hawri flow less the flows at Nbuff and Gibso by scaling with the sum of the Benaj extended flow and the Hawri extended gain. The calculation is: Hawri scaled gain = (Hawri flow – Nbuff flow – Gibso flow) * Hawri extended gain / (Hawri extended gain + Benaj extended flow) The companion calculation for the flow at Benaj is: Benaj scaled flow = (Hawri flow – Nbuff flow – Gibso flow) * Benaj extended flow / (Hawri extended gain + Benaj extended flow) Thus the sum of the actual unimpaired gage flows (Nbuff and Gibso) and the scaled flow (Benaj) and scaled gain (Hawri) equals the unimpaired gage flow at Hawri, or, Nbuff flow + Gibso flow + Benaj scaled flow + Hawri scaled gain = Hawri unimpaired gage flow In 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 gaged flows. The DSSVue script used to do these calculations is scale_flow_gain.py. The output is the file 8 scale_flow_gain.dss, which contains monthly flows and gains. 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 Two DSSVue scripts are used to do this step: convert_month_to_day.py and disaggregate.py. DSSVue cannot work on two records with different time steps, so the first step is to convert the monthly value to daily. For example, the gain at Gibso for January 1930 is 75 cfs; converting the monthly flow to daily gives 75 cfs for each day in the month. The first script converts the monthly flows to daily flows for each location where we need them. The second script computes the daily flows and gains as shown above. 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 gaged flows as “ground truth”. The remainder of this section shows the details in how the records were extended and disaggregated. This is the short hand used in the remainder of this document: d/s = downstream u/s = upstream DA = drainage area F = actual or scaled flow at a gage XF = “extended” flow at a gage as computed by fillin when actual flows do not exist G = actual or scaled gain, or inflow, between two locations, which is the difference of u/s gage F and d/s gage F XG = extended gain between two locations as computed by fillin when actual gains do not exist 9 Haw River Reedy fork near Oak Ridge FLOW (Oakri, 33), 10/55 - present D/s gage used in computations is Gibso. 01/30 – 09/55 OakriF = GibsoF * OakriXF / (OakriXF + GibsoXG), disaggregate with NbuffF 10/55 – 09/11 use actual daily values Reedy Fork near Gibsonville GAIN (Gibso, 32), full record Computed gain at Gibso is GibsoF – OakriF 01/30 – 09/55 GibsoG = GibsoF * GibsoXG / (OakriXF + GibsoXG) 10/55 – 09/11 GibsoG = GibsoF – OakriF Disaggregate whole record with BahamF since DA is a better match than Oakri North Buffalo Ck near Greensboro FLOW (Nbuff, 36), 08/28 – 10/90, 8/98 - present Other gages used in computations are Gibso, Benaj, and Hawri 01/30 – 10/90 use actual daily values 11/90 – 07/98 NbuffF = (HawriF – GibsoF) * NbuffXF / (NbuffXF + BenajXF + HawriXG), disaggregate with OakriF 08/98 – 09/11 use actual daily values Haw R. at Benaja FLOW (Benaj, 34), <1930 – 09/71 Other gages used in computations are Gibso and Nbuff, which are parallel, and Hawri, which is d/s. 01/30 – 09/71 use actual daily values 10/71 – 10/90 BenajF = (HawriF – NbuffF – GibsoF) * BenajXF / (BenajXF + HawriXG) 11/90 – 07/98 BenajF = (HawriF – GibsoF)*BenajXF / (NbuffXF + BenajXF + HawriXG) 08/98 – 09/11 HawriG = (HawriF – NbuffF - GibsoF) * BenajXF / (BenajXF + HawriXG) Disaggregate 10/71 – 09/11 with BahamF Haw R. at Haw River GAIN (Hawri, 31), full record Other gages used in computations are Gibso, Nbuff, and Benaj, all of which are u/s. 01/30 – 09/71 HawriG = HawriF – NbuffF – BenajF – GibsoF 10/71 – 10/90 HawriG = (HawriF – NbuffF – GibsoF) * HawriXG / (BenajXF + HawriXG) 11/90 – 07/98 HawriG = (HawriF – GibsoF) * HawriXG / (NbuffXF + BenajXF +HawriXG) 08/98 – 09/11 HawriG = (HawriF – NbuffF – GibsoF) * HawriXG / (BenajXF + HawriXG) Disaggregate whole record with BahamF Haw R. at Pittsboro GAIN (Hrpit, 27), full record 01/30 – 07/40 HrpitG = HrpitF – HawriF, disaggregate with BenajF 08/40 – 09/11 HrpitG = HrpitF – HawriF, disaggregate with ChinqF New Hope R. near Pittsboro FLOW (Nhrpi, 21), 03/49 – 09/73 Gage Nhrpi has no overlap with Bland or Chape, so we cannot compute any real gain into Nhrpi. Incremental DA along Haw to the Lilli gage is some 600 – 700 sm, so we need to take 10 into account the Nhrpi gage. We could take Corin into account, but has no overlap with Nhrpi, and Nhrpi is some four times bigger than Corin, so we will compute the gain at Lilli with Nhrpi. Use Moncu, Nhrpi, and Hrpit, which are parallel, and Lilli, which is d/s. 01/30 – 02/49 NhrpiF = (LilliF – MoncuF – HrpitF) * NhrpiXF / (NhrpiXF + LilliXG), disaggregate with BenajF 03/49 – 09/73 use actual daily values. 10/73 – 09/11 NhrpiF = (LilliF – MoncuF – HrpitF) * NhrpiXF / (NhrpiXF + LilliXG), disaggregate with BahamF Deep River W.Fork Deep R. near High Point FLOW (Wfdrh, 44), 10/28 – 9/58 We could use Highp for this computation, which at 14.8 square miles is only 12% of the drainage area at Randl. Despite its shorter record, it seems better to use the Wfdrh gage, which is 32.1 square miles, or 26% of Randl. 01/30 – 09/58 use actual daily values 10/58 – 09/11 WfdrhF = RandlF * WfdrhXF / (WfdrhXF + RandlXG), disaggregate with OakriF Deep R. near Randleman GAIN (Randl, 42), full record 01/30 – 09/58 RandlG = RandlF - WfdrhF 10/58 – 09/11 RandlG = RandlF * RandlXG / (WfdrhXF + RandlXG) Disaggregate whole record with BahamF Deep R. near Ramseur GAIN (Ramse, 41), full record 01/30 – 09/11 RamseG = RamseF – RandlF, disaggregate with BahamF Deep R. at Moncure GAIN (Moncu, 37), full record, except the first six months, which are filled in. Gage Robbi (40) has less than half the record, and it is small compared to Moncu, so just compute the gain from the long-term records. 01/30 – 07/40 MoncuG = MoncuF – RamseF, disaggregate with BenajF 08/40 – 09/11 MoncuG = MoncuF – RamseF, disaggregate with ChinqF Cape Fear River Cape Fear R. at Lillington GAIN (Lilli, 19), full record 01/30 – 07/40 LilliG = (LilliF – MoncuF – HrpitF) * LilliXG / (LilliXG + NhrpiXF), dissagregate with BenajF 08/40 – 02/49 LilliG = (LilliF – MoncuF – HrpitF) * LilliXG / (LilliXG + NhrpiXF), disaggregate with ChinqF 03/49 – 09/73 LilliG = LilliF – MoncuF – HrpitF – NhrpiF, disaggregate with ChinqF 10/73 – 09/11 LilliG = (LilliF – MoncuF – HrpitF) * LilliXG / (LilliXG + NhrpiXF) , disaggregate with ChinqF 11 Little R. at Linden FLOW (Linde, 18), 1928 – 06/71 01/30 – 06/71 use actual daily values 07/71 – 09/11 LindeF = (TarheF – LilliF) * LindeXF / (LindeXF + TarheXG), disaggregate with ChinqF Cape Fear R. at Tarheel GAIN (Tarhe, 13), full record 01/30 – 06/71 TarheG = TarheF – LilliF – LindeF, disaggregate with LindeF 07/71 – 09/11 TarheG = (TarheF – LilliF) * TarheXG / (LindeXF + TarheXG), disaggregate with ChinqF Cape Fear R. at Lock nr. Kelly GAIN (Cfrke, 12), 7/69 – present This is the most downstream gage on the Cape Fear River, so there is nothing to reference the extended flows to. 01/30 – 07/40 CfrkeG = CfkreF – TarheF, disaggregate with LindeF 08/40 – 09/11 CfrkeG = CfkreF – TarheF, disaggregate with ChinqF The result of the computations in this section is a set of monthly and daily flows and gains at each of the locations shown in Table 2. 12 Section 4. Computing Inflows at OASIS Nodes from the Flows and Gains This section describes the computation of inflows at OASIS nodes from flows and gains at gages described above. The computations are done “on the fly” during an OASIS run called “compute_inflow” using ratios of drainage area (total or incremental) as shown in Table 3 below. The computations are included in an OCL file called set_inflows.ocl and are listed below. Node 110 (u/s Brandt Res) Oakri Flow + Gibso Gain * (70 - 20.6) / 110.4 Node 140 (Townsend Lk) Gibso Gain * 35 / 110.4 Node 145 (Gibso gage) Gibso gain * (110.4 – 35 – (70 – 20.6)) / 110.4 Node 170 (Nbuff gage) Nbuff Flow Node 020 (u/s Reidsville Res) Benaj Flow * 53 / 168 Node 040 (Benaj gage) Benaj Flow – Inflow020 Node 070 (Old Stony Ck Res) Hawri Gain * 95 / 269.9 Node 090 (Hawri gage) Hawri Gain – Inflow070 Node 310 (u/s Graham-Mebane) Hrpit Gain * 66 / 704 Node 340 (Mackintosh Res) Hrpit Gain * 135 / 704 Node 380 (u/s Cane Ck Res) Inflow time series from OWASA Node 400 (Hrpit gage) Hrpit Gain– Inflow310 – Inflow340 – Inflow380 Node 430 (University Lk) Inflow time series from OWASA Node 450 (Nhrpi gage) Nhrpi Flow – Inflow430 Node 470 (Jordan Lk) Lilli Gain * 95 / 435 Node 210 (Wfdrh gage) Wfdrh Flow Node 220 (High Point Res) Randl Gain * (61.4 – 32.1) / 92.9 Node 260 (u/s Randleman Res) Randl Gain – Inflow220 Node 270 (Randleman Res) Ramse Gain * (170 – 125) / 224 Node 300 (Ramseur Res) Ramse Gain * 55 / 224 Node 324 (Upper Siler Res) Rocky Flow * 37 / 7.42 Node 325 (Lower Siler Res) Rocky Flow * 18 / 7.42 Node 280 (d/s Ramseur Res) Ramse Gain – Inflow270 – Inflow300 Node 590 Moncu Gain * 400 / 1085 (400 is an estimate) Node 640 (Moncu gage) Moncu Gain – Inflow590 – Inflow324 – Inflow325 Node 520 (Harris Lake) Use Harris Lake Inflows developed for Progress Energy Node 527 (d/s Harris) Use Harris Lake Inflows developed for Progress Energy Node 497 (Harris Transfer) Lilli Gain * 234 / 435 Node 550 (Lilli gage) Lilli Gain – Inflow470 – Inflow520 – Inflow527 – Inflow497 13 Node 720 (u/s Linde gage) Linde Flow Node 760 (Glenville Res) Tarhe Gain * (9.4 / 929) Node 780 (Tarhe gage) Tarhe Gain – Inflow760 Node 820 (Cfrke gage) Cfrke Gain Note that inflows to Jordan Lake did not rely on back-calculations from historic releases and change in storage. Because of inaccuracies in the release data, inflows were developed using drainage area allocation of the gain between upstream and downstream gages. In addition, inflow at three other locations are handled differently. The inflows for Cane Creek Reservoir (Ccres) and University Lake (Ulake) were obtained from OWASA and used directly. The inflows use drainage area adjustments of the Cane Creek near Orange Grove gage, with low-flow adjustments made using the Flat River near Bahama gage. The inflows for Harris Lake (Harris) were previously computed for Progress Energy and are used directly. Harris inflows were developed by filling in the Buckhorn Creek near Corinth gagebased on only the unregulated period (1972-1980) for the gage. This methodology provided better results than using the entire gage record with upstream Harris Lake operations added back. The gage was filled in using the Middle Creek near Clayton gage in the adjacent Neuse River Basin. Additional Inflow Nodes In addition to the inflow nodes listed above, a number of natural inflows/gains have been added to the model, to improve the resolution at points of interest such as withdrawals, discharges, or locations of environmental interest. These inflows are allocated within the model run; the code for the allocation can be found in the OCL file filter_inflows.ocl (see Appendix A). 14 Table 3. List of Drainage Areas (in square miles) Gages Reservoirs Description Total Drainage Area Incremental Drainage Area Description Drainage Area Reedy Fork nr. Oak Ridge 20.6 20.6 Randelman 170 N.Buffalo Ck nr. Greensboro 37.1 37.1 Jordan Lake 1690 Reedy Fork nr. Gibsonville 131 110.4 Harris 71 Haw R. nr. Benaja 168 168 University Lake 30 Haw R. at Haw R. 606 269.9 Cane Creek 31 Haw R. nr. Pittsboro 1310 704 Glenville 9.4 New Hope R. nr. Pittsboro 285 285 Graham-Mebane 66 W.Fork Deep R. nr. High Pt 32.1 32.1 Mackintosh 135 Deep R. nr. Randleman 125 92.9 Townsend 105 Deep R. at Ramseur 349 224 Brandt 70 Deep R. at Moncure 1434 1085 High Point 61.4 Cape Fear R. at Lillington 3464 435 Ramseur 55 Little R. at Linden 459 459 Reidsville 53 Cape Fear R. at Huske Lock nr. Tarheel 4852 929 Old Stony Ck 95.3 Cape Fear R. at Lock 1 nr. Kelly 5255 403 Siler City (U+L) 55 15 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.xls. Daily flows were adjusted in the “daily” sheets in file hand_mods.xls. Revisions were done for Gibso, Hrpit, Corin, Lilli, Tarhe, and Cfrke. Flow for these gages was taken from file unimpaired_flows.xls. Monthly flows were adjusted in the “monthly” sheet of hand_mods.xls. Revisions were done for Cfrke and Corin flows in the unimpaired.dss file, and for Lilli gain and Nhrpi flow in file scale_flow_gain.dss. An example of the monthly pathological case occurred on September 1936 at Lilli and Nhrpi, during the period when Nhrpi does not exist. The formulae to compute the Lilli gain and Nhrpi flow are: LilliG = (LilliF – MoncuF – HrpitF) * LilliXG / (LilliXG + NhrpiXF) NhrpiF = (LilliF – MoncuF – HrpitF) * NhrpiXF / (LilliXG + NhrpiXF) The values are: LilliF MoncuF HrpitF LilliXG NhrpiXF 800.4 321.2 257.4 -22.3 24.1 This leads to values of -2712 and +2933 for the Lilli gain and Nhrpi flow, respectively. These were averaged to be 111 (in cfs) at both sites. This is done in the file scale_flow_gain.dss immediately after executing the rescaling script. To prevent model infeasibility from provisional inflows (see Appendix C), unrealistic releases from upstream reservoirs, or unrealistic water supply shortages, we added code in the OCL to filter remaining daily negative inflows. The negative inflow is “stored” until there is a sufficiently positive 16 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. The exception is the New Hope River at Pittsboro gage, which often had significant negative inflows due to rescaling of filled-in flows for the missing gage record. We inserted a reversible arc connecting this node (node 1450) with a node on the Haw River (node 1410). This prevents model infeasibility at node 450 by transferring surplus water from node 1410. This also ensures that the total volume of flow downstream of these points, namely into Jordan Lake, matches the natural flow on a monthly basis. 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.xls compares the actual monthly unimpaired gage flows with the computed values from flows_gains_month.dss. To test that all the drainage areas have been properly accounted for, file model_comp.xls compares the same actual unimpaired gage flows to the gage flows reconstituted from the computed OASIS inflows. 17 Section 6. Time of Travel / Flow Routing To account for time of travel between points along the main stem of the Cape River, flow routing has been incorporated into both the development of inflows, and the handling of flows within the model. The time of travel or lag coefficients were furnished by the Corp of Engineers. The time of travel reaches consist of the Jordan dam to the Lillington gage, and the Lillington gage to the Kelly gage. Flow routing for the development of inflows is handled in the HEC-DSSVue script called routing.py. Flow routing within the model is handled in the OCL file routing.ocl. The routing equations used for each gain are as follows: Routed Jordan release = 0.5*yesterday’s release + 0.5*today’s release Lillington gain = Lillington flow - 2 day average of Jordan releases Routed Lillington Flow = Previous day’s flow Tar Heel gain = Tar Heel flow - previous day average Lillington Flow Note that the computation of gains may include subtracting the flows from tributaries in the reach (see Section 3), which are not routed. The daily routed timeseries are averaged monthly; the monthly flows are used to compute gains for the above mentioned reaches by subtracting from the monthly downstream un-routed flow. No routing is necessary when disaggregating to daily flows since gains are disaggregated using a representative local unimpaired gage flow. For inflow development, upstream flows are routed before being subtracted from the downstream flow to compute a gain. In the model runs, routing is handled using a routing reservoir, which holds back upstream flows for the appropriate amount of time before releasing downstream. 18 Section 7. Extending the Record Beyond September 2011 As mentioned earlier, the finalized inflow record ends on September 30, 2011. This section describes how to finalize updates to the record when new records (including impairments) become available. This is not to be confused with provisional updates used to facilitate real-time forecasting, which are done directly from the model interface using the Update Record tab. Let us assume that we are adding data from October 1, 2011 to September 30, 2012. Note that we are only adding to the record. We are not changing any of the values prior to October 2011. 1. Assemble the new gage records in the files gage_day.dss and gage_month.dss. Note the gage_month record includes separate records for Haw River at Pittsboro (an impaired record, which is the combined Pittsboro and Bynum gage flows; a record of impairments; and a record of the resulting unimpaired flows). See Table 4 below for a complete list of gages. 2. Compute the impairments at each gage and add them to the gage flows. This has been done in the unimpairment spreadsheets described earlier (called inflow_unimpairment_cf.xls). Next put the daily unimpaired flows into the spreadsheet unimpaired_summary.xls to compute the monthly unimpaired flows using a spreadsheet pivot table. 3. Append the new unimpaired flows to the unimpaired.dss file (monthly averages) and to the unimpaired_daily.dss file (daily data) where appropriate. 4. Copy the following files into the folder c:\Program Files\HecDssVue (assuming the DSSVue has been installed in the default location). Update the fillin.cf so the ending year is 2012. fillin.cf fillin.exe gage_day.dss gage_month.dss path_list.dat unimpaired.dss unimpaired_daily.dss 5. Copy the following files in folder of c:\Program Files\HEC\HecDssVue\HecDssVue\scripts. If extending the record to a year beyond 2011, be sure to change the ending years in the script from either '11 or 2011 to the appropriate year. Use the script files from the folder “scripts_2012”, in which this change has already been made. routing.py compute_gain.py convert_day_to_month.py convert_month_to_day.py disaggregate.py scale_flow_gain.py 19 6. Execute the script 01_routing.py. This reads from file unimpaired_daily.dss, creates routed time-series where necessary (see Section 6), and writes monthly routed flows to unimpaired.dss and extend_flow_gain.dss. 7. Transfer the monthly flows from unimpaired.dss to hand_mods_cf.xls. Here perform necessary modifications to remove negative gains from the records, following the examples of previous modifications. Then paste the modified flows and routed flows back into unimpaired.dss and extend_flow_gain.dss. 8. Execute the script 02_compute_gain.py. This reads from file unimpaired.dss, computes all the gains, and writes to the files extend_flow_gain.dss, scale_flow_gain.dss, and fillin_input.dss. 9. Close DSSVUE, and execute fillin by double-clicking it. This updates the file extend_flow_gain.dss with filled-in flows. Thus, this file is a combination of the actual unimpaired values and extended values. 10. Open up DSSVue again, execute the script 03_scale_flow_gain.py, which does the calculations described in Section 3. This reads from file extend_flow_gain.dss and updates file scale_flow_gain.dss. 11. Import the appropriate flows and gains from scale_flow_gain.dss into hand_mods_cf.xls and perform hand modifications to remove negative flows and gains. Paste modified flows/gains back into scale_flow_gain.dss. 12. Execute the script 04_convert_month_to_day.py. This reads from files gage_month.dss and scale_flow_gain.dss to generate a daily record from the monthly records. The daily records are used to disaggregate the flows, as shown in Section 3. File month_day.dss is written. 13. Execute the script 05_disaggregate.py to convert the monthly flows and gains at the gages to daily. File flow_gain.dss is produced; this file has the data that are read by OASIS. 14. Execute the script 06_convert_day_to_month.py to convert the daily flows and gains at the gages into monthly values. The purpose of this step is to import the monthly flows and gains into gage_comp.xls to ensure that all the accounting has been properly done. 15. Once the correct accounting has been confirmed, copy the University Lake, Cane Creek, and Harris Lake inflow records (ULAKE, CCRES and HARRIS record names, respectively) from the original flow_gains.dss file (that goes through September 30, 2011) into the new flow_gains.dss file. Append this updated data to this file for all reservoirs through September 30, 2012. Place this flow_gains.dss file into the basedata folder, overwriting the original. 20 16. Execute the OASIS run called “Compute_Inflows”, beginning October 1, 2011 and ending September 30, 2012. This run contains a file called “set_inflows.ocl” that assigns inflows to the OASIS nodes. Then go to the run folder, open the output.dss file, click View  Refresh Catalog. Select all of the inflow nodes (i.e, those which have a pathname labeled inflow) and convert from acre feet (af) to cubic feet per second (cfs) by doing the following: click Utilities  Math Functions. On the Arithmetic tab, select Divide from the pull down menu, click the Data Set radio button, and highlight all of the inflow records, click the Constant radio button and enter 1.9835 into the field, and then press the Compute button at the bottom of the window. Once the computation has completed, close the Math Functions window and click Yes when prompted to save the changes. Now select all of the inflow records and click Edit  Tabular Edit, and change all of the units to cfs, and all of the units Type to PER-AVER. Close the editing window and save your changes. Next select all of the records, and copy and append to the basedata.dss file in the basedata folder. The basedata file will now contain this finalized data from October 1, 2011 to September 30, 2012. This basedata file will be used for all future runs. 21 Table 4. Gages Used to Extend the Record Beyond September 2011 USGS Number Description Period of Record Ref. Num. Ref. Name Drainage Area 02093800 Reedy Fork nr. Oak Ridge 10/55 – present 33 oakri 20.6 02094500 Reedy Fork nr. Gibsonville 9/28 – present 32 gibso 131 02095500 N.Buffalo Ck nr. Greensboro 8/28 - 10/90; 8/98 - present 36 nbuff 37.1 02096500 Haw R. at Haw R. 10/28 – present 31 hawri 606 02096960 Haw R. nr. Bynum 10/73 – present 28 bynum 1275 02097314 New Hope Ck nr. Blands 10/82 – present 22 bland 75.9 02097517 Morgan Ck nr. Chapel Hill 11/82 – present 23 chape 41 02098000 New Hope R. nr. Pittsboro 3/49 - 9/73 21 nhrpi 285 02098500 W.Fork Deep R. nr. High Pt 1928 - 9/58 44 wfdrh 32.1 02099000 Deep R. nr. High Point 7/28 - 3/94; 10/97 - present 45 highp 14.8 02099500 Deep R. nr. Randleman 10/28 – present 42 randl 125 02100500 Deep R. at Ramseur 11/22 – present 41 ramse 349 0210166029 Rocky R. nr. Crutchfield Crossroads 5/88 - present 38 crutc 7.42 02102000 Deep R. at Moncure 8/30 – present 37 moncu 1434 02102192 Buckhorn Ck nr. Corinth 6/72 – present 20 corin 76.3 02102500 Cape Fear R. at Lillington 12/23 – present 19 lilli 3464 02103500 Little R. at Linden 1928 - 6/71 18 linde 459 02105500 Cape Fear at Huske Lk nr. Tarheel 10/37 – present 13 tarhe 4852 02105769 Cape Fear R. at Lock 1 nr. Kelly 7/69 – present 12 cfrke 5255 02108000 NE Cape Fear nr. Chinquapin 8/40 – present 9 chinq 599 02085500 Flat R. at Bahama 8/25 – present baham 149