Introduction

Prairie Rivers of Iowa and its partners completed our fifth year of a water monitoring project in Story County. Updated through December.

Bear Creek was mostly open water when we tested in December.

# 2024-03-28 Started over with 2024 data
# Import csv file provided by City of Ames
# Skip unneeded columns for tidy format
library(tidyverse)
library(readr)
library(lubridate)
ameslab2024 <- read_csv("data/ameslab2024.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
ameslab2024 <- rename(ameslab2024, site = Description)
View(ameslab2024)

# Tidy the data, so each analyte is in a column
ames_tidy<- ameslab2024 %>%
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

Story County was in drought when streams were sampled in October, March, February, and January. Spring was a little wetter than normal. This graph shows flow rates in the South Skunk River below Ames.

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.

Paddling and children’s play on the South Skunk River in Ames.

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. The standards apply from March 15-November 15 when recreation may be possible, and this is when wastewater treatment plants run disinfecting equipment.

E. coli levels are often higher after heavy rains due to fecal matter carried in runoff. On June 19, 14 out of 15 sites exceeded the secondary contact recreation standard.

On December 18, E. coli ranged from 30 MPN/100mL in East Indian Creek to over 3000 MPN/100mL in West Indian Creek. The water was too cold for recreation but data can indicate potential sources of contamination.

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_light() +
  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") +
   annotation_logticks(sides = "l")

Phosphorus

Phosphorus is an essential plant nutrient that contributes to algae blooms when it gets to the water. Phosphorus is usually the limiting factor for algae in lakes and reservoirs.

Algae growth in West Indian Creek.

Total phosphorus includes forms that are bound to sediment, so bank erosion and field erosion are likely sources following rain.

Effluent from wastewater treatment plants (WWTPs) can have a large influence on phosphorus concentrations when there is not much water in the stream and effluent is less diluted. A site on West Indian Creek downstream of the Nevada sewage treatment plant exceeded 3 mg/L in October, and measured 0.86 mg/L in December. With the exception of Ballard Creek (ownstream of the Huxley WWTP), the other sites had phosphorus levels below the detection limit (0.1 mg/L) in December.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `Total Phosphorus as P`, fill = Month), position = position_dodge(0.5), width = 0.5) +
    theme_light() +
  scale_y_continuous(breaks = c(seq(0,3.5, 0.5))) +
  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

Muddy water in Ballard 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. More sediment can be carried when flows are high.

When we tested on June 19 following heavy rain, TSS at eight sites exceed 100 mg/L. Ballard Creek had 550 mg/L of TSS. On December 18, all sites had TSS below 12 mg/L.

ggplot(data = ames_tidy) +
  geom_col(mapping = aes(x= US_DS_order, y = `Total Suspended Solids`, fill = Month), position = "dodge2") +
 # scale_y_log10() +
 #  annotation_logticks(sides = "l") +
  theme_light() +
    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 an essential plant nutrient, but contributes to the “dead zone” when it reaches 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.

Drainage tile outlet at Walnut Creek.

When we tested in May, nitrate at all sites exceeded the drinking water standard (10 mg/L) and exceeded 20 mg/L at 8 sites. These are the highest readings we have seen since we expanded our monitoring program in 2020. Nitrate levels have been low at most sites during the summer and early fall, but are now rising again.

On December 18, nitrate ranged from 9.6 mg/L at two sites to 15 mg/L in West Indian Creek. College Creek normally has the lowest nitrate levels but was not tested due to ice.

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_light() +
    scale_y_continuous(breaks = c(seq(0,30,2))) +
  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")