Introduction

The 2021 monitoring season has wrapped up. While streams were often dry, we did attempt to monitor every month in 2021. Updated to include Jan-Dec data.

South Skunk River at Story City

# 2021-04-13 Started over with 2021 data
# Import csv file provided by City of Ames
# Skip unneeded columns for tidy format
library(tidyverse)
library(readr)
library(lubridate)
ameslab2021 <- read_csv("data/ameslab2021.csv", na = "NULL",
                        col_types = cols(CollectionDate = col_date(format = "%m/%d/%Y"), 
                                         CollectionTime = col_skip(), Comment = col_skip(), 
                                         MRL = col_skip(), LabID = col_integer(),
                                         Method = col_skip(), Note = col_skip(), 
                                         Symbol = col_skip(), Unit = col_skip()))
# renames a column for clarity
ameslab2021 <- rename(ameslab2021, site = Description)
View(ameslab2021)

# Tidy the data, so each analyte is in a column
ames_tidy<- ameslab2021 %>%
pivot_wider( names_from = Analyte, values_from = Result) %>%
    mutate(Year = year(CollectionDate), Month = month(CollectionDate, label = TRUE), 
           Day = day(CollectionDate))
  # Adds a column from a lookup table to allow ordering sites from upstream to downstream
library(readr)
lookup_US_DS <- read_csv("data/lookup_US_DS.csv")
ames_tidy <- left_join(ames_tidy, lookup_US_DS, by = "site")

If you see a car stopped by a bridge in Story County with someone pulling up a milk jug of water on a rope, there’s a good chance it’s me or volunteer Rick Dietz, doing our monthly monitoring route. We collect water samples from 10 sites, and City of Ames staff cover another five. Laboratory Services for City of Ames Water and Pollution Control tests the samples for nitrate, total phosphorus, total suspended solids, and E. coli bacteria.

Weather and flow conditions

Except for early spring and late fall, most of this year the South Skunk River was below normal. For much of the summer Ioway Creek and its tributaries have not been flowing except for a day or two immediately following rain.

Streamflow in the South Skunk River.

Weather when samples were collected:

Ballard Creek, flowing in March

Ballard Creek, dried up in June

Weather frequently prevents us from sampling at some locations. In January and February, some sites could not be sampled due to the thick ice. In summer, some sites have been dry. Bear Creek at W. Maple St in Roland and Clear Creek at Emma McCarthy Lee Park in Ames could not be tested due to construction. We are testing Bear Creek further downstream (near the mouth of the stream, at Pleasant Valley Rd) and testing Clear Creek upstream, at Ontario Rd–but it has frequently been dry. In November, a broken piece of sampling hardware prevented samples from being collected from College Creek or Clear Creek. Worle Creek was stagnant in December.

Under high flow conditions, agricultural runoff can have a big influence on water quality. Under low flow conditions, effluent from wastewater treatment plants and industry (regulated point sources of pollution) have a greater influence.

E. coli bacteria

The support of a certified lab provides a backstop for volunteer monitoring and allows us to make direct comparisons with laboratory data from DNR and other agencies. It also allows us to test for E. coli bacteria, an indicator of fecal contamination from human waste, livestock, pets, or wildlife.

Stagnant water in West Indian Creek. I sampled a ways downstream of this pool where the water was flowing. E. coli exceeded the secondary contact standard.

Single samples are evaluated using a threshold of 235 colonies per 100 mL in waters designated for primary contact recreation and children’s play, and a threshold of 2,880 colonies per 100mL is used for waters designated for secondary contact recreation.

All creeks that were tested regularly have exceeded the primary contact standard at least once. West Indian Creek, College Creek, and Long Dick Creek have sometimes exceeded the secondary contact standard.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `E. Coli`, fill = Month), position = "dodge2") +
  geom_hline(yintercept = 235, color = 'red') +
  scale_y_log10() +
  annotate("text", x = 4, y = 200, color = 'red', label = "Primary contact standard") +
  geom_hline(yintercept = 2880, color = 'brown')+
    annotate("text", x = 4, y = 2500, color = 'brown', label = "Secondary contact standard") +
  theme(axis.text.x = element_text(angle = 90))+
  labs(x = "Sites, arranged upstream to downstream", y = "E. coli (MPN/100mL), plotted on log scale", title = "E. coli in Story County streams, single samples")

