Lab 3: Changes to the Green River

Joe Martin, Oberlin College
Amanda Schmidt, Oberlin College


Students digitize the path of the Green River from historical imagery, and calculate sinuosity using a Python script. Students then display the changes on a map. Students are introduced to the concept of computer scripting.

Used this activity? Share your experiences and modifications



This exercise is used in an introductory GIS course for geology and environmental studies students.

Skills and concepts that students must have mastered

Basic Familiarity with ArcMap and ArcCatalog; projecting data into the same coordinate system; creating maps with ArcMap layout view.

How the activity is situated in the course

This is the first in a series of stand-alone GIS exercises that introduce students to using Python Scripting for ArcGIS.


Content/concepts goals for this activity

Creating new Shapefiles; creating features with ArcGIS Editor; what a Python script is; opening files with the Python IDE.

Higher order thinking skills goals for this activity

Creating an effective and aesthetically pleasing map; understanding what a computer script is.

Other skills goals for this activity

Description and Teaching Materials

There is publicly available aerial imagery of the Green River in Washington dating back to the 1940's , as well as georeferenced plat maps from the 1860's. Students download these data which documents how the river has changed over the last 150 years. They then trace the rivers path from each dataset, creating features with the ArcGIS editor tool. They then calculate sinuosity of each river feature using a Python script downloaded from ESRI. The sinuosity Python toolbox calculates inverse sinuosity, giving students the opportunity to look at the script itself as they change it to calculate standard sinuosity. They then use their traced rivers and historical sinuosity data to create an informative and aesthetically pleasing map.

Lab 3a: Homework assignment where students download and the imagery and historical plat maps, and ensure that they are all projected into a common coordinate system.

Lab 3b: Lab assignment where students digitize the river paths from the imagery downloaded in Lab 3a, and create a map displaying what they did.

Lab 3c: A lab assignment introducing students to the basics of computer scripting, Students download a sinuosity Python tool from ESRI, change the script from calculating inverse sinuosity to sinuosity, and run it on the shapefiles they digitized in Lab 3b.
Lab 3a: Data Prep for Green River Lab (Acrobat (PDF) 101kB May31 17)
Lab 3b: Changes to the Green River (Acrobat (PDF) 174kB May31 17)
Lab 3c: Python (Acrobat (PDF) 141kB May31 17)

Teaching Notes and Tips

Students will most likely have a range of backgrounds and comfort levels with computer scripting and programing, from those who have taken an introductory computer science class, to those who programmed their graphing calculators, to those who have no prior experience and are uncomfortable with the idea. While lab 3c goes into detail about what the script is actually doing, we suggest checking in with students to make sure they understand the steps involving variables and variable assignment, as that can help prevent problems when doing more advanced Python work. This can take the from of talking with students one on one as they work on the lab, going through the script as a class, or requiring the students to turn in some sort of summary about what the script is doing.


Students are assessed on the clarity and professionalism of their map, if it effectively conveys the sinuosity calculated in part c, and on a workflow and letter summarizing what they did and learned in the lab.