Copyright by Katherine Grace Osborne 2000 A Water Quality GIS Tool for the City of Austin Incorporating Non Point Sources and Best Management Practices by Katherine Grace Osborne, B.A, B.E. Thesis Presented to the Faculty of the Graduate School of The University of Texas at Austin in Partial Fulfillment of the Requirements for the Degrees of Master of Science in Engineering and Master of Public Affairs The University of Texas at Austin December 2000 A Water Quality GIS Tool for the City of Austin Incorporating Non Point Sources and Best Management Practices Approved by Supervising Committee: David R. Maidment Michael E. Barrett William G. Spelman Dedication To my family. v Acknowledgements I cannot thank Michael E. Barrett and David Maidment enough for their support and guidance. The City of Austin provided the funding for the project; Ed Peacock, Pat Hardigen, and Ellen Wadsworth deserve my gratitude for their numerous contributions. An extra thank you to Ellen, whose discerning eyes, critical questions and keen ability to keep everything structured have significantly influenced this research. Bill Spelman, thank you for being a reader. Additionally, thank you to Francisco Olivera for providing insight and influencing my schedule. To everyone in Maidment?s research group, thank you! Tim Whiteaker, thank you for the help you have provided and the work you will do in the future. For all the brainstorming sessions while in the midst of writing, thanks, Kim Davis. Cathlin McCullough and Mary Presecan?s class projects contributed to this research; my brother, Tom Osborne, helped in data development while working for the City. In addition to those involved in my research, numerous individuals influenced my graduate career. Fellow joint degree-ers, Dave and Pablo, how would I have done it without you? Mary, Teri, Jona Finndis, Caroline, and Carolyn, here is to creating our own hero stories. Corrie and Felicity, our dinners were a refuge. Meredith, thanks for the triathlon spirit. Dr. Lawler, I admire your willingness to listen and advise. I would also like to thank my family for their support and influence in my life. September 6, 2000 vi A Water Quality GIS Tool for the City of Austin Incorporating Non Point Sources and Best Management Practices Katherine Grace Osborne, M.S.E., M.P.Aff. The University of Texas at Austin, 2000 Co-Supervisors: David Maidment and Michael Barrett Estimating pollution contributions from non-point sources is always difficult. Calculating pollution due to runoff into urban creeks and waterways is no exception. In an effort to model non point source pollution in Austin, a Geographic Information System (GIS) grid based hydrology model was developed for the City to aid in the development of a citywide Water Quality Master Plan. There are three primary objectives for the model: 1) compute current pollutant loadings for seventeen constituents at Environmental Integrity Index (EII) sites; 2) estimate future loadings for the year 2040 for the same constituents; and 3) model the influence of Best Management Practices (BMPs) on reducing pollution loads. Initial work completed in 1997 by researchers at the Center for Research in Water Resources (CRWR) was a substantive first step; however, many limitations and recommendations were also identified. This paper discusses the next manifestation of the model that was developed at CRWR during 1999-2000. The three main modifications made in the second phase concern increasing both model accuracy and accessibility. First, significant improvements were made to improve datasets used as input to the model. Second, corrections for both flow and load calculations were vii made on a cell-by-cell basis within the GIS environment instead of corrected separately in a spreadsheet. Third, future impervious cover projections, the basis for flow calculations, were tied more closely to undeveloped land parcels. Lastly, to make the model more accessible to a variety of policy makers, reliance on ArcInfo has been minimized; ArcView is now the platform for the model. In addition to these changes, new City assumptions were incorporated, especially with regards to base flow and storm flow separation. With these modifications in place, City objectives were met, and improvements in accuracy and accessibility were realized. viii TABLE OF CONTENTS TABLE OF CONTENTS viii LIST OF TABLES xii LIST OF FIGURES xiv 1 INTRODUCTION 1 1.1 Background .............................................................................................1 1.2 City Requirements...................................................................................2 1.3 Phase I Development...............................................................................3 1.4 Objectives of Phase II .............................................................................4 1.5 Material Presented...................................................................................7 2 PREVIOUS WORK 8 2.1 Hydrology Literature...............................................................................8 2.1.1 Base flow / Storm Flow Separation..............................................8 2.1.2 The Significance of Impervious Cover.......................................10 2.1.3 Non ? Point Source Water Quality Models ................................11 2.2 Land Use Projections Discussion..........................................................14 2.2.1 Markov Chain / Transition Matrices ..........................................15 2.2.2 Multi-logit Models......................................................................16 2.3 Policies Affecting City of Austin Water Quality Masterplan ...............17 2.3.1 Ordinances ..................................................................................18 2.3.2 Summary of Regulations ............................................................19 3 DATA 25 3.1 Raw Data...............................................................................................25 ix 3.1.1 Terrain ........................................................................................25 3.1.2 Stream Network..........................................................................26 3.1.3 Precipitation................................................................................26 3.1.4 Land Use.....................................................................................27 3.1.5 City of Austin Shapefiles............................................................28 3.2 Data Development.................................................................................32 3.2.1 Building the Stream Network .....................................................32 3.2.2 Watersheds: Delineating and Comparing To Known Boundaries ..................................................................................36 3.2.3 Delineating Watersheds from Points of Interest.........................42 3.2.4 Development of Landuse / Impervious Cover Relationships.....43 3.3 Best Management Practices (BMPs) Removal Estimation...................45 3.3.1 Located BMPs defined by Load Removed.................................45 3.3.2 Located BMPS defined by Removal Efficiency.........................46 3.3.3 Non-Located Best Management Practices..................................47 3.4 Calibration Data ....................................................................................51 3.4.1 Flow calibration data ..................................................................51 3.4.2 Load calibration data ..................................................................54 4 METHODOLOGY 58 4.1 Flows ....................................................................................................58 4.1.1 Data Sets and Assumptions ........................................................59 4.1.2 GIS Process.................................................................................63 4.1.3 Correction Methodology.............................................................68 4.2 Loads ....................................................................................................71 4.2.1 Data Sets and Assumptions ........................................................72 4.2.2 GIS Process.................................................................................75 4.2.3 Correction Methodology/ In Stream Processes ..........................78 x 4.3 BMP Removal.......................................................................................83 4.3.1 Load Removed............................................................................83 4.3.2 Efficiency Removed ...................................................................84 4.3.3 Non-located BMPs .....................................................................85 4.4 Future Conditions..................................................................................86 4.4.1 Definition of Developable Land .................................................87 4.4.2 Use of TSZ data..........................................................................90 4.4.3 Areas Outside TSZ .....................................................................93 4.4.4 Assimilating the information......................................................95 4.4.5 Future Flow, BMP & Load Calculations....................................96 5 RESULTS 97 5.1 Impervious Cover..................................................................................99 5.2 Flows ..................................................................................................104 5.3 Loads ..................................................................................................112 5.4 BMP removals.....................................................................................115 6 CONCLUSION 119 6.1 Strengths of Present Model .................................................................119 6.2 Model Implications .............................................................................121 6.3 Limitations and Considerations for Future Work ...............................122 APPENDIX 1 SCRIPTS 126 Qual.BMPchk .............................................................................................126 Qual.BMPnonloc ........................................................................................129 QUAL.BMPOutlets ....................................................................................142 Qual.Flow ...................................................................................................144 xi Qual.Load ...................................................................................................154 Qual.Rechcalib ...........................................................................................163 APPENDIX 2 LOAD CORRECTION AS A FUNCTION OF IMPERVIOUS COVER 170 APPENDIX 3 CORRECTED AND NON-CORRECTED LOADS 173 BIBLIOGRAPHY 177 VITA 180 xii LIST OF TABLES Table 2-1 Impervious Cover Limits, based on Net Site Area, and Transfers .............21 Table 2-2 Waterway classifications ....................................................................................22 Table 2-3 Critical Waterway Setbacks................................................................................23 Table 3-1 Fraction Impervious Cover for each Landuse Type for 1990 & USGS landuse...........................................................................................................................44 Table 3-2 Fraction Impervious Cover for each Landuse Type for 1995 landuse.......44 Table 3-3 Average Event Removal Efficiency.................................................................48 Table 3-4 Annual Capture Volume Definitions...............................................................48 Table 3-5 Sample Data for BMP Type For EII Sites......................................................49 Table 3-6 Projected BMP Implementation for Future Conditions by Type ...............50 Table 3-7 Annual Flow Data at USGS Gage Stations ....................................................52 Table 3-8 Adjusted Annual Flows at USGS Gage Stations ...........................................53 Table 3-9 Base flow and Storm Flow Separation ............................................................54 Table 3-10 Recharge Quantity............................................................................................54 Table 3-11 Base Flow Concentration Data.......................................................................55 Table 3-12 Storm Flow Concentration Data....................................................................56 Table 3-13 Load Calibration Values ..................................................................................57 Table 4-1 Basis for Base Flow Coefficient / Impervious Cover Relationship............60 Table 4-2 Summary of inputs and outputs of the Qual.Flow script .............................67 Table 4-3 EMC storm flow table .......................................................................................73 Table 4-4 EMC base flow table.........................................................................................74 Table 4-5 Inputs and Outputs of Qual.Load Script ........................................................76 Table 4-6 Linear Load Corrections for Load Calculations.............................................82 Table 4-7 Logarithmic Load Corrections for Load Calculations ..................................82 Table 4-8 Land use Categories and Classifications..........................................................87 Table 4-9 Development of Initial Additional Acreage....................................................91 Table 5-1 Predicted Current Mean Annual Flows for Watershed Outlets ................107 xiii Table 5-2 Predicated and Observed Recharge Values ..................................................108 xiv LIST OF FIGURES Figure 1-1 Buffered Study Area with City Jurisdiction and Watersheds........................5 Figure 3-1 Precipitation shapefile for the State of Texas. Study area highlighted in yellow.............................................................................................................................27 Figure 3-2 Edwards Aquifer Recharge Zone ? Barton Springs Highlighted in Yellow......29 Figure 3-3 Points of Interest: Gage Stations, EII sites, Outlets....................................30 Figure 3-4 Regulatory Zones ..............................................................................................31 Figure 3-5 Traffic Serial Zones...........................................................................................32 Figure 3-6 Non-Continuous Stream Network Example: Waller Creek .......................33 Figure 3-7 Datasets Used to Correct Stream Network...................................................34 Figure 3-8 Corrected Flow Network for Waller Creek...................................................35 Figure 3-9 City of Austin Flow Network..........................................................................36 Figure 3-10 Creation of Burned and Filled DEM ...........................................................37 Figure 3-11 Delineation of Watersheds from Stream Grid............................................38 Figure 3-12 Comparison of Old Watershed Boundaries (black) With Those Calculated From the DEM (red)...............................................................................39 Figure 3-13 Delineated Watershed Boundary vs. Edited Watershed Boundary .........40 Figure 3-14 3D representation of Burned in Creeks and Built Walls...........................41 Figure 3-15 Building Walls from Edited Watershed Boundaries ..................................41 Figure 3-16 Comparison of Watershed Boundaries Calculated from Grid (red) with Edited Vector Boundaries (blue)...............................................................................42 Figure 3-17 Located BMPs defined by Load Removed..................................................46 Figure 3-18 Sample Attribute Table for located BMPs ..................................................46 Figure 3-19 Waterbodies treated as BMPs........................................................................47 Figure 3-20 BMP Zones for Future Conditions ..............................................................49 Figure 3-21 Fraction of Area Draining to Non-located BMPs for Current Conditions ........................................................................................................................................50 Figure 4-1 Runoff Coefficient as a function of Impervious Cover Fraction...............59 Figure 4-2 Graph of Base flow Coefficient/Impervious Cover Relationship.............61 xv Figure 4-3 Recharge Coefficient Grid (left) and Total Recharge Grid (right) for a Segment of Barton Creek...........................................................................................66 Figure 4-4 Observed Flow vs. Predicted Flow.................................................................69 Figure 4-5 Correction Factor for Flow..............................................................................70 Figure 4-6 Observed Flow vs. Predicted Flow After Correction..................................71 Figure 4-7 Correction value as a function of % Impervious Cover ? BOD ...............80 Figure 4-8 Correction value as a function of % Impervious Cover ? Cu....................80 Figure 4-9 Correction value as a function of % Impervious Cover ? TSS..................81 Figure 4-10 Developable Land within the Study Area....................................................89 Figure 4-12 Fraction Impervious Cover for Developable Land....................................95 Figure 4-13 Future Impervious Cover...............................................................................96 Figure 5-1 Watersheds covered in discussion of results.................................................98 Figure 5-2 Points of Interests Labeled for Barton and Shoal Creeks...........................99 Figure 5-3 Impervious Cover Grid vs. Vector Comparison ........................................100 Figure 5-4 Increase in Impervious Cover from Current to Future Conditions ........101 Figure 5-5 Developable Lands, Special Polygons and TSZ for Barton and Shoal Creeks..........................................................................................................................102 Figure 5-6 Corrected Runoff Coefficient........................................................................105 Figure 5-7 Flow Profile, with and without Recharge, for Barton Creek....................109 Figure 5-8 Barton Creek Flow Profile, Current and Future Conditions....................110 Figure 5-9 Shoal Creek Flow Profile for Current and Future Conditions.................111 Figure 5-10 Observed Loads vs. Predicted Loads - BOD ...........................................113 Figure 5-11 Observed Loads vs. Predicted Loads - Cu................................................113 Figure 5-12 Observed Loads vs. Predicted Loads ?TSS ..............................................114 Figure 5-13 Corrected TSS Concentrations for Current Conditions..........................115 Figure 5-14 TSS BMP removal for Barton Creek..........................................................116 Figure 5-15 TSS BMP removals for Shoal Creek ..........................................................117 Figure 5-16 Barton Creek Profile for TSS loads............................................................118 1 1 INTRODUCTION 1.1 Background As the City of Austin grows, minimizing the impact of development on the environment has been a focus of City policy and work. One project underway is the City of Austin Water Quality Masterplan. By investigating water quality in urban creeks, the Masterplan hopes to address potential areas of concern effectively. Pollution from non-point sources heavily influences water quality in urban creeks and, thus, the urban aquatic environment. Non-point source pollution occurs as storm runoff and base flow carry natural and human-made pollutants, deposited on the land surface, to receiving waters. Whatever Masterplan the City conceives must take into account this pollutant source. Unfortunately, the impact of non-point sources is difficult to quantify. The City of Austin looked to the Center for Research in Water Resources (CRWR) to develop a model for the City?s use. The City wanted a model that would establish a relationship between water quality and urban development, take into account the positive effects of Best Management Practices, and predict urban water quality for future conditions. An initial Phase I model, developed by researchers at the CRWR in 1997, achieved some success. However, limitations needed to be addressed for the model to be accepted and used by a wider audience. This paper presents the model modifications undertaken in Phase II. To develop the research context, it is important to understand City requirements, the accomplishments of the Phase I model, and the limitations addressed in Phase II. 2 1.2 City Requirements Since 1975, the City of Austin has collected data at numerous sites, including nearly 200 Environmental Integrity Index (EII) sites. These data, which include measurements of Water Quality, Aquatic Life Support, Physical Integrity, and Sediment Quality, are a unique source of information on water quality in the City. Literature has shown a high correlation between impervious cover and poor Environmental Integrity results (Schueler, 1996). Thus, estimates of impervious cover in a watershed can lead to assumptions about the future of aquatic life in the same watershed. Evaluation of the impact of impervious cover regulations is part of the City?s Water Quality Masterplan. Impervious cover alone, however, does not determine pollutant loading; efforts to minimize runoff impacts must also be considered. Best Management Practices (BMPs) used to manage the runoff effects of development. The City has required the installation of Best Management Practices (BMPs), such as wet ponds or sand filters, to reduce pollutant loading. By creating such structures, water slows down, suspended solids settle out, and less channel erosion occurs. BMPs must be incorporated in any model of water quality for the City of Austin, since their use should have a positive impact on water quality and water quality tests conducted at EII sites. Additionally, both current conditions and future conditions must be incorporated in the model. The Water Quality Masterplan not only discusses the present situation, but also plans for the long-term growth of the City. Estimating what will happen in the future can often be a difficult undertaking. The possibilities 3 of development are influenced by a number of factors ? policy, economy, prices, etc. Predicting where future development occurs, while not usually a task for hydrologists, must nonetheless be included in the model. CRWR embarked upon the first phase with the City requirements serving as the project objectives: to model water quantity and quality, to account for BMPs, and to consider present and future conditions. 1.3 Phase I Development Christine Dartiguenave, Mike Barrett, David Maidment, and Francisco Olivera all contributed to this phase of the project during 1996 and 1997. Conceived within a Geographic Information System (GIS) framework, the model made significant strides in the development of input data and the application of GIS for water quality calculations. The input parameters necessary to determine non-point source pollution loading include precipitation, topography, and land use. Relationships derived from observed data were used to link land use to impervious cover, then to tie impervious cover to both runoff coefficients and Event Mean Concentrations (EMCs). A 30m Digital Elevation Model (DEM), which consists of a sampled array of elevations at regularly spaced intervals, was used to determine the path of the water as it flows in the direction of steepest descent. And finally, precipitation was utilized to determine the quantity of water in the system. Model calculations were based on impervious cover / runoff relationships, event mean concentrations (EMCs), and BMP efficiencies. By applying the necessary relationships, a runoff coefficient grid and an EMC grid were derived for 4 both storm flow and base flow. The load produced by each cell was then determined by multiplying these grids by precipitation: load = runoff coefficient * EMC * precipitation volume. The path followed by the water through the landscape was used to determine the total loading contribution at any cell. The City of Austin supplied information for current BMPs and estimates for future BMPs. Using these data, the reduction of loads due to BMPs was modeled. While Phase I was a successful undertaking, there were limitations. The model succeeded in creating a more accurate spatial database of the City?s hydrologic features than previously existed. In addition, the correlation between observed and predicted flows and loads was good in certain watersheds. However, the method of determining future land use projections produced distorted results. The flow correction methodology, applied on a watershed basis, led to conflicting results when applied to similar subwatersheds in different drainage basins. Finally, where pollutant loading measured at USGS gage sites exceeded modeled loads for certain constituents, this was attributed to channel erosion effects not being incorporated within the model and was corrected in a spreadsheet. 1.4 Objectives of Phase II Phase II, undertaken in 1998-2000, addressed the limitations in the first- phase model. The objectives set out by the City for this phase included these: ? Expand the study area to incorporate all watersheds touching the City of Austin?s five mile Extra-Territorial Jurisdiction (ETJ), as seen in Figure 1-1 ? Develop new future land use methodology 5 ? Develop alternate load correction methodology ? Incorporate improved data sets ? Minimize reliance on ArcInfo ? Develop improved flow correction methodology Figure 1-1 Buffered Study Area with City Jurisdiction and Watersheds In particular, changes were made to future land use projections, flow and load correction methodology, and software application. Almost all data sets were updated, reflecting improved technology and recent investment in data resources. Additionally, the City wanted to incorporate new flow data that represented a different definition of base flow: namely that base flow is flow in creeks three days after the most recent storm. This assumption of base flow significantly decreased the ratio of base flow to storm flow compared to methods previously used; for example, 6 in Barton Creek at Lost Creek the baseflow previously was 76% of the flow and under the new assumptions is 34% of the flow. In the Phase I study, the use of traffic serial zones (TSZs) as the basis for projecting future land use resulted in erroneous results. This dataset was chosen because the Planning, Environmental and Conservation Services (PECS) Department of the City projects population and employment at the TSZ level. Often, TSZs cross watershed boundaries and the zonal average over the TSZ does not accurately represent all sections of the TSZ when segregated. In order to address this limitation, we explored other options of projecting future land use. Transition matrices and linear regression models were two methodologies explored; however, these methodologies did not encompass changes in policy or legislation. In the end, TSZs did serve as a basis for future land use projects, although improved land use data allowed for more detailed assignment of land use changes. In Phase I of the model, loadings were based on the pollutant contribution being a function of impervious cover. Unfortunately not all pollutant activities can be simplified by this relationship ? as channel erosion and other instream processes also have an effect. Phase II of the model includes a correction factor for pollutant loads estimates based on the difference of the measured pollutant load at USGS sites and those calculated by the model on surface runoff calculations alone. This correction factor is then assigned on a cell-by-cell basis rather than being assigned to the streams as before. Additionally, in the time between the completion of Phase I and commencement of Phase II, there have been improvements in technology. The 7 Phase II model was able to take advantage of these improvements in its re-creation. ArcView 3.1 is able to manipulate data better than was previously possible in earlier versions. This improvement allowed for a shift from ArcInfo to ArcView for the platform of the model. Due to the software conversion, the model should be accessible to more policy makers than previously. Another modification reflects data improvements. Thirty-meter DEMs are available as a continuous coverage (in 1 degree x 1 degree grid blocks) for the state of Texas. Also, the Capital County Area (CAPCO) spent $5 million on aerial photography to create data coverages for a multitude of purposes. We were able to take advantage of these coverages, particularly in creation of a detailed and more accurate stream coverage. These improvements were the crux of the work in Phase II. 1.5 Material Presented This thesis documents the development of the Phase II model. A review of past work is presented in Chapter 2. The sources and development of data sets comprises Chapter 3. Chapter 4 details the methodology behind the calculations; first flow, load, and effects of BMPs calculations are described and then future land use and channel erosion methodology. Chapter 5 discusses the results of the model?s predications and compares them to USGS and City data. Limitations and conclusions are found in Chapter 6. 8 2 PREVIOUS WORK As discussed in the introduction, there were three primary objectives of the Water Quality Masterplan model for the City of Austin: 1) compute current flow and pollutant loadings, 2) estimate future flow and loadings, and 3) model the influence of Best Management Practices (BMPs). This chapter discusses knowledge from other fields that contributed to this project. The literature can be divided into three categories: hydrology, planning and policy. First, hydrology literature is reviewed for definitions of storm flow and base flow, for the link of impervious cover to both runoff coefficient and water quality, and also, a brief review of other models that attempt to estimate non-point source pollution. Second, a review of planning literature documents different methods for projecting future land use changes. Finally, a review of the ordinances affecting BMP implementation in the study area is presented. 2.1 Hydrology Literature 2.1.1 Base flow / Storm Flow Separation The components of stream flow can be separated into three categories: surface or direct runoff, rapid subsurface flow or interflow, and groundwater flow or base flow. ?Only two flow components generally need to be recognized in most practical procedures? (Pilgrim, 1993). For the purposes of this model, flow is divided into two segments: direct runoff (hence labeled storm flow) and base flow. One important assumption made by the City of Austin is the storm flow / base flow 9 separation. In order to better understand the assumptions made, it is helpful to explore generally accepted base flow / storm flow separation methods. All base flow / storm flow separations are based on the streamflow hydrograph and the notion that in this hydrograph there is a rising limb, a peak runoff, and falling limb. Three common methods of estimating the base flow based on these characteristics are the straight-line method, the fixed base method and the variable slope method. In the straight-line method, one draws a straight horizontal line from where storm flow (surface runoff) begins to the intersection with the falling limb. The fixed base method assumes the surface runoff ends at a fixed time after the hydrograph peak. In the variable slope method, the base flow is extrapolated from before the point where storm flow begins to the time of inflection, then is extrapolated from the point of inflection to the to the falling limb of runoff. (Chow et al, 1988) If any of these methods were chosen, hydrograph data would be required to create separation assumptions for each watershed. The City of Austin, The City made the assumption that base flow "begins" three days after the last rain. Thus, any flow that occurs while it is raining or for three days after the rain is assumed to be storm flow. In some ways, this is similar to the fixed base method. However, the time where peak runoff occurs would vary for different watersheds; likewise, the time that peak runoff occurs would not necessarily correspond with the final day of rain for a storm. 10 2.1.2 The Significance of Impervious Cover In order to develop any model, relationships are developed that define one variable as a function of one or more other variables. For this model, it was necessary to develop relationships to approximate flow and loads ? or relatedly, runoff coefficients and concentrations. In this vain, literature was reviewed to establish if impervious cover is a reasonable parameter on which to base these calculations. Runoff Relationships The runoff coefficient for a watershed is defined as the ratio of runoff volume to rainfall volume. Much literature has shown that this runoff coefficient is directly proportional to the degree of imperviousness (Novotny, 1994; EPA, 1993; and Schueler, 1994). Of course there are other factors that influence the amount of rainfall that is converted to runoff: including, soil moisture, rainfall intensity, and slope. The more factors that are included in the development of the runoff coefficient, the more complicated a model becomes. A widely used methodology for estimating runoff, particularly for individual, large storms, is the Soil Conservation Service method. The factors in the SCS method to calculate runoff include: rainfall (P), potential retention (S), and the curve number (CN), which is based on the soil characteristics. Included in these soil characteristics is not only the hydrologic soil group, but also the land use and land cover characteristics. Depending on the soil type a parcel of land with 65% impervious cover could have a runoff coefficient between 58% and 85%, while the runoff coefficient of the same parcel with no impervious cover could range from 8% 11 to 60%. Obviously soil type has a significant impact on the value of a runoff coefficient where there is little impervious cover. (Rawls et al, 1993) Unfortunately at the time this research began, sufficiently detailed soils coverage was not available for the study region. Recently, data has become available, which would make it possible to explore the use of soils as a variable in the calculation of runoff. However, for the purpose of this phase of the model, the relationship is simply based on runoff as a function of impervious cover and precipitation. Impervious Cover/Water Quality Relationships The contribution of non point source pollution is often tied to event mean concentration (EMC). EMC is the ratio of total pollutant mass to total runoff volume. Often EMCs have been tied to land use. While the link to land use has been a common assumption, the City of Austin small watershed water quality data does not support this assumption: while a strong correlation was not evident for land use, there was an apparent correlation of EMC with impervious cover. (Barret et al, 1998). Barrett is not the only researcher to note a correlation with impervious cover and EMCs, Novotney (1994) and Shueler (1994) also document this relationship. In Shueler?s Simple Method, annual loads are assumed to be a direct function of watershed imperviousness. 2.1.3 Non ? Point Source Water Quality Models Computer models have been developed over the past twenty years that attempt to model non-point source pollution. As the development of Total Maximum Daily Loads (TMDLs) has come to the forefront, these models are being 12 further improved and developed. However, even with all this work, there is no single model that has been accepted by everyone, since there is no single model that meets the needs of every situation. There are a number of reviews in literature that outline the non point source models commonly used (Novotny, 1994; EPA, 1994; and Devries, 1998). This section only attempts to serve as a brief overview of these models and those that have been previously developed at the Center for Research in Water Resources. The EPA divides watershed loading models into three categories based on their level of complexity: simple methods, mid-range models, and detailed models. Simple models are those that can be used to provide a general picture of critical loading areas with minimal data requirements. These models include the EPA Screening Procedures, The Simple Method, USGS Regression Approach, the Simplified Pollutant Yield Approach, Watershed, The Federal Highway Administration Model, and the Watershed Management Model (WMM). Mid-range loading models generally take advantage of GIS and allow for evaluation of sources and impacts over broad geographic scales and often allow calculations of seasonal or inter-annual variability. Mid range models include the Stormwater Intercept and Treatment Evaluation Model for Analysis and Planning (SITEMAP), the Generalized Watershed Loading Functions (GWLF) Model, the Urban Catchment Model (P8-UCM), Automated Q-ILLUDAS (AUTO-QI), and the Agricultural Nonpoint Source Pollution Model (AGNPS). Detailed models, while requiring an intense investment of time and resources, are able to best represent current understanding of watershed processes. 13 These models are often able to take into account continuous decay functions, variations of time steps, and often have greater spatial resolution than the simple and mid-range models. These advantages are not without their shortcomings, especially in the time and expertise required to prepare the input data and analyze the results. These models include Storage, Treatment, Overflow Runoff Model (STORM), Areal Nonpoint Source Watershed Environmental Response Simulation Model (ANSWERS), Multi-event urban runoff quality model (DR3M-QUAL), Simulation for Water Resources in Rural Basins-Water Quality (SWRRBWQ), the Storm Water Management Model (SWMM), and the Hydrological Simulation Program FORTRAN (HSPF). Many of these models, as expected, focus on watersheds that are primarily agricultural, and thus do not particularly apply to the City of Austin study area. Two models that have been used by the City of Austin in the past are SWMM and WMM. The Watershed Management Model is a spreadsheet-based model originally developed by Camp, Dresser and McKee for the Florida Department of Environmental Regulation. The WMM was applied to the Shoal Creek watershed with some success; it was able to estimate annual loads and take into account BMPs. Because Shoal Creek is largely developed, future land use projections were not conducted although the model has this capability. Likewise, as the Shoal Creek watershed does not interact with the Barton Springs Recharge Zone, the ability of the WMM to handle recharge was not evaluated. The SWMM model on the other hand is a complex model which was originally developed to model runoff quantity and water quality process for single events. Now it is possible to model in a time 14 series and apply the model to a wide range of processes. The SWMM model was applied to the Barton Creek Watershed; because of SWMM?s groundwater limitations, only the area above the recharge zone was modeled. Both of these models were applied to City watersheds with adequate results, but unlike the previous GIS model developed by Dartiguenave (1997), the study area was limited to one watershed at a time and recharge was not taken into account. In addition to these well reviewed models, there are a series of models developed at the Center for Research in Water Resources that are GIS stand alone models. The City of Austin model developed at CRWR by Dartiguenave et al has been alluded to throughout this thesis. (Dartiguenave, 1997) Other models were developed for Galveston Bay, Corpus Christi Bay, Tillamook Bay, and the San Antonio-Nueces Coastal Basin (Melancon, 1997). Unlike the models mentioned previously, all of these models offer complete integration with GIS. These models would be classified as simple or mid-range models and use digital elevation models, EMCs based on water quality data, and flows at gage stations in order to establish a relationship between land use and water quality and quantity. While they only produce estimates of annual loadings, they take advantage of existing GIS data to apply the assumptions on a variety of areas 2.2 Land Use Projections Discussion Just as there have been numerous models developed to estimate non-point source pollution, there is an entire collection of current and future land use models. The majority of the literature on the subject is written by planners who are interested in future land use in terms of planning transportation expansion. Biologists have 15 also developed land cover models that predict trends in changes in land cover based on satellite imagery. The discussion of land use projections in this section is limited to those that can be conducted within a GIS environment or within a GIS environment supplemented by a spreadsheet. In particular, Markov Chains, multi- logit models, and simple linear relations are discussed. 2.2.1 Markov Chain / Transition Matrices One methodology for future land use projections that has been used particularly for land cover and satellite imagery is a Markov Model. (Muller, 1994 and Boerner, 1996). The idea behind models based on Markov Chains is that Prob(X t =a j |X t-1 =a i ) gives the probability that the process at time t will be in ?state? j given that at time t-1 the process was in ?state? i. For example, the probability that a parcel of land will be residential in the year 2000 given that it was residential in 1995. If a process is divided into m states, then m 2 transition probabilities must be defined. Thus, if there are 14 land use categories, 14 2 , or 196, transition probabilities are needed. Transition probabilities are represented by the m X m matrix P Any row of P must sum to unity Once P is known, all that is required to determine the probabilistic behavior of the Markov chain is the initial state of the chain. Then: p (1 ) = P (o) P p (2 ) = p (1) P = p (0) P 2 P (n) = p (0) P (n) P (n+m) = p (m) P (n) This seems to be a plausible method of calculating future impervious cover. However one constraint is data consistency. This methodology has been successfully applied when there are numerous data sets to base the transition matrix upon and 16 relatively few land cover categories. In the City of Austin example, the probability matrix calculated would rely on the change in land use from 1990 to 1995. There are two primary limitations to applying this to the City of Austin. First, only two data sets (1990 and 1995) exist for temporal comparison. Second, it would be difficult to exclude changes in land use that are simply reflect changes in the accuracy and procedure of the gathering of data; for example, in the more-detailed 1995 data set roads within residential areas are classified as transportation, while in the 1990 dataset, complete subdivisions were labeled as residential, without special consideration to roads. Also, this methodology is assuming a linear relationship from one 5-year period to the next. The ease of development and its ability to fit right into the input pattern of our model is an appealing aspect of this methodology. However, one should not overlook the limitations. It is only as accurate as the land use data that exists. 2.2.2 Multi-logit Models The California Urban Futures Model, developed by John Landis (Landis, 1995), is an example of a multinomial logit model that allows policy makers to explore a variety of land-use policies. The model operates within a GIS environment. Unlike other land use models, it is ideal for a small scale area. It is, however, rather data intensive. The spatial database required includes environmental, land use, zoning, current density and accessibility characteristics of all sites in a given study region. In addition to the spatial database, there is a spatial allocation submodel and annexation-incorporation submodel. Implicit in the model is that private land developers will make the location and timing decisions, based on 17 governmental regulation; thus, it is profit maximizing subject to government regulations and influenced by public infrastructure investments. While a substantial tool for land use planners, this model is ?extremely data hungry? (Landis, 1995). The requirements of this model were beyond the scope of this project, but by understanding its assumptions, the limitations of future land use methodologies were better understood. Neither of these models was used for this research, but by better understanding the possibilities, the future land use methods were improved. The City of Austin wanted to adhere to employment and population projections made by the Planning and Environmental Conservation Services Department. This requirement was one more reason to discard Markov Chains as an option. The intense data requirement of the California Urban Futures Model limited its applicability to the City of Austin. 2.3 Policies Affecting City of Austin Water Quality Masterplan In order to fully understand the purpose of the City model, a review of the City of Austin Watershed Ordinances is helpful. It is these ordinances that influence the Best Management Practice requirements, the impervious cover allowed for future development and setbacks from waterways. While trying to protect City waterways, the City must also allow for growth to occur; the City is trying to manage this development through a set of policies called Smart Growth ? encouraging growth and infill in less environmentally sensitive areas and placing restrictions on areas that are environmentally sensitive. This section outlines the ordinances affecting watersheds and the implications of these ordinances. 18 Ordinances affecting watersheds first began in 1980. Even before this date, zoning was used to influence land use and development. In addition to watershed ordinances and zoning, the Austin Tomorrow Plan, a comprehensive plan that was passed in 1979, outlined many of the watershed protection goals. All of these watershed protection ordinances are codified in the Land Development Code. Watersheds Ordinances: A Retrospective presents a comprehensive overview of the ordinances; this section summarizes the document. (COA, 2000a) 2.3.1 Ordinances Lake Austin Watershed Ordinance (LAWO), 1980, established slope based impervious cover limits of up to 30 percent, although these were raised to a maximum of 80 percent with transfers. The LAWO had a provision for water quality and quality structural controls, i.e. BMPs, if ordinance standards were not met. Additionally, prior to subdivision application approval, an erosion/ sedimentation plan had to be submitted. Barton Creek Watershed Ordinance passed in 1980, capped impervious cover at 35% for commercial and multi-family development. The ordinance relied entirely on non-structural controls, having no requirements for water control structures. This ordinance introduced set back requirements and created incentives for the transfer of development rights of land in the critical water quality zone to the City as parkland. The Williamson Creek Watershed Ordinance applied to the part of Williamson Creek crossing the Edwards Aquifer recharge zone. It established 19 impervious cover limits of 40 percent for single and two-family homes, limits of 65 percent for commercial and multi-family developments, and stream setbacks. In 1981, the Slaughter, Bear, Little Bear, and Onion Creek watersheds were protected under the Lower Watersheds Ordinance. In addition to limits of 40 percent (55 percent with transfers) for commercial development and 30 percent (40 percent with transfers), the LWO set impervious cover limits of 18 percent and 15 percent in a water quality buffer zone. The Comprehensive Watershed Ordinance, 1986, expanded the application of water quality protection to all watersheds within the City, except urban watersheds. This ordinance also switched the calculations of percent impervious cover from gross site area to net site area ? thus basing percent impervious cover calculations on buildable area. Urban Watershed Ordinance amendments were incorporated in 1991; while not placing a limit on impervious cover, these did require water quality control structures to treat storm water runoff. The Save Our Springs Ordinance (S.O.S.), passed by Austin voters in August 1992, became law by citizen initiative. It limited impervious cover to 15-25 percent. New developments are required to be set back from streams and not increase the amount of urban rainfall runoff pollution. 2.3.2 Summary of Regulations While it is interesting to understand the ordinances that affect watershed regulations, sometimes it is difficult to discern the resulting implications for land use development. The tables in this section summarize the watershed regulations 20 currently applicable within the City of Austin jurisdiction; these tables are drawn from the City of Austin Watershed Regulations Summary (COA, 2000b) and the Land Development Code (COA, 2000c). The percent impervious cover allowed for future development has been an aspect of water quality control since the very first watershed ordinance. Table 2-1 documents the current impervious cover limits by watershed and land use type; the variation in impervious cover limits for the water quality transition zone is also included in the table. Finally, transfers are allowed for some watersheds as documented in the final column of the table. 21 Table 2-1 Impervious Cover Limits, based on Net Site Area, and Transfers Single- Family Multi- Family Commercial Water Quality Transition Zone Transfers Allowed Urban No Limitation No Limitation No Limitation N/A No Suburban City Limits 45-60% 60-70% 80-90% 30% Yes De sire d De v e lopme n t Zone Suburban North Edwards/ETJ 45-60% 60-65% 65-70% 30% Yes Water Supply Suburban 30-40% 40-55% 40-55% 18% Yes Water Supply Rural 1 Unit / 1-2 Acres 20-25% 20-25% 1 SF Unit / 3 acres Yes Recharge 15% 15% 15% NONE No Barton Creek 20% 20% 20% 1 SF Unit / 3 acres No Dr ink i ng Wa te r P r ote c t ion Zone Barton Springs Zone Contributing 25% 25% 25% 1 SF Unit / 3 acres No Waterway setbacks are based on watershed classification and waterway classification. Waterways are classified based on the size of drainage areas, as documented in Table 2-2. 22 Table 2-2 Waterway classifications Drainage Area Minor Intermediate Major Urban 64 Acres 64 Acres 64 Acres Suburban City Limits 320-640 Acres 640-1280 Acres Over 1280 Acres Desired Develop m ent Zone Suburban North Edwards/ETJ 320-640 Acres 640-1280 Acres Over 1280 Acres Water Supply Suburban 128-320 Acres 320-640 Acres Over 640 Acres Water Supply Rural 64-320 Acres 320-640 Acres Over 640 Acres Drinking Water Protection Zon e Barton Springs Zone 64-320 Acres 320-640 Acres Over 640 Acres Based on these waterway classifications and the watershed classification, waterway setbacks are defined for the Critical Water Quality Zone and the Water Quality Transition Zone. The Critical Water Quality Zone setbacks, distance from creek are delineated in Table 2-3. 23 Table 2-3 Critical Waterway Setbacks Minor Intermediate Major Urban 50-400 ft. 50-400 ft. 50-400 ft. Suburban City Limits 50-100 ft. 100-200 ft. 200-400 ft. Desired Development Zon e Suburban North Edwards/ETJ 50-100 ft. 100-200 ft. 200-400 ft. Water Supply Suburban 50-100 ft. 100-200 ft. 200-400 ft. Water Supply Rural 50-100 ft. 100-200 ft. 200-400 ft. Barton Creek 400 ft. min. 400 ft. min. 400 ft. min. Drinking Water Protection Zon e Barton Springs Zone All other waterways 50-100 ft. 100-200 ft. 200-400 ft. According to Section 25-8-93 of the Land Development Code, except for Lake Austin, Lake Travis, and Town Lake, a water quality transition zone is established adjacent and parallel to the outer boundary of each critical water quality zone. The width of a water quality transition zone is: 100 feet for a minor waterway; 200 feet for an intermediate waterway; and 300 feet for a major waterway. (COA,2000c). Finally, the ordinances dictate the implementation of best management practices as water quality controls. There are three types of water quality controls highlighted in the land development code: sedimentation, filtration, and non- degradation. Sedimentation and filtration structures are required in all watershed classifications. In the Barton Springs Zone, the water quality treatment standard is that of non-degradation ? the water quality treatment must be sufficient so that the water quality does not degrade with new development. Alternative strategies of 24 water quality control are allowed in all watershed classifications except the Barton Springs Zone; on the other hand payment in lieu is only an option for urban watersheds. The model documented in this thesis encompasses many of the policies outlined in this section. Best Management Practices are included and their implementation in future conditions is based on the requirements in the Land Development Code. Impervious cover limitations are also included. One aspect that has not been discussed, and is not included in the model, is grandfathering. The grandfathering of some developments within watersheds subject to these ordinances is a difficult aspect to estimate, or model. 25 3 DATA A considerable amount of time was invested in the development and improvement of numerous datasets required for the model. This chapter first outlines the sources of raw data. Then a description of the methodology for data refinement is presented. Finally, the source of data used for the calibration is explained. All data unless otherwise mentioned is in the Texas Central State Plane mapping system, which is the mapping system used by the City of Austin for all GIS analysis. 3.1 Raw Data The model inputs can be broken up into the terrain, stream network, precipitation, land use, and City information. 3.1.1 Terrain The source of the terrain data was the USGS National Elevation Dataset (NED). This dataset provides seamless raster elevation data at 1:24,000-scale in one- degree blocks. NED is provided in a geographic projection with NAD83 horizontal datum. The cell size is one arc-second (approximately 30 meters); NED elevation values are in decimal meters. For use in this model, the one-degree blocks were merged together, projected into NAD83 with cell dimensions of 100 ft on a side, Texas Central State Plane mapping system. The resulting grid was labeled Raw_DEM. 26 3.1.2 Stream Network CAPCO (Capital Area Planning Council) funded a multimillion-dollar project in 1997 to digitize features such as roads and buildings from aerial photogrammetry for the purpose of improving access to Emergency Services. The scale of the orthoimagery is 1?=800? (1:9600) within the City and 1?=1500? (1:18,000) in surrounding areas. A stream network for the City of Austin was digitized from the City?s 1:9600 orthoimagery. The entire flow network as digitized for the City included over 60,000 records representing a total length of 6,300 miles in a 1,400 square mile study area. While a vast improvement in detailed representation of the urban streams compared to the 1:24,000 flow network previously used, the new stream network had some gaps that needed to be filled ? a process discussed in Section 3.2.1 that resulted in the creeks_asi theme. 3.1.3 Precipitation The average annual rainfall for the City of Austin used for the first phase of the model was 31.08 inches per year. However, there is significant spatial variation in rainfall found over the City. Unfortunately, while there are several gage stations throughout the City, there are few rainfall gages with a significant, continuous, period of record. Without consistent, local rainfall gage data representing the spatial variation, the PRISM (Parameter-elevation Regressions on Independent Slopes Model) 1 rainfall data developed by Oregon State University was utilized. This model uses point data, a digital elevation model, and other spatial data sets to generate estimates of monthly, yearly, and event-based climatic parameters, such as 1 PRISM web site: http://www.ocs.orst.edu/prism/ 27 precipitation, temperature, snowfall, and dew point. The annual precipitation data for the State of Texas were downloaded from the PRISM web site, projected into NAD83 State Plane coordinates, and clipped to the study area, as shown in Figure 3-1. This data set, precip, represents the average mean annual precipitation for 1961- 90. 3.1.4 Land Use The Land Use coverage used represents a compilation of land use files from the City of Austin Planning, Environmental and Conservation Services (PECS) Figure 3-1 Precipitation shapefile for the State of Texas. Study area highlighted in yellow. 28 Department and USGS. The City 1995 land use coverage is based on lot lines from the City's Infrastructure Support Services Base Mapping Department; this dataset covers only a portion of the study area. A second landuse file from the City ? the 1990 City land use coverage ? was based on digitized Travis Central Appraisal District subdivision plats; this 1990 landuse coverage encompasses a larger area than the 1995 file, but at lower resolution and with less accuracy. 2 For areas not covered by either City land use file, USGS land use data were used. The land use data set compiled by the USGS was based on manual interpretation of aerial photographs. The USGS LULC data is found in the Universal Transverse Mercator (UTM) projection. 3 Using these three data sources, a landuse coverage for the entire study area was created. The land use codes used by the City of Austin differed from the USGS land use data. After the USGS data was translated into the City of Austin code system and projected into Texas Central State Plane, the three coverages were merged together in ArcInfo, yielding the landuse coverage. The use of this file to create an impervious cover dataset is discussed in Section 3.2.3. 3.1.5 City of Austin Shapefiles In addition to the files previously mentioned, there were a number of files that were generated and maintained by the City of Austin. These include the recharge zone of the Barton Springs? aquifer, points of interests, and regulatory and jurisdictional boundaries. 2 City Land Use web site: http://www.ci.austin.tx.us/landuse/1995lus.htm Accessed: June 25, 2000. 3 USGS Land Use web site: http://edcwww.cr.usgs.gov/glis/hyper/guide/1_250_lulc Accessed: June 25, 2000. 29 Parts of Austin lie over the Edwards Aquifer recharge zone. In these areas, aquifer recharge must be taken into account. In order to do so, the recharge area must be spatially defined. The City of Austin provided a shapefile of the Edwards Aquifer recharge zone that coincides with the study area. The segment of the recharge zone that is specific to Barton Springs is highlighted in yellow in Figure 3-2. Figure 3-2 Edwards Aquifer Recharge Zone 30 The City of Austin Watershed Protection Department is particularly interested in data at specific points within the study area. These points include USGS gage stations, Environmental Integrity Index (EII) Sites, and the outlets of the creeks. These points of interest were provided by the COA in the shapefile sites as seen in Figure 3-3. This shapefile was also divided into the separate categories: sites_usgs, sites_eii, and sites_outlets. Figure 3-3 Points of Interest: Gage Stations, EII sites, Outlets Regulatory areas are defined as Urban, Suburban, Water Supply Suburban, Water Supply Rural and the Barton Springs Zone. The distinction between Water Supply and non-Water Supply reflects those watersheds whose drainage enters the Colorado River upstream of the City water treatment plants? intakes, while the Barton Springs Zone encompasses all areas in the contributing and recharge zone of the Barton Springs segment of the Edwards aquifer. Figure 3-4 illustrates this wshd_reg shapefile. 31 Figure 3-4 Regulatory Zones The City of Austin PECS Department is responsible for City population and employment data collected for the 641 traffic serial zones (TSZ) within the City planning area. In addition to current conditions, which actually represent 1996 data, they produce projections for future years as well. These current and future data were used for the future land use projections discussed in Section 4.4.2. The data provided included a shapefile representing the TSZ areas, TSZ, and tables representing current and future conditions: base_96.dat and W2040.dat. The shapefile is presented in Figure 3-5. 32 Figure 3-5 Traffic Serial Zones 3.2 Data Development While the data discussed in Section 3.1 encompasses the raw data that was used for the model, further modification was required for a number of data sets, beyond merging and projecting coverages and grids. The three most intense projects are outlined in this section: building the stream network, improving watershed boundaries, and developing land use impervious cover relationships. Watershed Protection Department staff implemented the majority of the data development work documented here. 3.2.1 Building the Stream Network Once the digitized stream network was established, the Watershed Protection Department of the City of Austin made modifications to the network to improve the 33 quality of the data. The correction process implemented by the the Watershed Protection Department occurred in three stages: ? Connecting gaps between stream segments ? Checking the correctness of the network with the City Engineering staff ? Using a tracer program to connect all the arcs In addition to the above corrections, certain disjointed stream segments were deleted if their relative importance to the stream network was negligible. Examples of these segments included ditches on both sides of a railroad bed (one segment is deleted) and short reaches far from any tributary. The modifications made to a segment of Waller Creek are typical of the correction process. Figure 3-6 Non-Continuous Stream Network Example: Waller Creek The Watershed Protection Department used several source files to aid in the revision process: 2-foot contours created from the 1997 orthophotos, a file showing 34 concrete channels, piers, docks, and dams, streams delineated from USGS topo maps, digital orthophotos and storm sewer maps. Figure 3-7 Datasets Used to Correct Stream Network Using these datasets, the flow lines following storm sewers and the centerlines of ponds were created and added to the network, resulting in a connected flow network for Waller Creek. 35 Figure 3-8 Corrected Flow Network for Waller Creek Field investigations conducted by the Watershed Protection Department supplemented the spatial data sources in situations where sewer maps and highway designs were not sufficient. Through this network refinement process approximately 5% of the records in the network were edited, added, or deleted. Along with the stream data set, 21 water bodies, such as lakes and ponds, were also included in the water files used in the watershed delineation process. Another attribute added to the stream network at this point was a unique value for each stream record that is associated with its mouth site. These mouth site values served as a way of distinguishing between creeks in different watersheds. After investing considerable time and effort into the correction process, a complete flow network with more than 62,000 records was provided by the 36 Watershed Protection Department to serve as the creek dataset for this project. The network is denser in the Travis County area where the sampling scale was finer in comparison to the surrounding counties. Figure 3-9 City of Austin Flow Network 3.2.2 Watersheds: Delineating and Comparing To Known Boundaries At CRWR, watersheds were delineated in ArcView from the digital elevation model (DEM) and the Austin stream network using CRWR-PrePro. 4 The Austin stream network and water bodies were burned into the Raw_DEM by adding 5,000 feet (elevation rise) to the value of all cells outside of the creeks_asi, creating Burn1_DEM; then, 4,500 feet was subtracted from all cells outside the stream network that correspond to waterbodies, resulting in Burn2_DEM. This creates ?canyons? where water features occur so that streams delineated by the DEM match those in the Austin flow network. Note that this grid is used only for computing the direction that water will flow from cell to cell, so the fact that this grid no longer represents the true elevation values of the Austin area is not important. 4 CRWR Pre Pro: http://www.ce.utexas.edu/prof/olivera/prepro/prepro.htm 37 Figure 3-10 Creation of Burned and Filled DEM Sinks (depressions in the DEM which cause erroneous flow direction) were filled in the Burn2_DEM, and the flow direction grid, fdr0, was calculated. Ordinarily watersheds are delineated using single points as the outlets. However, because of the level of detail in the stream network as compared to the resolution of the grid data, the watersheds were delineated using the entire stream as an outlet, instead of simply the mouth sites. This ensured better delineation in the dense stream networks bordering the Colorado River. The additional step necessary to create these watersheds is a conversion of the creeks shapefile to grid, with the grid value 38 corresponding to a unique value for the watershed. This stream grid is then used as an ?outlet? grid input for CRWR-PrePro. Figure 3-11 Delineation of Watersheds from Stream Grid These watershed boundaries, wshd0, were then provided to the City so they could be compared to the preexisting watershed dataset (citywshd), existing mapped boundaries, and aerial photogrammetry to develop a more accurate set of watershed boundaries. 39 Figure 3-12 Comparison of Old Watershed Boundaries (black) With Those Calculated From the DEM (red) An example of where Watershed Protection Department edited the watershed boundaries is found on Highway 71, near the I-35 interchange. In addition to the files mentioned before, design drawings of the highway were consulted to accurately depict the watershed. 40 Figure 3-13 Delineated Watershed Boundary vs. Edited Watershed Boundary Once the revised watershed boundaries were received from the City, a file representing known boundaries (wshd_lines) was created and converted to a grid (wall0). Cells that represented both a stream and a wall had to be checked ? to see if they were outlet cells. In the wall building process, an outlet had to exist for each watershed. At outlet points, outletpt, the wall grid value was switched from one to zero ? so no elevation change would occur in that cell. This modified wall grid (wall) was then used to build walls in the Burn2_DEM so that water could not flow out of a given watershed at the wrong location. The walls were built by raising the value (elevation) of cells by 10,000 in Burn2_DEM where the wall boundaries are located using ArcView Analysis Map Calculator, thus creating the Wall_DEM. This Wall_DEM served as the ?new? raw DEM for the purposes of CRWR-PrePro. 41 Figure 3-14 3D representation of Burned in Creeks and Built Walls Sinks in this grid were then filled (fill), and the flow direction (fdr) and flow accumulation (fac) grids were calculated. Figure 3-15 Building Walls from Edited Watershed Boundaries 42 Watersheds were then delineated to the mouth sites (sites_outlets) using CRWR Pre-Pro. These watersheds reflected the true boundaries as defined by the walls grid (wshd_outlets). Figure 3-16 Comparison of Watershed Boundaries Calculated from Grid (red) with Edited Vector Boundaries (blue) 3.2.3 Delineating Watersheds from Points of Interest With the accuracy of grid watershed delineation confirmed, subwatersheds could now be delineated from points of interest. For the Water Quality Masterplan, the City of Austin is concerned with Ecological Integrity Index (EII) sites and USGS stream gages. Points of interest had to be located on both the vectorized stream network and the grid representation of the stream network. Otherwise, if uncorrected points were used for delineation, inaccurate watersheds would be generated. It was not possible to use stream segments to define watersheds as a time consuming step of delineating to stream segments is unique labeling of segments, which requires not only labeling the streams corresponding to watersheds, but also 43 breaking the stream segments at the appropriate points. Of course as the network and the necessary tools are further developed, this task could be automated; however, automation was not feasible in time for this project. The adjustment of points was done individually in ArcView by the City of Austin. The points of interest are found in the point files sites_usgs, sites_eii, and sites_outlets, as discussed in Section 3.1.5. 3.2.4 Development of Landuse / Impervious Cover Relationships The land use coverage was comprised of three different datasets: City of Austin 1995, City of Austin 1990 and USGS. The land use coverage served as the basis for assigning impervious cover values throughout the study area. These impervious cover values, in turn serve as the basis of flow and load calculations discussed in Chapter 4. Data from the CAPCO aerial photogrammetry were used to calculate these relationships. First, a special polygon coverage was created by the City of Austin Watershed Protection Department which encompassed large civic polygons, undeveloped land that is protected, and other large polygons that have a fixed use. For the larger civic polygons, the Watershed Protection Department used orthophotos and digitized impervious cover areas to get actual measurements. Next, the Watershed Protection Department ?calibrated? the IC by adjusting the ?global? IC assumptions (based on landuse) to ?actual? measurements at USGS sites. The actual IC values were calculated using a program written by Infrastructure Support Services. The program utilized the aggregated landuse file unioned with ASI feature files (representing 100% IC) to determine IC at each USGS site. 44 The land use coverage was converted to a representation of percent impervious cover, based on Table 3-1 corresponding to the EPA land use data and the 1990 land use data; Table 3-2 defines the relation between impervious cover and land use for the areas characterized by the 1995 land use data. Table 3-1 Fraction Impervious Cover for each Landuse Type for 1990 & USGS landuse 1990 & USGS Land Use Urban Suburban Water Supply Suburban Water Supply Rural BSZ Large Lot Single Family 3.0 3.0 3.0 3.0 3.0 Single Family 38.0 25.0 25.0 25.0 12.0 Multi-Family 80.0 75.0 60.0 60.0 60.0 Commercial 72.0 55.0 55.0 45.0 35.0 Office 85.0 55.0 50.0 50.0 50.0 Industrial 60.0 35.0 22.0 22.0 22.0 Civic 40.0 30.0 30.0 25.0 25.0 Park 6.0 4.0 3.0 3.0 3.0 Transportation 65.0 50.0 50.0 50.0 50.0 Undeveloped 12.0 2.5 1.5 1.5 1.5 Table 3-2 Fraction Impervious Cover for each Landuse Type for 1995 landuse 1995 Land Use Urban Suburban Water Supply Suburban Water Supply Rural BSZ Large Lot Single Family 2.0 2.0 2.0 2.0 2.0 Single Family 30.0 20.0 20.0 20.0 12.0 Multi-Family 70.0 60.0 50.0 50.0 50.0 Commercial 70.0 50.0 50.0 40.0 45.0 Office 80.0 50.0 45.0 45.0 30.0 Industrial 60.0 30.0 20.0 20.0 20.0 Civic 35.0 25.0 25.0 20.0 20.0 Park 10.0 3.0 2.0 2.0 2.0 Transportation 70.0 55.0 55.0 55.0 55.0 Undeveloped 3.0 2.0 1.0 1.0 1.0 45 3.3 Best Management Practices (BMPs) Removal Estimation In addition to raw data provided on geographic locations of sites and regulations, the City of Austin provided estimation of load removal by many of the structural Best Management Practices (BMPs) already constructed in the City. Currently constructed BMPs in the City of Austin area usually of three types: ? SED1: extended detention basin which captures ?? water quality volume (the first 1/2? of water * the area of the watershed), ?on-line? or ?off-line? system. ? SAND2: ?on-line? sand filtration system with no pretreatment and ?? water quality volume. ? SAND3: ?off-line? sand filtration system with sedimentation pretreatment and ?? water quality volume. There are essentially three ways BMPs are included in the model: located BMPs defined by load, located BMPs defined by efficiency, and non-located BMPs. 3.3.1 Located BMPs defined by Load Removed For those BMPs whose locations have already been determined in a GIS context, there are shapefiles representing the BMPs and the loads removed. These shapefiles are only a portion of the BMPs that actually exist. The citybmp_current shapefile includes 121 BMP sites throughout Austin that the City maintains; the commbmp_future shapefile represents another 229 BMP locations that were constructed and are maintained by commercial businesses. For future conditions, the commbmp_future includes an additional 11 BMPs that will be constructed in the coming years. These shapefiles and the City jurisdiction boundaries are illustrated in Figure 3-17. Included in the attribute table of these shapefiles are the loads removed for all constituents of interest, as seen in Figure 3-18. 46 Figure 3-17 Located BMPs defined by Load Removed Figure 3-18 Sample Attribute Table for located BMPs 3.3.2 Located BMPS defined by Removal Efficiency Waterbodies within Austin also serve as BMPs, reducing the amount of pollutant load in creek. The effect of these lakes and ponds is based on an efficiency value for 21 lakes and ponds: for all constituents except total dissolved solids (TDS) 80% removal efficiency is assumed; while for TDS 0% removal is assumed. The City of Austin Watershed Protection Department provided these values. In the case of the largest lake, Lake Long, 90% removal efficiency is assumed for all constituents 47 except TDS. The watersbodies shapefile provides the location of these waterbodies in the City, as seen in Figure 3-19. Figure 3-19 Waterbodies treated as BMPs 3.3.3 Non-Located Best Management Practices Unfortunately, the location of a number of BMPs has not been incorporated into the BMP GIS database. In order to include these unlocated BMPs in this model, without having to wait for the BMP database to be updated, regional estimations were made. Additionally, for future conditions, BMPs that will be constructed as land is developed must also be taken into consideration. The methodology of these calculations is discussed in the Section 4.3.3; however, the assumptions of efficiencies are documented in this section. In addition to the BMP categories previously mentioned, two other categories exist for non-located BMPs in areas contributing to the Barton Springs Zone: ? COMP: City of Austin?s Comprehensive Ordinance 48 ? SOS: City of Austin?s Save Our Spring Ordinance, which requires non- degradation based on total average annual loadings For each of these types of BMPs, the City provided an average event removal efficiency (AERE) value for each BMP type, Table 3-3. Table 3-3 Average Event Removal Efficiency Constituent SED1 SAND2 SAND3 COMP SOS BOD 0.24 0.40 0.40 0.81 0.81 COD 0.24 0.52 0.52 0.81 0.81 Cu 0.16 0.40 0.40 0.81 0.81 DP 0.00 0.00 0.00 0.81 0.81 FecalCol 0.00 0.40 0.40 0.90 0.90 FecalStr 0.00 0.40 0.40 0.90 0.90 NH3 0.08 0.48 0.48 0.81 0.81 NO3 as N 0.00 -0.25 -0.25 0.81 0.81 Oil&Greas 0.30 0.40 0.40 0.90 0.90 Pb 0.32 0.64 0.64 0.81 0.81 TDS 0.00 0.00 0.00 0.90 0.90 TKN 0.16 0.40 0.40 0.81 0.81 TN 0.16 0.24 0.24 0.81 0.81 TOC 0.16 0.48 0.48 0.81 0.81 TP 0.20 0.48 0.48 0.81 0.81 TSS 0.40 0.68 0.68 0.81 0.81 Zn 0.16 0.40 0.40 0.81 0.81 In order to determine BMP efficiency, this value must be multiplied by percentage of the volume of runoff that they treat, the annual capture volume (ACV), as defined by the City through the relationships in Table 3-4. Table 3-4 Annual Capture Volume Definitions BMP ACV SED1, SAND2 0.996 ? 0.4714*IC SAND3, COMP 0.9762 ? 0.154*IC SOS 1 In addition to efficiencies, regional estimates of growth and applicability of specific BMPs in different regions of Austin are required. For current conditions, 49 the regions were watersheds draining to sites_eii, while for future conditions, BMP zones were based on regulations and jurisdiction boundaries as seen in Figure 3-20. Figure 3-20 BMP Zones for Future Conditions The City defined the distribution of BMP types used to treat loads for each region as seen in Table 3-5 for current conditions. Table 3-5 Sample Data for BMP Type For EII Sites BMP applied to EII area, by percent EII Station ID SED1 SAND2 SAND3 COMP SOS 53 0% 44% 0% 36% 20% 78 10% 34% 0% 36% 20% 82 10% 34% 0% 36% 20% 88 10% 34% 0% 36% 20% 116 0% 63% 37% 0% 0% 117 0% 63% 37% 0% 0% 118 0% 63% 37% 0% 0% For future conditions, the distribution of BMP types is closely associated with the watershed ordinances that dictate when water quality controls are necessary. Outside the city jurisdictions BMPs are only required in the Barton Springs Zone ? both the recharge and contributing zones as illustrated by the sand filtration 50 requirements. In all other areas outside the City jurisdiction, there is no BMP type required. Only the areas within the City that are in the Barton Springs Zone are required to adhere to the stricter SOS and Comprehensive watershed ordinances. Table 3-6 Projected BMP Implementation for Future Conditions by Type Barton Springs Zone Non-Barton Springs Zone Recharge Zone Contributing Zone COA Jurisdiction BMP COA Non-COA COA Non-COA Urban Suburban Water Supply Suburban Water Supply Rural Non-COA Jurisdiction NONE 25% 73% 14% 100% SED1 10% SAND2 44% 50% 34% 17% 24% 44% 44% SAND3 50% 75% 10% 62% 56% 56% COMP 36% 36% SOS 20% 20% The estimates of acreage developed for current conditions were provided by the City and are represented in Figure 3-21; the development of these estimates for future conditions are discussed in Section 4.4.5. Figure 3-21 Fraction of Area Draining to Non-located BMPs for Current Conditions 51 3.4 Calibration Data For the calibration of flows, loads and best management practices, the collection and definition of ?known? data were important. In this study, data from USGS gage stations served as the calibration data. As mentioned in Section 3.1.5, there are seventeen USGS gage stations that are within the study area; however, the periods of record for these gage stations vary. Compilation of this data and adjustments made where data were not continuous are discussed in this section. 3.4.1 Flow calibration data The City provided non-continuous flow data for the USGS gage stations in the study area. For some of these stations, there were large gaps in the period of record. In order to develop a continuous observed data set, the period of record 1985-1994 was used. However, even in this time period, there were gaps in data. In order to create continuous data sets for eleven gage stations, data were extrapolated where incomplete -- based on correlation with similar watershed (i.e. Boggy/Shoal; Shoal NW/Walnut; Barton/Onion, Williamson/Slaughter). Average annual flows were thus calculated for each gage station, as seen in Table 3-7. 52 Table 3-7 Annual Flow Data at USGS Gage Stations Annual Flows (cfs) Station ID Name 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 Average Annual Flow (cfs) 8154700 Bull Ck. @ Loop 360 19.6 17.5 32.2 7.6 5.3 5.7 12.7 40.6 16.6 4.9 16.28 8155200 Barton Ck. @ State Hwy 71 70.8 52.5 134.9 4.8 15.1 5.2 36.8 182.4 30.0 1.9 53.45 8155240 Barton Ck. @ Lost Ck. Blvd. 90.8 67.3 172.9 6.1 23.6 8.9 50.0 212.3 39.3 2.2 67.34 8156700 Shoal Ck. NW 4.3 2.7 8.1 1.5 1.8 2.2 4.1 10.4 2.6 1.4 3.92 8156800 Shoal Ck. @ 12th St 8.2 6.6 14.1 3.3 5.0 4.2 8.7 15.7 6.5 4.6 7.67 8158050 Boggy Ck. @ US Hwy 183 7.5 7.7 15.1 3.5 5.3 4.5 9.3 16.8 6.9 4.8 8.13 8158600 Walnut Ck. @ Webberville 39.5 24.6 74.0 13.7 16.3 19.8 37.4 94.6 23.6 12.5 35.60 8158700 Onion Ck. Near Driftwood 83.3 61.7 158.6 5.6 15.4 10.7 51.3 195.6 35.8 4.3 62.25 8158810 Bear Ck. 7.5 4.8 15.9 0.5 2.2 0.9 7.4 22.3 3.3 0.2 6.50 8158840 Slaughter Ck. @ FM 1826 8.1 6.5 16.2 0.3 0.7 0.5 5.1 17.9 2.6 0.0 5.79 8158920 Williamson Ck. @ Oak Hill 4.9 6.9 9.9 0.3 2.1 2.3 5.2 12.8 1.5 0.0 4.59 As mentioned, this data covers a ten-year period ? 1984-94; however, the rainfall data covers a different period of record ? 1961-90. In order to use these flows for calibration, while using precipitation data from a different period of record, it was necessary to adjust the flow data. The average annual rainfall data from the airport averaged over the period of record for the precipitation period of record (1961-90) is 31.51 inches, while the average annual rainfall data from the airport averaged over the period of record for the flow data period of record (1985-94) was 34.37 inches. Thus, the average annual flows were adjusted by the proportion of these values, 0.917; the result is summarized in Table 3-8. 53 Table 3-8 Adjusted Annual Flows at USGS Gage Stations 90% Confidence Interval Name Station ID Average Annual Flow (cfs) Adjusted Flow (Cfs) Lower Limit Upper Limit Bull Ck. @ Loop 360 8154700 16.28 14.92 9.18 20.67 Barton Ck. @ State Hwy 71 8155200 53.45 49.00 20.03 77.96 Barton Ck. @ Lost Ck. Blvd. 8155240 67.34 61.74 27.23 96.25 Shoal Ck. NW 8156700 3.92 3.59 2.14 5.04 Shoal Ck. @ 12th St 8156800 7.67 7.03 5.04 9.03 Boggy Ck. @ US Hwy 183 8158050 8.13 7.45 5.31 9.59 Walnut Ck. @ Webberville 8158600 35.60 32.64 19.46 45.82 Onion Ck. Near Driftwood 8158700 62.25 57.07 25.37 88.76 Bear Ck. 8158810 6.50 5.96 2.47 9.44 Slaughter Ck. @ FM 1826 8158840 5.79 5.31 2.18 8.44 Williamson Ck. @ Oak Hill 8158920 4.59 4.21 2.19 6.23 The definition of base flow used by the City of Austin for this project is the flow in creeks three days after the most recent storm; thus, according to this definition all flow is storm flow on days when rain occurs and for the 3 clear days after rainfall ends. This assumption resulted in new values for the percent of annual flow attributed to storm flow and base flow at each site as documented in Table 3-9. 54 Table 3-9 Base flow and Storm Flow Separation Name Station ID %Base Flow %Storm Flow Bull Ck. @ Loop 360 8154700 31% 69% Barton Ck. @ State Hwy 71 8155200 39% 61% Barton Ck. @ Lost Ck. Blvd. 8155240 34% 66% Shoal Ck. @ 12th St 8156800 7% 93% Boggy Ck. @ US Hwy 183 8158050 6% 94% Walnut Ck. @ Webberville 8158600 21% 79% Onion Ck. Near Driftwood 8158700 46% 54% Slaughter Ck. @ FM 1826 8158840 24% 76% Williamson Ck. @ Oak Hill 8158920 18% 82% In order to incorporate recharge to the Edwards Aquifer, the estimates of recharge for storm flow and base flow were calculated by the City of Austin and Mike Barrett 5 . Table 3-10 is a summary of this recharge information. Table 3-10 Recharge Quantity Total Recharge (cfs) Avg. Daily Recharge (cfs) Percent Recharge Base Flow Storm Flow Base Flow Storm Flow Base Flow Storm Flow Barton Ck. @ Lost Ck. Blvd 30,090 33,711 9.04 10.13 47% 53% Bear 12,269 11,562 2.36 2.22 51% 49% Little Bear 12,269 11,562 2.36 2.22 51% 49% Onion Ck. Near Driftwood 57,423 42,264 15.54 11.44 58% 42% Slaughter 7,717 14,233 1.36 2.51 35% 65% Williamson Ck. @ Oak Hill 2,870 4,765 0.67 1.11 38% 62% 3.4.2 Load calibration data The data for load calibration can be broken into two parts ?corresponding to runoff and base flow. Both sets of data correspond to the USGS gaging stations and were provided by the City of Austin. The base flow data is extracted from COA data 5 Based on: "A Parsimonious Model for Simulation of Flow and Transport in a Karst Aquifer" - Technical Report CRWR 269 55 for days of no storm flow, i.e. collections taken more than three days after the most recent storm. Ammonia, Nitrate and Phosphorus were reported in multiple forms, for example Ammonia as N and as NH 3 ; in these cases, the constituents were calculated in one form (as N in the case of Ammonia). Using the number of samples as the weight, a weighted average of the measurements (i.e. for Ammonia as N and as NH 3 ) was calculated. The resulting base flow concentration calibration numbers are seen in Table 3-11. Table 3-11 Base Flow Concentration Data Site Name Bull Ck. @ Loop 360 Barton Ck. @ State Hwy 71 Barton Ck. @ Lost Ck. Blvd. Shoal Ck. @ 12th St Boggy Ck. @ US Hwy 183 Walnut Ck. @ Webbervil le Onion Ck. Near Driftwood Slaughter Ck. @ FM 1826 Williamso n Ck. @ Oak Hill USGS Site No 8154700 8155200 8155240 8156800 8158050 8158600 8158700 8158840 8158920 BOD (mg/L) 0.60 0.44 0.47 0.83 0.60 0.86 0.41 0.69 No Data COD* (mg/L) 15.27 8.85 9.06 7.49 3.76 9.58 No Data No Data No Data Cu(?g/L) No Data No Data No Data No Data No Data No Data No Data No Data No Data DP (mg/L) 0.04 0.01 0.01 No Data No Data 0.03 0.01 0.01 No Data Fecal Coliform (Colonies/100ml) 133.46 66.02 79.00 670.00 174.40 163.60 67.50 62.94 No Data Fecal Strep (Colonies/100ml) 241.09 530.96 173.26 760.00 143.10 369.38 280.00 399.97 No Data NH3 (mg/L) 0.03 0.02 0.03 0.04 0.03 0.04 No Data 0.04 No Data NO3 as N (mg/L) 0.45 0.20 0.34 0.52 0.66 0.89 No Data 0.58 No Data Oil&Grease No Data No Data No Data No Data No Data No Data No Data No Data No Data Pb (?g/L) No Data No Data No Data No Data No Data No Data No Data No Data No Data TDS (mg/L) 372.69 259.52 401.39 424.00 374.85 358.71 296.25 441.79 No Data TKN (mg/L) 0.29 0.25 0.23 0.46 0.31 0.47 0.20 0.32 0.50 TN (mg/L) 0.59 0.34 0.46 0.76 0.79 1.12 0.48 0.81 No Data TOC (mg/L) 2.86 2.59 2.19 3.63 4.95 3.41 2.53 2.21 No Data TP (mg/L) 0.01 0.02 0.03 0.03 0.05 0.03 0.01 0.02 No Data TSS (mg/L) 3.58 2.96 3.47 9.33 3.19 4.57 2.25 3.97 No Data Zn (?g/L) No Data No Data No Data No Data No Data No Data No Data No Data No Data The storm flow data is from the City of Austin, corresponding with dates of recorded storm flow. There were no storm flow COD data measurements; the COD concentration values are instead based on the BOD concentration in storm 56 flow and the proportion of COD/BOD in the base flow data. A summary of the storm flow data is found in Table 3-12; there was no storm data for Slaughter Creek. Table 3-12 Storm Flow Concentration Data Site Name Bull Ck. @ Loop 360 Barton Ck. @ State Hwy 71 Barton Ck. @ Lost Ck. Blvd. Shoal Ck. @ 12th St Boggy Ck. @ US Hwy 183 Walnut Ck. @ Webbervill e Onion Ck. Near Driftwood Williamso n Ck. @ Oak Hill USGS Site No 8154700 8155200 8155240 8156800 8158050 8158600 8158700 8158920 BOD (mg/L) 3.77 2.26 2.41 8.70 9.42 6.66 2.93 4.74 COD (mg/L) 96.85 45.88 46.27 78.30 59.05 74.34 . 28.60 Cu(?g/L) 3.30 2.50 2.77 10.20 10.90 4.70 . . DP (mg/L) 0.05 0.01 0.02 0.10 0.07 0.08 0.01 . Fecal Coliform (Colonies/100ml) 32459 10208 10174 73572 179213 34294 12260 62146 Fecal Strep (Colonies/100ml) 43500 26530 26830 87434 167726 92176 24496 123517 NH3 (mg/L) 0.07 0.02 0.03 0.09 0.12 0.10 0.04 0.07 NO3 as N (mg/L) 0.63 0.14 0.20 0.36 0.34 0.51 0.17 0.32 Oil&Grease . . . . . . . . Pb (?g/L) 17.84 7.80 6.58 45.02 47.40 20.90 7.69 . TDS (mg/L) 192.06 191.42 224.72 121.17 100.21 131.16 184.95 164.36 TKN (mg/L) 1.91 0.89 0.98 2.29 3.20 0.95 1.78 2.16 TN (mg/L) 2.55 1.03 1.18 2.65 3.54 1.47 1.94 . TOC (mg/L) 34.05 14.25 15.22 26.09 35.95 22.23 23.32 19.46 TP (mg/L) 0.27 0.11 0.13 0.89 1.26 0.40 0.19 0.40 TSS (mg/L) 1016.79 301.70 324.79 1324.50 1933.48 1562.18 431.24 472.82 Zn (?g/L) 42.40 18.30 16.87 97.90 113.10 35.50 17.80 . The percent of base flow to storm flow from Table 3-9, the flow calibration values from Table 3-8, the two tables of observed concentrations (Table 3-11 and Table 3-12) were combined to create total load calibration values as summarized in Table 3-13. 57 Table 3-13 Load Calibration Values Site Name Bull Ck. @ Loop 360 Barton Ck. @ State Hwy 71 Barton Ck. @ Lost Ck. Blvd. Shoal Ck. @ 12th St Boggy Ck. @ US Hwy 183 Walnut Ck. @ Webbervil le Onion Ck. Near Driftwoo d Williamso n Ck. @ Oak Hill USGS Site No 8154700 8155200 8155240 8156800 8158050 8158600 8158700 8158920 BOD (kg/yr) 37212 68008 96201 51057 59159 157839 90717 No Data COD (kg/yr) 954991 1380906 1850437 459380 370851 1762687 No Data 88118 Cu (?g/L) 30 67 101 59 68 108 No Data No Data DP (kg/yr) 598 462 940 No Data No Data 2056 371 No Data Fecal Coliform (Colonies/yr) 3.00E+14 2.75E+14 3.71E+14 4.29E+14 1.12E+15 7.87E+14 3.41E+14 No Data Fecal Strep (Colonies/yr) 4.02E+14 7.21E+14 9.77E+14 5.10E+14 1.05E+15 2.11E+15 6.85E+14 No Data NH3 (kg/yr) 721 853 1468 559 780 2645 No Data No Data NO3 as N (kg/yr) 7705 7304 13809 2332 2414 17369 No Data No Data Oil&Grease No Data No Data No Data No Data No Data No Data No Data No Data Pb (?g/yr) 164 209 239 262 297 479 213 No Data TDS (kg/yr) 3301457 9528631 15716526 898295 775786 5243087 12013056 No Data TKN (kg/yr) 18836 27933 39962 13553 20139 24737 53866 6998 TN (kg/yr) 25903 33358 51555 15784 22481 40580 65031 No Data TOC (kg/yr) 325478 426292 594012 153593 226878 530384 704981 No Data TP (kg/yr) 2555 3219 5255 5217 7915 9377 5542 No Data TSS (kg/yr) 9382051 8145175 11856223 7717339 12096189 35813065 12004549 No Data Zn (?g/yr) 391 491 612 570 707 813 493 No Data The observed values presented in this section served as the calibration values for the model. While only eight of the 57 watersheds in the study area were gaged, the methodology explained in the subsequent chapter details how a correction methodology was developed to allow application to the entire study area. 58 4 METHODOLOGY The model developed for the City of Austin Watershed Department can be divided into four sections: flows, loads, incorporation of best management practices, and future conditions. The basis of flow calculations are the storm flow and base flow coefficients that link impervious cover and flow. Loads for the 17 constituents of interest are based on relationships developed from small, single landuse watersheds. There are three distinct methodologies for estimating load removed by BMPs. Future impervious cover projections are based on 2040 population and employment data, while the implementation of BMPs for future conditions is estimated based on City assumptions presented in Section 3.3.3. For these four divisions of the model, the explanation is divided into assumptions, application of these assumptions in a GIS framework, and correction methodology. 4.1 Flows The first step in the model is to calculate flows. Rainfall contributes to stream discharge in two ways: 1) by direct (surface) runoff as storm flow and 2) by infiltration and contribution as base flow. Two coefficients (R SF and R BF ) determine the percentage of precipitation volume contributing to the discharge as storm flow (SF) or base flow (BF). Storm flow and base flow components of flows were initially calculated, not accounting for flow losses in the Edwards Aquifer recharge zone. Then, losses were calculated (in base flow and storm flow components) and subtracted from the flows occurring in the recharge zone. What follows is a review 59 of datasets and assumptions, a description of the GIS processing, and the calibration methodology employed for flow calculations. 4.1.1 Data Sets and Assumptions The minimum data sets required for flow calculations include the flow direction grid (fdr), the flow accumulation grid (fac), the landuse coverage (landuse), impervious cover grid (ic_current) and precipitation grid (precip). If recharge is to be incorporated, additional shapefiles are necessary: upstream points (upstream_rech), the recharge zone (recharge), and a creek grid (Crk1000). The calculations for flow are based on a relationship between impervious cover and the runoff coefficients ? one each for storm flow, R SF, and base flow, R BF . The relationship between impervious cover and the storm flow coefficient is the same, binomial equation developed in Phase I of the project (Barrett, et al 1998), which is based on small watershed data. R SF = 0.3428IC 2 + 0.5677IC + 0.0125 Eqn 4-1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 1.2 Fraction Impervious Cover Runoff Coefficient R SF = 0.3428IC 2 + 0.5677IC + 0.0125 Figure 4-1 Runoff Coefficient for Storm Flow as a function of Impervious Cover Fraction 60 The base flow equation was based upon data provided by the City. The change in data used to create this base flow relationship is seen both in Table 4-1 and Figure 4-2. The relationship used to calculate the base flow coefficient for this phase of the project was R BF = -0.1319IC + 0.0714 Eqn 4-2 for impervious cover values greater than 55%, the R BF is set at zero. Table 4-1 Basis for Base Flow Coefficient / Impervious Cover Relationship Station Est. IC for Period of Record Base flow Coefficient Old base flow Coefficient Barton Ck. @ State Hwy 71 3% 0.071 Barton Ck. @ Lost Ck. Blvd. 3% 0.065 0.14 Bear Ck 8% 0.078 0.16 Boggy Ck. @ US Hwy 183 41% 0.012 0.02 Bull Ck. @ Loop 360 15% 0.063 0.15 Onion Ck. Near Driftwood 1% 0.056 Shoal Ck. @ 12th St 47% 0.016 0.03 Shoal Ck NW 45% 0.009 Slaughter Ck. @ FM 1826 7% 0.060 0.18 Walnut Ck. @ Webberville 18% 0.041 0.09 Williamson Ck. @ Oak Hill 20% 0.039 0.12 The current base flow separation values are based on flow data three days after the last storm event, while the ?old? base flow coefficients are based on a more traditional method using USGS 15 minute data to estimate storm flow and base flow. The City of Austin Watershed Protection Department provided the values in Table 4-1. 61 y = -0.327x + 0.1564 y = -0.1264x + 0.0645 0.000 0.020 0.040 0.060 0.080 0.100 0.120 0.140 0.160 0.180 0.200 0% 10% 20% 30% 40% 50% % Impervious Cover Baseflow Coefficient Baseflow old baseflow Figure 4-2 Graph of Base flow Coefficient/Impervious Cover Relationship The average annual rate of runoff created by each cell was calculated using the respective runoff coefficient multiplied by the annual precipitation and a conversion factor: 12(in/ft)*ear)365(days/y*/day)(86,4000(s /cell)(ft 10000 *(in/yr) Precip*(/cell)R (cfs) q 2 BF BF = Eqn 4-3 Then, using a flow accumulation procedure, the individual cell contributions (q BF and q SF ) were carried through the watershed, resulting in the total average flow (Q BF and Q SF ). In areas corresponding to the Barton Springs Recharge Zone, a proportion of the recharge in a watershed was subtracted from the flow in each cell that corresponds to the creek passing through the recharge zone. The recharge of any given cell comprising a creek within the Edwards Aquifer recharge zone was obtained by dividing the mean annual recharge occurring in that creek for storm flow and base flow (QR BF and QR SF , respectively), as defined in Table 3-10, by the total length of the channel inside the recharge zone (RL), then 62 multiplying this value by the length of the channel in that cell (CL). These calculations are presented in Eqn. 4-4 for both storm flow and base flow. CL R CL R RL(ft) (cfs)Q (cfs) qr RL(ft) (cfs)Q (cfs) qr BF BF SF SF = = Eqn 4-4 The length of the channel inside the recharge zone is defined by first determining the main channel of a given creek within the recharge zone based on flow accumulation values: only grid cells with a flow accumulation value greater or equal to the upstream point, where a creek enters the recharge zone, are part of the main stem. The length of the flow path through the cells (CL) is either 141.4 feet if the path is along the diagonal or 100 feet. This length is then multiplied by the recharge per unit length to create the cell recharge grid. To determine the flow considering recharge, the recharge in base flow is subtracted from the total base flow; similarly for storm flow the recharge in storm flow is subtracted from the total storm flow. The outputs from the flow process are: Base flow: The total base flow (Qt BF ) in any cell is equal to the sum of the contributions of all cells located upstream of that cell, which was calculated using the flow accumulation function with individual cell contribution of base flow (Eqn 4-3) as the weight grid. When considering recharge, base flow (Q BF ) is total base flow minus base flow lost in recharge (QR BF ) Q BF =Qt BF -QR BF Eqn 4-5 Storm Flow: The total storm flow is the flow accumulation of the individual cell contribution of storm flow (Eqn 4-4) as the weight grid. If recharge is 63 considered, the storm flow lost in recharge must be subtracted from the total predicted flow to determine the storm flow (Eqn 4-7). 12(in/ft)*ear)365(days/y*/day)(86,4000(s /cell)(ft 10000 *(in/yr) Precip*(/cell)R (cfs) q 2 SF SF = Eqn 4-6 Q SF =Qt SF -QR SF Eqn 4-7 Total flow without considering recharge: The total discharge in any cell is equal to the sum of the contributions of all cells located upstream of that cell, which was calculated simply as a sum of base flow and storm flow Total predicted flow: When considering recharge, the total predicted flow is the total flow minus the total recharge. 4.1.2 GIS Process The actual mechanism for using these flow calculations in a GIS environment is outlined in this section. The Qual.Flow Script developed by Christine Dartiguenave provided the backbone for these calculations. Three modifications were made to this script for our purposes: 1. Permitting precipitation to be input spatially ? as a grid in this case ? instead of a single value for the study area; 2. Calculating new base flow and storm flow grids due to recharge, instead of only the value of flow after recharge as a total of the two; and 3. A new correction methodology that operates on a cell-by-cell basis, instead of a sub-watershed basis. 64 An outline of Qual.Flow is presented here; the complete script is found in Appendix 1. This discussion is divided into recharge, flow and correction sub- sections. Recharge (Qual.Rechcalib) To create the recharge inputs required for flow calculations, the script qual.rechcalib was used. This script calculates the four grids necessary for flow computations: the recharge flow grid and the cell recharge grid for both base flow and storm flow (rechBF, lcorrB, rechSF, lcorrS). The Analysis Properties and Working Directory are first requested. Then, the input themes are requested in the following order: Recharge Zone Grid (recharge), Creek Grid (crk1000), Flow Accumulation Grid (fac), Flow Direction Grid (fdr), Watershed grid (wshd_outlet), Upstream Points (upstream_recharge) and Recharge Zone Watershed shapefile (wshd_outlet). For the upstream_recharge shapefile, the user is asked to choose the field that corresponds with the recharge amount (cfs) for each watershed. The user must also choose the field of wshd_outlet that identifies the watersheds. Then the user defines the output file names for the Cell Correction Recharge grid and the Recharge Flow grid; defaults are rechBF and lcorrB for base flow and rechSF and lcorrS for storm flow. There are six steps in the creation of these files. 1. First, the creeks from the crk1000 that are within the recharge zone are defined as the rechcrk grid. 2. Then, the flow accumulation of each of the cells at the upstream points is placed in the upstream_recharge attribute table. 65 3. Using this value as a reference, any cell corresponding to the rechcrk grid that has the same or higher flow accumulation value as the upstream cells in its watershed are defined as mainstems of the creek. 4. The length of the mainstems of the creek within each watershed is next calculated ? by creating a lengthCell grid and summing up this lengthCell grid for each watershed. This length value is placed in the upstream_recharge attribute table. 5. Then, for each watershed, the total recharge (from the upstream_recharge attribute table) is divided by the creek length to determine the recharge per unit length, as shown in Eqn 4-5 . This recharge per unit length grid is multiplied by the lengthCell grid to create the recharge coefficient grid, (lcorr). 6. As a final step, a weighted flow accumulation is calculated on lcorr, to create the Recharge Flow grid (rech); these two grids are illustrated in Figure 4-3. These steps must be completed twice: once for base flow (creating lcorrB and rechBF) and once for storm flow (creating lcorrS and rechSF). The same inputs are used, and the only change is the field selected to represent the total recharge in a watershed in the upstream point file. 66 Figure 4-3 Recharge Coefficient Grid (left) and Total Recharge Grid (right) for a Segment of Barton Creek The Recharge Flow grids (rechBF and rechSF) are used in the Qual.Flow script, if the user decides to consider recharge in the flow calculations. While the correction coefficient grids (lcorrB and lcorrS) are used in the load calculations when considering recharge. With these grids calculated, the Qual.Flow script can be run; if recharge is not be considered these recharge grids need not be created. Qual.Flow The Qual.Flow script requires six inputs and produces eight outputs when recharge is being considered, as shown in Table 4-2. 67 Table 4-2 Summary of inputs and outputs of the Qual.Flow script Description Input Output Impervious Cover ic_current (grid) Flow direction grid fdr (grid) storm flow correction coefficient flowcorr_cur (grid) Precipitation precip(grid) Total base recharge flow at any cell (flow accumulation) rechbf1 (grid) Total storm recharge flow at any cell (flow accumulation) rechsf1 (grid) Corrected storm flow generated in each cell sflowc1 (grid) Corrected base flow generated in each cell bflowc1(grid) Direct storm flow in cfs (flow accumulation) without considering recharge tsflw01 (grid) Direct base flow in cfs (flow accumulation) without considering recharge tblfw01 (grid) Direct storm flow in cfs (flow accumulation) considering recharge stormf1(grid) Direct base flow in cfs (flow accumulation) considering recharge basefl1 (grid) Total flow without considering recharge (flow accumulation) tflow01 (grid) Total Predicted Flow considering recharge in cfs flow1 (grid) After prompting the user to set the Analysis Properties and the Working Directory, the following grids (in order) are requested: Impervious Cover (ic_current) 6 , Flow Direction (fdr), Correction (if no correction grid is provided, the uncorrected version will be run), and Precipitation (precip). Next, the user is asked, ?Do you want to consider a recharge zone??; if the answer is affirmative, the user is prompted for the recharge flow accumulation grid and the cell recharge grid for both storm flow and base flow: rechBF, lcorrB, rechSF, lcorrS. Then, the user is prompted to for file names for the three output grids ? Storm Flow (stormf), Base flow (basef), and Total Flow (flow). If the impervious cover theme is a shapefile and the runoff coefficients have already been calculated, then the user is 6 Impervious Cover can be either a grid or a coverage; however, with the present size of the coverage ? over 50,000 records ? it is advisable to use a grid version of the file to reduce run time. 68 asked, ?The field runcoef already exists. Do you want to overwrite it?? Finally, the coefficient equations are displayed and the user is given the opportunity to change these relationships, if so desired. After receiving the inputs, the model begins the calculations. A coefficient grid is created based on the coefficient / IC relationships for both the base flow (R BF ) and the storm flow (R SF ) coefficients. The individual cell contribution grid is next created based on Eqn 4-3. Then, using this individual cell contribution grid, (q SF or q BF ) as the weight, a weighted flow accumulation is calculated for both Storm Flow (Qt SF ) and Base Flow (Qt BF ). The sum of these Storm Flow and Base Flow grids is the Flow Grid (Q T ). These final three grids are the only grids in this process that are automatically saved; the defaults are stormf, basef, and flow. When considering recharge, an additional step is conducted after the Storm Flow (Qt SF ) and Base Flow (Qt BF ) grids are created. The recharge flows accumulated grids, rechSF and rechBF, were subtracted from these original flow grids, creating new flow grids reflecting recharge, Q SF and Q BF . In the case of recharge, there are six grids saved to the working directory, Qt BF , Qt SF , Qt T , Q BF , Q SF , and Q T ? with default names of tbflw, tsflw, tflow, stormf, basef, and flow respectively. 4.1.3 Correction Methodology After implementing the change in assumptions for the base flow / storm flow separation, as discussed in Section 3.3.1, the predicted flows largely underestimated the flow in most undeveloped watersheds. Figure 4-4 illustrates the fit of the flows without using a correction methodology. 69 0 10 20 30 40 50 60 70 80 1020304050607080 Predicted Flow (cfs) Observed Flow (cfs) Figure 4-4 Observed Flow vs. Predicted Flow Note: Line represents a perfect fit. Error bars represent 90% confidence interval. In Phase I of the project, the correction methodology was based on a watershed or subwatershed basis. This resulted in some large discrepancies in how similar land uses were treated in neighboring watersheds (increasing the runoff coefficient in one and decreasing it in another). Another difficulty that arose implementing this methodology was applying the methodology to ungaged watersheds. To avoid these difficulties, it was decided to tie the correction factor to impervious cover using the relationship as shown in Figure 4-5. The relationship was based on a series of trial and error. 70 Flow Correction Factor 0 1 2 3 4 5 6 7 8 9 0 0.1 0.2 0.3 0.4 0.5 0.6 % Impervious Cover Correction Facto r Corr flow = -2.3141Ln(IC ) - 2.1455 Figure 4-5 Correction Factor for Flow To implement this methodology, steps must be taken to create the flow correction grid. First, using Analysis>Map Calculator, the equation represented in Figure 4-5 is applied to the impervious cover grid using the following expression, ((([Ic_current].Log * - 2.3141) - 2.1455)), generation calc1. Then, in order to assure that the correction is not less than 0.65, does not exceed 8, and that water cells are not corrected, another Map Calculation is conducted: ( [Aoc] * (( ([Ic_current] > 0.3) * 0.65)+ (([calc1] > 8)*8)+(( [Ic_current] = 1) * 0.35))), where AOC is a grid limited to the areas of concern, i.e. the areas where the initial calculation yields correction values inconsistent with the desired result, and calc1 is the initial calculation. Then, calc2 is merged using CRWRRaster>Merge Grids with calc1 and saved as Correction. This new Correction grid thus becomes an input into the Qual.Flow script for the 71 individual cell contribution equation: The individual cell contribution grid is, thus modified for storm flow. 12(in/ft)*ear)365(days/y*/day)(86,4000(s /cell)(ft 10000 *(in/yr) Precip*Corr*(/cell)R (cfs) q 2 SF SF SF = Eqn 4-8 The fit of the data improved remarkably using this methodology, as can be seen in Figure 4-6. The methodology is easily modified ? by changing the flow_correction.dbf table. Also, applying this methodology is not dependent on having gaged data in every watershed; thus, applicable to ungaged watersheds without modifications. 0 10 20 30 40 50 60 70 80 1020304050607080 Predicted Flow (cfs) Observed Flow (cfs) Figure 4-6 Observed Flow vs. Predicted Flow After Correction Note: Line represents a perfect fit. Error bars represent 90% confidence interval. 4.2 Loads Non-point source pollution can be divided into a land (external) and an in- stream process component. The land load corresponds to the load generated by the 72 water moving on or through the ground, while the in-stream load is the result of in- stream processes: channel erosion and degradation, for example. In the model, the external load was computed directly by using expected mean concentrations (EMCs) in runoff. The in-stream process rate is inferred by computing the difference between observed loads and those predicted using land surface loads alone. The constituents modeled were TSS, BOD, COD, TOC, DP, TP, NH 3 , TKN, NO 3 , TN, Cu, Pb, Zn, TDS, Fecal Coliform, Fecal Streptococci, and Oil & Grease. This section discusses load methodology by discussing assumptions made, GIS procedure, and the correction methodology applied for loads calculations. 4.2.1 Data Sets and Assumptions Input grids for load calculations include a number of themes previously mentioned: impervious cover (ic_current), flow direction (fdr), water land use zones (tszone), storm flow (sflow), base flow (bflow), total storm flow (tsflow) without considering recharge, and cell recharge for storm flow (lcorrs). Linear relationships were developed between impervious cover and direct runoff (storm flow) EMCs based on data collected by the City of Austin in small watersheds. (Barrett, et al 1998) These EMC values are presented in Table 4-3. EMC SF = a+ b*(fraction impervious cover), where EMC is in mg/L or colonies/100 ml in the case of Fecal Coliform and Fecal Strep. 73 Table 4-3 EMC storm flow table Constituent CONSTANT 1ST_ORDER Coefficient BOD (mg/L) 3.500 14.000 COD (mg/L) 18.000 98.000 Cu(mg/L) 0.006 0.016 DP (mg/L) 0.040 0.240 Fecal Coliform (10 6 Colonies/100ml) 5322 81193 Fecal Strep (10 6 Colonies/100ml) 9989 87991 NH3 (mg/L) 0.130 0.240 NO3 as N (mg/L) 0.820 0.000 Oil&Grease 0.000 2.500 Pb (mg/L) 0.003 0.038 TDS (mg/L) 171.580 -35.662 TKN (mg/L) 0.130 1.530 TN (mg/L) 0.950 1.530 TOC (mg/L) 8.000 8.600 TP (mg/L) 0.190 0.320 TSS (mg/L) 190.000 0.000 Zn (mg/L) 0.000 0.190 Base flow EMCs were defined as constant values for undeveloped and developed regions based on data collected at USGS gage stations, as presented in Table 3-11. The averages of the concentrations in Shoal, Boggy and Walnut watersheds determined the developed value, while the undeveloped value was based on the Barton, Bull, Onion, Slaughter and Williamson watershed averages. Areas with an impervious cover less than 15% are considered undeveloped. The values are summarized in Table 4-4. EMC BF = Undeveloped value if IC <= 15% Developed value if IC > 15% 74 Table 4-4 EMC base flow table Constituent UNDEVELOPED DEVELOPED BOD (mg/L) 0.522 0.764 COD (mg/L) 12.000 20.000 Cu(mg/L) 0.000 0.000 DP (mg/L) 0.017 0.025 Fecal Coliform (10 6 Colonies/100ml) 81.782 335.998 Fecal Strep (10 6 Colonies/100ml) 325.055 424.159 NH3 (mg/L) 0.027 0.038 NO3 as N (mg/L) 0.394 0.691 Oil&Grease 0.000 0.000 Pb (mg/L) 0.000 0.000 TDS (mg/L) 354.328 385.851 TKN (mg/L) 0.299 0.414 TN (mg/L) 0.536 0.889 TOC (mg/L) 2.476 3.997 TP (mg/L) 0.018 0.038 TSS (mg/L) 3.246 5.696 Zn (mg/L) 0.000 0.000 In addition to the grids required as inputs, the expected mean concentrations (EMCs) are presented in the ArcView environment in the form of EMC tables: emcbf and emcsf. The individual cell load contribution is a product of the EMC value * Cell Runoff for each constituent for both base flow and storm flow: l BF (kg/yr) =q BF (cfs)* EMC BF (mg/L)* (28.3 L/ft 3 *86,400 s/d*365d/yr)*10 -6 kg/mg Eqn 4-9 Cells that correspond with water landuse are set to zero, thus, the model assumes no atmospheric load. The flow accumulation of these cell load contribution grid, l BF and l SF , are the total load grids, Lt BF and Lt SF . For cells within the recharge zone, the load contribution was reduced based on the predicted concentration from upstream. The concentrations in the water lost in a cell in the recharge zone were assumed to be the same as the concentrations in 75 the creek at the cell where the recharge occurs. The concentrations (Co BF ) in the creek without considering the recharge zone were obtained by dividing the Lt BF by the total base flow (Qt BF ). The load lost in each cell of the recharge zone was the product of the concentration (Co BF or Co SF ), not accounting for recharge, and the volume of flow lost in the cells within the recharge zone based on the cell recharge grids, lcorrB and lcorrS. The flowaccumulation function was then used to add the contribution of all the cells to recharge load losses, thus calculated LR BF and LR SF . Co BF = Lt BF / Qt BF Eqn 4-10 Cell load lost BF = lr BF = Co BF *qr BF Eqn 4-11 Total load lost BF = LR BF = flowaccumulation of lr BF Eqn 4-12 L BF = Lt BF - LR BF Eqn 4-13 Note: These steps are likewise conducted for storm flow. 4.2.2 GIS Process The qual.load script automated this process. While based on the Phase I script, a number of modifications were necessary: concentrations lost in the recharge zone were separated into base flow and storm flow components, new relations were developed for base flow load coefficients, and the load correction methodology was added. The script is found in Appendix 1, while a summary of the steps is outlined here; Table 4-5 outlines the inputs and outputs for this script. 76 Table 4-5 Inputs and Outputs of Qual.Load Script Description Input Output Direct storm flow emc table (add to project window: tables\add) emcsf.dbf (table) Base flow EMC table (add to project window: tables\add) emcbf.dbf (table) Load Correction Table linear_load_correction.dbf, log_load_correction.dbf, or no_load_correction.dbf (tables) Impervious Cover ic_current (grid) Flow direction grid fdr (grid) Corrected storm flow generated in each cell from Qual.flow sflowc1 (grid) Corrected base flow generated in each cell from Qual.flow bflowc1 (grid) Current conditions grid where water land use has a value of 999 (grid contains only H20) zone_gr (grid) Recharge storm flow for each cell lcorrs1 (grid) Recharge base flow for each cell lcorrb1(grid) Direct storm flow in cfs (flow accumulation) without considering recharge tsflw01 (grid) Direct base flow in cfs (flow accumulation) without considering recharge tblfw01 (grid) Total flow without considering recharge (flow accumulation) tflow01 (grid) Current conditions grid where water land use has a value of 999 (grid contains only H20) and everywhere else has value of 1 zone_gr (grid) Creates a storm flow load grid for each computed constituent tss1sf, cod1sf, bod1sf (grids) etc. Creates a base flow load grid for each computed constituent tss1bf, cod1bf, bod1bf (grids) etc. Creates a total flow load grid for each computed constituent tss1, cod1, bod1 (grids) etc. The user is prompted for the analysis extent and working directory. A series of dialog boxes are then provided to choose the storm flow EMCs table (emcsf), the base flow EMCs table (emcbf), and the direct runoff correction table (initially, the no_correction table is used, correction methodology is discussed in Section 4.2.3). The 77 user is then asked if the corrections are linear or log ? for no correction, linear should be chosen. A dialog box then appears which asks the user to choose the constituents to model; the user selects them by click on one or more in the list, then clicking OK. For each constituent chosen, the user is asked for an output filename where the constituent?s name is the default. Then, the script proceeds to provide dialog boxes to choose the input themes: Impervious Cover (ic_current), Flow Direction (fdr), Water Land Use (tszone), and Corrected Cell Runoff (sflowc), Corrected Base flow (bflowc). The user is asked, ?Do you want to consider a recharge zone?? If a recharge zone is to be considered, the following grids are then requested: Total Flow (tflow), Total Base Flow (tbflw), Total Storm Flow (tsflw). Finally, if the impervious cover input was a polygon, the user is asked to select the Impervious Cover field. With all of these inputs selected from the view, the script commences calculations. The script runs through the load calculation loop for each constituent. First, the EMC SF grid is calculated based on the EMC SF =a*IC+b relationship mentioned in the previous section. The EMC BF grid is next generated based on the rule that cells with impervious cover fraction greater than 0.15 are allocated the developed EMC BF value; whereas those cells with less that 0.15 impervious cover are allocated the undeveloped EMC BF value. With these three grids, the EMC SF and EMC BF , created, the script moves onto calculate the individual load contribution. For both base flow and storm flow, a load cell grid, l BF and l SF, is generated. The load cell grid is the product of the flow coefficient grid, the EMC grid, and a conversion factor, as illustrated for base flow: l BF (kg/yr) =q BF (cfs)* EMC BF (mg/L)* (28.3 L/ft 3 *86,400 s/d*365d/yr)*10 -6 kg/mg Eqn 4-14 78 In cells of the Water Zone Grid (tszone) that correspond to water (value = 999), the load cell grid is set to 0 ? as there is assumed no concentration increase due to waterbodies. Then, the load grid for base flow, Lt BF , and storm flow, Lt SF , are calculated by flow accumulation using the respective load grid as the weight (l BF and l SF ). The total load, Lt T , is the sum of these two load grids, Lt BF and Lt SF . When recharge is considered, the load that is removed with recharge flow must be subtracted from the total load. To this end, the script next calculates the concentration in the base flow and storm flow without considering recharge based on Eqn 4-10. Then, a per cell load removal, lr BF , is developed for both base flow and storm flow, Eqn. 4-11. The flowaccumulation function was then used to add the contribution of all the cells to create a load-removed due to recharge grid for base flow, LR BF , and storm flow, LR SF . New load grids are then calculated by subtracting the recharge removed load grid from the original load grid, for example L BF2 =Lt BF - LR BF . The sum of the L BF2 and L SF2 grids is then the new total load, L T2 . The grids saved are the L BF2, L SF2 , and L T2 for each constituent, where the defaults for the names of these grids are the modeled constituent?s name: for example, for BOD the defaults are BODbf, BODsf, and BOD. 4.2.3 Correction Methodology/ In Stream Processes With this methodology completed, other processes are still not incorporated in the load estimations. In some situations, like TSS, the loads are greatly underestimated ? possibly due to the lack of consideration of channel erosion. In other cases, the loads are overestimated ? which could be a reflection of chemical degradation or adsorption to sediment in the channel. In order to create more 79 accurate predictions of loads for the constituents for whom we have observed data, corrections were applied. These were based upon the relationship of correction vs % impervious cover (for example, Figure 4-5) ? where the correction is only applied to the storm flow component of loads. Thus, the initial correction, Corr EMCSF , is the observed storm flow, L SF *, divided by predicted storm flow, L SF . L SF *=(L*-L BF ) Eqn 4-15 Corr EMCSF = L SF */ L SF Eqn 4-16 where L* are the calibration values from Table 3-13 and L BF and L SF are the predicted values initially generated from the Qual.Flow script. This initial correction is then plotted versus the fraction of impervious cover on a watershed basis. In both cases the ?watershed? is defined by the watershed draining to USGS gage stations. Figure 4-7 through Figure 4-9 reflect this data for three of the constituents, BOD, Cu and TSS; the figures for the remaining constituents are in Appendix 2, excluding Oil and Grease and TDS ? there is no data for Oil and Grease, while the TDS calculations corresponded well to the observed data and thus did not require correction. Using these data, linear or logarithmic corrections are developed for each constituent. 80 Biological Oxygen Demand Correction y = 0.0881Ln(x) + 0.9078 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 0.0% 5.0% 10.0% 15.0% 20.0% 25.0% 30.0% 35.0% 40.0% 45.0% 50.0% % Impervious Cover Correction Factor Figure 4-7 Correction value as a function of % Impervious Cover ? BOD Copper Correction y = 0.5322x + 0.3954 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0% 10% 20% 30% 40% 50% % Impervious Cover Correction Figure 4-8 Correction value as a function of % Impervious Cover ? Cu 81 Total Suspended Solids Correction y = 15.597x + 1.91 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 0.0% 5.0% 10.0% 15.0% 20.0% 25.0% 30.0% 35.0% 40.0% 45.0% 50.0% % Impervious Cover C o r r ect i o n Figure 4-9 Correction value as a function of % Impervious Cover ? TSS The highest %IC for a watershed is 48%, while the highest IC for a cell is 80%. Thus, in order to apply these linear relationships to the impervious cover on a cell-by-cell basis, it was necessary to decrease the slope of the lines. The value chosen for this decrease was 70%, based on a series of trial and error. The resulting linear corrections are found in Table 4-6. The two corrections that are logarithmic, BOD and DP, were not altered, as seen in Table 4-7. The equations applying these values, Eqn 4-17 and Eqn 4-18 follow their respective tables. 82 Table 4-6 Linear Load Corrections for Load Calculations CORR CONSTANT 1ST_ORDER COD 2.982 -3.326 Cu 0.395 0.373 FecalCol 1.430 -0.482 FecalStr 2.232 -0.470 NH3 0.309 0.221 NO3_as_N 0.510 0.033 Oil&Greas 1.000 0.000 Pb 1.587 0.202 TDS 1.000 0.000 TKN 6.550 -7.237 TN 1.409 0.307 TOC 1.818 0.632 TP 0.549 3.392 TSS 1.910 10.918 Zn 3.533 -5.060 Corr EMCSF = c*IC+b Eqn 4-17 Table 4-7 Logarithmic Load Corrections for Load Calculations CORR CONSTANT 1ST_ORDER BOD 0.908 0.088 DP 1.158 0.269 Corr EMCSF =c*log(IC)+d Eqn 4-18 This correction methodology is applied in the Qual.load script as follows: The load corrections are submitted as a table (linear_load_correction or log_load_correction). Then, a correction grid ? Corr EMCSF ? is calculated based on equation 4-17 or 4-18 respectively. If the log correction value calculated is greater than 1, the value of the load correction grid is given the value of 1. These correction grids are simply included in the equation for storm flow cell load contribution, l SF : l BF (kg/yr) =q BF (cfs)* EMC BF (mg/L)*Corr EMCSF * (28.3 L/ft 3 *86,400 s/d*365 d/yr)*10 -6 kg/mg Eqn 4-19 83 All other steps in the description of the Qual.Load methodology remain the same. The resulting predicted loads, after correction, are an improvement over the uncorrected flows, as discussed in Section 5.3. 4.3 BMP Removal The City of Austin uses Best Management Practices (BMPs) such as ponds or sand filters to reduce non-point source pollution loading. In this model, located BMPs were represented in a point coverage, as seen in Figure 3-17. Waterbodies represent BMPs whose load removal are based on efficiencies instead of actual load removed. Additionally, there are BMPs that are either not in the GIS BMP database or will be constructed in the future; these nonlocated BMPs must also be considered. For each of these three representations of BMPs, there are different methodologies to estimate their load removal. 4.3.1 Load Removed The Qual.BMPload script written for Phase I of this model was used in its entirety for this iteration of the model. The inputs required for the calculation of BMP loads removed are simply two datasets: the flow direction grid (fdr) and the BMP point coverage of interest, as described in Section 3.3.1, which has the load removed for each constituent as an attribute. A grid is created based on the BMP points, with the cell value equal to the constituent load removed. The flowaccumulation function is performed on the point grid using the flow direction grid. For each constituent selected, a new grid is produced representing the load removed by the BMPs, LR BMPL . In order to determine the new, predicted load, the L BMPL must be subtracted from the L SF grid. 84 4.3.2 Efficiency Removed Some larger waterbodies within the study area are considered to behave similar to BMPs as described in 3.3.2. The ability of these waterbodies to remove loads is defined by efficiency, rather than total quantity removed. The Qual.BMPeff script developed by Christine Dartiguenave was used for these calculations. However, her script requires a point file as an input, so an additional script, Qual.BMPoutle, was developed to determine the outlet point of each of the waterbodies based on the txdot.Outlets script written by Bryan Adams and Sean Reed. Also, her script has a correction factor ? for the difference of computed versus observed drainage areas; this code was ?deactivated? in the script, as there were not observed drainage areas for the watersbodies. However, in case it is applicable as an input for a future date, the code is still in the script as a comment. The following datasets are required for the calculation of the effects of waterbodies: the flow direction grid (fdr), waterbodies (with loads removed as an attribute), watersheds, flow accumulation grid (fac), watershed zone grid (wshd_outlets), and the initial load grids (L SF ? for example, BOD1). The flowaccumulation function is performed on a grid representing the product of the waterbody efficiency and the initial load grid. In the case of nested BMPs, i.e. BMPs located on the same stream, the effect of the load removed by a BMP upstream must be taken into account. The fac grid is used to determine which cells within the same watershed are upstream of each other and thus establish an order for calculation. The loads removed are first computed for the upstream BMPs, and then computed for the downstream BMPs. 85 For each constituent selected, a new grid is produced representing the new load grid, L BMPeff . 4.3.3 Non-located BMPs Non-located BMPs calculations are based on the Phase I methodology found in the Qual.BMPfut script. In this iteration, unlike Phase I, non-located BMPs are considered for current conditions, in addition to future conditions. There were two changes made to the script: a loop was added that permits more than eight BMP regions to be considered and the load correction factor was added to the removed load cell calculation so to be consistent on load calculations. The modified script as been labeled Qual.BMP_nonloc and is found in Appendix 1. There are 14 required datasets for this script, four tables and ten grids. The tables include: Average capture volume table (acv.dbf), BMP zones table (bmpzone.dbf), Efficiency table (eff.dbf), Storm Flow EMC table (emcsf.dbf), and the load correction table (linear_correction or log_correction). The grids that are calculated by or used in other scripts include: Initial load grid (e.g. BOD, COD) for each constituent considered, the impervious cover grid (ic_current or ic_future). Flow direction grid (fdr), Corrected storm flow runoff generated in each cell (sflowc), Water land use zones grid (zone_gr, Chapter 6). Predicted total storm flow grid in cfs (stormf), Total storm flow without considering recharge in cfs (tsflow01), and Cell recharge for storm flow in cfs (lcorrS). The final grids required, as discussed in section 3.3.3, are the BMP zones grid (curbmp_gr or futbmp_gr) and the Buildup grid (cur_buildup or fut_buildup), which contains the development rate assumed in each cell. 86 The average event removal efficiency by the associated capture volume for each BMP is calculated and attributed to BMP types. Using the BMPzone grid and the contribution of each BMP type within the different zones, the each cell is assigned an average event removal efficiency value, eff0. The load treated by the non- located BMPs is limited to the load generated in the newly developed areas; thus, the removal efficiency in each cell (eff0) is multiplied by the development rate in that cell to generate an efficiency grid, eff. The load removed in each cell, lr BMPnl , is the product of the efficiency (eff) and the cell storm flow load (q SF ) to yield the load removed in each cell. The total load removed (LR BMPnl ) is the flow accumulation of lr BMPnl . If no recharge zone is taken into account, the new load, L BMPnl , is obtained by simply subtracting the removed load from the load previously computed, L SF . 4.4 Future Conditions The model calculates flows and loads for current and future conditions. The future year of interest for the purpose of this model is 2040. The key input of the model that changes over time is impervious cover ? as a city develops, undeveloped land is converted into other land uses: for example, residential, commercial, and office. Other inputs, such as topography, the recharge zone, and precipitation are not assumed to change significantly over the time scale of the model. Thus, this section focuses on developing the future impervious cover dataset. As seen in Section 3.2.4, current impervious cover is based on current landuse. After exploring a number of methodologies for projecting future impervious, the methodology used for Phase II future impervious cover was also based on the current landuse file. The other files that served as a basis for these future impervious cover calculations are 87 the original NED_DEM, the impervious cover - landuse relations for 1995 conditions (Table 3-2) and PECS projections of future employment and population projections by traffic serial zone (TSZ). This methodology can be broken up into three steps: defining developable land, using TSZ data, and application to areas outside the TSZ data. After establishing this data set, the steps for calculating future flows, loads and best management practice removals are briefly discussed. 4.4.1 Definition of Developable Land While there are twelve landuse types, as seen in Table 4-8, the only land use type that is assumed to change for the purposes of this model is undeveloped land (Lucode 900). Table 4-8 Land use Categories and Classifications Land Use Label Land Use Codes Single Family - Large Lot LLSF 50 Single Family SF 100,113 Multi-Family MF 200 Commercial COMM 300 Office OFF 400 Industrial IND 500,560 Civic CIVIC 600 Park PARK 700 Park- Preserve PRESERVE 750 Transportation TRANS 800,870 Undeveloped UNDEV 900 There are two exceptions to this rule: undeveloped land that is on a slope greater than 15% is not developable and ?special polygons?. ?Special polygons? are land use tracts, such as the Barton Creek Habitat Preserve or the airport, which have a fixed use and therefore either a rather fixed %IC or a %IC that is readily estimated. The City defined the future impervious cover for these ?special polygons? as an 88 attribute in the landuse coverage; this field has a value of either one or zero. Using the landuse coverage, a developable land grid was created in segments corresponding to the following rules: 1. Current land use must be ?undeveloped? (Lucode = 900) and special polygons must be excluded 2. Land slope must be <15%. This procedure was implemented in ArcView using Spatial Analyst and Theme queries as follows, based on the landuse polygon coverage. While the input coverage to this entire procedure is a polygon coverage, most of the manipulations are conducted in the grid environment. The first step was to create a grid of undeveloped land. In ArcView, the following commands were implemented to develop this grid: ? Theme>Query landuse ([Lucode] = 900) and ([Specpoly] = 0)); ? Theme>Convert to Grid landuse (as selected) using [Specpoly] field for cell values. The result is a grid, undev1, that has values of 0 where undeveloped; no data cells represent developed land, special polygons and areas outside of the study area. Next, a grid reflecting areas with a slope greater than 15% was developed: ? Surface>DeriveSlope (NED_DEM); ? Analysis>Map Query ([Slope of Ned_dem] >= 15). By querying the slope grid, slope1, for slope greater or equal to 15%, the resulting grid, query1, has a value of 0 where developable and 1 where undevelopable. 89 With the developable lands grid and a grid related to slope, it was possible to combine the two rules: ? Analysis>Map Calculator ([Undev1] + [Query1]); ? Theme>Query calc1 ([Value] = 0). ? Theme>Convert to Grid calc1 (as selected). These operations first add a grid, undev1, which has a value of 0 where developable, to query1, which has a value of 0 where developable and 1 where undevelopable. The resulting grid, calc1, has value of 0 where developable and 1 where undevelopable, but is limited to developable lands ? as undev1 has no data cells where developed land exists. Using the theme query tool, the cells in calc1 with a value of 0 are selected; the value in these selected cells are converted to a grid, while all other cells are switched to no data cells. This converted grid is the final developable land grid, devF, as seen in Figure 4-10. Figure 4-10 Developable Land within the Study Area 90 Using devF, a new landuse grid is created ? based on merging devF with a grid version of landuse with [lucode] as the cell value. This resulting grid, landusegr_F, is employed in the application of TSZ population and employment data to develop future impervious cover. The acreage for each land use by TSZ (A lu ) is generated using Analysis>Tabulate Areas, with the follow parameters: Row theme: TSZ, Row Field: [TSZ], Column theme: landusefr_F, Column field: [value]. This yields the ?Areas of landusegr_fut Tabulated For Each Zone in Tsz.shp? table, which is saved as tarea1.dbf. 4.4.2 Use of TSZ data Traffic serial zone data, as discussed in Section 3.1.5, consist of both current population and employment data, and projections to 2040. In order to use this data, the following calculations are made for each TSZ, i: 91 Current acreage of each land use, lu* A lu Work acres WA = ? A lu for lu=Commercial, Industrial, Office and Civic Residential Acres RA = ? A lu for lu =Single Family Large Lot, Single Family and Multi- Family) Developed Acres DA = WA+RA Population per residential acre p = P/RA Employees per work acre e = E/WA, and Percent work acres attributed to ?work? land uses %W lu = A lu /WA Percent residential acres attributed to ?residential? land uses %R lu = A lu /RA Factor relating all developed acres to park and transportation land uses. fD lu = A lu /DA Change in population ?P = P (2040) ? P (1996) Change in employment ?E = E (2040) ? E (1996) * A list of land uses is found in Table 4-8. Using these relationships, the population and employment values are used to project ?initial? additional acres required, as dictated by Table 4-9. Table 4-9 Development of Initial Additional Acreage Initial Additional Residential RA add =?P/p Initial Additional Work WA add =?E/e Preliminary Additional Park A Park p = (RA*+WA*)/fD ,Park Initial Additional Park A Park add =Min (A Park p , A Park ) Preliminary Additional Transportation A Tran p =(RA*+WA*)/fD ,Park Initial Additional Transportation A Tran add =Min (A Tran p , A Tran ) Total Additional Acres A add =?(RA*+ WA*+ A Park * +A Tran * ) In many cases, more additional acres are ?required? than developable acreage. In these situations, the initial values are adjusted by a reduction, which is the fraction of initial addition acres developable: adj= A Developable /A add . This adjustment is only allowed to be in a range of 0 to 1, thus while it is not possible to develop more land than is available, it is possible to leave some land undeveloped. 92 The developed acreage per land use is then the product of the initial additional acres and the adjustment: A lu Dev =adj*A lu * . This developed acreage per land use is translated into impervious cover based on the impervious cover ? land use relationships for 1995 data,. By calculating the product of each of the developed acreages per land use and its associated percent impervious cover, then dividing this value by total developable acreage in the TSZ, the %IC for this undeveloped acreage is determined. )A(IC*(A( %IC j Dev lu j j Dev lu ?? = for all landuse, j Eqn 4-20 All these calculations are done in a spreadsheet, and result in a table with six fields: TSZ, Urban, Suburban, Water Supply Suburban, Water Supply Rural, BSZ. Each column represents the fraction IC depending on which regulation boundary a TSZ falls within. This fraction IC is then applied on a TSZ basis by joining a table, futureic, with the fields TSZ and % IC with a shapefile, TSZ_reg, that represents the TSZ unioned with the watershed regulations, reg_only. In order to have the right value in the [devel_ic] column, a series of queries must be conducted and the field calculator applied. As an example, for the BSZ area, these two steps are taken: Table>Query ([Waterreg] = "BSZ?), then with the [devel_ic] field highlighted Table>Calculate [Bsz]; the steps are then repeated for the four other regulation areas. Once these steps are completed, the [devel_ic] field has been populated with the future impervious cover fraction for developable areas. 93 4.4.3 Areas Outside TSZ This methodology, however, does not address areas outside of the TSZ coverage. In order to make projections for these rather undeveloped areas, the %IC value for developable lands in these unaddressed areas is based on the value of the nearest TSZ and a factor of decreasing impervious cover as distance from jurisdictions increase. A general explanation of the procedure for making these calculations can be divided into two steps: First, a nearest neighbor grid was developed using the TSZ shapefile and %IC as the field. Then, the minimum of the current %IC and maximum values of the distance from the TSZ grid were used to develop a relation of decreasing IC with distance from the TSZ shapefile without decreasing below current conditions. To accomplish these tasks is, unfortunately, a rather tedious process: 1. Assign cells outside of the TSZ extent the value of its nearest neighbor?s record number [recno] using Analysis>Assign Proximity. The resulting grid is ?Proximity to Tsz_reg.shp? (prox1). Note: the assign proximity function can only be conducted on integers ? not decimals. If a record number is not in the attribute table, it can be added using CRWR-Vector>Add Record Number to Table. 2. Limited the values of prox1 to cells in the study area alone. One manner of doing this is Analysis>Map calculator (([Extent1] * [Proximity to Tsz_reg.shp]).Int). This yields a Map calculation (calc1) grid 3. Determine the distance from TSZ_reg. Using Analysis>Find Distance, the ?Distance to Tsz_reg.shp? (dist1) grid is created. 94 4. Find maximum distance for each TSZ. The output from Analysis>Summarize zones is a table automatically labeled ?Stats of Distance to Tsz_reg.shp Within Zones of Proximity to Tsz_reg.shp? (zstat1.dbf). A field of this table is [max], which reflects the maximum distance value a cell within a [recno] zone. 5. Find minimum IC. The same Analysis>Summarize zones step is done for impervious cover. Before summarizing zones, however, a grid must be developed which reflects only IC within the developable land. This grid can be calculated using Analysis>Map calculator (ic_current * devF). With this new calc1 grid created, Analysis>Summarize zones using TSZ_reg and calc1, yielding ?Stats of Map Calculation 1 Within Zones of Proximity to Tsz_reg.shp? (zstat2.dbf). 6. Calculate distance coefficient. The values of [MaxDist], [MinIC], and [ICDevel] can be tabulated by individually joining and ?copying? the fields to calc1 from the appropriate table: zstat1.dbf, zstat2.dbf, and TSZ_reg, respectively. The distance coefficient [dis_coef] unique to each area may be calculated by Table>Calculate [MaxDist]/([MinIC]- [ICDevel]). 7. Calculate new zonal %IC for developable areas: Analysis>Map calculator ([Calc1 . IC_Devel] + [Dist1] / [Calc1 . Dis_coef])*[DevF]. The resulting grid, undev_ic, represents the %IC for the developable lands, as seen in Figure 4-11. 95 Figure 4-11 Fraction Impervious Cover for Developable Land 4.4.4 Assimilating the information With the %IC for undeveloped acreage determined both inside and outside the TSZ extent, the future impervious coverage is assimilated using landuse and undev_Ic. The future_ic field is set equal to current IC where the City has not predefined the future_ic. This coverage is then converted to grid, fut_ic1. The undev_IC and fut_ic1 grids are then merged, resulting in the complete ic_future grid, as seen in Figure 4-12. 96 Figure 4-12 Future Impervious Cover 4.4.5 Future Flow, BMP & Load Calculations All calculations are conducted in the same manner as outlined the appropriate sections of this chapter for current conditions. The only additional steps are the application of more BMPS ? both in the context of non-located BMPs and additional located-load defined BMPs. Identical correction methodology was used for future and current conditions. 97 5 RESULTS After implementing the methodology described in Chapter 4, numerous grids are the result. For current conditions, six grids are created to represent flow predictions (total flow, storm flow and base flow both considering and not considering recharge) and seven grids are created for each constituent (i.e. initial load (for base flow, storm flow and total (3)), load considering non-located BMPs (for storm flow and total (2)), storm flow load considering located BMPs defined by efficiency, and load removed by BMPs defined by quantity removed). Thus, if all 17 constituents are modeled, for both current and future conditions, there are over 200 grids created. It is not feasible to discuss all the results in this thesis, so the discussion is limited to flows and three constituents that are a representative sample of the 17 modeled: BOD, Cu, and TSS. Additionally, for the discussion of selected results, it is helpful to focus at the watershed or even subwatershed level. To that end, Barton Creek and Shoal Creek are used as examples. Barton Creek serves as a good sample of a large, rather undeveloped watershed. Likewise, recharge and non-located BMPs play important roles in this watershed. On the other hand, by exploring Shoal Creek, the factors that influence urban creeks are brought to light. The watersheds are highlighted in Figure 5-1. 98 Figure 5-1 Watersheds covered in discussion of results In each of these watersheds, there are points of interest, comprised of EII sites, USGS gage stations and the outlet of the creek into the Colorado River. These points are labeled for each watershed in Figure 5-2 99 Figure 5-2 Points of Interests Labeled for Barton and Shoal Creeks This chapter discusses the results in three steps. First for impervious cover, the grid and vector versions of current impervious cover are compared and future impervious cover projections discussed. Then, the flow correction methodology and predicted flows are evaluated. Likewise, the predicted loads and predicted flows are assessed. Finally, the impact of BMP removal and the effectiveness of these calculations are discussed. 5.1 Impervious Cover Both flow coefficients and concentration calculations are tied to impervious cover; with this in mind, it is important to evaluate the impervious cover inputs ? for current and future conditions. 100 While the City invested a considerable amount of time and effort into improving the impervious cover dataset for current conditions, some of these improvements are lost in the processing of the data. An illustration of this dynamic for a portion of Shoal Creek is provided in Figure 5-3. Figure 5-3 Impervious Cover Grid vs. Vector Comparison While preliminary calculations of runoff and load coefficients can be made in the vector domain, eventually this shapefile must be converted to grid; thus, the potential problems associated with conversion from vector to grid cannot be avoided in the present form of the model. In order to test the significance of when the grid / vector conversion is made ? before or during the flow and load procedure ? calculations with impervious cover input as a polygon and as a grid were made; the calculated flow values were within 1% of each other. This outcome indicates that the overall difference between percent impervious cover in a watershed, whether represented as a grid or coverage, is fairly minimal. Barton Creek watershed has an overall percent impervious cover of 3.83% based on the vector representation versus 101 3.84% calculated from the ic_current grid; in Shoal Creek, the mean impervious cover is 46.77% calculated from the grid or 47.22% calculated from the shapefile. The differences between representing impervious cover as grid or vector, thus, appear to be negligible. Impervious cover increases in the future have a significant impact on future load and flow. Before exploring the flow and load results, it is important to evaluate the output of the future land use projections. As seen in Figure 5-4, the increase in impervious cover is concentrated in the undeveloped areas outside of the urban areas ? as these are the areas that are ?developable? according to the rules set out in Section 4.4.1. Figure 5-4 Increase in Impervious Cover from Current to Future Conditions In order to better understand the changes that occur due to future land use projections, the transitions in Shoal and Barton Creeks are evaluated. In Figure 5-5, 102 the developable lands ? lands that are currently undeveloped and have a slope less than 15% ? are highlighted in gray. Special polygons, areas of the city that have fixed or known landuse, are indicated in green. The shapes of the traffic serial zones (TSZ), the source for population and employment data, are also shown in the figure. Shoal Creek, like most urban creeks, has limited developable land. The population projections indicate an increase of 6,300 residents (12% increase) and 8,600 employees (15% increase) between the years 1996 and 2040 in the 43 TSZs that cover this watershed. The impervious cover of the Shoal Creek watershed increases 10% between the current and future conditions ? 5% of the watershed that is developable had a 20% increase in impervious cover; there is also an increase in the impervious cover in special polygons. While not particularly an issue in Shoal Creek, the problem of the future land use projections not permitting infill of current land uses is a limitation that effects many of the urban watersheds. Figure 5-5 Developable Lands, Special Polygons and TSZ for Barton and Shoal Creeks 103 In Barton Creek, however, other factors related to future land use projections are illustrated. One limitation is that of the TSZ extent. Approximately one third of the Barton Creek watershed is outside of the TSZ extent. Barton Creek, like Onion Creek, has a largely undeveloped upper watershed. This undeveloped area is presently only covered by USGS landuse data. Using these data, 67% of Barton Creek is ?developable?. For the areas of Barton Creek covered by the TSZs, employment is projected to increase by 24,800 (a 225% increase) and the projected population increase is 76,275 (almost a 400% increase). The projected impervious cover increase is 250% for the entire watershed: from approximately 4% to 9%. A distinct advantage of the future land use projection methodology is the ability to include areas that are protected lands. For example in one of the TSZs associated with the Barton Creek Habitat Preserve, the population is projected to increase 100 times the current population; the developable land is only 6% percent. All developable land is developed, while the preserve is left at the future impervious cover value determined by the City, 1.3%. The greatest strengths of the future land use projection are its ability to encompass known ?special polygons? and capitalize on PECS population and employment projections. However, its inability to allow infilling of present land uses or conversion of landuse should not be neglected. One way to address infilling would be to increase the impervious cover / landuse relationships ? where currently single family homes in the urban area are capped at 30%, one might tie an increase in this %IC relationship to the population / residential acre that is not accommodated by converting developable land to residential. Soon Multi- 104 Resolution Land Characteristics data will be available from MRLC Consortium (www.epa.gov/mrlc) reflecting an update in the nationwide coverage of landuse data. These new data should allow for an improvement not only for current conditions impervious cover input, but also future projections in the area currently only covered by USGS data. 5.2 Flows The calculation of flows is the first step of the model, and serves as the basis for all subsequent calculations. The change in the base flow coefficient / impervious cover relationship, as illustrated in Figure 5-6, has had a significant impact on the calculation of flows and loads. Using the Phase I base flow / impervious cover relationships with Phase II data, the predictions are much closer to the best fit line than the Phase II relationships and Phase II data. 0 20 40 60 80 100 120 0 1020304050607080 Predicted Flow (cfs) Observed Flow (cfs) Uncorrected Flow with PHASE I Baseflow / Storm Flow Separation Uncorrected Flow with PHASE II Baseflow/ Storm Flow Separation Figure 5-6 Comparison of Uncorrected Flow Calculations 105 The initial uncorrected, calculated flows over-predicted in watersheds with high % impervious cover, and under-predicted in watersheds with low % impervious cover. While the correction methodology employed resulted in predicted flows within confidence intervals of observed flows for every USGS gage station, as seen in Figure 4-6, there are still significant questions that arise about the flow correction methodology. Figure 5-7 is a graph of the product of the runoff coefficient equation (R SF = 0.3428IC 2 + 0.5677IC + 0.0125) and flow correction (Corr flow = -2.3141Ln(IC) - 2.1455). The methodology employed for this model implies that runoff increases with impervious cover from 0% - 13% impervious cover, then decreases from 13%- 35% impervious cover, where it begins to increase again. While it produces the desired result, i.e. matched flows, it is not very appealing from a physical basis and is inconsistent with much of the literature on the subject. Figure 5-7 Corrected Runoff Coefficient 106 Other methodologies were considered: tying the correction to the land use type, setting the runoff coefficient to a constant value between 0.12 and 0.18 for IC less than 35%, and creating a continuous parabolic equation for the runoff coefficient. However, whichever methodology is employed, the same inconsistency remains: in order to match flows, the runoff coefficient from undeveloped lands in largely undeveloped watersheds, like Onion and Barton, must be above 10%. This value of 10% is significantly higher than the data from small watersheds suggest, where the runoff coefficient is on the order of 2-5%. Since it is not possible to reconcile the dichotomy between the small watershed data provided by the City of Austin and the base flow definition the City requested the model employ within the lower ranges of impervious cover, the flow correction methodology was utilized as presented. Table 5-1 is a summary of the flows calculated for each watershed outlet in the study area. 107 Table 5-1 Predicted Current Mean Annual Flows for Watershed Outlets WATERSHED Storm Flow (cfs) Base Flow (cfs) Flow (cfs) WATERSHED Storm Flow (cfs) Base Flow (cfs) Flow (cfs) Barton 37.2 8.4 45.6 Johnson 1.0 0.1 1.1 Bear 15.6 2.6 18.2 Lake Creek 12.9 3.2 16.0 Bee 2.3 0.5 2.8 Little Barton 4.5 1.7 6.1 Blunn 0.9 0.1 1.0 Little Bear 6.9 1.0 7.9 Boggy 7.6 0.6 8.3 Little Bee 0.6 0.1 0.7 Brushy 33.5 10.3 43.8 Little Walnut 8.4 0.6 9.0 Bull 13.0 3.8 16.8 Lockwood 43.8 15.8 59.6 Buttercup 2.9 0.8 3.7 Maha 16.5 5.8 22.4 Buttermilk Branch 1.2 0.1 1.2 Marble 1.8 0.6 2.4 Carson 2.5 0.6 3.1 Onion 123.6 26.5 150.1 Cedar 40.0 14.5 54.4 Rattan 3.2 0.9 4.1 Cottonmouth 2.2 0.7 2.9 Rinard 3.2 1.2 4.3 Country Club E. 0.9 0.2 1.0 Shoal 8.1 0.5 8.6 Country Club W. 1.5 0.2 1.7 Slaughter 10.9 2.6 13.6 Decker 10.6 2.1 12.7 South Boggy 2.4 0.5 2.8 Dry 1.1 0.2 1.3 South Brushy 8.0 2.5 10.5 Dry (South) 22.8 8.1 30.8 Tannehill Branch 2.4 0.2 2.6 Eanes 2.0 0.3 2.3 Taylor Slough N. 0.9 0.1 1.0 East Bouldin 1.2 0.1 1.3 Taylor Slough S. 0.4 0.0 0.4 Elm 3.5 1.1 4.6 Waller 3.7 0.2 3.8 Fort Branch 1.7 0.2 1.9 Walnut 28.8 5.2 34.0 Gilleland 35.5 10.0 45.5 West Bouldin 1.7 0.1 1.9 Harper's Branch 0.4 0.0 0.4 West Bull Creek 2.5 1.0 3.4 Harris Branch 5.0 1.5 6.5 Williamson 13.8 2.5 16.3 Huck's Slough 0.1 0.0 0.1 In the future, if the base flow / storm flow separation is not revisited, it would be worthwhile to explore two of the options mentioned: setting the runoff coefficient to a constant value between 0.12 and 0.18 for IC less than 35% or creating a continuous parabolic equation for the runoff coefficient. While either of these solutions would match the small watershed data, they would be mathematically more robust than the present solution for the lower percent impervious covers. 108 Also, the atypical condition of 30% impervious cover causing less runoff than 18% impervious cover would be eliminated. The flows summarized in Table 5-1 have already taken into account the recharge that occurs in the creek. However, Table 5-2 provides a more detailed analysis of the accuracy of the flow predictions in relation to recharge. The predicted decrease in storm flow and base flow match the input data to two significant figures. Table 5-2 Predicated and Observed Recharge Values Flow Not Considering Recharge (cfs) Flow Considering Recharge (cfs) Total Recharge (cfs) Incremental Recharge (cfs) Observed Recharge (cfs) Watershed Storm Base Storm Base Storm Base Storm Base Storm Base Barton 47.34 17.45 37.21 8.41 10.13 9.04 10.13 9.04 10.13 9.04 Bear 20.06 7.30 15.62 2.59 4.44 4.72 2.22 2.36 2.22 2.36 Little Bear 9.15 3.35 6.94 0.99 2.22 2.36 2.22 2.36 2.22 2.36 Onion 143.09 48.78 123.59 26.49 19.50 22.29 11.44 15.54 11.44 15.54 Slaughter 13.46 3.99 10.95 2.63 2.51 1.36 2.51 1.36 2.51 1.36 Williamson 13.65 2.85 12.54 2.18 1.11 0.67 1.11 0.67 1.11 0.67 The difference in the longitudinal profile of flows, considering and not considering recharge, also reflects the predicted recharge. The longitudinal profile of flows for Barton Creek is presented in Figure 5-8. 109 Longitudinal Flow Profile for Barton Creek 0 10 20 30 40 50 60 70 051015202530 Distance from Outlet (miles) Fl ow ( c f s ) Total Flow (w/o Rech) Total Flow (cons. Rech) Storm Flow (w/o Rech) Storm Flow (cons. Rech) Base Flow (w/o Rech) Base Flow (cons. Rech) Recharge Zone Figure 5-8 Flow Profile, with and without Recharge, for Barton Creek The final model result that relates specifically to flows is future flows. As outlined in Section 4.4.5, the future flow methodology is identical for future and current conditions; the only difference in inputs is the impervious cover. Figure 5-9 and Figure 5-10 present predicted base flow, storm flow, and total flow for current and future conditions in Barton and Shoal Creeks respectively. 110 Line Profile for Barton Creek 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 0.05.010.015.020.025.030.0 Distance (miles) F l o w ( c fs ) Current - Total Future - Total Current - Storm Future - Storm Current - Base Future - Base Recharge Zone Figure 5-9 Barton Creek Flow Profile, Current and Future Conditions As can been seen in the figure corresponding to Barton Creek, total and storm flow increase, while base flow decreases with development. Looking at this data alone, future conditions flow appear to be in line with expectations that storm flow increases with increased impervious cover. In Figure 5-10, the flow profile for Shoal Creek is presented. 111 Line Profile for Shoal Creek 0 1 2 3 4 5 6 7 8 9 10 0.01.02.03.04.05.06.07.08.09.010.0 Distance from Outlet (miles) Flow (cfs) Total Flow Future - Total Storm Flow Future - Storm Base Flow Future - Base Figure 5-10 Shoal Creek Flow Profile for Current and Future Conditions There appears to be little difference between the current and future flows, as one might expect in a watershed with little change in impervious cover. With closer inspection, there seems to be a situation where the two storm flows trade places. This could be a rounding error in the line profiler or it could be explained by the flow correction methodology. Due to the flow correction methodology, for 2% of the cells in the study area, storm flow, and subsequently total flow, actually decreases with increased impervious cover. This is true for cells that under current conditions had approximately 2% impervious cover ? which is the value assigned to most undeveloped lands ? and in future conditions have an impervious cover of 30%. There are additional areas (another 2% of the study area) where impervious cover 112 increases, but the base flow coefficient decreases more than the storm flow coefficient increases, also resulting in a decrease in total flow. 5.3 Loads As described in the methodology, the load calculations are heavily dependent on the flow values. The change in the assumption of base flow and storm flow separation might be one cause for the poor match with observed values; however, there are in-stream process that are not incorporated in the initial load estimation which are incorporated through the use of correction relationships as described in Section 4.2.3. The corrected values do offer a considerable improvement over the uncorrected loads as seen for the case of BOD, Cu and TSS in Figure 5-11 through Figure 5-13. These three constituents represent a sample of the corrections encountered: BOD was initially overestimated and was corrected using a logarithmic correction. Cu was overestimated, like the other metals ? PB and Zn, and corrected using a linear correction. TSS was underestimated and had a linear correction. 113 Biological Oxygen Demand Predicted Loads 0 20000 40000 60000 80000 100000 120000 140000 160000 180000 0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000 Predicted Annual Load (kg/yr) Observed Annual Load (kg/yr) Uncorrected Perfect Fit Corrected Figure 5-11 Observed Loads vs. Predicted Loads - BOD Copper Predicted Loads 0 20 40 60 80 100 120 0 50 100 150 200 250 300 Predicted Annual Load (kg/yr) O b s e r v e d A n n u a l Loa d ( k g/ y r ) Uncorrected Perfect Fit Corrected Figure 5-12 Observed Loads vs. Predicted Loads - Cu 114 Total Suspended Solids Predicted Loads 0 5,000,000 10,000,000 15,000,000 20,000,000 25,000,000 30,000,000 35,000,000 40,000,000 05,000,000 10,000,000 15,000,000 20,000,000 25,000,000 30,000,000 35,000,000 40,000,000 Predicted Annual Load (kg/yr) O b s e rv e d A nnu a l Loa d ( k g / y r ) Uncorrected Perfect Fit Corrected Figure 5-13 Observed Loads vs. Predicted Loads ?TSS A spatial representation of the predicted concentration, calculated by dividing the predicted storm flow load by the predicted storm flow and the appropriate unit conversion factor, is shown in Figure 5-14. The figure shows that the range of concentrations is within the range of observed concentrations for TSS ? 300 mg/L in Barton Creek to 2000 mg/L in Boggy Creek. Also, like the observed concentrations, the higher density watersheds have higher TSS concentrations. 115 Figure 5-14 Corrected TSS Concentrations for Current Conditions 5.4 BMP removals BMP removals, as explained in Section 4.3, are broken up into three steps by the different representation of BMPs in the model: nonlocated BMPs, efficiency removed, and fixed load removed. For current conditions, a representation of the amounts removed by each BMP procedure for Barton Creek is found in Figure 5-15. 116 Figure 5-15 TSS BMP removal for Barton Creek In Shoal Creek, there are non-located BMPs, a number of located BMPs, and no waterbodies acting as BMPs. The effects of each BMP are represented in Figure 5-16. 117 Line Profile for Shoal Creek 0 20000 40000 60000 80000 100000 120000 Distance from Outlet (miles) TSS ( k g/ y r ) TSS load removed TSS non-located TSS efficiency removed Figure 5-16 TSS BMP removals for Shoal Creek For future conditions, the load results are significantly affected by the non- located BMP methodology. For every area where complete build out occurs, i.e. all the developable land is developed, the non-located BMPs are applied according to the table given by the City, Table 3-6. In Barton Creek, 67 percent of the land is developable; most of the land is ?developed? in the future projections ? even if to only 15% impervious cover. Since Barton Creek is in the Edwards Aquifer recharge zone, BMPs are assumed to be applied everywhere development occurs. The extensive application of BMPs results in a dramatic decrease in predicted loads, as seen in Figure 5-17. 118 Line Profile for Barton Creek 0 5,000,000 10,000,000 15,000,000 20,000,000 25,000,000 30,000,000 02468101214161820 Distance (miles) Load (kg/yr) Current - TSS Current -TSS after BMP Future - TSS Future-TSS after BMP Figure 5-17 Barton Creek Profile for TSS loads In Shoal Creek, loads are not as affected by BMPs as in Barton Creek; the reason for this is two-fold. First, less land is projected to be converted from undeveloped to develop, so less BMPs would be applied. Secondly, watershed ordinances require less BMP application in urban watersheds than in watersheds draining into the recharge zone or towards water sources. 119 6 CONCLUSION This research focuses on the use of a GIS to model current and future flows and loadings throughout the City of Austin and surrounding areas. The City of Austin Watershed Protection Department required a tool that would model non- point source pollution and incorporate the impact of Best Management Practices (BMP). A first iteration of this model was completed in 1997; however there were several changes the Watershed Protection Department wanted implemented. Some of these modifications were improved datasets, new storm flow and base flow separations, modified future impervious cover projection methodology, and incorporation of improved water quality sampling data. As presented in this thesis, a tool was created that can match observed flows and loads with reasonable accuracy. The implications of the aforementioned changes to the model are worth reviewing. Some of the model modifications reflect an improvement, while others require further evaluation. 6.1 Strengths of Present Model The greatest strength of the model presented in this thesis is the updated geospatial datasets. The Watershed Protection Department invested a considerable amount of time and effort in improving the inputs of the model ? an accurate stream network, improved watershed boundaries, a more detailed land use coverage, and new land use / impervious cover relationships. Each of these new datasets was included in the model, thus increasing its accuracy. Additionally the continuous DEMs from the National Elevation Dataset were easily incorporated into the model 120 framework. The ease of inclusion of new data sets is a true benefit of the Phase II model presented in this thesis. In addition to the improved datasets, new correction methodologies were implemented for both flow and load calculations. Previously, flows were corrected on a watershed by watershed basis. This methodology created two distinct problems: 1) devising a correction factor for ungaged watersheds and 2) for parcels of land located in two watersheds, storm flow was sometimes increased in one watershed and decreased in the other when flow corrections were applied. The flow correction methodology in this thesis uses a cell-by-cell basis. This methodology avoided the problems of the former correction, but created some problems of its own at low percent impervious cover as reviewed in Section 5.2. The load correction methodology, which previously had been attributed exclusively to channel erosion, is now expanded to channel erosion and other instream processes. Additionally, instead of being calculated outside of the GIS framework, load corrections are applied as part of the load calculation script. Thus, all model calculations can be contained within one application Previously, current condition BMPs that were not part of the geographically referenced BMP database (hence non-located) could not be included in the model. As documented in this thesis, the Watershed Protection Department provided estimates of BMPs impacts on a sub-watershed basis; with this estimation, and a modification of the non-located BMP script, current non-located BMPs are successfully incorporated in this phase of the model. 121 Finally, future land use projections are no longer conducted in a black box for this phase of the model. In the previous iteration of the model, an estimate of increased impervious cover was calculated by City of Austin staff for each traffic serial zone (TSZ), and then applied on a TSZ basis. This thesis documents the manner of estimating transitions of land from undeveloped land to developed lands and the manipulation of these development transitions into a future impervious cover projection. While this methodology is a far cry from Markov transition matrices, multi-logit models, or other mechanisms planners might suggest for future land use projections, it capitalizes on projections made by the City?s Planning, Environmental, and Conservation Services department and meets the model?s need of having a future impervious cover prediction conducted in a fairly straightforward manner. 6.2 Model Implications This model is used by the City of Austin to assess current conditions, to prioritize watersheds in need of remediation, and make decisions about future development. With this in mind, it is important to take a step back from the details of model development and analyze what conclusions might be drawn from the results of this model. As seen in Section 5.3, the comparisons of Barton Creek and Shoal Creek bring to light the difference not only of large and small watersheds, but also developed versus undeveloped watersheds; while the profile of TSS for Barton Creek shows a good comparison of current and future conditions. Highly developed watersheds have higher concentrations for most constituents, with the exception of Total Dissolved Solids (TDS). This does not 122 always translate into higher annual loads, as flow in larger, undeveloped watersheds sometimes results in greater overall loading. One watershed that had the highest annual loading for some constituents was not the largest watershed or the most developed, but a medium size, suburban/urban watershed. The combination of some of the high concentrations, both observed and predicted, and a substantial flow results in Williamson Creek having considerable annual loadings. In addition to giving insight into the distribution of loading around the City, this model powerfully illustrates the possible impact of extensive use of Best Management Practices. In Figure 5-17, the predicted loads in Barton Creek increase in the future due to development; however when taking into account BMP implementation, as required by City ordinances, the loads decrease to levels even below current conditions ? a testimonial to the application of the SOS ordinance. Current BMPs, however, do not have a nearly as large an impact on the loads of current conditions. This is a reflection of how few BMPs are currently in place relative to the amount of area presently developed. 6.3 Limitations and Considerations for Future Work While these changes, as documented, reflect an improvement over the last model, there remain areas to explore. While the flow and load correction methodology do reflect an easier manner for correcting flow and loads, it is important to question how much correction should be necessary in the first place. The improved land use coverage and land use/impervious cover relationships should improve the flow and load estimations, not require increased correction as they do. When the model was run with the old scripts, improved datasets, and no change to 123 storm flow / base flow separation from the Phase I model, the flows matched rather well, as seen in Figure 5-6. There was still the usual overestimation in urban watersheds and underestimation in rural watersheds; however the correction necessary was not as great as when the new base flow and storm flow separation assumptions were incorporated. This factor and the resulting correction coefficient graph, Figure 5-7, might lead the Watershed Protection Department to reevaluate the base flow / storm flow separation. If a modification in the base flow / storm flow relations is not an option, then one of the other suggestions in Section 5.2 might be implemented: setting the runoff coefficient to a constant value between 0.12 and 0.18 for IC less than 35% or creating a continuous parabolic equation for the runoff coefficient. Additionally, observed storm flow concentrations are, as expected, greater for many constituents than base flow concentrations: for example, the observed Biological Oxygen Demand (BOD) base flow concentrations are less than 1 mg/L, while the observed storm flow concentrations are between 2 and 10 mg/L. Thus, when a greater percentage of flow is attributed to the storm flow, an overestimation of certain constituents is the result. BOD, Cu, DP, NH3, and NO 3 loads are all over predicted. The discrepancy between initial, predicted loads and observed loads cannot be wholly explained by flow separations: the model in either manifestation, for example, significantly underestimates Total Suspended Solids (TSS). However, when the flow separation is reevaluated, a new manner for correcting for a constituent like TSS could be developed. TOC, TSS, Fecal Strep, Pb, and TKN loads 124 are all under predicted. TDS is the only constituent that closely matches observed loads While future land use projections are more transparent in this model, compared to the previous model, there are improvements that could be made. The easiest improvement will be the incorporation of the new Multi-Resolution Land Characteristics dataset which has recently become available for Texas. Additionally, the Watershed Protection Department might consider evaluating how impervious cover would increase in parcels where land use stays the same, but in-fill is encouraged through the City policy of Smart Growth. An increase in impervious cover assumptions by land use for future conditions could easily be included in the model. If BMPs are built as infilling occurs, these parcels would be included as ?buildup? areas for future condition non-located BMPs. The development of this model and the expansion of the number of constituents have brought to light, in a striking manner, the limitations of the grid environment and the appeal of the vector environment for storing information. The number of grids required to represent all the steps of the flow, loads, and BMP calculations exceeds 200. The file space required to store these datasets is over 10 gigabytes; even as computer hard drives expand, this is an excessive footprint for a model covering a relatively small region of interest. Of course, at the same time, there is a flexibility that is afforded in grid, in terms of redefinition of subwatersheds and points of interest that is hard to currently duplicate in the vector domain. As network tools and GIS tools are further developed, this model might be able use its 125 current structure as a calculating framework, but the results could be stored in a database instead of multiple grids. The Phase II model is a complex model. It is able to represent in a GIS framework many factors within the City which influence water quality: including, spatial distributed precipitation, land use information, impervious cover, creek networks, City jurisdictions, watershed regulations, best management practices, watershed boundaries, and topography. 5.5 million 100ft by 100ft grid cells are required to cover the study area, which encompasses all watersheds that have drainage in the City of Austin. The model also takes advantage of the extensive water quality monitoring data the City has sampled over the years. It is this data that serves as the basis of the flow and load calculations. In addition to calculating flows and annual loads for 17 constituents for each cell in the study area for present conditions, this research addresses future conditions as well. In order to project impervious cover into the future, the model capitalizes on another dataset developed within the City of Austin, population and employment projections. At this juncture, the best work that could be done with this model is to use it. There are many questions that were not explored in this thesis, due to time limitations: some of these investigations include, the significance of the order in which BMP calculations are conducted; a sensitivity analysis of the correction factors used; and a comparison of load correlation by base flow and storm flow, instead of only total flow. By looking at these questions and others, the manner in which all the components of this model come together can be more thoroughly explored and understood. 126 APPENDIX 1 SCRIPTS Only scripts that have been modified since Phase I have been included in this Appendix. For all other scripts, please see CRWR Online Report 97-6 Script Name Function Qual.BMPchk Checks to make sure multiple BMPs are not in the same grid cell. Qual.BMPnonloc Computes the new load after the effect of non-located BMPs defined by removal efficiency. (Formerly BMPfut) Qual.BMPoutlet Creates shapefile representing outlet of waterbody BMPs. Qual.Flow Computes the discharge (cfs). Qual.Load Computes the load (kg/yr). Qual.RechCalib Computes recharge calibration. Qual.BMPchk '---------------- '--- Get view --- '---------------- theView = av.GetActiveDoc '--------------------------- '--- Set analysis extent --- '--------------------------- ' bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) 127 end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) '------------------ '--- Get themes --- '------------------ if (theView.GetThemes.Count = 0) then msgbox.error("No themes found", "BMP_CHK") exit end Thm1List=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="Point")then Thm1List.add(thm) end end end Ptthm=Msgbox.ChoiceAsString(Thm1List,"Choose a point coverage",Script.The.GetName) if(Ptthm=nil)then exit end pttab=Ptthm.getFtab pttab.seteditable(true) fieldlist=pttab.getfields idpc = MsgBox.ChoiceAsString(fieldList,"Choose an identity field.",Script.The.GetName) if (idpc = nil) then Msgbox.info("Can't find Id field in theme",Script.The.GetName) exit end loadpc = MsgBox.ChoiceAsString(fieldList,"Choose an load field.",Script.The.GetName) '----------------------- '--- Convert to Grid --- '----------------------- pointid = Grid.MakeFromFTab(pttab, Prj.makenull, idpc, {thecellSize, theextent}) 'create a field for each grid with the grid name if it does not exist yet. 'If it exists ask to overwrite or to give another name. 'for each thm in flowthm idname = idpc.getname loadname=loadpc.getname ptvalue = pttab.findfield(idname) newname = msgbox.input("Enter the new field name", "Field name" , idname ) 128 pttab.seteditable(true) ptvalue = field.make(newname.asstring, #FIELD_DECIMAL, 16, 4) pttab.addfields({ptvalue}) ptvalue2 = field.make(newname.asstring, #FIELD_DECIMAL, 16, 4) pttab.addfields({ptvalue2}) newname2 = msgbox.input("Enter the new field name", "Field name" , loadname ) loadvalue = field.make(newname2.asstring, #FIELD_DECIMAL, 16, 4) pttab.addfields({loadvalue}) 'pttab.seteditable(false) grid1 = pointid ptshape = pttab.findfield("shape") if (ptshape = nil) then msgbox.error("Can't find 'shape' field in point theme",Script.The.GetName) exit end 'get the value of the id grid pttab.seteditable(true) for each rec in pttab shapev = pttab.returnvalue(ptshape,rec) val = grid1.cellvalue(shapeV,Prj.MakeNull) pttab.setvalue(ptvalue,rec,val) end 'pttab.seteditable(false) 'compare it with other records for each rec in pttab ptvalue3 = pttab.returnvalue(ptvalue,rec) ptid2 = pttab.returnvalue(idpc,rec) tload=0 if (ptvalue3 <> ptid2) then pttab.setvalue(ptvalue2,rec,ptvalue3) end end for each rec in pttab ptvalue4=pttab.returnvalue(ptvalue2, rec) tload=0 if (ptvalue4 <> nil) then for each rec in pttab ptvalue5=pttab.returnvalue(ptvalue, rec) if (ptvalue5=ptvalue4) then load0=pttab.returnvalue(loadpc,rec) tload=load0+tload end end for each rec in pttab ptvalue5=pttab.returnvalue(ptvalue, rec) if (ptvalue5=ptvalue4) then pttab.setvalue(loadvalue,rec,tload) end end end 129 loadvalue4=pttab.returnvalue(loadvalue, rec) if (loadvalue4 = 0) then oload=pttab.returnvalue(loadpc,rec) pttab.setvalue(loadvalue,rec,oload) end end ' for each rec in pttab ' ptvalue5=pttab.returnvalue(ptvalue, rec) ' if (ptvalue5=ptvalue4) then ' pttab.setvalue(loadvalue,rec,tload) ' end ' end pttab.removefields({ptvalue}) pttab.removefields({ptvalue2}) 'final message to user ' message = "Grid values picked" msgbox.info(message,Script.The.GetName) '----------- '--- End --- '----------- Qual.BMPnonloc '---------------------------- '--- Creation information --- '---------------------------- ' 'Name: Qual.BMPfut 'Version: 1.0 'Date: 10/17/97 'Author: Christine Dartiguenave ' Center for Research in Water Resources ' The University of Texas at Austin ' darti@crwr.utexas.edu 'Modified: 7/15/00 by Katherine Osborne 'Notes: Added loop to permit more than 10 BMP zones. ' '--------------------------- '--- Purpose/Description --- '--------------------------- ' 'This program compute the new load after implementation of the future BMPs (areal representation). '-------------------- '--- Get the View --- '-------------------- ' theView=av.GetActiveDoc aPrj = theView.GetProjection 'Check if there are any theme in the view. if (theView.GetThemes.Count = 0) then 130 msgbox.error("No themes found", Script.The.GetName) exit end '--------------------------- '--- Set analysis extent --- '--------------------------- ' bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) '----------------------------- '--- Set working directory --- '----------------------------- aProject=av.GetProject defaultdir=aProject.GetWorkDir inputdir=MsgBox.Input("Choose the working directory.",Script.The.GetName,defaultdir.asstring) if (inputdir=nil) then else aDirName = inputdir.asfilename aProject.SetWorkDir (aDirName) end recharge=msgbox.yesno("Do you want to consider a recharge zone",Script.The.GetName,true) acvfalse=msgbox.yesno("Do you want to calculate ACV grids?",Script.The.GetName,true) '---------------------------------------- '--- Choose the constituents to model --- '---------------------------------------- '---------------------- '--- Get the tables --- '---------------------- doculist = av.GetProject.Getdocs 131 tablelist=List.Make for each d in doculist if(d.Is(Table))then TableList.add(d) end end 'Annual capture volume tables acvtable=Msgbox.ChoiceAsString(tableList,"Choose a capture volume table.",Script.The.GetName) if(acvtable=nil)then msgbox.error("No ACV table selected",Script.The.GetName) exit end acvtab=acvtable.getvtab acvlist=acvtab.getfields 'BMPs zones tables bmptable=Msgbox.ChoiceAsString(tableList,"Choose a BMPs zones table.",Script.The.GetName) if(bmptable=nil)then msgbox.error("No BMPs zones table selected",Script.The.GetName) exit end bmptab=bmptable.getvtab bmplist=bmptab.getfields 'Efficiency efftable=Msgbox.ChoiceAsString(tableList,"Choose an efficiency table.",Script.The.GetName) if(efftable=nil)then msgbox.error("No efficiency table selected",Script.The.GetName) exit end efftab=efftable.getvtab efflist=efftab.getfields 'Direct runoff EMC table emcruntable=Msgbox.ChoiceAsString(tableList,"Choose a direct runoff EMCs table",Script.The.GetName) if(emcruntable=nil)then msgbox.error("No direct runoff EMCs table selected",Script.The.GetName) exit end emcruntab=emcruntable.getvtab emcrunlist=emcruntab.getfields runcons=emcrunlist.get(0) CORruntable=Msgbox.ChoiceAsString(tableList,"Choose a direct runoff CORRECTION table",Script.The.GetName) if(CORruntable=nil)then msgbox.error("No direct runoff EMCs table selected",Script.The.GetName) exit end CORruntab=CORruntable.getvtab CORrunlist=CORruntab.getfields 132 corcons=CORrunlist.get(0) linearcorrection=msgbox.yesno("Is this a linear correction? If you answer no, log correction is assumed",Script.The.GetName,true) 'List the available grids gridList=list.Make for each thm in TheView.GetThemes if(thm.is(Gtheme))then gridList.add(thm) end end 'Choose the constituents to model 'Number of constituents i=0 for each rec in efftab i=i+1 end r=i s=r-1 constfield=efflist.get(0) conslist=list.make for each k in 2..s constituent=efftab.returnvaluestring(constfield,k) conslist.add(constituent) end choices = MsgBox.MultiListAsString( conslist, "Choose the constituent(s) to model", Script.The.GetName ) if (choices = nil) then msgbox.info("No constituent selected.", Script.The.GetName) exit else namelist=list.make sfnamelist=list.make loadlist=list.make sfloadlist=list.make for each cons in choices outFName = av.GetProject.MakeFileName(cons, "") aName = FileDialog.Put(outFName, "", cons) if (aName = Nil) then exit end namelist.add(aname) 'Choose an original load grid loadthm=Msgbox.ChoiceAsString(gridList,"Choose an initial load grid for"++cons.asstring,Script.The.GetName) if(loadthm=nil)then exit end loadlist.add(loadthm) consname=cons.asstring conssfst=consname+"sf" 133 SFoutFName = av.GetProject.MakeFileName(conssfst, "") SFaName = FileDialog.Put(SFoutFName, "", conssfst) if (SFaName = Nil) then exit end SFnamelist.add(SFaname) SFloadthm=Msgbox.ChoiceAsString(gridList,"Choose an initial STORM FLOW load grid for"++cons.asstring,Script.The.GetName) if(SFloadthm=nil)then exit end SFloadlist.add(sfloadthm) end end 'Choose an impervious cover theme icList=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="polygon")then icList.add(thm) end else if (thm.is(Gtheme)) then iclist.add(thm) end end end icthm=Msgbox.ChoiceAsString(icList,"Choose an impervious cover theme.",Script.The.GetName) if(icthm=nil)then exit end if (icthm.is(ftheme)) then anftab=icthm.getftab fieldlist=anftab.getfields icfield=Msgbox.ChoiceAsString(fieldlist,"Choose the ic field.",Script.The.GetName) if(icfield=nil)then exit end end 'Choose a flow direction grid fdirthm=Msgbox.ChoiceAsString(gridList,"Choose a flow direction grid.",Script.The.GetName) if(fdirthm=nil)then exit end fdirgrid=fdirthm.getgrid 'Choose a bmp zone grid 134 bmpzonethm=Msgbox.ChoiceAsString(gridList,"Choose a BMPs zones grid.",Script.The.GetName) if(bmpzonethm=nil)then exit end bmpzone=bmpzonethm.getgrid 'Choose a corrected cell runoff grid runcellthm=Msgbox.ChoiceAsString(gridList,"Choose a corrected cell storm flow coefficient grid.",Script.The.GetName) if(runcellthm=nil)then exit end runcell=runcellthm.getgrid 'Choose a buildup grid buildupthm=Msgbox.ChoiceAsString(gridList,"Choose a buildup grid.",Script.The.GetName) if(buildupthm=nil)then exit end buildup=buildupthm.getgrid 'Choose a water land use zone zonethm=Msgbox.ChoiceAsString(gridList,"Choose a water landuse theme (zone_gr).",Script.The.GetName) if(zonethm=nil)then exit end zone=zonethm.getgrid if (recharge) then 'Choose a total flow grid with recharge SFtflowthm=Msgbox.ChoiceAsString(gridList,"Choose a predicted STORM flow grid (with recharge, sflow1).",Script.The.GetName) if(SFtflowthm=nil)then exit end SFtflow=SFtflowthm.getgrid 'Choose a total flow grid without recharge SFtflow0thm=Msgbox.ChoiceAsString(gridList,"Choose a total STORM flow grid (without recharge, tsflw01).",Script.The.GetName) if(SFtflow0thm=nil)then exit end 135 SFtotalflow0=SFtflow0thm.getgrid 'Choose a cell correction recharge SFlcorrrechthm=Msgbox.ChoiceAsString(gridList,"Choose a cell correction STORM FLOW recharge grid.",Script.The.GetName) if(SFlcorrrechthm=nil)then exit end SFlcorr_rech=SFlcorrrechthm.getgrid end if (icthm.is(gTheme)) then icgrid=icthm.getgrid else anftab=icthm.getftab icgrid = Grid.MakeFromFTab(anFTab, aPrj, icfield, {thecellSize, theextent}) end '---------------------- '--- Capture volumes --- '---------------------- 'If ACV grids have not been calculated if (acvfalse) then 'number of acv p=acvlist.count q=p-1 for each i in 0..q thefield=acvlist.get(i) a=acvtab.returnvalue(thefield,0) b=acvtab.returnvalue(thefield,1) acvgrid=a.asgrid*icgrid+b.asgrid acvname = av.getproject.makefilename("acv", "") acvgrid.savedataset(acvname) acvgthm=Gtheme.Make(acvgrid) theview.addtheme(acvgthm) acvgthm.setlegendvisible(false) i=i+1 end end '------------------ '--- Efficiency --- '------------------ i=0 for each rec in bmptab i=i+1 end n=i 'n is the number of bmp zones 'q total number of bmps p=bmplist.count q=p-1 136 'for each constituent 'number of constituents to model z=choices.count if (recharge=true) then '------------------------------- '--- Flow removal efficiency --- '------------------------------- 'Check if there are non discharge BMPs theval=0 for each i in 1..q thefield2=efflist.get(i) effval=efftab.returnvalue(thefield2,1) theval=theval.max(effval) i=i+1 end if (theval<>0) then floweffgrid=0.asgrid 'for each zone for each i in 1..n floweff=0.asgrid for each j in 1..q 'get the percentage of the bmp thefield1=bmplist.get(j) bmpval=bmptab.returnvalue(thefield1,i-1) 'msgbox.info(bmpval.asstring,"bmp%") 'get the efficiency thefield2=efflist.get(j) effval=efftab.returnvalue(thefield2,1) acvval=efftab.returnvalue(thefield2,0) theacvname="acv"+acvval.asstring 'msgbox.info(theacvname, "acv") 'msgbox.info(effval.asstring,"removal eff") acvthm=theview.findtheme(theacvname) theacvgrid=acvthm.getgrid floweff=floweff+(bmpval.asgrid*effval.asgrid*theacvgrid) j=j+1 end thefield0=bmplist.get(0) bzone=bmptab.returnvalue(thefield0,i-1) floweffgrid=(bmpzone=bzone.asgrid).con(floweff,floweffgrid) floweffthm=gtheme.make(floweffgrid) backup = (i mod 10) if (backup=0) then floweffthm=gtheme.make(floweffgrid) end i=i+1 end rmruncell = runcell * floweffgrid * buildup sfrmflow = (fdirgrid.flowaccumulation(rmruncell)) sftotalflow1 = sftotalflow0 - sfrmflow sfnewflow1 = sftflow - sfrmflow 137 thename = av.getproject.makefilename("new_Sflow","") sfnewflow1.savedataset(thename) sfnewflow1gthm=Gtheme.Make(sfnewflow1) theview.addtheme(sfnewflow1gthm) sfnewflow1gthm.setlegendvisible(false) else sftotalflow1=sftotalflow0 end end '------------------------- '--- Direct Runoff EMC --- '------------------------- for each l in 1..z theeffgrid=0.asgrid cons=choices.get(l-1) 'Check storm runoff field if (icthm.is(ftheme)) then anftab.seteditable(true) consfield = anftab.findfield(cons+"_[mg/l]") if (consfield = nil) then consfield = field.make(cons+"_[mg/l]", #FIELD_DECIMAL, 6, 3) anftab.addfields({consfield}) end end 'Get the parameters a and b (emc=a+b*ic,01)then icperc = true else icperc = false end for each rec in anFtab ic1 = anFtab.returnvalue(icfield, rec) if (icperc=true) then ic1=ic1/100 end emcrun=b*ic1+a emcrun2=emcrun*(d*ic1+c) anftab.setvalue(consfield , rec , emcrun2 ) end else aprj=theview.getprojection icint=icgrid.int icvtab=icint.getvtab icfield=icvtab.findfield("value") icmax=0 for each rec in icvtab icvalue=icvtab.returnvalue(icfield,rec) icmax=icmax.max(icvalue) end if (icmax<=1) then emc_gr0 = icgrid*b + a.asgrid if (linearcorrection) then emc_gr2 = icgrid*d + c.asgrid else emc_gr3 = icgrid.log*d + c.asgrid emc_gr2=(emc_gr3>1.asgrid).con(1.asgrid , emc_gr3) end else emc_gr0 = icgrid*b*0.01 + a.asgrid if (linearcorrection) then emc_gr2 = icgrid*d*0.01 + c.asgrid else emc_gr3 = (icgrid*0.01).log*d + c.asgrid emc_gr2=(emc_gr3>1.asgrid).con(1.asgrid , emc_gr3) end end end aPrj=theview.getprojection if (icthm.is(Ftheme)) then emc_gr0 = Grid.MakeFromFTab(anFTab, aPrj, consfield, {thecellSize, theextent}) end 139 'Set the EMC for water to zero. emc_gr=(zone=999).con(0.asgrid,emc_gr0) i=0 thecons=efflist.get(0) for each rec in efftab theconsname=efftab.returnvaluestring(thecons,rec) if (theconsname=cons) then t=i else i=i+1 end end 'for each zone for each i in 1..n eff=0.asgrid 'for each BMP for each j in 1..q 'get the percentage of the bmp thefield1=bmplist.get(j) bmpval=bmptab.returnvalue(thefield1,i-1) 'msgbox.info(bmpval.asstring,"bmp%") 'get the efficiency thefield2=efflist.get(j) effval=efftab.returnvalue(thefield2,t) 'msgbox.info(effval.asstring,"eff") acvval=efftab.returnvalue(thefield2,0) theacvname="acv"+acvval.asstring 'msgbox.info(theacvname,"acv") acvthm=theview.findtheme(theacvname) theacvgrid=acvthm.getgrid '1=bod in that case eff=eff+ (theacvgrid*bmpval.asgrid*effval.asgrid) j=j+1 end thefield0=bmplist.get(0) ' bzone=bmptab.returnvalue(thefield0,i-1) theeffgrid=(bmpzone=i.asgrid).con(eff,theeffgrid) ' effthm=gtheme.make(theeffgrid) backup = (i mod 10) if (backup=0) then effthm=gtheme.make(theeffgrid) end i=i+1 end ' theeffgrid.savedataset(aname) ' effthm=Gtheme.Make(theeffgrid) ' theview.addtheme(effthm) ' effthm.setlegendvisible(false) 'Check if effgrid contains negative values effgrid1 = theeffgrid*10000 effgridint = effgrid1.int effgridtab=effgridint.getvtab effgridfield=effgridtab.findfield("value") themax=0 themin=0 140 for each rec in effgridtab theval=effgridtab.returnvalue(effgridfield,rec) themax=themax.max(theval) themin=themin.min(theval) end if (themin<0) then if (themax=0) then effgrid = - theeffgrid rmloadcell=runcell*emc_gr*EMC_GR2*effgrid*buildup*3.048*3.048*3 .048*365*86400/1000000 rmload0=-(fdirgrid.flowaccumulation(rmloadcell)) else neggrid=(theeffgrid>=0).setnull(-theeffgrid) posgrid=(theeffgrid<(-0.0001)).setnull(theeffgrid) negloadcell = runcell *emc_gr*EMC_GR2*neggrid*buildup*3.048*3.048*3.048*365*86400/ 1000000 posloadcell = runcell *emc_gr*EMC_GR2*posgrid*buildup*3.048*3.048*3.048*365*86400/ 1000000 negload0 = (fdirgrid.flowaccumulation(negloadcell)) posload0 = (fdirgrid.flowaccumulation(posloadcell)) sfrmload0 = posload0 - negload0 end else rmloadcell=runcell*emc_gr*EMC_GR2*theeffgrid*buildup*3.048*3. 048*3.048*365*86400/1000000 sfrmload0=(fdirgrid.flowaccumulation(rmloadcell)) end '---------------------------------- '--- Compute the corrected load --- '---------------------------------- loadthm=loadlist.get(l-1) load=loadthm.getgrid sfloadthm=sfloadlist.get(l-1) sfload=sfloadthm.getgrid if (recharge=false) then 'Without recharge newload=load-sfrmload0 aname=namelist.get(l-1) newload.savedataset(aname) newloadgthm=Gtheme.Make(newload) theview.addtheme(newloadgthm) newloadgthm.setlegendvisible(false) sfnewload=sfload-sfrmload0 141 sfaname=sfnamelist.get(l-1) sfnewload.savedataset(sfaname) sfnewloadgthm=Gtheme.Make(sfnewload) theview.addtheme(sfnewloadgthm) sfnewloadgthm.setlegendvisible(false) else 'With recharge newload=load-sfrmload0 aname=namelist.get(l-1) newload.savedataset(aname) newloadgthm=Gtheme.Make(newload) theview.addtheme(newloadgthm) newloadgthm.setlegendvisible(false) sfnewload=sfload-sfrmload0 sfaname=sfnamelist.get(l-1) sfnewload.savedataset(sfaname) sfnewloadgthm=Gtheme.Make(sfnewload) theview.addtheme(sfnewloadgthm) sfnewloadgthm.setlegendvisible(false) ' ' ' ' ' '' sfload02 = sfload * sftotalflow0 / sftflow - sfrmload0 ' sfload01 = sfload- sfrmload0 '' sfco1 = sfload02 / sftotalflow1 '' sfloadrech = sflcorr_rech * sfco1 '' sfrechload=(fdirgrid.flowaccumulation(sfloadrech)) '' SFnewload=SFload01-SFrechload ' SFnewload=SFload01 ' SFaname=SFnamelist.get(l-1) ' SFnewload.savedataset(SFaname) ' SFnewloadgthm=Gtheme.Make(SFnewload) ' theview.addtheme(SFnewloadgthm) ' SFnewloadgthm.setlegendvisible(false) ' ' ' load01 = load - SFload+ SFload01 ' newload=load01 ' '' load01 = load - SFload+ SFload01 '' newload=load01-SFrechload ' aname=namelist.get(l-1) ' newload.savedataset(aname) ' newloadgthm=Gtheme.Make(newload) ' theview.addtheme(newloadgthm) ' newloadgthm.setlegendvisible(false) end l=l+1 end p=acvlist.count i=1 for each i in 1..p theacvname="acv"+i.asstring thename=theacvname.asfilename acvthm=theview.findtheme(theacvname) 142 theview.deletetheme(acvthm) grid.deletedataset(thename) i=i+1 end msgbox.info("Corrected load(s) calculated.",Script.The.GetName) QUAL.BMPOutlets ' Name: QUAL. BMPOutlets 7/20/00 ' Headline: Based on txdot.Outlets 10/31/97 ' Self: ' Returns: Outlets Grid ' Description: Create Outlets based on a ' flow accumulation grid and waterbody grid. ' Topics: ' Search Keys: ' Requires: ' History: Created by Brian Adams. Modified on 11/30/97 ' by Seann Reed Modified 7/20/00 by Katherine Osborne '******************************************************** TheView=av.GetActiveDoc theDir=av.getproject.getworkdir '--------------------------- '--- Set analysis extent --- '--------------------------- ' bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or 143 (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) '--------------------------- '--- Get themes --- '--------------------------- if (theView.GetThemes.Count = 0) then msgbox.error("No themes found", "Waterbody to Outlet") exit end ThmList=list.Make for each thm in TheView.GetThemes if(thm.is(Gtheme))then ThmList.add(thm) end end facthm=Msgbox.ChoiceAsString(thmList,"Choose a flow accumulation grid.",Script.The.GetName) if(facthm=nil)then exit end facgrid=facthm.getgrid Thm1List=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="Polygon")then Thm1List.add(thm) end end end bodythm=Msgbox.ChoiceAsString(Thm1List,"Choose a waterbody coverage",Script.The.GetName) if(bodythm=nil)then exit end bodytab = bodythm.getftab if (bodytab = nil) then msgbox.error("Can't open polygon theme",Script.The.GetName) exit end fieldlist=bodytab.getfields cons = MsgBox.ChoiceAsString(fieldList,"Choose an efficiency field.",Script.The.GetName) 144 outname2=av.getproject.makefilename("wtr_bmp","shp") aname2=filedialog.put(outname2,"","WaterBody Outlets SHAPEFILE") aPrj = theView.GetProjection bodygrid = Grid.MakeFromFTab(bodytab, aPrj, cons, {thecellSize, theextent}) bodygtheme = gtheme.make(bodygrid) gfield=bodytab.getfields.get(1) maxfac=facgrid.zonalstats(#grid_statype_max,bodytab,prj.makenull,gfi eld,false) outletgrid=(facgrid<>maxfac).setnull(bodygrid) WatBmpGrd=outletgrid theFTab=WatBmpGrd.asPointFtab(aname2,prj.makenull) outtheme3=FTheme.Make(theFtab) theView.addTheme(outtheme3) message = "Waterbody Outlets created" msgbox.info(message,Script.The.GetName) Qual.Flow '---------------------------- '--- Creation information --- '---------------------------- 'Name: Qual.Flow 'Version: 1.0 'Creation date: 06/26/97 'Modified 09/16/97 'Modified 10/20/97 'Modified 06/30/00 'Author: Christine Dartiguenave 'Center for Research in Water Resources 'The University of Texas at Austin 'darti@crwr.utexas.edu 'Modified by: Katherine Osborne 'Center for Research in Water Resources 'The University of Texas at Austin 'kgosborne@mail.utexas.edu 'Notes: Modification includes new correction methodology (only 'applied to storm flow), the ability apply precipitation as a 'grid (instead of one value for the entire watershed), and new 'base flow and storm flow equations to reflect City's definitions. '--------------------------- '--- Purpose/Description --- '--------------------------- 'Compute the base flow, the storm flow and the total flow.in cfs, 145 'and the grids necessary to the load computation. '-------------------- '--- Get the view --- '-------------------- theView=av.GetActiveDoc if (theView.GetThemes.Count = 0) then msgbox.error("No themes found", Script.The.GetName) exit end '--------------------------- '--- Set analysis extent --- '--------------------------- ' bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) '----------------------------- '--- Set working directory --- '----------------------------- aProject=av.GetProject defaultdir=aProject.GetWorkDir inputdir=MsgBox.Input("Choose the working directory.",Script.The.GetName,defaultdir.asstring) if (inputdir=nil) then else aDirName = inputdir.asfilename aProject.SetWorkDir (aDirName) end '---------------------- '--- Get the themes --- '---------------------- '------------------------ '--- Impervious cover --- '------------------------ 146 icList=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="Polygon")then icList.add(thm) end else if(thm.is(Gtheme))then iclist.add(thm) end end end icthm=Msgbox.ChoiceAsString(icList,"Choose an impervious cover theme.",Script.The.GetName) if(icthm=nil)then exit end '------------------------ '--- Examine IC theme --- '------------------------ if (icthm.is(Gtheme)) then ic_gr=icthm.getgrid else theFtab=icthm.getFtab theFtab.seteditable(true) fieldlist=theftab.getfields impc = MsgBox.ChoiceAsString(fieldList,"Choose an IC field.",Script.The.GetName) if (impc = nil) then Msgbox.info("Can't find IC field in polygon theme",Script.The.GetName) exit end end '--------------------------- '--- Flow direction grid --- '--------------------------- gridList=list.Make for each thm in TheView.GetThemes if(thm.is(Gtheme))then gridList.add(thm) end end fdrthm=Msgbox.ChoiceAsString(gridList,"Choose a flow direction grid.",Script.The.GetName) if(fdrthm=nil)then exit end fdirgrid=fdrthm.getgrid '----------------------- '--- Correction grid --- '----------------------- corrcoefthm=Msgbox.ChoiceAsString(gridList,"Choose a correction grid.",Script.The.GetName) 147 if(corrcoefthm=nil)then corrcoef = 1.asgrid end thethm=corrcoefthm corrcoef=thethm.getgrid '--------------------------- '--- Precipitation value --- '--------------------------- 'Rainfall amount in in/yr cellprec=Msgbox.ChoiceAsString(gridList,"Choose a precipitation grid (in/yr).",Script.The.GetName) if(cellprec=nil)then exit end precgrid=cellprec.getgrid 'prec=31.08 'preccoef=prec/31.08 '---------------- '--- Recharge --- '---------------- recharge=msgbox.yesno("Do you want to consider a recharge zone?",Script.The.GetName,true) if (recharge=true) then 'Recharge flow BFrechfacthm=Msgbox.ChoiceAsString(gridList,"Choose a Base flow recharge grid (rechBF).",Script.The.GetName) if(BFrechfacthm=nil)then exit end BFrechfac=BFrechfacthm.getgrid SFrechfacthm=Msgbox.ChoiceAsString(gridList,"Choose a Storm flow recharge grid (rechSF).",Script.The.GetName) if(SFrechfacthm=nil)then exit end SFrechfac=SFrechfacthm.getgrid end '---------------------- '--- Name the grids --- '---------------------- outname1=av.getproject.makefilename("stormf","") aname1=filedialog.put(outname1,"","Storm flow") outname2=av.getproject.makefilename("basefl","") aname2=filedialog.put(outname2,"","Base flow") outname3=av.getproject.makefilename("flow","") aname3=filedialog.put(outname3,"","Total flow") 148 '------------------------------------- '--- Calculate runoff coefficients --- '------------------------------------- if(icthm.is(ftheme)) then rel=msgbox.yesno("Do you want to recompute the runoff coefficients?", Script.The.GetName, true ) else rel=true end if (rel) then 'Create the direct runoff coefficient field if (icthm.is(ftheme)) then runco = theFtab.findfield("runcoef") if (runco = nil) then theFtab.seteditable(true) runco = field.make("runcoef", #FIELD_DECIMAL, 6, 3) theFtab.addfields({runco}) theFtab.seteditable(false) else question=Msgbox.yesno("The field runcoef already exists. Do you want to overwrite it?",Script.The.GetName,true) if (question=false) then runcofield = Msgbox.input("Name of the direct runoff coefficients field:",Script.The.GetName,"runcoef1") if (runcofield=nil) then exit end theFtab.seteditable(true) runco = field.make(runcofield.asstring, #FIELD_DECIMAL, 6, 3) theFtab.addfields({runco}) theFtab.seteditable(false) end end 'Create the base flow runoff coefficient field runco_bf = theFtab.findfield("runcoef_bf") if (runco_bf = nil) then theFtab.seteditable(true) runco_bf = field.make("runcoef_bf", #FIELD_DECIMAL, 6, 3) theFtab.addfields({runco_bf}) theFtab.seteditable(false) else question=Msgbox.yesno("The field runcoef_bf already exists. Do you want to overwrite it?",Script.The.GetName,true) if (question=false) then runcobffield= Msgbox.input("Name of the base flow runoff coefficients field:",Script.The.GetName,"runcoef_bf1") if (runcobffield=nil) then exit end theFtab.seteditable(true) runco_bf = field.make(runcobffield.asstring, #FIELD_DECIMAL, 6, 3) theFtab.addfields({runco}) theFtab.seteditable(false) end end 149 end 'Calculate runoff coefficient for direct runoff rel1 = msgbox.yesno("The ic/runoff coefficient relationship for direct runoff is: runcoef = 0.3428*IC^2 + 0.5677*IC + 0.0125 (0 1) then icperc=true else icperc=false end for each rec in theFtab ic1 = theFtab.returnvalue(impc, rec) if (icperc=true) then ic1=ic1/100 end runco1 = (a*ic1*ic1)+(b*ic1)+c theFtab.setvalue(runco , rec , runco1 ) end theFtab.seteditable(false) else aprj=theview.getprojection icint=ic_gr.int icvtab=icint.getvtab icfield=icvtab.findfield("value") icmax=0 for each rec in icvtab icvalue=icvtab.returnvalue(icfield,rec) icmax=icmax.max(icvalue) end if (icmax<=1) then runcoef = (a.asgrid*ic_gr*ic_gr)+(b.asgrid*ic_gr)+c.asgrid else runcoef = (0.0001.asgrid*a.asgrid*ic_gr*ic_gr) + ( 0.01.asgrid * b.asgrid *ic_gr) + c.asgrid end end else 'default value if (icthm.is(Ftheme)) then theFtab.seteditable(true) icmax=0 for each rec in theFTab ic1 = theFtab.returnvalue(impc,rec) 150 icmax=icmax.max(ic1) end if (icmax>1)then icperc = true else icperc = false end for each rec in theFtab ic1 = theFtab.returnvalue(impc, rec) if (icperc=true) then ic1=ic1/100 end runco1 = (0.3428*ic1*ic1)+(0.5677*ic1)+0.0125 theFtab.setvalue(runco , rec , runco1 ) end theFtab.seteditable(false) else aprj=theview.getprojection icint=ic_gr.int icvtab=icint.getvtab icfield=icvtab.findfield("value") icmax=0 for each rec in icvtab icvalue=icvtab.returnvalue(icfield,rec) icmax=icmax.max(icvalue) end if (icmax<=1) then runcoef=(0.3428.asgrid*ic_gr*ic_gr)+(0.5677.asgrid*ic_gr)+0.0125.asgr id else runcoef=(0.0001.asgrid*0.3428.asgrid*ic_gr*ic_gr)+(0.01.asgrid*0.567 7.asgrid*ic_gr)+0.0125.asgrid end end end 'Calculate runoff coefficient for base flow rel2 = msgbox.yesno("The ic/runoff coefficient relationship for base flow is: runcoef_bf = -0.1264*IC + 0.0645 if IC < 52% and 0 otherwise (00.asgrid).con(runcoef1_bf, 0.asgrid) end else if (icthm.is(ftheme)) then theftab.seteditable(true) for each rec in theFtab ic1 = theFtab.returnvalue(impc, rec) if (icperc=true) then ic1=ic1/100 end runco2 = -0.1264*ic1+0.0645 if (runco2<0) then runco2 = 0 end theFtab.setvalue(runco_bf , rec , runco2 ) end theftab.seteditable(false) else if (icmax<=1) then runcoef1_bf = (-0.1264.asgrid*ic_gr)+0.0645.asgrid else runcoef1_bf = (-0.001264.asgrid*ic_gr)+0.0645.asgrid end runcoef_bf=(runcoef1_bf>0.asgrid).con(runcoef1_bf, 0.asgrid) end end end '----------------------------------------------------- '--- Create the runoff coefficient grids if needed --- '----------------------------------------------------- aPrj=theView.GetProjection if (icthm.is(ftheme)) then anFtab=icthm.getftab aField1 = anFtab.findfield("runcoef") runcoef = Grid.MakeFromFTab(anFTab, aPrj, aField1, {thecellSize, theextent}) aField2 = anFtab.findfield("runcoef_bf") runcoef_bf = Grid.MakeFromFTab(anFTab, aPrj, aField2, {thecellSize, theextent}) end '--------------------------- '--- Corrected cell flow --- '--------------------------- 'Corrected direct cell runoff runcoefname = av.getproject.makefilename("sflcoef","") runcoef.savedataset(runcoefname) runoff = runcoef * corrcoef * 5.asgrid / 189216.asgrid*precgrid runoffname = av.getproject.makefilename("sflowcel","") runoff.savedataset(runoffname) grid.deletedataset(runcoefname) runoffgtheme = gtheme.make(runoff) 152 theview.addtheme(runoffgtheme) runoffgtheme.setlegendvisible(false) 'Corrected base flow cell runoff (cfs) if (icthm.is(gtheme)) then bfcoef1name = av.getproject.makefilename("bf1coef","") runcoef1_bf.savedataset(bfcoef1name) end bfcoefname = av.getproject.makefilename("bfcoef","") runcoef_bf.savedataset(bfcoefname) base flow = runcoef_bf * 5.asgrid / 189216.asgrid * precgrid bflowname = av.getproject.makefilename("bflowcell","") base flow.savedataset(bflowname) grid.deletedataset(bfcoefname) if (icthm.is(gtheme)) then grid.deletedataset(bfcoef1name) end bflowgtheme = gtheme.make(base flow) theview.addtheme(bflowgtheme) bflowgtheme.setlegendvisible(false) '---------------------- '--- Corrected flow --- '---------------------- 'Flowaccumulation runoff_flow0 = (fdirgrid.flowaccumulation(runoff)) base flow_gr0 = (fdirgrid.flowaccumulation(base flow)) totalflow0 = base flow_gr0 + runoff_flow0 if (recharge=false) then runoff_flow0.savedataset(aname1) runoffgtheme = gtheme.make(runoff_flow0) theview.addtheme(runoffgtheme) runoffgtheme.setlegendvisible(false) base flow_gr0.savedataset(aname2) base flowgtheme = gtheme.make(base flow_gr0) theview.addtheme(base flowgtheme) base flowgtheme.setlegendvisible(false) totalflow0.savedataset(aname3) tflow0gtheme = gtheme.make(totalflow0) theview.addtheme(tflow0gtheme) tflow0gtheme.setlegendvisible(false) else runoff0name = av.getproject.makefilename("Tsflw0","") runoff_flow0.savedataset(runoff0name) tSflow0gtheme = gtheme.make(runoff_flow0) theview.addtheme(tSflow0gtheme) tSflow0gtheme.setlegendvisible(false) bflow0name = av.getproject.makefilename("Tbflw0","") base flow_gr0.savedataset(bflow0name) tBflow0gtheme = gtheme.make(base flow_gr0) theview.addtheme(tBflow0gtheme) tBflow0gtheme.setlegendvisible(false) 153 tflow0name = av.getproject.makefilename("tflow0","") totalflow0.savedataset(tflow0name) tflow0gtheme = gtheme.make(totalflow0) theview.addtheme(tflow0gtheme) tflow0gtheme.setlegendvisible(false) '----------------------------------------- '--- Corrected flow with recharge zone --- '----------------------------------------- 'Predicted flow totalflow = totalflow0 - BFrechfac - SFrechfac totalflow.savedataset(aname3) totalflowgtheme = gtheme.make(totalflow) theview.addtheme(totalflowgtheme) totalflowgtheme.setlegendvisible(false) 'Storm flow runoff_flow = runoff_flow0 - SFrechfac 'grid.deletedataset(runcrechname) runoff_flow.savedataset(aname1) runoffgtheme = gtheme.make(runoff_flow) theview.addtheme(runoffgtheme) runoffgtheme.setlegendvisible(false) 'Base flow base flow_gr = base flow_gr0 - BFrechfac base flow_gr.savedataset(aname2) base flowgtheme = gtheme.make(base flow_gr) theview.addtheme(base flowgtheme) base flowgtheme.setlegendvisible(false) end 'Message to user msgbox.info("Flow grids calculated",Script.The.GetName) '----------- '--- END --- '----------- ' 154 Qual.Load '---------------------------- '--- Creation information --- '---------------------------- ' 'Name: Qual.Load 'Version: 1.0 'Date: 05/28/97 'Modified: 10/21/97 'Author: Christine Dartiguenave ' Center for Research in Water Resources ' The University of Texas at Austin ' darti@crwr.utexas.edu 'Modified: Katherine Osborne 'Notes: Added correction methodology; changed recharge calcs. ' '--------------------------- '--- Purpose/Description --- '--------------------------- 'This program computes the loads. '-------------------- '--- Get the View --- '-------------------- theView=av.GetActiveDoc if (theView.GetThemes.Count = 0) then msgbox.error("No Themes found", Script.The.GetName) exit end '--------------------------- '--- Set analysis extent --- '--------------------------- ' bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) 155 '----------------------------- '--- Set working directory --- '----------------------------- aProject=av.GetProject defaultdir=aProject.GetWorkDir inputdir=MsgBox.Input("Choose the working directory.",Script.The.GetName,defaultdir.asstring) if (inputdir=nil) then else aDirName = inputdir.asfilename aProject.SetWorkDir (aDirName) end '---------------------- '--- Get the tables --- '---------------------- doculist = av.GetProject.Getdocs tablelist=List.Make for each d in doculist if(d.Is(Table))then TableList.add(d) end end 'Direct runoff emcruntable=Msgbox.ChoiceAsString(tableList,"Choose a storm flow EMCs table (emcsf)",Script.The.GetName) if(emcruntable=nil)then msgbox.error("No direct runoff EMCs table selected",Script.The.GetName) exit end emcruntab=emcruntable.getvtab emcrunlist=emcruntab.getfields 'Base flow emcbftable=Msgbox.ChoiceAsString(tableList,"Choose a base flow EMCs table (emcbf)",Script.The.GetName) if(emcbftable=nil)then msgbox.error("No base flow EMCs table selected",Script.The.GetName) exit end emcbftab=emcbftable.getvtab emcbflist=emcbftab.getfields 'Direct runoff CORruntable=Msgbox.ChoiceAsString(tableList,"Choose a direct runoff CORRECTION table",Script.The.GetName) if(CORruntable=nil)then msgbox.error("No direct runoff EMCs table selected",Script.The.GetName) exit end CORruntab=CORruntable.getvtab CORrunlist=CORruntab.getfields 156 linearcorrection=msgbox.yesno("Is this a linear correction? If you answer no, log correction is assumed",Script.The.GetName,true) 'Check that the tables correspond i=0 for each rec in emcruntab i=i+1 end m=i i=0 for each rec in emcbftab i=i+1 end n=i if (m=n) then p=n-1 conslist=list.make for each i in 0..p runcons=emcrunlist.get(0) bfcons=emcbflist.get(0) corcons=CORrunlist.get(0) runconsname=emcruntab.returnvaluestring(runcons,i) bfconsname=emcbftab.returnvaluestring(bfcons,i) corconsname=corruntab.returnvaluestring(corcons,i) if ((runconsname=bfconsname) and (runconsname=corconsname) ) then i=i+1 conslist.add(runconsname) else msgbox.error("The constituents in the two EMCs tables do not correspond.",Script.The.GetName) exit end end else msgbox.error("The number of constituents in the two EMC tables is different.",Script.The.GetName) exit end '---------------------- '--- Get the themes --- '---------------------- undev=0.15 icList=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="polygon")then icList.add(thm) end else if (thm.is(Gtheme)) then iclist.add(thm) end 157 end end icthm=Msgbox.ChoiceAsString(icList,"Choose an impervious cover theme.",Script.The.GetName) if(icthm=nil)then exit end gridList=list.Make for each thm in TheView.GetThemes if(thm.is(Gtheme))then gridList.add(thm) end end fdrthm=Msgbox.ChoiceAsString(gridList,"Choose a flow direction grid.",Script.The.GetName) if(fdrthm=nil)then exit end fdirgrid=fdrthm.getgrid zonethm=Msgbox.ChoiceAsString(gridList,"Choose a water landuse theme (zone_gr).",Script.The.GetName) 'if(zonethm=nil)then 'exit 'end zone=zonethm.getgrid runoffthm=Msgbox.ChoiceAsString(gridList,"Choose a corrected storm flow cell grid (sflowc1).",Script.The.GetName) if(runoffthm=nil)then exit end runoff=runoffthm.getgrid base flowthm=Msgbox.ChoiceAsString(gridList,"Choose a corrected base flow cell grid (bflowc1).",Script.The.GetName) if(base flowthm=nil)then exit end base flow=base flowthm.getgrid 'Recharge zone recharge=msgbox.yesno("Do you want to consider a recharge zone?",Script.The.GetName,true) if (recharge=true) then lcellrechthmBF=Msgbox.ChoiceAsString(gridList,"Choose a BASE FLOW cell recharge grid (lcorrBF).",Script.The.GetName) if(lcellrechthmBF=nil)then exit end 158 lcellrechBF=lcellrechthmBF.getgrid lcellrechthmSF=Msgbox.ChoiceAsString(gridList,"Choose a STORM FLOW cell recharge grid (lcorrSF).",Script.The.GetName) if(lcellrechthmSF=nil)then exit end lcellrechSF=lcellrechthmSF.getgrid totalflowthm=Msgbox.ChoiceAsString(gridList,"Choose a total flow grid (without recharge, tflow0).",Script.The.GetName) if(totalflowthm=nil)then exit end totalflow=totalflowthm.getgrid totalBFflowthm=Msgbox.ChoiceAsString(gridList,"Choose a total base flow grid (without recharge, tBFlow0).",Script.The.GetName) if(totalflowthm=nil)then exit end totalBFflow=totalBFflowthm.getgrid totalSFflowthm=Msgbox.ChoiceAsString(gridList,"Choose a total storm flow grid (without recharge, tSFlow0).",Script.The.GetName) if(totalSFflowthm=nil)then exit end totalSFflow=totalSFflowthm.getgrid end 'Choose the constituents to model choices = MsgBox.MultiListAsString( conslist, "Choose the constituent(s) to model", Script.The.GetName ) if (choices = nil) then msgbox.info("No constituent selected.", Script.The.GetName) exit else namelist=list.make for each cons in choices outFName = av.GetProject.MakeFileName(cons, "") aName = FileDialog.Put(outFName, "", cons) if (aName = Nil) then exit end namelist.add(aname) end end if (icthm.is(Gtheme)) then 159 ic_gr=icthm.getgrid else 'Coverage '--------------------- '--- Get the table --- '--------------------- theFtab=icthm.getFtab fieldlist=theftab.getfields impc = MsgBox.choiceasstring( fieldlist,"Name of IC field", Script.The.GetName) if (impc = nil) then addfield1 = msgbox.yesno("Can not find 'IC' field in polygon theme. Add it?",Script.The.GetName, true) exit end end '--------------------------- '--- Calculate EMC values--- '--------------------------- k=0 for each cons in choices if (icthm.is(Ftheme)) then theftab.seteditable(true) 'Check storm runoff field consfield = theFtab.findfield(cons+"_[mg/l]") if (consfield = nil) then consfield = field.make(cons+"_[mg/l]", #FIELD_DECIMAL, 6, 3) theFtab.addfields({consfield}) end 'Check base flow field consfieldbf = theFtab.findfield(cons+"_bf_[mg/l]") if (consfieldbf = nil) then consfieldbf = field.make(cons+"_bf_[mg/l]", #FIELD_DECIMAL, 6, 3) theFtab.addfields({consfieldbf}) end end 'Calculate EMC 'Direct runoff 'Get the parameters a and b (emc=a+b*ic,01)then icperc = true else icperc = false end for each rec in theFtab ic1 = theFtab.returnvalue(impc, rec) if (icperc=true) then ic1=ic1/100 end emcrun=b*ic1+a emcrun2=emcrun*(d*ic1+c) theFtab.setvalue(consfield , rec , emcrun2 ) end else aprj=theview.getprojection icint=ic_gr.int icvtab=icint.getvtab icfield=icvtab.findfield("value") icmax=0 for each rec in icvtab icvalue=icvtab.returnvalue(icfield,rec) icmax=icmax.max(icvalue) end if (icmax<=1) then emc_gr = ic_gr*b + a.asgrid if (linearcorrection) then emc_gr2 = ic_gr*d + c.asgrid else emc_gr3 = ic_gr.log*d + c.asgrid emc_gr2=(emc_gr3>1.asgrid).con(1.asgrid , emc_gr3) end else emc_gr = ic_gr*b*0.01 + a.asgrid 161 if (linearcorrection) then emc_gr2 = ic_gr*d*0.01 + c.asgrid else emc_gr3 = (ic_gr*0.01).log*d + c.asgrid emc_gr2=(emc_gr3>1.asgrid).con(1.asgrid , emc_gr3) end end end 'Base flow afield=emcbflist.get(1) bfield=emcbflist.get(2) a=emcbftab.returnvalue(afield,p) b=emcbftab.returnvalue(bfield,p) if (icthm.is(Ftheme)) then for each rec in theFtab ic1=theftab.returnvalue(impc,rec) if (icperc=true) then ic1=ic1/100 end if (ic1 <= undev) then emcbf=a else emcbf=b end theFtab.setvalue(consfieldbf , rec , emcbf ) end else if (icmax<=1) then emcbf_gr =(ic_gr>undev.asgrid).con(b.asgrid , a.asgrid) else undev=undev/100 emcbf_gr = (ic_gr>undev.asgrid).con(b.asgrid,a.asgrid) end end '------------------------- '--- Compute the loads --- '------------------------- if(icthm.is(ftheme)) then anftab=theftab aPrj = theView.GetProjection end if(icthm.is(ftheme)) then 'direct runoff emc emc_gr = Grid.MakeFromFTab(anFTab, aPrj, consfield, {thecellSize, theextent}) 'base flow emc emcbf_gr = Grid.MakeFromFTab(anFTab, aPrj, consfieldbf, {thecellSize, theextent}) 162 end loadcellsf0 = runoff * emc_gr * emc_gr2 * 3.048.asgrid * 3.048.asgrid * 3.048.asgrid * 86400.asgrid * 365.asgrid / 1000000.asgrid loadcellbf0 = base flow * emcbf_gr * 3.048.asgrid * 3.048.asgrid * 3.048.asgrid * 86400.asgrid * 365.asgrid / 1000000.asgrid 'Set Waterbodies EMCs to zero cellloadsf=(zone=999).con(0.asgrid,loadcellsf0) cellloadBf=(zone=999).con(0.asgrid,loadcellbf0) aname=namelist.get(k) anamestr=aname.asstring Canamebfstr=("c"+anamestr+"b") Canamebf=CanameBFstr.asfilename Canamesfstr=("c"+anameSTR+"s") Canamesf=CanameSFstr.asfilename cellloadBf.savedataset(CanameBf) cellloadsf.savedataset(Canamesf) 'Flowaccumulation loadSF0= (fdirgrid.flowaccumulation(cellloadsf)) loadBF0= (fdirgrid.flowaccumulation(cellloadBf)) 'load0 = loadSF0+loadBF0 if (recharge=true) then cobf = loadBF0/totalBFflow cosf = loadSF0/totalSFflow 'Recharge zone sfcellrech = lcellrechsf * cosf bfcellrech = lcellrechBF * cobf loadBFrech = (fdirgrid.flowaccumulation(BFcellrech)) loadSFrech = (fdirgrid.flowaccumulation(SFcellrech)) 'Total load loadBF = loadBF0-loadBFrech loadSF = loadSF0-loadSFrech else loadBF = loadBF0 loadSF = loadSF0 end load = loadSF+loadBF aname=namelist.get(k) load.savedataset(aname) aname=namelist.get(k) anamestr=aname.asstring anamebfstr=anamestr+"bf" anamebf=anameBFstr.asfilename anamesfstr=(anameSTR+"sf") anamesf=anameSFstr.asfilename 163 loadBF.savedataset(anameBf) loadSF.savedataset(anamesf) loadgtheme = gtheme.make(load) theview.addtheme(loadgtheme) loadgtheme.setlegendvisible(false) k=k+1 end msgbox.info("Load grid(s) calculated",Script.The.GetName) '----------- '--- END --- '----------- ' Qual.Rechcalib '---------------------------- '--- Creation information --- '---------------------------- 'Name: Qual.Rechcalib 'Version: 1.0 'Creation date: 11/25/97 'Authors: Ellen Wadsworth and Christine Dartiguenave 'Center for Research in Water Resources 'The University of Texas at Austin 'darti@crwr.utexas.edu 'Modified by Katherine Osborne 'Modification notes: Recharge calculations separated by storm flow and base flow. '--------------------------- '--- Purpose/Description --- '--------------------------- 'Compute the recharge calibration. '-------------------- '--- Get the view --- '-------------------- theView=av.GetActiveDoc if (theView.GetThemes.Count = 0) then msgbox.error("No themes found", Script.The.GetName) exit end '--------------------------- 164 '--- Set analysis extent --- '--------------------------- 'bring up the AnalysisPropertiesDialog theAE = AnalysisPropertiesDialog.Show(theView,FALSE,"Analysis Properties") if (theAE=nil) then exit end theExtent = Rect.Make(0@0,1@1) theCellSize = 1 if ((theAE.GetExtent(theExtent) <> #ANALYSISENV_VALUE) or (theAE.GetCellSize(theCellSize) <> #ANALYSISENV_VALUE)) then theCE = AnalysisPropertiesDialog.Show(theView,TRUE,"Analysis Extent") ' check for Cancel from dialog if (theCE = NIL) then return NIL end theCE.GetCellSize(theCellSize) theCE.GetExtent(theExtent) end Grid.SetAnalysisCellSize ( #GRID_ENVTYPE_VALUE , theCellSize ) Grid.SetAnalysisExtent ( #GRID_ENVTYPE_VALUE , theextent ) '----------------------------- '--- Set working directory --- '----------------------------- aProject=av.GetProject defaultdir=aProject.GetWorkDir inputdir=MsgBox.Input("Choose the working directory.",Script.The.GetName,defaultdir.asstring) if (inputdir=nil) then else aDirName = inputdir.asfilename aProject.SetWorkDir (aDirName) end '---------------------- '--- Get the themes --- '---------------------- gridList=list.Make for each thm in TheView.GetThemes if(thm.is(Gtheme))then gridList.add(thm) end end rechgrthm=Msgbox.ChoiceAsString(gridList,"Choose a recharge zone grid.",Script.The.GetName) if(rechgrthm=nil)then exit end rechgrid=rechgrthm.getgrid 165 crkgrthm=Msgbox.ChoiceAsString(gridList,"Choose a creek grid.",Script.The.GetName) if(crkgrthm=nil)then exit end crkgrid=crkgrthm.getgrid facthm=Msgbox.ChoiceAsString(gridList,"Choose a flowaccumulation grid.",Script.The.GetName) if(facthm=nil)then exit end facgrid=facthm.getgrid fdirthm=Msgbox.ChoiceAsString(gridList,"Choose a flowdirection grid.",Script.The.GetName) if(fdirthm=nil)then exit end fdirgrid=fdirthm.getgrid wshdthm=Msgbox.ChoiceAsString(gridList,"Choose a watershed grid.",Script.The.GetName) if(wshdthm=nil)then exit end wshdgrid=wshdthm.getgrid Thm1List=list.Make for each thm in TheView.GetThemes if(thm.is(Ftheme))then if(thm.GetFtab.GetShapeClass.GetClassName="Point")then Thm1List.add(thm) end end end Ptthm=Msgbox.ChoiceAsString(Thm1List,"Choose a point coverage for the points at the upstream edge of the recharge zone.",Script.The.GetName) if(Ptthm=nil)then exit end pttab=ptthm.getftab ptfieldlist=pttab.getfields BFptrecharge=Msgbox.ChoiceAsString(ptfieldList,"Choose a BASE FLOW recharge field (cfs).",Script.The.GetName) if(BFPtrecharge=nil)then exit end SFptrecharge=Msgbox.ChoiceAsString(ptfieldList,"Choose a STORM FLOW recharge field (cfs).",Script.The.GetName) if(SFPtrecharge=nil)then exit end zonelist=list.make for each thm in TheView.GetThemes 166 if(thm.is(Ftheme))then if (thm.GetFtab.GetShapeClass.GetClassName="Polygon")then zonelist.add(thm) end end end zonethm= Msgbox.ChoiceAsString(zoneList,"Choose a recharge zone watershed coverage.",Script.The.GetName) if(zonethm=nil) then exit end zonetab=zonethm.getftab fieldlist=zonetab.getfields fieldname=Msgbox.ChoiceAsString(fieldList,"Choose a field to identify the watershed zones.",Script.The.GetName) zonefield=zonetab.findfield(fieldname.asstring) outname1=av.getproject.makefilename("lcorrBF_rech","") aname1=filedialog.put(outname1,"","Cell correction recharge") outname2=av.getproject.makefilename("rechBF_fac","") aname2=filedialog.put(outname2,"","Recharge flow") outname3=av.getproject.makefilename("lcorrSF_rech","") aname3=filedialog.put(outname3,"","Cell correction recharge") outname4=av.getproject.makefilename("rechSF_fac","") aname4=filedialog.put(outname4,"","Recharge flow") '------------------------------------------------- '--- Select the creeks within the recharge zone --- '-------------------------------------------------- rechcrk1 = ( rechgrid < 0.asgrid ).SetNull(crkgrid) 'rechcrk1.savedataset(aname1) 'rechcrkgthm = gtheme.make(rechcrk1) 'theview.addtheme(rechcrkgthm) 'rechcrkgthm.setlegendvisible(false) '---------------------- '--- Point coverage --- '---------------------- 'Get the table pttab=ptthm.getftab 'Create a new field in the point coverage pttab.seteditable(true) ptfac= field.make("ptfac", #FIELD_DECIMAL, 16, 0) ptwshd= field.make("ptwshd", #FIELD_DECIMAL, 16, 0) pttab.addfields({ptfac,ptwshd}) 'Write the flowaccumulation and the watershed value to the new field ptshape = pttab.findfield("shape") if (ptshape = nil) then msgbox.error("Can't find 'shape' field in point theme",Script.The.GetName) exit end for each rec in pttab shapev = pttab.returnvalue(ptshape,rec) 167 facval = facgrid.cellvalue(shapeV,Prj.MakeNull) pttab.setvalue(ptfac,rec,facval) wshdval = wshdgrid.cellvalue(shapeV,Prj.MakeNull) pttab.setvalue(ptwshd,rec,wshdval) end pttab.seteditable(false) '----------------------------------------------- '--- Keep only the mainstem in each watershed--- '----------------------------------------------- maincrkgr=wshdgrid*0.asgrid crkwshdlist=list.make for each rec in pttab facval=pttab.returnvalue(ptfac,rec) wshdval=pttab.returnvalue(ptwshd,rec) 'msgbox.info(facval.asstring,"fac") 'msgbox.info(wshdval.asstring,"wshd") thecrkwshdgr=(wshdgrid <>wshdval.asgrid).SetNull(rechcrk1) thegrid=(facgrid