USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python...

103
i USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION MODELING AND DYNAMIC INUNDATION ANALYSIS OF THE MISSOURI RIVER VALLEY IN HOLT COUNTY, MISSOURI A RESEARCH PAPER PRESENTED TO THE DEPARTMENT OF HUMANITIES AND SOCIAL SCIENCES IN CANDIDACY FOR THE DEGREE OF MASTER OF SCIENCE By JEFFREY K. HERZER NORTHWEST MISSOURI STATE UNIVERSITY MARYVILLE, MISSOURI November 1, 2016

Transcript of USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python...

Page 1: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

i

USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION MODELING AND DYNAMIC

INUNDATION ANALYSIS OF THE MISSOURI RIVER VALLEY IN

HOLT COUNTY, MISSOURI

A RESEARCH PAPER PRESENTED TO

THE DEPARTMENT OF HUMANITIES AND SOCIAL SCIENCES

IN CANDIDACY FOR THE DEGREE OF

MASTER OF SCIENCE

By

JEFFREY K. HERZER

NORTHWEST MISSOURI STATE UNIVERSITY

MARYVILLE, MISSOURI

November 1, 2016

Page 2: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

ii

Abstract

This paper describes how ArcGIS and Python scripting were used to create a simple

floodplain delineation model and to drive analysis on the model with real-time river gage

data retrieved from the USGS XML data feed. Model output is assessed against photographs

of the study area during severe flooding in 2011. Floodplain delineation models compare

water elevations against land elevations; flooded areas exist where water surface elevation

values exceed those of the terrain surface. The model's terrain surface was created from a

LiDAR-derived 1m Digital Elevation Map, while the water surface was created by drawing

an overlay of polygons representing elevation "offset zones”, with values based on the

average drop in terrain elevation upstream and downstream from the Rulo, Nebraska river

gage. Offset values were assigned to the terrain surface polygons within each offset zone.

The output of the model is a "Potential for Flooding" (PFlood) map -- called

"potential" because the model does not calculate "flood cell discontinuity", those areas that

flood or remain dry based on which levees remain intact. Model output provides highly

detailed assessments of which levees may remain above the water surface and the

inundation depth of those below the water surface at a given river gage value.

Page 3: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

iii

Table of Contents

I. Introduction ................................................................................................................................ 1

II. Objective ....................................................................................................................................... 2

III. Study Area ................................................................................................................................... 2

IV. Research Background ............................................................................................................. 6

a. Floodplain Modeling................................................................................................ 6

b. River Gage and Flow Data .................................................................................. 10

1. XML ......................................................................................................................... 10

2. WaterML2 ............................................................................................................ 10

3. JSON ........................................................................................................................ 11

c. The Proof of Concept Projects .......................................................................... 14

1. Web Development ............................................................................................ 14

2. MassDOT Traffic Data Feed ........................................................................... 16

V. Data Sources ............................................................................................................................ 18

VI. Development ........................................................................................................................... 19

a. The Geodatabase .................................................................................................... 19

b. Floodplain Delineation Model .......................................................................... 19

1. Modeling the Ground Surface ....................................................................... 19

2. Modeling the Water Surface .......................................................................... 24

a. The XML Feed.......................................................................................................... 27

b. Analysis ..................................................................................................................... 31

VII. Python Code ............................................................................................................................ 32

a. Enter Gage Stations ............................................................................................... 32

b. Get XML Feed .......................................................................................................... 33

c. Build Floodplain Model ....................................................................................... 33

d. Pflood from XML .................................................................................................... 33

e. PFlood Generate Scenario .................................................................................. 33

VIII. Model Output ........................................................................................................................ 35

a. Symbolization ......................................................................................................... 35

b. Offset and No-Offset ............................................................................................. 35

c. Modified Offset ....................................................................................................... 39

Page 4: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

iv

IX. Analysis Scenarios .................................................................................................................. 42

a. SCENARIO A: Rulo/Big Lake ................................................................................... 45

b. SCENARIO B: Missouri Highway 111/118 (Fred Guthrie Site) .................. 55

c. SCENARIO C: Tarkio River Southwest of Corning, Missouri ....................... 64

d. SCENARIO D: Corning, Missouri and Corning Conservation Area ........... 71

X. Conclusions and Further Development ........................................................................... 81

In Memoriam: Trooper Frederick F. Guthrie and K-9 Reed ......................................... 84

Acknowledgements ...................................................................................................................... 85

APPENDICE ..................................................................................................................................... 86

APPENDIX A: Enter Gage Stations Tool .................................................................... 87

APPENDIX B: Get XML Feed Tool ................................................................................ 93

APPENDIX C: Build Floodplain Model Tool ............................................................ 97

APPENDIX D: PFlood from XML Tool ..................................................................... 101

APPENDIX E: PFlood Generate Scenario Tool ..................................................... 105

References .................................................................................................................................... 108

Page 5: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

v

Table of Figures

Figure 1: Holt County, in the northwestern corner of Missouri ......................................................... 4

Figure 2: I-29 runs along the eastern edge of the Missouri River Valley at Corning, MO., view

to the north 21 JUN 2011 ........................................................................................................................ 5

Figure 3: I-29 at Corning, MO., roughly two miles from the Missouri River, view to the

southwest 21 JUN 2011............................................................................................................................ 5

Figure 4: Approaches to Floodplain Modeling in GIS (illustrations by the author) .................... 9

Figure 5: Levee Structure, adapted from Choung (2014) – illustration by the author .............. 9

Figure 6: Data stream query parameters passed through a URL .................................................... 12

Figure 7: XML tags are named so data is self-describing .................................................................... 12

Figure 8: XML tags with namespaces ......................................................................................................... 12

Figure 9: The NWIS feed in JSON format ................................................................................................... 13

Figure 10: River gage web map with dynamic content from NWIS data ..................................... 15

Figure 11: Dynamic map, PHP back-end code ........................................................................................ 15

Figure 12: Data display from the (MassDOT) XML traffic data feed .............................................. 16

Figure 13: Massachusetts DOT Road Condition XML Feed ................................................................ 17

Figure 14: MassDOT XML Display, workflow algorithm ..................................................................... 18

Figure 15: Workflow, XML-driven Floodplain Modeler ...................................................................... 20

Figure 16: Ground surface model from slope analysis ........................................................................ 22

Figure 17: Output of raster to polygon conversion .............................................................................. 23

Figure 18: Raster to Polygon coverage - Number of Polygons vs. Polygon Minimum Area 24

Figure 19: Floodplain delineation map with projected water surface ......................................... 25

Figure 20: Elevation Drops Between River Gages, Omaha to Kansas City ................................... 26

Page 6: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

vi

Figure 21: Water Elevation Offset Zones, Polygon Feature Class ................................................... 27

Figure 22: XML data tree from USGS river gage feed (Part 1) .......................................................... 28

Figure 23: XML data tree from USGS river gage feed (Part 2) .......................................................... 29

Figure 24: XML data tree from USGS river gage feed (Part 3) .......................................................... 30

Figure 25: Accessing parameters within XML nodes ........................................................................... 31

Figure 26: PFlood (potential for flood) formulas .................................................................................. 32

Figure 27: Workflows in the Floodplain Delineation Toolbox ......................................................... 34

Figure 28: The floodplainColors schema-only layer package file (.lpk) ....................................... 34

Figure 29: Elevation Values Selected for “Immersion Scenarios” ................................................... 36

Figure 30: Floodplain Immersion Scenarios with Elevation Offsets .............................................. 37

Figure 31: Floodplain Immersion Scenarios Without Elevation Offsets ...................................... 38

Figure 32: Floodplain Immersion Scenarios with Modified Elevation Offsets........................... 40

Figure 33: PFlood Projection vs. Landsat Image from 17 July 2011 (Source: USGS) .............. 41

Figure 34: Study Area Scenario Locations w/ Nearby Levee Breach Sites (insets) ................. 43

Figure 35: Mill Creek and Union Township Levee Districts (Source: USACE) ........................... 44

Figure 36: SCENARIO A, Map and Aerial View ....................................................................................... 47

Figure 37: SCENARIO A, Vicinity of Big Lake and US 159 between Rulo, NE and Fortescue,

MO .................................................................................................................................................................. 48

Figure 38: SCENARIO A, Big Lake pre-flood, view to the north 16 JUN 2011 (Max Stage:

24.12) ............................................................................................................................................................ 49

