210 likes | 316 Views
2002 National Weather Service National Hydrologic Program Manager’s Conference. Regional Breakout Session GIS Topics: ABRFC River Flood Climatology. John Schmidt, Senior Hydrologist James Paul, Senior HAS December 6, 2002.
E N D
2002 National Weather Service National Hydrologic Program Manager’s Conference Regional Breakout Session GIS Topics: ABRFC River Flood Climatology John Schmidt, Senior Hydrologist James Paul, Senior HAS December 6, 2002
River Flood Climatology Origins Hydrologic companion to popular percent-of-normal precipitation products (Sep 1999).
Initial Problems/Limitations 1. Climatological time-scale of data > PRISM data for percent-of-normal products > ABRFC archived data from 1993 to present > USACE Tulsa, Albuquerque and Little Rock generously provide entire digital archive allowing ABRFC to compile comprehensive 6- hourly dataset back to 1984.
Initial Problems/Limitations 2. Defining a flood ‘event’ > Hydrograph resulting from single precipitation event? > Period between river rising above and falling below flood stage? > Every crest of river stages?
Initial Problems/Limitations Defining flood “event”
Initial Problems/Limitations Defining flood “event” Consistent logic must be used when automating. So…..an “event” is a single, synoptic observation. & (“flood event”/4) = “flood day” Consistent with verification assumption. Not perfect, but is easily applicable at all locations.
Flood Climatology Calculations • Database queries on SQL Server database with mirror of AWIPS abarchive schema provided number of flood days per month for months 1984-2001 (needed 75% of complete data for a month for a site) • Used ArcView to create graphics depicting river reach flood climatology
River Station River Station (days/year) (months/year) Arkansas River @ Van Buren, AR 31.43 Little River @ Tecumseh, OK 4.32 Deep Fork River @ Beggs, OK 23.12 Neosho River @ Commerce, OK 3.63 Neosho River @ Commerce, OK 16.74 Deep Fork River @ Beggs, OK 3.35 Fourche La Fave River @ Houston, AR 14.43 Arkansas River @ Van Buren, AR 3.24 Neosho River @ Parsons, OK 7.58 Petit Jean River @ Danville, AR 3.06 Flood Climatology Calculations ABRFC Statistics Amount of flooding Frequency of flooding Top five annual flood sites Top five average number of months with flooding per year
Define Boundaries and Barriers Boundaries for river reach Barriers for river interpolation
Interpolating and Masking Interpolation using barriers Interpolated result masked to river
Joining Masked Interpolations Average annual flood days (1984-2001)
ABRFC Flood Climatology WFO-Specific Webpages Average Annual Flood Days
ABRFC Flood Climatology WFO-Specific Webpages Winter Spring Summer Fall
ABRFC Flood Climatology WFO-Specific Webpages Average Annual Flood Days
ABRFC Flood Climatology WFO-Specific Webpages FOURCHE LAFAVE RIVER - HOUSTON 3SWHUSA4 Average number of flood days per month
ABRFC Flood Climatology WFO-Specific Webpages FOURCHE LAFAVE RIVER - HOUSTON 3SWHUSA4 Yearly Flood Days
Possible Uses A. VerificationThe genesis of this project was to find a way to assess the "forecastability" of rivers in order to explain the fluctuation of hydrologic verification statistics. The Sacramento Soil Moisture Accounting Model is calibrated empirically. Therefore, the greater the number of flood events at a given station, the more data available to calibrate the model. Additionally, flood events of long duration are typically easier to forecast with less error than floods of short duration. These analyses will assist in the explanation of hydrological verification metrics. B. TrainingService Hydrologists and Warning Coordination Meteorologists at the WFO may use these products to brief staff, emergency managers and the general public on the seasonal variability of flooding, as well as the more flood-prone rivers in their Hydrologic Service Areas. Additionally, these products will be used to train new ABRFC employees on the hydrologic climatology of the ABRFC area. It is much easier to present and understand this information in a graphical format than by using text.
For More Information... http://www.srh.noaa.gov/abrfc/floodclimate/index.shtml NOAA Technical Memorandum NWS SR-219 john.schmidt@noaa.gov james.paul@noaa.gov
Avenue Script 'written by John Schmidt 08-2001 'this script generates a masked, gridded map given point data rivList = {"Cottonwood_Wichita_FourcheLaFave", "Washita_Neosho_LittleSE", "Arkansas_Red", "Canadian_WalnutC_Blue", "Cimarron_PetitJean_ECache", "Verdigris_LittleOKC_MedicineLodge", "RedNF_ArkSaltFork_Lee", "NCanadian_Shoal_Glover", "Chikaskia_Cobb_Mulberry", "LilArkansas_MuddyBoggy_Sweetwater", "Poteau_Walnut_Wolf", "Cow_Flint_BlackBear", "DeepFork_ElkKS_Crooked", "Fall_Ninnescah_CottonwoodC", "Whitewater_Caney_BeaverC", "LilCaney_Polecat_Sanders", "Rattlesnake_Illinois_LilWashita", "SaltForkRed_Bird_MountainFork", "Hominy_Spavinaw_Wildhorse", "DeepRedRun_Kiamichi_SFkNinnescah", "Fountain_Cossatot_Birch", "Pawnee_Spring_CimarronC", "Saline_Mora_Buckner", "Revuelta_Purgatoire_ElkMO", "PaloDuro_Pease_BigHill", "RollingFrk_BeaverR_Rock_BaronFrk"} barList = {"CWFbar.shp", "WNLbar.shp", "ARbar.shp", "CWBbar.shp", "CPEbar.shp", "VLMbar.shp", "RALbar.shp", "NSGbar.shp", "CCMbar.shp", "LMSbar.shp", "PWWbar.shp", "CFBbar.shp", "DECbar.shp", "FNCbar.shp", "WCBbar.shp", "LPSbar.shp", "RILbar.shp", "SBMbar.shp", "HSWbar.shp", "DKSbar.shp", "FCBbar.shp", "PSCbar.shp", "SMBbar.shp", "RPEbar.shp", "PPBbar.shp", "RBRBbar.shp"} '"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" monthList ={"jan"} rivCount = rivList.Count counter = rivCount - 1 theView = av.GetActiveDoc theTheme = theView.GetActiveThemes.Get(0) theRadius = Radius.MakeVariable(2,100) thePower = 1 theABRFCTheme = theView.FindTheme("ABRFCMask") theABRFCGrid = theABRFCTheme.GetGrid for each mon in 0..0 for each num in 0..counter river = rivList.Get(num) barrier = barList.Get(num) month = monthList.Get(mon) tablename = "\fldclimate\"+river.AsString+theTheme.AsString+month.AsString+".txt" tablelabel = river.AsString+theTheme.AsString+month.AsString+".txt" finlabel = "ABRFC"+theTheme.AsString+month.AsString+".txt" 'run external program to filter monthly file ' system.execute("cd \fldclimate") system.execute("filter"++theTheme.AsString+month.AsString+ ".txt"++river.AsString) 'MsgBox.Info(theTheme.AsString+month.AsString+".txt", "\fldclimate\filter") theFileName = tablename.AsFileName theVTab = VTab.Make(theFileName, false, false) myTable = Table.Make(theVTab) myTable.SetName(tablelabel) myTable.GetWin.Open 'Add as a table and add event theme to View tableVTab = av.GetProject.FindDoc(tablelabel).GetVTab xField = theVTab.FindField("Lat") yField = theVTab.FindField("Lon") theSrc = XYName.Make(theVTab,yField,xField) tableTheme = Theme.Make(theSrc) theView.AddTheme(tableTheme) tableTheme.SetActive(true) theTheme.SetActive(false) 'Generate grid from point theme aPrj = theView.GetProjection interpTheme = theView.GetActiveThemes.Get(0) theVTab = interpTheme.GetFTab zField = theVtab.GetFields.Get(4) barrierTheme = theView.FindTheme(barrier) barrierTheme.SetActive(true) barTheme = theView.GetActiveThemes.Get(1) barVTab = barTheme.GetFTab theInterp=Interp.MakeIDW(thePower,theRadius,barVTab) theResult=Grid.MakeByInterpolation(theVTab,aPrj,zField,theInterp,NIL) tableTheme.SetActive(false) barrierTheme.SetActive(false) theGTheme = GTheme.Make(theResult) theView.AddTheme(theGTheme) customLegend = "\fldclimate\monthly.avl".AsFileName 'multiply by appropriate mask maskTheme = theView.FindTheme(river) ' maskTheme.SetActive(true) interpGrid = theGTheme.GetGrid maskGrid = maskTheme.GetGrid theMaskedGrid = (interpGrid * maskGrid) theMaskGridTheme = GTheme.Make(theMaskedGrid) theView.AddTheme(theMaskGridTheme) theMaskGridTheme.SetVisible(true) theThemeList = theView.GetThemes theThemeList.Shuffle(theThemeList.Get(0), (theThemeList.Count)) theView.InvalidateTOC(nil) theView.GetDisplay.Invalidate(true) ' theGLegend = theMaskGridTheme.GetLegend ' theGLegend.Load(customLegend,#LEGEND_LOADTYPE_ALL) ' theMaskGridTheme.UpdateLegend ' theMaskGridTheme.SetName(tablelabel) 'Merge Grids theABRFCGrid = (theMaskedGrid.merge({theABRFCGrid})) theABRFCGridTheme = GTheme.Make(theABRFCGrid) theView.AddTheme(theABRFCGridTheme) theThemeList = theView.GetThemes theThemeList.Shuffle(theThemeList.Get(0), (theThemeList.Count)) theView.InvalidateTOC(nil) theView.GetDisplay.Invalidate(true) ' theABRFCGridTheme.SetName(tablelabel) theABRFCGridTheme.SetVisible(true) 'Cleanup ' system.execute("cd \\fldclimate;rm"++river.AsString+theTheme.AsString) ' theView.DeleteTheme(theGTheme) ' theView.DeleteTheme(theMaskGridTheme) ' theView.DeleteTheme(tableTheme) if (num < counter) then theView.DeleteTheme(theABRFCGridTheme) else theGLegend = theABRFCGridTheme.GetLegend theGLegend.Load(customLegend,#LEGEND_LOADTYPE_ALL) theABRFCGridTheme.UpdateLegend theABRFCGridTheme.SetName(finlabel) end end end