Website last updated 2020-10-07 13:46:19 by Benjamin Meyer ()


Juvenile Chinook salmon.


Introduction

This document will summarize and plot observed growth of juvenile Chinook salmon in the Chena River. Data is primarily from summers 2019-2020, with some comparisons to data from summers 2008 2009 (Benson et al.), and 2015 (Huntsman and Falke et al).


Length-Weight relationships

# Plot 2019 and 2020 L-W relationships (overall)
fish %>%
  filter(!is.na(FL_mm),
         !is.na(Wt_g)) %>%
  ggplot(aes(x = FL_mm, y = Wt_g)) +
  geom_point() +
  facet_grid(. ~ year) +
  theme(strip.text = element_text(face="bold", size=14)) +
  xlab("Fork Length (mm)") +
  ylab("Weight (g)") +
  ggtitle("Length-Weight Relationships") 

We examined suspected outliers based on this plot and corrected a few data entry errors. We did not change apparent outliers when they matched the paper datasheet


Size data summary tables

## 2019
growth.summary.2019 <- fish %>%
  filter(Species == "Chinook" & year(Date) == 2019) %>%
  group_by(Date, General.Area) %>%
  summarize(nFL = sum(!is.na(FL_mm)),
            meanFL = mean(FL_mm, na.rm = T),
            sdFL = sd(FL_mm, na.rm = T),
            nWt = sum(!is.na(Wt_g)),
            meanWt = mean(Wt_g, na.rm = T),
            sdWt = sd(Wt_g, na.rm = T)
            ) %>%
  mutate(seFL = sdFL / sqrt(nFL),
         seWt = sdWt / sqrt(nWt)) %>%
  filter(nWt > 1) %>%
  select(Date,General.Area,nFL,meanFL,sdFL,seFL,nWt,meanWt,sdWt,seWt)

# save table to local directory
#write_csv(growth.summary.2019, "2019/2019 Results/growth.summary.2019.csv")

# consider making it a searchable table object

Growth Summary 2019 Table

growth.summary.2019


## 2020
growth.summary.2020 <- fish %>%
  filter(Species == "Chinook" & year(Date) == 2020) %>%
  group_by(Date, General.Area) %>%
  summarize(nFL = sum(!is.na(FL_mm)),
            meanFL = mean(FL_mm, na.rm = T),
            sdFL = sd(FL_mm, na.rm = T),
            nWt = sum(!is.na(Wt_g)),
            meanWt = mean(Wt_g, na.rm = T),
            sdWt = sd(Wt_g, na.rm = T)
  ) %>%
  mutate(seFL = sdFL / sqrt(nFL),
         seWt = sdWt / sqrt(nWt)) %>%
  filter(nWt > 1) %>%
  select(Date,General.Area,nFL,meanFL,sdFL,seFL,nWt,meanWt,sdWt,seWt)

# write_csv(growth.summary.2020, "2020/2020 Results/growth.summary.2020.csv")

Growth Summary 2020 Table

growth.summary.2020




Growth Plots


2019 Weight and Length by Sample Event

# Plot the 2019 growth trajectories in terms of fork length and weight
growthFL.plot.2019 <- ggplot(data = growth.summary.2019, aes(x = Date, y = meanFL, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanFL - seFL, ymax = meanFL + seFL), size = 0.5) +
  scale_y_continuous(name = "Fork length (mm)") +
  ggtitle( "2019 Fork Lengths")
growthFL.plot.2019

growthWt.plot.2019 <- ggplot(data = growth.summary.2019, aes(x = Date, y = meanWt, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanWt - seWt, ymax = meanWt + seWt), size = 0.5) +
  scale_y_continuous(name = "Weight (g)") +
  ggtitle( "2019 Weights")


2020 Weight and Length by Sample Event

# Plot the 2020 growth trajectories in terms of fork length and weight
growthFL.plot.2020 <- ggplot(data = growth.summary.2020, aes(x = Date, y = meanFL, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanFL - seFL, ymax = meanFL + seFL), size = 0.5) +
  scale_y_continuous(name = "Fork length (mm)")+
  ggtitle( "2020 Fork Lengths")
growthFL.plot.2020

growthWt.plot.2020 <- ggplot(data = growth.summary.2020, aes(x = Date, y = meanWt, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanWt - seWt, ymax = meanWt + seWt), size = 0.5) +
  scale_y_continuous(name = "Weight (g)") +
  ggtitle( "2020 Weights")
growthWt.plot.2020


2019 vs. 2020 Size Data

# compare plots of 2019 to 2020 data
growth.summary.all <- bind_rows(growth.summary.2019,growth.summary.2020) %>% 
  mutate(year = year(Date),
         yday = yday(Date)) 
  # create column with general date format
  ## not sure how to do this part!!  using day of year for x-axes instead for now
  #mutate(general_date = as.Date(Date, "%Y-%m"))
           