Figure 39: SCENARIO A, Big Lake inundated, view to the north 21 JUN 2011 (Max Stage

26.51) ............................................................................................................................................................ 49

Figure 40: SCENARIO A, US 159 between Rulo and Big Lake ........................................................... 50

Page 7: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

vii

Figure 41: SCENARIO A, water over US 159, view to the west 21 JUN 2011 (Max Stage

26.51) ............................................................................................................................................................ 51

Figure 42: SCENARIO A, roadway and rail bed, south shore of Big Lake ..................................... 52

Figure 43: SCENARIO A, roadway and rail bed, south shore of Big Lake, view to the north

14 OCT 2011 (Max Stage 14.19) ....................................................................................................... 53

Figure 44: SCENARIO A, US 159 between Rulo and Big Lake, post-flood, view to the west

14 OCT 2011 (Max Stage 14.19) ....................................................................................................... 53

Figure 45: SCENARIO A, Google Streets images from 2013 show high water marks .............. 54

Figure 46: SCENARIO B, Map and Aerial View; Fred Guthrie Site circled .................................... 56

Figure 47: SCENARIO B, Looking south towards Big Lake from the Guthrie site 01 AUG

2011(Max Stage 24.03) .......................................................................................................................... 57

Figure 48: SCENARIO B, Scour hole at the Guthrie site (r. center) and sand deposition along

Highway 111 (l. center), view south towards Big Lake 14 OCT 2011 (Max Stage 14.19)

......................................................................................................................................................................... 57

Figure 49: SCENARIO B, Fred Guthrie Site at Junction of Highway 111 and 118 ..................... 58

Figure 50: SCENARIO B, Looking west towards the Guthrie site with water over Highway

111 01 AUG 2011 (Max Stage 24.03) ............................................................................................... 59

Figure 51: SCENARIO B, Water is deep enough for shallow draft boats to operate freely

around the Guthrie site 01 AUG 2011 (Max Stage 24.03) ...................................................... 59

Figure 52: SCENARIO B, Level of immersion at Jct Missouri 111/118 on the morning of 7

AUG 2011, view to the south (top) and to the west (center and bottom) .......................... 60

Figure 53: SCENARIO B, potential for flooding caused by breaks in agricultural levees ....... 61

Page 8: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

viii

Figure 54: SCENARIO B, The flood’s areal coverage grows as agricultural levees are

breached inland and individual flood cells are filled 21 JUN 2011 (Max Stage 26.51) 62

Figure 55: SCENARIO B, areas east and south of the Union Township levee breach .............. 63

Figure 56: SCENARIO C, Map and Aerial View (Google Maps, Google Earth) ............................. 65

Figure 57: SCENARIO C, The leveed Tarkio River ................................................................................. 66

Figure 58: SCENARIO C, Tarkio River, view to the north, as overflow begins to seep through

the levees 21 JUN 2011 (Max Stage 26.51) and post-flood 14 OCT 2011 (Max Stage

14.19) ............................................................................................................................................................ 67

Figure 59: SCENARIO C, The leveed Tarkio River and railroad bridge at County Road 125 68

Figure 60: SCENARIO C, Tarkio River and railroad bridge at County Road 125 21 JUN 2011

(Max Stage 26.51) ..................................................................................................................................... 69

Figure 61: SCENARIO C, Minute elevation differences seen at very high map scales ............. 70

Figure 62: SCENARIO D, Map and Aerial View (Google Maps, Google Earth) ............................ 72

Figure 63: SCENARIO D, Missouri River Levee Breach to Corning, MO and Interstate 29 .... 73

Figure 64: SCENARIO D, Flooding in Corning, MO 23 JUN 2011 (Max Stage 26.96) ............... 74

Figure 65: SCENARIO D, Corning, MO, high water marks of around 1 meter 11 JAN 2012 .. 75

Figure 66: SCENARIO D, Corning, MO. ....................................................................................................... 76

Figure 67: SCENARIO D, Looking southwest from the I-29 Corning interchange to the town

of Corning and the Missouri River 8 JUL 2011 (Max Stage 25.81) ....................................... 77

Figure 68: SCENARIO D, High water failed to top the Interstate 29 mainline south of the

Corning interchange, view to the north 23 JUN 2011 (Max Stage 26.96) ......................... 77

Figure 69: SCENARIO D, Interstate 29 and the Corning Interchange ............................................ 78

Page 9: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

ix

Figure 70: SCENARIO D, I-29 Corning Interchange, view to the east 23 JUN 2011 (Max Stage

26.96) ............................................................................................................................................................ 79

Figure 71: SCENARIO D, Corning Interchange flood map, extremely high scale; island of

land noted by arrow, compare to feature in Figure 70. ............................................................. 79

Figure 72: SCENARIO D, Green vegetation marks areas that stayed dry along I-29 just south

of the Corning interchange, looking south 14 OCT 2011 (Max Stage 14.19) .................. 80

Figure 73: Flight track constructed from GPX files ............................................................................... 83

Page 10: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

1

I. Introduction

Flooding is part of life along major rivers like the Mississippi and Missouri in the

central United States, but more recently, major flood events have become more frequent

and more destructive. The Great Flood of 1993 has been described as the largest and most

significant extreme flood event ever to occur in the United States (Larson, 1996). This

disaster was surpassed less than twenty years later by the Missouri River Flood of 2011,

where a series of significant weather events sent unprecedented volumes of water into the

Missouri River basin, overwhelming the system of dams and reservoirs used for flood

control (Kahn, 2011; National Weather Service, 2012). Since 1993, GIS technology has put

powerful analytic capabilities within reach of the smallest public entities. Using water level

forecasts, flood area projections and critical crest levels for levees and other flood control

structures, highly localized risk scenarios can be generated to the point where flood control

protection measures can be evaluated for individual properties. This study applied GIS

technology and readily available source data to determine the accuracy and usefulness of

such an effort on a county-wide scale.

The primary goal of this project is to demonstrate how ArcGIS and Python scripting

were utilized to create a simple floodplain delineation model and to retrieve data from an

EXtensible Markup Language (XML) feed to drive analysis on the model. Floodplain

analysis involves creating and comparing terrain and water surfaces to see where the two

underlie/overlie each other. More sophisticated floodplain delineation models incorporate

scientific principles and include factors such as friction, channel cross-section, water mass,

velocity and momentum; however, “no consensus exists concerning the level of model and

data complexity required to achieve a useful prediction of inundation extent” (Horritt &

Page 11: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

2

Bates, 2001). This project does not seek to create a universal model for floodplain analysis,

but rather a simple, useful floodplain model with data readily at hand, in this case, high

resolution (1m) LiDAR-derived digital elevation maps and real-time river gage and flow

volume data, both available via the Internet. The result is a set of Python tools that can be

used to create and run analysis through a basic floodplain delineation model for any area

where sufficient data exists.

II. Objective

The objective of this study was to use Python scripting to generate a simple dynamic

floodplain delineation model and create scenarios using data received through a live XML

Internet feed. The secondary objective was to create a floodplain delineation model where

iterations could be generated quickly and where analyses could be easily conducted from

wide areas down to individual properties and flood control structures.

III. Study Area

Holt County, Missouri, in the extreme northwestern corner of the state (Figure 1)

suffered extensive damage in not only the 1993 and 2011 flood events, but also during four

consecutive years (2007 to 2010) where the U.S. Army Corps of Engineers (USACE) altered

spring river elevations to mimic natural seasonal “pulses”. The Corps’ Missouri River

Recovery Program (MRRP) seeks to change the lower Missouri River from a tightly

controlled waterway free of flooding, to an environment where more natural flows support

riverine and sandbar habitat for several threatened or endangered species (U.S. Army

Corps of Engineers, n.d.). To produce a pulse, greater volumes of water are released from

Page 12: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

3

the Gavins Point Dam near Yankton, South Dakota, the last in a series of flood control dams

and reservoirs between the Missouri headwaters and the river's mouth at the Mississippi

River north of St. Louis. Officials in Holt County have blamed the spring releases as the

immediate cause of frequent major flooding, particularly the 2011 event, which kept most

of Holt County’s bottomlands under water for the greater part of four months. Crop losses

in these years exceeded $150-million dollars, infrastructure and property were repeatedly

destroyed and much farmland was devalued or destroyed by sand deposition and scour