The standards apply from March 15-November 15, when people are more likely to enter the water. The geometric mean of at least 7 samples is used to evaluate a full season of data. Because of drought, we only have enough data to evaluate five sites–two of which met the primary contact standard, a geometric mean of below 126 colonies per 100mL.

ames_geomean <- ames_tidy %>%
  filter(Month %in% c("Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct")) %>%
  group_by(site) %>%
  summarise(count = n(),
    geomean = round(exp(mean(log(`E. Coli`))), digits = 0))
filter(ames_geomean, count >= 7) %>%
  ggplot() +
  geom_col(aes(x= site, y = geomean)) +
  geom_hline(yintercept = 126, color = 'red') +
  annotate("text", x = 2, y = 200, color = 'red', label = "Primary contact standard") +
  geom_hline(yintercept = 630, color = 'brown')+
    annotate("text", x = 2, y = 700, color = 'brown', label = "Secondary contact standard") +
  theme(axis.text.x = element_text(angle = 90))+
  labs(x = "Sites", y = "E. coli geomean (MPN/100mL)", title = "E. coli in Story County streams, 2021 recreation season")

In rainy weather, manure can be washed off the land surface. Under low flow conditions, E. coli could be from animals that are actually entering the water, or it could be from leaking septic and sewer systems. Wastewater treatment plants do a good job of removing solids, ammonia, and other nasty stuff, but some of the bacteria make it through, and smaller systems have only recently begun to install UV disinfection systems.

Phosphorus

Phosphorus is an essential plant nutrient that contributes to algae blooms when it gets to the water. Total phosphorus includes forms of phosphorus that are bound to sediment, so phosphorus concentrations are usually highest shortly after heavy rains when runoff can wash sediment into rivers or high flows can erode streambanks.

Algae growth in West Indian Creek.

However, effluent from wastewater treatment plants can have a large influence on phosphorus concentrations when streams are very low. Most sites are downstream from at least one community wastewater system, but the effect is most noticeable in West Indian Creek–the Jennett Heritage Area site is five miles downstream of the Nevada WWTP.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `Total Phosphorus as P`, fill = Month), position = "dodge2") +
  theme(axis.text.x = element_text(angle = 90))+
  labs(x = "Sites, arranged upstream to downstream", y = "Total Phosphorus (mg/L)", title = "Lab results from Story County monitoring route")

Total Suspended Solids

Eroding bank on Ioway Creek

Total suspended solids (TSS) are a measure of water clarity that involves weighing the material that settles out the water. The material is usually sediment (mud) but can also include algae and other organic solids–this explains the higher levels we are seeing this summer. More sediment is carried in the water when flows are high (during storm events, we have measured TSS concentrations in the thousands) but this year flows have been unusually low on our normal monitoring days.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `Total Suspended Solids`, fill = Month), position = "dodge2") +
  ylim(0,200) +
  theme(axis.text.x = element_text(angle = 90))+
  labs(x = "Sites, arranged upstream to downstream", y = "Total Suspended Solids (mg/L)", title = "Lab results from Story County monitoring route")

Nitrogen

Nitrogen is a major contributor to the “dead zone” in the Gulf of Mexico. Nitrogen losses are usually highest in watersheds with a lot of tile-drained agriculture, and during times when tile lines are flowing. Read here to see this in action.

Because of the drought, nitrate concentrations were very low most of this year, but exceeded 10 mg/L in November at five locations.

A spike in West Indian Creek in January may be due to effluent from the Nevada wastewater threatment plant, but this impact is not seen at other times of year when denitrifying bacteria are active.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `Nitrate Nitrogen as N`, fill = Month), position = "dodge2") +
    geom_hline(yintercept = 10, color = 'coral')+
  theme(axis.text.x = element_text(angle = 90))+
  labs(x = "Sites, arranged upstream to downstream", y = "Nitrate-N (mg/L)", title = "Lab results from Story County monitoring route")