# fork length
growthFL.plot.all <- ggplot(data = growth.summary.all, aes(x = yday, y = meanFL, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanFL - seFL, ymax = meanFL + seFL), size = 0.5) +
  facet_grid(. ~ year) +
  scale_y_continuous(name = "Fork length (mm)") +
   theme(strip.text = element_text(face="bold", size=14)) +
  ggtitle("2019-2020 Juvenile Chinook Fork Lengths")
  #scale_x_date()
growthFL.plot.all

# weight
growthFL.plot.all.wt <- ggplot(data = growth.summary.all, aes(x = yday, y = meanWt, color = General.Area)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanWt - seWt, ymax = meanWt + seWt), size = 0.5) +
  facet_grid(. ~ year) +
  scale_y_continuous(name = "Weight (g)") +
   theme(strip.text = element_text(face="bold", size=14)) +
  ggtitle("2019-2020 Juvenile Chinook Fork Weights")
  #scale_x_date()
growthFL.plot.all.wt

# Historical data
## Clean up the historic growth data---------
growth.summary.2008.2009 <- growth.2008.2009 %>%
  mutate(Date = ymd(Date),
         nFL = count,
         nWt = ifelse(is.na(meanWt), NA, count),
         General.Area = "Various Mainstem") %>%
  select(Date,General.Area,nFL,meanFL,sdFL,seFL,nWt,meanWt,sdWt,seWt)

growth.summary.2015 <- growth.2015 %>%
  filter(Habitat == "Main stem") %>%
  mutate(nFL = Count,
         nWt = Count,
         seFL = sdFL / sqrt(nFL),
         seWt = sdWt / sqrt(nWt),
         Date = ymd(DateEstimated),
         General.Area = "Various Mainstem") %>%
  select(Date,General.Area,nFL,meanFL,sdFL,seFL,nWt,meanWt,sdWt,seWt)

growth.summary.all <- bind_rows(growth.summary.2008.2009, growth.summary.2015, growth.summary.2019,growth.summary.2020) %>%
  mutate(Year = factor(year(Date)),
         # Calculate day of year (Julian date)
         DOY = yday(Date))


Historical juvenile Chinook size data

# Plot growth curves from all 5 years
# Plot the 2019 growth trajectories in terms of fork length and weight
growthFL.plot.all <- ggplot(data = growth.summary.all, aes(x = DOY, y = meanFL, color = Year)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanFL - seFL, ymax = meanFL + seFL), size = 0.5) +
 # scale_x_date(name = "Date") +
  scale_y_continuous(name = "Fork length (mm)") +
  facet_grid(. ~ General.Area) +
  theme(strip.text = element_text(face="bold", size=14)) +
  ggtitle("Chena River juvenile Chinook salmon size data 2009 - 2020")
growthFL.plot.all

#ggsave("2020/2020 Results/Growth FL_all years.pdf", height = 6, width = 8)
#ggsave("2019 Results/Growth FL_all years.pdf", height = 6, width = 6)


Note that end-of-summer size in 2009 is larger than most other years. For example, in 2019 final weight was 0.385 g smaller compared to 2009.


growthWt.plot.all <- ggplot(data = growth.summary.all, aes(x = DOY, y = meanWt, color = Year)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanWt - seWt, ymax = meanWt + seWt), size = 0.5) +
 # scale_x_date(name = "Date") +
  scale_y_continuous(name = "Weight (g)", breaks = c(0:6)) +
  ggtitle("Chena River Juvenile Chinook salmon weights 2009 - 2020")
growthWt.plot.all

#ggsave("2019/2019 Results/Growth Wt_all years.pdf", height = 6, width = 6)


# Plot weight curves from 2009, 2015, and 2019 only
growth.summary.3yr <- growth.summary.all %>%
  filter(Year %in% c("2009","2015","2019"))

growthWt.plot.3yr <- ggplot(data = growth.summary.3yr, aes(x = DOY, y = meanWt, color = Year)) +
  geom_point() +
  geom_line() +
  geom_errorbar(aes(ymin = meanWt - seWt, ymax = meanWt + seWt), size = 0.5) +
  #scale_x_date(name = "Date") +
  scale_y_continuous(name = "Weight (g)", breaks = c(0:6)) +
  ggtitle("Chena River Juvenile Chinook salmon weights 2009 - 2019")
growthWt.plot.3yr

ggsave("2019/2019 Results/Growth Wt_3 years.pdf", height = 6, width = 6)

Data source

Files used in this analysis stored in Dropbox repository; ~/Dropbox/Chena_Data_2020/Chena Drift Project Data_SFR/UAF Chena Drift Data/Fish.