holes (Mahoney, 2011).

Holt County is located roughly halfway between Omaha, Nebraska to the northwest

and Kansas City, Missouri to the southeast. It is bordered on the west and south by the

Missouri River and the states of Nebraska and Kansas. The Missouri River floodplain is an

area 3 to 12 miles (5 to 19 km) wide and covers much of the western half of Holt County; its

confines are readily apparent in Figure 1. The main highway through the area is Interstate

29, part of the Dwight D. Eisenhower National System of Interstate and Defense Highways,

and the main route for regional traffic between Kansas City and Omaha, Nebraska. I-29

runs along the far eastern edge of the river valley (Figure 2) and is less than two miles from

the Missouri River in some locations (Figure 3). Inundation around the I-29 mainline or

flooding across the roadway itself are indicators of extreme flood events.

Page 13: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

4

Figure 1: Holt County, in the northwestern corner of Missouri

Page 14: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

5

Figure 2: I-29 runs along the eastern edge of the Missouri River Valley at Corning,

MO., view to the north 21 JUN 2011

Figure 3: I-29 at Corning, MO., roughly two miles from the Missouri River, view to

the southwest 21 JUN 2011

Page 15: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

6

IV. Research Background

a. Floodplain Modeling

Hydrology is the study of water in the environment, a science whose purpose is to

understand the Earth’s complex water systems and how water will behave as it moves

across the land (British Hydrological Society, 2014). Floodplains are components in this

system. Wright (2007) describes four approaches to delineating areas that are subject to

inundation: through detailed engineering studies, often assisted by computer modeling,

which consider factors such as energy, flow depths, velocities, roughness coefficients,

acceleration and energy loss; the use of historic flood data including aerial photography

and sketches; use of topographic maps, where land elevations are considered relative to

the water stream, and; through detailed soil maps, where flood surface areas are apparent

through varying soil types in areas not substantially altered by human activity. At a most

basic level, flood models generated in a GIS require a characterization of both land and

water surfaces and a comparison of their elevations. The following are some approaches

currently available in GIS field for floodplain model:

Surface Difference Models (Figure 4a) compare displacements between

Triangulated Irregular Network (TIN) terrain and water surfaces to determine where one

surface elevation is above, below, or the same as the other (Esri, n.d.). 1-Dimensional (1D)

Models (Figure 4b) are constructed from surveyed “glass slide” cross sections of an in-bank

river channel, indicated by the lateral lines. Cross sections may be extended to include the

elevations of adjoining terrain. 1D is used to analyze water flow in primarily one direction

and considers conservation of water mass and momentum. Water level, velocity and flow

Page 16: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

7

rate are calculated for each cross section. 1D models are useful in flood forecasting. They

are not a good tool for complex flood routes, such as those found in urban areas.

2-Dimensional (2D) Models (Figure 4c) are built from digital terrain models (DTMs)

and/or channel bathymetry and represent conditions across an x, y mesh or grid. They are

good for “breach analysis”, the results of failures in levees and other flood control

structures; they can be applied to braided/split stream water flows, shallow flood plain

flows and to flows with minimal depth-varied water velocities created by river bends, sand

bars, etc. (Swift, 2014). Direct outputs from 2D models include flood maps and depth grids.

1D and 2D models can be “linked” to create a Combined 1D/2D models (Figure 4d)

using 1D to represent channels and 2D for floodplains. Ground surfaces are created from

digital elevation maps (DEMs) and water surfaces are generated from 1D profiles of the

flood plain, with each profile assigned a z-value representing the height of water across a

river at a given location (Esri, n.d.). Combined models are useful for flood mapping and

flood control structure design. Water surfaces are typically generated using hydrology tools

like HEC-RAS, an industry-standard River Analysis System (RAS) application developed by

the U.S. Army Corps of Engineers’ Hydrologic Engineering Center (HEC) (U.S. Army Corps of

Engineers, Hydrologic Engineering Center, n.d.). Within ArcGIS, Esri’s ArcHydro toolbox

(Esri, 2011), makes it possible to model both land and water surfaces. However, both HEC-

RAS and ArcHydro require working knowledge of hydrology, which is beyond the scope of

this study.

A critical factor in modeling the ground surface is accurately representing both

levees and “flood cells”, the protected areas within the floodplain that fill and drain

individually as levees are breached. Extracting the linear features that comprise levees and

Page 17: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

8

cells from remotely sensed data has always been problematic. According to Choung

(2014), the task of mapping levees has historically been done using ground surveying

methods or only one type of remote sensing dataset. Choung’s (2014) research on levees

along 22 kilometers/13.7 miles of South Korea’s Nakdong River used two datasets,

airborne topographic LiDAR data and multispectral orthoimages, to extract and map linear

features on the basis that levee surfaces consist of multiple objects with different geometric

and spectral patterns.

The levee structure shown in Figure 5 consists of a berm on the side facing land and

two slopes leading to a crown at the top elevation. Levees are covered by various materials,

such as an asphalt or gravel road surface on the crown and concrete or vegetation on the

slope surfaces. All will register at different elevations with different spectral signatures.

Choung (2014) also generated a Digital Surface Model (DSM) from LiDAR points using the

linear interpolation method, then subjecting the data to a number of steps such as slope

classification, elevation and area analysis, median filtering, morphological filtering,

clustering algorithms, and a “break line” detection method for mapping levees. Steinfeld, et

al. (2013) assessed three semi-automated techniques for detecting and mapping

earthworks in two- and three-dimensional imagery of a floodplain in Australia, and found

DEM analysis was the most accurate compared to Landsat TM, SPOT satellite, and aerial

photography. They also reported how such assessments across time and broad extents are

limited by significant costs and technical challenges.

Page 18: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

9

Figure 4: Approaches to Floodplain Modeling in GIS (illustrations by the author)

Figure 5: Levee Structure, adapted from Choung (2014) – illustration by the author

Page 19: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

10

b. River Gage and Flow Data

Data from the USGS National Water Information System (NWIS) web site is offered

over the Internet through a REST (REpresentational State Transfer) web service and

retrieved using Hypertext Transfer Protocol (HTTP) through a URL that passes query

parameters for desired format, station locations and parameter codes (Figure 6). Available

data formats include XML using the WaterML 1.1 or WaterML 2.0 schemas and JSON.

1. XML

XML is a platform-independent tool for storing, transporting and exchanging data

(W3Schools , n.d.). XML data is organized in a “tree” hierarchy using markup language

<tags> similar to HyperText Markup Language (HTML) tags used to construct web pages.

Unlike HTML, XML tags can be named by the author, so data can be self-describing as seen

in Figure 7. XML is extensible, meaning tags can be added or removed from the tree

without affecting most applications. XML data streams can pass incremental updates and

changes to individual tags within the data. XML is used primarily in ArcGIS for

administering geodatabases, using three types of XML documents: a workspace document,

a record set document, and a data changes document (Esri, 2008). ArcCatalog’s XML

Workspace Document tool will import single uncompressed XML documents and zip-

formatted archives containing multiple files. Conversely, ArcGIS does not recognize “plain”

XML, which is simply information wrapped in tags. Scripting code like that created in

Python must be written to send, receive, parse, store and display XML data in ArcGIS.

2. WaterML2

Like XML, Water Markup Language, currently in version 2, is a tag-based,

hierarchical markup language. WaterML is an industry-specific exchange standard used by

Page 20: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

11

hydrologists and was developed over a period of years by a group of national and

international organizations including the National Oceanic and Atmospheric

Administration (NOAA) and USGS. WaterML was built on Geography Markup Language

(GML) and provides “a common exchange format for hydrological time-series” (KISTERS

North America, Inc., 2016). The USGS-NWIS feed uses the WaterML v.1.1 schema, however

data is returned in XML using namespaces to avoid conflicts when tag names in two

schemas are the same. The example in Figure 8 from W3 Schools (n.d.) shows two

instances of <table> tags that refer to a web page data structure and a piece of furniture.

They are made unique by a letter prefix and colon before the tag name. The XML

namespace is further distinguished by using an "xmlns" attribute as on Lines 2 and 9 of the

code, and declaring a Uniform Resource Indicator (URI) source address. The URI is not

required to link an actual address or resource because it is not called when XML is used.

3. JSON

JSON is a lightweight, self-describing, hierarchical data interchange format whose

