Introduction to Hydrologic Data Analysis Using Scientific Programming Languages


Graduate Students: Kendra Kaiser and John Mallard

Faculty: Michael O’Driscoll

Course: Landscape Hydrology, EOS 323/723

The goals of this exercise were twofold: introduce students to scientific programming languages and reinforce hydrological concepts through an assignment that utilized a publically available high-frequency dataset. Although analysis of environmental data is almost always performed using MATLAB, R, or something similar, students often lack opportunities to become comfortable with their use in a setting that provides instructional support. Additionally, although hydrology and other environmental sciences are vitally dependent on high-quality, real-world data, the instruction of these subjects often favors conceptual lessons at the expense of exposure to actual environmental data. Therefore, our assignment is designed to introduce or reinforce scientific programming languages to the students while leveraging a real-world dataset to reinforce concepts learned in class and familiarize students with some of the challenges unique to large, environmental datasets. The students acquired data, imported it into Matlab or R, performed analyses on it, and exported the modified dataset to a common format to be shared along with their script.

Data Expedition Assignment Objectives

1. Identify and acquire publicly available data

2. Demonstrate increased proficiency with scientific programming languages

  • Import data into MATLAB or R
  • Perform analyses on dataset: manipulate, preform calculations, and plot
  • Export the modified dataset to a common format

3. Reinforce conceptual understanding of water and energy fluxes through interpretation of     real-world data

  • Calculate components of the energy balance and discuss temporal dynamics with respect to site specific environmental conditions
  • Calculate evapotranspiration and potential evapotranspiration using common methods and discuss assumptions associated with each

Data Source

The AmeriFlux network measures carbon, water, and energy flux at the ecosystem level across North and South America. These measurements are used to build an understanding of fluxes of energy, water, and nutrients from ecosystems across the western hemisphere and to evaluate ecosystem response to landuse and climate change. This project is funded by the US Department of Energy to encourage consistent measurements and long-term monitoring of these ecosystem fluxes. Data are collected at individual research sites and uploaded to a central Ameriflux server, from which researchers and educators can download individual data records. The network consists of 110 active research sites, of which 44 are designated “core” sites, which maintain specific and high standards of data collection.

Concluding Remarks

We assessed students’ experience with programming (in any language) using a pre-assignment survey. We found that half of the students had no experience with coding, and of those who did have experience only two rated themselves as proficient. We provided two lab sessions where we introduced students to the programming platforms and were on hand to answer specific questions related to the assignment, and then extended office hours to help along the way. In doing so, we found that no students were unable to get the help they needed on the assignment. In a post-assignment questionnaire we found that over half of the class rated themselves as having moderate experience with coding (over 3 on a scale from 1-5), and none of the students rated themselves lower than 2.

However, this method of intensive instructional support required significant time commitments from both instructors. In the future, requiring students to watch tutorials online, and to gradually introduce them to the programs throughout the semester would help get students past the initial learning curve. We found that students did a good job of working through coding issues and questions in small groups. Creating opportunities for them to do this (e.g., booking a computer lab for them, assigning or encouraging formalized groups, etc) would be beneficial.




Data Expeditions