# Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance.

## Presentation on theme: "Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance."— Presentation transcript:

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

Determining Gradient Site 100 m DS 100 m US 250 m US 250 m DS “Short” reach “Long” reach Get elevations from each upstream and downstream reach endpoint

Why (not) ModelBuilder? I don’t often do GIS processes that need to be repeated multiple times. My workflows tend to be “custom”, created as needed to solve a particular solution. If I need to repeat a process each year, I create and use a written protocol, or look at my notes from the previous year. I often work between “platforms” (ArcGIS, Access, Excel, etc.).

So, why ModelBuilder this time? Main reason: Repeated processes – This GIS process needed to be repeated multiple times (once for each subbasin). – Rather than working manually through the same process six times, I could set up one Model and click “Run” six times. – Or, even better, I could set it up to “iterate” through all six basins on its own. Other Benefits: Readily adaptable – Elements of this workflow are relatively common in my work, so now that a Model is created, I will likely use or adapt it multiple times in the future. Easily brought “out of retirement” – If I need to repeat this process in the future, it is relatively simple to update the Model and run it. Metadata (sort of) – processing methods – If I want to remember what the workflow was, I can open the model and review the processes and tools involved. Forces me to work in one platform – While working cross-platform isn’t inherently bad, it doesn’t lend itself to easily replicated or transferable solutions. Thus, I wanted to see if I could do the whole workflow within ArcGIS.

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

First Model: Locate Features Along Routes (Iteration – Series)

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

Second Model: Calculate Fields (Iteration – List) Iteration types: List – The tool connected to the List variable – and all downstream tools – execute once for each value in the List Series – Entire model is executed once for each value in the Series

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

Third Model: Extract Values; Join Table; Calc. Fields

Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance measures. (Linear Referencing Tools) 3)Locate features along routes (Linear Referencing Tools) 4)Open.dbf in Excel, save as.xls, and write a formula to adjust MEAS values +/- 100 meters and 250 meters to “bracket-in” site (200 m & 500 m). 5)Add.xls file to ArcMap 6)Make route event layer (Linear Referencing Tools) 7)Turn.xls file into shapefile called basin_Extents_Up_Down_+/-dist 8)Extract values to points (Get elevations for the endpoints) (Spatial Analyst Tools – Extraction) 9)Open attribute table and export to.dbf 10)Combine elevation values and route location values to calculate gradient. Task: How to do all of this in an automated way, and all in ArcMap? Solution: Use ModelBuilder

Fourth Model: Extract Values; Spatial Join; Calc. Fields

Issues with ModelBuilder: (aka things that aggravated me) Not always easy to know what went wrong – Extract Values tool did not work on route event layers and failed in seemingly random ways: ERROR 010067: Error in executing grid expression. Assignment to non-variable / Failed to execute (Extract Values to Points). – Tools “executed successfully” in the log, but the subsequent step failed Join Field tool – Identical field names get changed, so any subsequent use of those field names must take that into account Using Calculate Field in a Series doesn’t work – No output variable in the tool, so no ability to set “%n%”; keeps the first filename as the intermediate variable You have to remember *every* little detail of a workflow – Forgot to select by attribute after joining; overwrote previous calculations (User Error) Calculating the joined, selected fields didn’t work consistently: – WARNING 000405: No records within table – Running the same series of processes manually *DID* work. Moving files into a new, clean MXD seemed to help, as did restarting ArcMap periodically.

Wrestling with the Model After two days of tweaking the Model and trying to get it to work, I gave up and went back to a manual approach. I didn’t relish having to go through all of the necessary steps manually, but couldn’t figure out why the Model wouldn’t work. But when I did my first Extract Values to Points manually, it didn’t work either (inexplicably). This was enough to push me back into trying to find an alternative solution with the Model. Soon enough, I did (Add Join).

Download ppt "Protocol: How to Derive Gradient from GIS Outline: 1)Add X,Y site points, using GPS-collected UTM coordinates. 2)Create “routed” streams, with linear distance."

Similar presentations