syntax is a subset of JavaScript. With parameters expressed in pairs like value”:“6.33”

, JSON is billed as being more easily read by humans than XML (W3 Schools, n.d.). Figure 9

shows data from the NWIS feed in its “tree” hierarchy with tiers of “addresses” based on a

“root” level (left column) through which data is retrieved and read into Python variables.

Page 21: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

12

Figure 6: Data stream query parameters passed through a URL

Figure 7: XML tags are named so data is self-describing

Figure 8: XML tags with namespaces

1 <root>

2 <h:table xmlns:h="http://www.w3.org/TR/html4/">

3 <h:tr>

4 <h:td>Apples</h:td>

5 <h:td>Bananas</h:td>

6 </h:tr>

7 </h:table>

8

9 <f:table xmlns:f="http://www.w3schools.com/furniture">

10 <f:name>African Coffee Table</f:name>

11 <f:width>80</f:width>

12 <f:length>120</f:length>

13 </f:table>

14 </root>

Page 22: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

13

Figure 9: The NWIS feed in JSON format

Page 23: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

14

c. The Proof of Concept Projects

1. Web Development

The NWIS JSON feed was used to power web page content on a site developed for

the Kankakee River National Water Trail. A map (Figure 10) displays real-time river gage

and discharge information at 12 sites along more than 150 miles/250 km of the Kankakee,

Iroquois and Yellow Rivers in Illinois and Indiana.

The JSON feed was parsed using PHP (PHP: Hypertext Preprocessor), an open

source, server-side scripting language commonly used in web development (W3Schools,

n.d.). Figure 11, Line 2 shows the PHP code that drills down through the data hierarchy to

return data for specific gage sites at the node “addresses”:

$json->value->timeSeries[#]->values->value->value

where [#] is a numeric value indicating the data’s level in the hierarchy. Cell color, font

style and certain text characters on the map change based on whether water elevations are

approaching or above flood stage, and to what degree. The code in shows the if/elseif/else

conditional logic that generates these changes. The map is available online at

http://kankakeeriverwatertrail.org/map.php.

Page 24: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

15

Figure 10: River gage web map with dynamic content from NWIS data

Figure 11: Dynamic map, PHP back-end code

Page 25: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

16

2. MassDOT Traffic Data Feed

The second proof-of-concept was a study of the Massachusetts Department of

Transportation’s (MassDOT) XML traffic data internet feed and porting the live data to

ArcGIS to support “real time” display shown in Figure 12. The data feed, seen in Figure 13,

describes location specific “events” such as construction or maintenance, with each

identified spatially using lat-long coordinates. XML data is arranged in a “tree” hierarchy

and the data of interest is four levels down from the “root”. The right margin shows the

“addresses” needed to access data from tree “branches”. The ElementTree XML Python API

(Python Software Foundation, n.d.), uses these to navigate through the tree hierarchy, read

parameters in the stream, save them to variables and write values into database fields

using a cursor. The processing algorithm described in Figure 14 describes how the XML

data was handled once it was parsed.

. Figure 12: Data display from the (MassDOT) XML traffic data feed

Page 26: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

17

Figure 13: Massachusetts DOT Road Condition XML Feed

Page 27: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

18

Figure 14: MassDOT XML Display, workflow algorithm

V. Data Sources

1m Bare Earth, LiDAR-derived Digital Elevation Model: Missouri Spatial Data Information Center http://www.msdis.missouri.edu/data/lidar/County_LiDAR/index.html USGS National Water Information System (NWIS) XML data feed: http://waterdata.usgs.gov/nwis

Set the workspace path name using the 'raw' string

Set the target feature class

Set the target field class path

Allow output results to be overwritten

Get user input to set the maximum number of event records to

be returned

Designate the URL to query and retrieve data from the XML

data source

Open the XML data URL

Parse the XML data

Load the parsed XML data into a dictionary object

Count the total number of event records

Count the total number of event parameters in the XML schema

Validation: if returnEvents > eventCount:Display Error

Message

List fields to be accessed

Initialize the cursor

Initialize an iterative counter LOOP: while i <

returnEvents: write retrieved data into variables

Read variables into an array for database entry

Increment the counter to read the next event

Insert returned records into the destination table

Page 28: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

19

VI. Development

The utility is comprised of four component parts (Figure 15): 1) the Geodatabase; 2)

the Floodplain Delineation Model; 3) the XML Data Parser, and; 4) the Analysis Tool. Each

component is executed through a Python scripted tool in a Floodplain Delineation Toolbox.

a. The Geodatabase

The geodatabase initially contains two source files and three database tables. The

three source files are: a LiDAR-derived DEM (raster); a hand-drawn polygon shapefile

defining the area to be clipped from the DEM, and; a hand-drawn Water Elevation Offset

Zone polygon shapefile. The two tables hold data on river gage sites (gageSites) and

statistics (gageStatistics). Once the river gage site registered in the database, time stamped

data on gage height and discharge volume can be read from the XML feed and stored in the

gageStatistics table.

b. Floodplain Delineation Model

1. Modeling the Ground Surface

To meet the project goals, the ground surface layer had to be highly detailed, easily

generated and not overly cumbersome to process, and the system of levees had to be

represented with precision. A Triangulated Irregular Network (TIN) surface did not

provide sufficient detail over such a wide area, while the 1D and 2D approaches were

beyond the scope of the researcher’s ability. Where Choung’s (2014) task was to extract

levee data and generate polygons representing levee structures, the task in this project was

simply to ensure linear flood control structures of various sizes were identifiable. Two

methods were evaluated for this task, one using Slope Analysis and the other using the

Raster to Polygon conversion tool.

Page 29: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

20

Figure 15: Workflow, XML-driven Floodplain Modeler

Page 30: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

21

Slope Analysis (Figure 16) produced excellent linear detail and the least extraneous

(non-linear) data in the range between 21 and 29 percent. The drawback is that Slope

Analysis does not produce discreet areas with individual elevation values needed to

compare against the water surface. The output of Raster to Polygon conversion (Figure 17)

is a highly detailed, continuous coverage of polygons representing discrete elevation zones

in one-meter increments. However, this method had one major drawback: the conversion

produced more than 3-million polygons, a fatal threat to the goals of easy data generation

and short processing times. Visually rendering the polygon data took at least two minutes

per redraw and simply opening the attribute table took more than 5 minutes. Operations

involving this data frequently crashed the computer, a Dell Precision T3610 64-bit

workstation with an Intel® Xeon® E5-1620 v2 @ 3.7GHz processor and 16 GB of RAM

using Windows 7. The issue was easily remedied by deleting polygons with shape areas (as

indicated in the Shape_Area field of the data table) below a minimum threshold. In one

instance, deleting polygons with shape areas of less than 50 square meters reduced the

total number of polygons from 3,164,578 to only 60,373 (Figure 18). The time needed to

draw polygons across the entire coverage was reduced to around four seconds. At small

scales, elevation polygons draw more quickly. Eliminating small polygons resulted in a

large number of no-data “holes” which could be considered as minute transitions in

elevation or areas of uncertainty in floodwater coverage. Raster to Polygon conversion was

the appropriate choice as it provided a highly detailed representative ground surface and

met the project objectives of fast analyses at both wide area and highly localized scales.

Page 31: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

22

Figure 16: Ground surface model from slope analysis

Page 32: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

23

Figure 17: Output of raster to polygon conversion

Page 33: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

24

Figure 18: Raster to Polygon coverage - Number of Polygons vs. Polygon Minimum Area

2. Modeling the Water Surface

Water surface elevations are easily characterized across short distances with a flat

plane having a single elevation value. The problem becomes more complex across larger

areas, where surges caused by rainfall or changes in discharge from dams will cause

“ripples” on the plane. The floodplain delineation map in Error! Reference source not

found.Figure 19, developed from an Esri tutorial on Floodplain Delineation from LiDAR

Points (Esri, n.d.) has one-dimensional elevation cross sections or "surface profiles" with

multiple surfaces projected from center stream elevations. A process based on this

approach was used to develop a water profile in this project.

Among the factors considered: the points where the Missouri River meets Holt

County’s northern and southern boundaries are 38.8 air miles (62.4 km) apart but cover 56

Page 34: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

25

linear river miles (90 km); between these points, the elevation drops from ~883 feet/269

meters to ~826 feet/252 meters above sea level; the rate of elevation drop is not constant

along the 250 river miles between Omaha, Nebraska and Kansas City, Missouri as seen in

Figure 20, though the total drop of 242 feet neatly averages to nearly 1 foot per mile (0.97),

and; the initial water surface created for use in analysis was based on a one-foot-per-mile

(or 1 meter per three mile) elevation drop rate for simplicity.

To recreate this elevation drop rate, rectangular polygon “strips” approximately 3

miles wide, each representing a 1-meter elevation offset, were arbitrarily drawn over the

area into a new feature class, using river mile markers as references (Figure 21). Positive

offset values were assigned to upstream zones and negative values were assigned to

downstream zones. The elevation offset values were assigned to ground surface polygons

within each zone using overlay analysis. A field named to hold calculated “PFlood” values

was added to the table to hold values for the calculated flood potential of each polygon.

Figure 19: Floodplain delineation map with projected water surface

Page 35: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

26

Figure 20: Elevation Drops Between River Gages, Omaha to Kansas City

Page 36: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

27

Figure 21: Water Elevation Offset Zones, Polygon Feature Class

a. The XML Feed

Figures 22, 23 and 24 show the XML data “tree” returned from the URL noted in

Figure 6, which requests data formatted in WaterML1.1, for site ID 06813500 (Rulo,

Nebraska) and figures for parameters 00060 (stream flow in cfs) and 00065 (river gage in

Page 37: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

28

feet). Data is returned for each of the three data “branches” that extend from the root level;

they are referred to and represented in Python code as root[0], root[1] and root[2]. The

data we need may be contained within a tag, in an attribute within a tag or in the text

between opening and closing tags. The line of XML at the top of Figure 25 shows data

returned for the node at address root[1][0][1]; the following lines show how tag, attribute

and text within the node are retrieved. In the data tree figures, columns on the left margin

indicate the hierarchy of “addresses” used to retrieve data from branches or “nodes” of the

tree. For example, the site name “Missouri River at Rulo, NE” is located at address

root[1][0][0]. Some data is retrieved as deeply as five levels down from the root, as in the

case of site latitude at address root[1][0][3][0][0].

Figure 22: XML data tree from USGS river gage feed (Part 1)

Page 38: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

29

Figure 23: XML data tree from USGS river gage feed (Part 2)

Page 39: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

30

Figure 24: XML data tree from USGS river gage feed (Part 3)

Page 40: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

31

Figure 25: Accessing parameters within XML nodes

b. Analysis

With the floodplain model and XML feed in place, the potential for flooding (PFlood)

in each individual ground surface polygon was calculated based on river gage values --

called “potential” because our model does not account for which flood control structures

protecting an area may or may not be intact. Figure 26 shows the calculations used to

determine PFlood:

Figure 26a: Water Surface Elevation asl at Zero Offset (WSEØ) was determined by

adding the river gage figure in feet to the datum elevation at Rulo, Nebraska (838.16

ft.), then converting the sum to meters.

Figure 26b: Zonal Water Surface Elevation for each zone (WSEz) is the sum of the

zero offset elevation (WSEØ) and a zone’s Elevation Offset value (ZOff).

Figure 26c: Flood Potential (PFlood) for individual polygons was determined by

comparing the polygon’s elevation (ElevPoly) to the Zonal Water Surface Elevations

(WSEz). The result is either a positive (not flooded) or negative (amount of

inundation) value.

Page 41: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

32

Figure 26d: The formula used in Python code. The result is multiplied by -1 so that

negative values indicate elevations inundated by water and positive values indicate

elevations above water.

VII. Python Code

Five Python scripts comprising a “Floodplain Delineation” toolbox were developed

to execute the process. Figure 27 shows how individual tools relate to each other in a

systemic context. A schema-only layer package was developed so consistent symbolization

could be applied to model output.

a. Enter Gage Stations

USGS gage recording stations must be registered in the utility database before they

can be queried and their data used. The user must enter the gage’s 8-digit Site ID number,

its datum elevation and floodstage values in feet. The tool validates user input, queries the

USGS feed to confirm the ID is active, confirms data is available, retrieves fields and enters

them into the database.

Figure 26: PFlood (potential for flood) formulas

a. WSEØ = (Datum elevation + river gage) * 0.308

b. WSEz = WSEØ + ZOff

c. PFlood = ElevPoly – WSEz

d. PFlood = (WSEØ + [ZOff] - [ElevPoly]) * -1

Page 42: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

33

b. Get XML Feed

With a Site ID as input, confirms the station is registered in the database; accesses

data by constructing and submitting a query URL; downloads and parses the XML data

stream to retrieve/process river gage, discharge and timestamp statistics; enters the data

into the database.

c. Build Floodplain Model

From three input files – a Digital Elevation Map (DEM) raster, clipping polygon and

“offset zones” source file -- produces a polygon elevation layer representing both land

elevations and adjusted water elevations with offsets to account for the general

downstream elevation drop. The average run time for this script on the development

workstation was 40-45 minutes.

d. Pflood from XML

Queries the database and retrieves the most recent recorded gage height in feet for

Rulo, Nebraska, Site ID 06813500; generates a floodplain scenario based on the returned

value.

e. PFlood Generate Scenario

Generates a floodplain scenario for Rulo, Nebraska based on a river gage height in

feet entered by the user.

A consistent color symbolization schema can be applied using a Layer Package

stored in the geodatabase and unpacked in ArcCatalog (Figure 28). As scenario iterations

are generated from either the “PFlood Generate Scenario” or “PFlood from XML” tools,

symbolization is updated when the floodplainModel feature class display is refreshed.

Page 43: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

34

Figure 27: Workflows in the Floodplain Delineation Toolbox

Figure 28: The floodplainColors schema-only layer package file (.lpk)

Page 44: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

35

VIII. Model Output

a. Symbolization

Symbolization is done with negative numbers representing inundation and positive

numbers representing land above the projected water surface. All values above ~2 meters

are classified as dry. Areas between 0 and 2 meters are considered as being at immediate

risk of inundation, with 0-1 meter areas symbolized in red and 1-2 meter areas symbolized

in yellow. Inundation is symbolized in shades of blue, with darker blues representing

greater inundation depths. In the example figures, inundation was symbolized in 3-meter

increments.

b. Offset and No-Offset

Floodplain delineation maps were generated for the four immersion scenarios listed

in Figure 29: the record crest set in 2011; a level one foot over Rulo’s 17-foot flood stage; a

typical annual low gage value, and; a random historic low water mark.

To analyze the utility of elevation offsets, PFlood values in the first map sequence

(Figure 30) were calculated using offsets while values in second map sequence (Figure 31)

were not. On a wide scale (Macroanalysis), both sequences show how the potential for

flooding spreads from south to north as river gages increase. The maps indicate areas in

the extreme south would be at constant risk of overflow were it not for the levees that line

the river banks. This would be consistent with the general nature of the Missouri River and

its morphology as a controlled waterway. Flood control structures were built to keep the

river confined to its channel and to restrain its natural tendency for frequent overflow.

From here, the map sets begin to diverge. The Offset maps tend to be more “forgiving” on

the upper end, showing a more gradual south-to-north overflow at higher river gage

Page 45: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

36

heights, but greater flood depths in lower terrain elevations at the southern end of the

extent. The No-Offset maps show not only a faster spread of flood potential, but potential

immersion over a far greater area at higher river gage heights. The exception is in the very

low water scenario, where the No-Offset map shows significantly less flood potential. The

breaklines between zone offset areas are also more apparent.

Figure 29: Elevation Values Selected for “Immersion Scenarios”

Gage (ft) Elev (ft) Elev (m) Notes

1.46 839.6 255.9 Random recorded low water level 12/19/1989

10 848.2 258.5 Typical annual low water value

18 856.2 261.0 One foot above floodstage level of 17 feet

27.26 865.4 263.8 Record high level 6/27/2011

Page 46: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

37

Figure 30: Floodplain Immersion Scenarios with Elevation Offsets

Page 47: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

38

Figure 31: Floodplain Immersion Scenarios Without Elevation Offsets

Page 48: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

39

c. Modified Offset

Offset and No-Offset values were similar in that the terrain elevation drop was

evenly distributed -- by design in the first case, and by being ignored in the second. To

further investigate these differences, a third “Modified Offset” sequence map was produced

(Figure 32), using values more consistent with the per-mile average elevation drops

between river gages, diagrammed in Figure 20. The average 0.6 foot-per-mile drop

between the Brownville, Nebraska and Rulo gages is the most gradual while the 1.71 per-

mile average between Rulo and St. Joseph, Missouri is the steepest. With 3-mile wide offset

ones, values in increments of 1.8 feet (0.55m) were assigned to Zones 1 through 5, with

values in increments of 5.13 feet (1.56m) assigned to Zones -1 through -4.

The Modified Offset maps would seem to do a better job at the lowest river stage

scenario, with practically no threat of immersion anywhere, the outline of Big Lake left

visible at center left, and low elevations adjacent to the Squaw Creek National Wildlife

Refuge visible east of Big Lake. A comparison of a PFlood projection with actual conditions

on January 17, 2011 (Figure 33) shows immersion at the northern end of the extent, unlike

the initial offset map. Again, while these inundation potential maps are not meant to be

hydrologically accurate, it would seem the Modified Offset values do a better job of creating

projections, therefore this is the data set we will use in Microanalysis. The feature class

Zones_Modified has been hardcoded into the Build Floodplain Model script.

Page 49: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

40

Figure 32: Floodplain Immersion Scenarios with Modified Elevation Offsets

Page 50: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

41

Figure 33: PFlood Projection vs. Landsat Image from 17 July 2011 (Source: USGS)

Page 51: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

42

IX. Analysis Scenarios

Scenarios covering four locations within the Study Area (Figure 34) were created

from the modified elevation offsets using river gages in Figure 29. As note on the maps,

river gages are referred to in feet while PFlood figures are measured in meters. In each

three-panel simulation, panel a. represents a river gage of 10 feet, panel b. represents 18

feet (1 foot over floodstage), panel c. represents 27.26 feet. Model output is compared

against conditions observed and photographed in 2011 to look for similarities and to

determine what kinds of conclusions might reasonably be drawn from the flood delineation

model.

Scenarios A and B are within a 17,366-acre leveed area owned by the Union

Township Levee District (Figure 35, bottom) described by the State of Missouri as “a

mainline levee and the first line of defense for much of northwestern Holt County” (Office

of Missouri Governor Jay Nixon, 2012). A levee at Lower Cotter Bend, just downstream

from the mouth of the Tarkio River at River Mile 507 in the northwestern corner of the

district was breached by high water in 2010 and the gap of 1100 feet/335 meters was not

repaired until 2012 (U.S. Army Corps of Engineers, 2012). Scenarios C and D occurred as

the result of a levee breach at the mouth of Mill Creek at approximately River Mile 515.5,

within the Corning Conservation Area. The breach was at the southern edge and just

outside of the federally constructed and non-federally operated L-536-550 Turkey Crk LB,

Rock Crk LB, Mo Riv LB, & Mill Crk RB Levee System (Mill Crk RB Levee System, Figure 35,

top) as described by the U.S. Army Corps of Engineers (2014).

Page 52: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

43

Figure 34: Study Area Scenario Locations w/ Nearby Levee Breach Sites (insets)

Page 53: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

44

Figure 35: Mill Creek and Union Township Levee Districts (Source: USACE)

Page 54: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

45

a. SCENARIO A: Rulo/Big Lake

This area is immediately east of Rulo, Nebraska along US Highway 159 and includes

all of Big Lake. Missouri Highway 111 runs north from US 159 and along the eastern edge

of Big Lake (Figure 36, 37). Figure 37a shows how low the general area is and why flood

protection is required. Much of the area is within 2 meters of flooding at a low river gage. A

description of flood impacts from the National Weather Service’s Advanced Hydrologic

Prediction Service (National Weather Service, 2015) notes levees protecting Big Lake begin

to overtop at a river gage of 26 feet, and; at 27.26 feet, the record historic crest reached in

2011, “significant flooding will encompass a very large area”. In Figure 37c, the entire area

is inundated with nearly all flood control structures under water. Figure 38 shows how Big

Lake is dry at a river gage of 24.12. Figure 39 shows conditions five days later, after the

water has risen and weakened levees failed, the area is flooded at river gage 26.51.

The 2011 Flood overtopped Big Lake, flooded homes along its banks (Figure 38, 39)

and washed out the Burlington Northern-Santa Fe (BNSF) railroad tracks running adjacent

to US 159 (Figure 40, 41, 42). In Figure 40c, the flood pattern along a curve of US 159 west

of Big Lake closely greatly resembles that observed on 21 June (Figure 41) with the river

gage at 26.51; as in the PFlood map, the railroad tracks along the northern edge of the

curve are above water at the west end while the roadway running parallel to the south is

immersed.

Figure 42 confirms deep immersion at the south end of Big Lake as seen in Figure

43, 44, and 45. By the time the photos were taken in October, the destroyed railroad tracks

had been replaced. US 159, the roadway furthest south, has been washed out and destroyed

Page 55: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

46

by a large scour hole. High water marks of approximately 2 meters on buildings in Figure

45 compare with the 3-meter immersion depth projected by the model.

Page 56: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

47

Figure 36: SCENARIO A, Map and Aerial View

Page 57: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

48

Figure 37: SCENARIO A, Vicinity of Big Lake and US 159 between Rulo, NE and

Fortescue, MO

Page 58: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

49

Figure 38: SCENARIO A, Big Lake pre-flood, view to the north 16 JUN 2011 (Max Stage:

24.12)

Figure 39: SCENARIO A, Big Lake inundated, view to the north 21 JUN 2011 (Max Stage

26.51)

Page 59: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

50

Figure 40: SCENARIO A, US 159 between Rulo and Big Lake

Page 60: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

51

Figure 41: SCENARIO A, water over US 159, view to the west 21 JUN 2011 (Max Stage

26.51)

Page 61: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

52

Figure 42: SCENARIO A, roadway and rail bed, south shore of Big Lake

Page 62: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

53

Figure 43: SCENARIO A, roadway and rail bed, south shore of Big Lake, view to the

north 14 OCT 2011 (Max Stage 14.19)

Figure 44: SCENARIO A, US 159 between Rulo and Big Lake, post-flood, view to the west 14 OCT 2011 (Max Stage 14.19)

Page 63: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

54

Figure 45: SCENARIO A, Google Streets images from 2013 show high water marks

Page 64: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

55

b. SCENARIO B: Missouri Highway 111/118 (Fred Guthrie Site)

Located approximately two miles north of Big Lake at the junction of Missouri

Highways 111 and 118 and approximately 5 miles/8 km southwest of the levee breach at

River Mile 507. Missouri State Highway Patrol Trooper Fred Guthrie and his K-9 Reed

were swept away by fast currents where Missouri 111 runs west from the junction (see In

Memoriam on the last page). The intersection is circled in Figure 46a and is seen while

submerged in Figure 47 and post-flood in Figure 48. The huge scour hole that formed at

this location, seen in the Figure 48 photo, is also visible in Figure 49a.

The degree of flooding at the Guthrie site was greatly similar to levels seen in Figure

49 . Figure 49b clearly shows Missouri 111 trailing off into high water as seen in Figure 50,

a photo taken hours after Trooper Guthrie and Reed had disappeared. Water depth was

enough to allow motorized, shallow draft boats to operate freely (Figure 51). At the

111/118 intersection, Figure 52 shows roadways to be up to 2 meters above water level, in

the same locations seen in the model. Figure 53 and Figure 54, covering the area just north

of the Guthrie site, show the potential for flooding caused by breaks in agricultural levees.

Areas south and east of the levee break in the Union Township system are covered in

Figure 55; the levee break occurred at the upper left corner of the mapped area.

Page 65: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

56

Figure 46: SCENARIO B, Map and Aerial View; Fred Guthrie Site circled

Page 66: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

57

Figure 47: SCENARIO B, Looking south towards Big Lake from the Guthrie site 01 AUG

2011(Max Stage 24.03)

Figure 48: SCENARIO B, Scour hole at the Guthrie site (r. center) and sand deposition

along Highway 111 (l. center), view south towards Big Lake 14 OCT 2011 (Max Stage 14.19)

Page 67: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

58

Figure 49: SCENARIO B, Fred Guthrie Site at Junction of Highway 111 and 118

Page 68: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

59

Figure 50: SCENARIO B, Looking west towards the Guthrie site with water over

Highway 111 01 AUG 2011 (Max Stage 24.03)

Figure 51: SCENARIO B, Water is deep enough for shallow draft boats to operate freely

around the Guthrie site 01 AUG 2011 (Max Stage 24.03)

Page 69: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

60

Figure 52: SCENARIO B, Level of immersion at Jct Missouri 111/118 on the morning of

7 AUG 2011, view to the south (top) and to the west (center and bottom)

Page 70: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

61

Figure 53: SCENARIO B, potential for flooding caused by breaks in agricultural levees

Page 71: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

62

Figure 54: SCENARIO B, The flood’s areal coverage grows as agricultural levees are

breached inland and individual flood cells are filled 21 JUN 2011 (Max Stage 26.51)

Page 72: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

63

Figure 55: SCENARIO B, areas east and south of the Union Township levee breach

Page 73: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

64

c. SCENARIO C: Tarkio River Southwest of Corning, Missouri

The Tarkio River, or the “Big Tarkio”, flows onto the flood plain from the hills north

and east of Corning, Missouri (Figure 56) and is channelized with high levees on either side

to where it meets the Missouri River southwest of Craig, Mo. These levees not only protect

a large area including the town of Craig from Missouri River overflows, they also keep the

Tarkio River from spilling onto the flood plain, On July 7, 2011, the Tarkio River

contributed to an already disastrous situation in Holt County after rising more than 15

feet/4.5 meters in 5 hours and spilling through a levee breach created two weeks earlier

(Norvell, 2011).

Figure 57 shows the Tarkio River levee remaining largely above water even in the

worst case scenario (Figure 57c). Photos in Figure 58 confirm the levees as formidable

structures and the size of the channel between them. In high water conditions, the river

itself is clearly defined between the levees in Figure 59 with the levees themselves

remaining well above the potential flood level. This is confirmed in Figure 60, a photo taken

on 21 June when the river stage was 26.51 feet. In our map developed from thousands of

polygons, it is possible to examine elevation differences at very high scale. Figure 61 shows

minute elevation differences on the levee that might be potential locations for overtopping

at higher water levels. We can even estimate the size of the indicated gap at 12.5 meters.

Page 74: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

65

Figure 56: SCENARIO C, Map and Aerial View (Google Maps, Google Earth)

Page 75: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

66

Figure 57: SCENARIO C, The leveed Tarkio River

Page 76: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

67

Error! Reference source not found.

Figure 58: SCENARIO C, Tarkio River, view to the north, as overflow begins to seep through the levees 21 JUN 2011 (Max Stage 26.51) and post-flood 14 OCT 2011 (Max Stage 14.19)

Page 77: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

68

Figure 59: SCENARIO C, The leveed Tarkio River and railroad bridge at County Road 125

Page 78: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

69

Figure 60: SCENARIO C, Tarkio River and railroad bridge at County Road 125 21 JUN 2011 (Max Stage 26.51)

Page 79: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

70

Figure 61: SCENARIO C, Minute elevation differences seen at very high map scales

Page 80: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

71

d. SCENARIO D: Corning, Missouri and Corning Conservation Area

The area shown in Figure 62 ncludes: the site of the Mill Creek levee breach on the

Missouri River, visible as a sand deposition plume at the upper left of the diagrams in

Figure 63; the town of Corning, Mo, two miles east, and; the Interstate 29 interchange and

mainline.

The extreme flood scenario in Figure 63c shows a water depth of 0-3m in the town

of Corning. This would seem to be confirmed by photos in Figure 64 and Figure 65 which

show flood conditions and post-flood high water marks on buildings. The conditions

projected at the Corning Interchange and along the I-29 mainline in Figure 66 match

conditions documented in Figure 67 and Figure 68.

Figure 69 clearly indicates the I-29 mainline remains well above the flood waters. It

compares well to the actual flood levels in Figure 70, Figure 71, and Figure 72. In addition,

documented flood conditions at the Corning Interchange (Figure 70) closely match an

extremely high scale projection of the area in Figure 71 down to the very small patch of

land remaining above water.

Error! Reference source not found.

Figure 62: SCENARIO D, Map and Aerial View (Google Maps, Google Earth)

Page 81: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

72

Figure 63: SCENARIO D, Missouri River Levee Breach to Corning, MO and Interstate 29

Page 82: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

73

Figure 64: SCENARIO D, Flooding in Corning, MO 23 JUN 2011 (Max Stage 26.96)

Page 83: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

74

Error!

Reference source not found.

Page 84: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

75

Figure 65: SCENARIO D, Corning, MO, high water marks of around 1 meter 11 JAN 2012

Figure 66: SCENARIO D, Corning, MO.

Page 85: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

76

Figure 67: SCENARIO D, Looking southwest from the I-29 Corning interchange to the

town of Corning and the Missouri River 8 JUL 2011 (Max Stage 25.81)

Figure 68: SCENARIO D, High water failed to top the Interstate 29 mainline south of the

Corning interchange, view to the north 23 JUN 2011 (Max Stage 26.96)

Page 86: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

77

Figure 69: SCENARIO D, Interstate 29 and the Corning Interchange

Page 87: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

78

Figure 70: SCENARIO D, I-29 Corning Interchange, view to the east 23 JUN 2011 (Max

Stage 26.96)

Figure 71: SCENARIO D, Corning Interchange flood map, extremely high scale; island of

land noted by arrow, compare to feature in Figure 70.

Page 88: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

79

Figure 72: SCENARIO D, Green vegetation marks areas that stayed dry along I-29 just

south of the Corning interchange, looking south 14 OCT 2011 (Max Stage 14.19)

Page 89: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

80

X. Conclusions and Further Development

The major objectives of this project were successfully met: a simple floodplain

delineation model was created with Python script; data tables were populated with and

analysis was driven by “live” XML river gage data; the model quickly and efficiently

returned precise results, viewable from low to very high scales, across a wide area.

Avenues for further development of this application include:

1) Use on more sophisticated flood models: The model used in this study is based on

elevations alone and does not purport to be hydrologically accurate. Industrial-grade

flood models can be studied to determine where and how live data or other XML inputs

could be used.

2) Flood area/flood cell discontinuity: Our method for determining a flood’s areal

coverage considers only comparative elevations between terrain and a projected water

surface, and does not consider containment within flood control structures. A method

for analyzing flood cell contiguity would be useful, though the model has proven useful

enough without this capability.

3) As part of the research for this project, some linear structures were extracted manually

at individual elevations for demarcation from the rest of the polygons. The process was

deemed too time consuming for this effort. Steinfeld, et al. (2013) studied three semi-

automated GIS and traditional visual interpretation techniques for detecting

earthworks. The color symbolization used in this project to emphasize polygons within

2 meters of inundation is a workaround for this issue.

Page 90: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

81

4) Temporal applications: Flood events are comprised of incidents that occur geospatially

and have consequences over time. For example, the length of time a flood control

structure has been exposed to standing water may signal a loss of structural integrity

and impending breaches; the amount of time land is inundated may affect soil health

and plant life recovery. Timestamped entries in the database support temporal

analysis.

5) Mobile data gathering technology: There are number of field data collection

applications such as Collector for ArcGIS, which run on tablet devices such as

iPhones/iPads. One such application, MotionX-GPS® by Fullpower Technologies, Inc.,

was evaluated as part of this study as a way of providing location-specific data. Motion-

X records tracks and waypoints as .GPX (GPs eXchange) files, an open-source XML

format described in the ArcGIS help file as the standard for saving the results from a

GPS receiver (Herzer, 2012). The track in Figure 73 was recorded during the search for

Trooper Fred Guthrie and “Reed” as the aircraft orbited the main search area. GPX files

can either be parsed with Python or imported directly into ArcGIS using the Conversion

> From GPS > GPX to Features tool.

6) Changes to source data: The U.S. Geological Survey has outlined changes to USGS water

data offered online, scheduled to be implemented state-by-state over a 7-month period

that began in late summer 2016 (U.S. Geological Survey, 2016). Some nationwide

changes were rolled out in July 2016. These changes may impact users with advanced

applications that use water data and bookmarked URLs. The list includes replacing data

descriptors with time-series identifiers, changes in URLs for time-series graphs, in tab-

Page 91: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

82

separated (RDB) output and in some less common time-series parameter codes, e.g. for

stream velocity.

Figure 73: Flight track constructed from GPX files

* * * * *

Page 92: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

83

In Memoriam: Trooper Frederick F. Guthrie and K-9 Reed

Missouri State Highway Patrol

On August 1, 2011, Trooper Frederick F. Guthrie Jr., and his Patrol K-9 Reed were assigned to Missouri River flood duty. They were working in the area of Big Lake on Missouri Highway 118 at Missouri Highway 111 in Holt County, Missouri, when they were apparently swept away by swift flood water.

At approximately 6:25 p.m. on Tuesday August 2, 2011, K-9 Reed was located in swift moving flood water approximately 100 yards from where Trooper Guthrie's patrol truck and boat were located.

The search for Trooper Guthrie continued for months. On January 12, 2012, his body was recovered under approximately three-and-a-half feet of packed sand and silt, after a brush pile was removed during an excavation process. The recovery site was south of where K-9 Reed was found months earlier, near the original search site.

Trooper Guthrie, 46, was the 30th member of the Missouri State Highway Patrol to make the ultimate sacrifice while serving and protecting the citizens of Missouri. K-9 Reed was a five-year veteran with the Patrol.

This study is dedicated to their memory. Source: Missouri State Highway Patrol

Page 93: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

84

Acknowledgements

For my wife Jeannine, who has supported and endured my every career move and

bright idea utterly without complaint.

With thanks to my friend and colleague Sgt. Kevin G. Haywood Sr., Missouri State

Highway Patrol and to my Highway Patrol family.

Ground truth photographs were taken by the author working as a member of the

Missouri State Highway Patrol Communications Division during and flying in a Highway

Patrol aircraft piloted by Sgt. Kevin G. Haywood, Sr. Reconnaissance flights to look for levee

breaches and flooding between Iatan, Missouri and the Iowa state line began in early June

2011. Information was shared with the Missouri State Emergency Management Agency

(SEMA) and local law enforcement agencies. The author also participated in the months

long search for Highway Patrol Trooper Fred F. Guthrie and his K-9 “Reed”, who were

swept away by flood water north of Big Lake on August 1, 2011.

Page 94: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

85

APPENDICE

Page 95: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

90

Page 96: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

91

Page 97: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

95

Page 98: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

99

Page 99: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

103

Page 100: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

106

Page 101: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

107

References

British Hydrological Society, 2014. The Science of Hydrology. [Online] Available at: http://www.hydrology.org.uk/science_of_hydrology.php [Accessed 2 May 2016].

Choung, Y., 2014. Mapping Levees Using LiDAR Data and Multispectral Orthoimages in the Nakdong River Basins, South Korea. Remote Sensing, Volume 6, pp. 8696-8717.

Esri, 2008. XML Schema of the Geodatabase. [Online] Available at: http://downloads.esri.com/support/whitepapers/ao_/XML_Schema_of_Geodatabase.pdf [Accessed 7 May 2016].

Esri, 2011. Arc Hydro Tools 2.0 Tutorial. [Online] Available at: http://downloads.esri.com/archydro/archydro/Tutorial/Doc/Arc%20Hydro%20Tools%202.0%20-%20Tutorial.pdf [Accessed 1 April 2016].

Esri, n.d. Floodplain delineation from lidar points. [Online] Available at: http://desktop.arcgis.com/en/arcmap/10.3/manage-data/las-dataset/floodplain-modeling-using-lidar-in-arcgis.htm [Accessed 25 April 2016].

Herzer, J., 2012. Georeferencing on a Budget: Using iPhone and Freeware Apps to Geotag a Mountain of Image Files. [Online] Available at: http://www.directionsmag.com/entry/georeferencing-on-a-budget-using-iphone-and-freeware-apps-to-geotag-a-/270266 [Accessed 12 July 2016].

Horritt, M. & Bates, P., 2001. Predicting floodplain inundation: raster-based modelling versus the finite-element approach. HYDROLOGICAL PROCESSES, Volume 15, p. 825–842.

Kahn, B., 2011. Missouri River Flood Drama Likely Took Direction from La Niña. [Online] Available at: http://www.climatewatch.noaa.gov/article/2011/missouri-river-flood-drama-likely-took-direction-from-la-nina [Accessed 13 February 2012].

KISTERS North America, Inc., 2016. WaterML2: A Global Standard for Hydrological Time Series. [Online] Available at: http://www.waterml2.org/ [Accessed 30 June 2016].

Larson, L., 1996. The Great USA Flood of 1993. [Online] Available at: http://www.nwrfc.noaa.gov/floods/papers/oh_2/great.htm [Accessed 31 October 2016].

Page 102: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

108

Mahoney, M., 2011. Holt County Missouri Officials Accuse Corps of “Devastation by Design”, with 2011 Flooding. [Online] Available at: https://20poundsofheadlines.wordpress.com/2011/08/15/10799/ [Accessed 2 February 2013].

National Weather Service, 2012. Service Assessment Report, The Missouri/Souris River Floods of May-August 2011 [pdf].. [Online] Available at: http://www.nws.noaa.gov/os/assessments/pdfs/Missouri_floods11.pdf [Accessed 30 January 2013].

National Weather Service, 2015. Advanced Hydrologic Prediction Service. [Online] Available at: http://water.weather.gov/ahps2/hydrograph.php?gage=ruln1&wfo=oax [Accessed 7 August 2016].

Norvell, K., 2011. Big Tarkio up 15 feet in 5 hours. [Online] Available at: http://www.newspressnow.com/news/article_871a7069-fba8-5e0a-aceb-103ae7af1246.html [Accessed 3 October 2016].

Office of Missouri Governor Jay Nixon, 2012. Gov. Nixon announces more than $3.3 million to assist seven levee districts along the Missouri River to rebuild. [Online] Available at: https://governor.mo.gov/news/archive/gov-nixon-announces-more-33-million-assist-seven-levee-districts-along-missouri-river [Accessed 26 September 2016].

Python Software Foundation, n.d. The ElementTree XML API. [Online] Available at: https://docs.python.org/2/library/xml.etree.elementtree.html [Accessed 11 December 2015].

Steinfeld, C. et al., 2013. Semi-automated GIS techniques for detecting floodplain earthworks. Hydrological Processes, 27(4), pp. 579-591.

Swift, B., 2014. Comparison and Utilization of 1D, 2D, and 3D Hydraulic Models on a Complex Diversion Structure. [Online] Available at: http://www.floods.org/Files/Conf2015_ppts/G7_Swift.pdf [Accessed 2 May 2016].

U.S. Army Corps of Engineers, Hydrologic Engineering Center, n.d. HEC-GeoRAS. [Online] Available at: http://www.hec.usace.army.mil/software/hec-georas/ [Accessed 3 May 2016].

U.S. Army Corps of Engineers, 2012. 2011 Missouri River Levee Rehab Update. [Online] Available at: http://www.nwk.usace.army.mil/Portals/29/docs/emergencymanagement/leveerehab/100412/Union_Township_Template.pdf [Accessed 27 September 2016].

U.S. Army Corps of Engineers, 2014. L-536-550 PI Executive Summary. [Online] Available at: http://nld.usace.army.mil/egis/NLDE_PROD.media_api.download?p_media_id=472900114

Page 103: USING PYTHON AND XML FOR FLOOD PLAIN DELINEATION …...This paper describes how ArcGIS and Python scripting were used to create a simple floodplain delineation model and to drive analysis

109

7&p_submission_id=2396 [Accessed 29 September 2016].

U.S. Army Corps of Engineers, n.d. Missouri River Recovery Program. [Online] Available at: http://moriverrecovery.usace.army.mil/ [Accessed 5 August` 2016].

U.S. Geological Survey, 2016. Water Data for the Nation changes. [Online] Available at: https://help.waterdata.usgs.gov/news/061016 [Accessed 9 September 2016].

W3 Schools, n.d. JSON Tutorial. [Online] Available at: http://www.w3schools.com/json/default.asp [Accessed 8 September 2016].

W3 Schools, n.d. XML Namespaces. [Online] Available at: http://www.w3schools.com/xml/xml_namespaces.asp [Accessed 8 September 2016].

W3Schools , n.d. Introduction to XML. [Online] Available at: http://www.w3schools.com/xml/xml_whatis.asp [Accessed 11 December 2015].

W3Schools, n.d. PHP 5 Introduction. [Online] Available at: http://www.w3schools.com/php/php_intro.asp [Accessed 11 December 2015].