Central Valley Enhanced

Acoustic Tagging Project

logo





Butte Creek wild spring-run Chinook salmon

2017-2018 Season (PROVISIONAL DATA)



1. Project Status


Study is complete, all tags are no longer active. All times in Pacific Standard Time.

See tagging details below:
Release_week First_release_time Last_release_time Number_fish_released Release_location Release_rkm Mean_length Mean_weight
Week 1 2018-04-04 21:00:00 2018-04-06 21:00:00 56 SutterBypass Weir2 RST 249.54 99.7 11.3
Week 2 2018-04-17 21:00:00 2018-04-21 21:00:00 115 SutterBypass Weir2 RST 249.54 96.0 10.0
Week 3 2018-04-26 21:00:00 2018-04-27 21:00:00 51 SutterBypass Weir2 RST 249.54 86.4 6.9
Week 4 2018-05-01 21:00:00 2018-05-04 21:00:00 72 SutterBypass Weir2 RST 249.54 86.0 6.8
Week 5 2018-05-06 21:00:00 2018-05-09 21:00:00 27 SutterBypass Weir2 RST 249.54 83.9 6.1
Week 6 2018-05-15 20:00:00 2018-05-17 20:00:00 59 ButteCreek-ppdd-RST 330.84 83.5 6.9



2. Real-time Fish Detections


Sacramento real-time receivers deployed 2018-02-01, Georgiana_Slough and Sac_BlwGeorgiana receivers deployed 2018-04-16, data current as of 2025-04-22 08:00:00. All times in Pacific Standard Time.


setwd(paste(file.path(Sys.getenv("USERPROFILE"),"Desktop",fsep="\\"), "\\Real-time data massaging\\products", sep = ""))

library(cder)
library(reshape2)

detects_study <- read.csv("C:/Users/field/Desktop/Real-time data massaging/products/Study_detection_files/detects_SB-Spring-2018.csv", stringsAsFactors = F)
detects_study$DateTime_PST <- as.POSIXct(detects_study$DateTime_PST, format = "%Y-%m-%d %H:%M:%S", "Etc/GMT+8")

tagcodes <- read.csv("qry_HexCodes.txt", stringsAsFactors = F)
tagcodes$RelDT <- as.POSIXct(tagcodes$RelDT, format = "%m/%d/%Y %H:%M:%S %p", tz = "Etc/GMT+8")

tagcodes$Release_week <- NA
tagcodes[tagcodes$RelDT < as.POSIXct("2018-04-10"), "Release_week"] <- "Week 1"
tagcodes[tagcodes$RelDT > as.POSIXct("2018-04-10") & tagcodes$RelDT < as.POSIXct("2018-04-22"), "Release_week"] <- "Week 2"
tagcodes[tagcodes$RelDT > as.POSIXct("2018-04-22") & tagcodes$RelDT < as.POSIXct("2018-04-28"), "Release_week"] <- "Week 3"
tagcodes[tagcodes$RelDT > as.POSIXct("2018-04-28") & tagcodes$RelDT < as.POSIXct("2018-05-05"), "Release_week"] <- "Week 4"
tagcodes[tagcodes$RelDT > as.POSIXct("2018-05-05") & tagcodes$RelDT < as.POSIXct("2018-05-10"), "Release_week"] <- "Week 5"
tagcodes[tagcodes$RelDT > as.POSIXct("2018-05-10"), "Release_week"] <- "Week 6"

#wlk_flow <- read.csv("wlk.csv")

if (nrow(detects_study) == 0){
  "No detections yet"
} else {
  
  detects_study <- detects_study[detects_study$general_location == "TowerBridge",]
  detects_study <- merge(detects_study,aggregate(list(first_detect = detects_study$DateTime_PST), by = list(TagCode= detects_study$TagCode), FUN = min))
  
  detects_study$Day <- as.Date(detects_study$first_detect, "Etc/GMT+8")
  
  detects_study <- merge(detects_study, tagcodes[,c("TagID_Hex", "RelDT", "StudyID", "Release_week", "tag_life")], by.x = "TagCode", by.y = "TagID_Hex")
  
  starttime <- as.Date(min(detects_study$RelDT), "Etc/GMT+8")
  endtime <- min(as.Date(c(Sys.time())), max(as.Date(detects_study$RelDT)+detects_study$tag_life))
  

  wlk_flow <- cdec_query("WLK", "20", "H", starttime, endtime+1)

  wlk_flow$datetime <- as.Date(wlk_flow$DateTime)
  wlk_flow_day <- aggregate(list(parameter_value = wlk_flow$Value),
                            by = list(Day = wlk_flow$datetime),
                            FUN = mean, na.rm = T)


  daterange <- data.frame(Day = seq.Date(from = starttime, to = endtime, by = "day"))

  rels <- unique(tagcodes[tagcodes$StudyID == unique(detects_study$StudyID), "Release_week"])
  rel_num <- length(rels)
  rels_no_detects <- as.character(rels[!(rels %in% unique(detects_study$Release_week))])

  tagcount <- aggregate(list(unique_tags = detects_study$TagCode), by = list(Day = detects_study$Day, Release_week = detects_study$Release_week ), FUN = function(x){length(unique(x))})
  tagcount1 <- reshape2::dcast(tagcount, Day ~ Release_week)

  daterange1 <- merge(daterange, tagcount1, all.x=T)

  if(length(rels_no_detects)>0){
    for(i in rels_no_detects){
      daterange1 <- cbind(daterange1, x=NA)
      names(daterange1)[names(daterange1) == 'x'] <- paste(i)
    }
  }

  daterange2 <- merge(daterange1, wlk_flow_day, by = "Day", all.x = T)

  rownames(daterange2) <- daterange2$Day
  daterange2$Day <- NULL

  par(mar=c(6, 5, 2, 5) + 0.1)
  barp <- barplot(t(daterange2[,1:ncol(daterange2)-1]), plot = FALSE, beside = T)
  barplot(t(daterange2[,1:ncol(daterange2)-1]), beside = T, col=rainbow(rel_num),
          xlab = "", ylab = "Number of fish arrivals per day",
          ylim = c(0,max(daterange2[,1:ncol(daterange2)-1], na.rm = T)*1.2),
          las = 2, xlim=c(0,max(barp)+1), cex.lab = 1.5, yaxt = "n", xaxt = "n", border=NA)#,
  #legend.text = colnames(daterange2[,1:ncol(daterange2)-1]),
  #args.legend = list(x ='topright', bty='n', inset=c(-0.2,0)), title = "Release Group")
  legend(x ='topleft', legend = colnames(daterange2[,1:ncol(daterange2)-1]), fill= rainbow(rel_num), horiz = T, title = "Release Week")
  ybreaks <- if(max(daterange2[,1:ncol(daterange2)-1], na.rm = T) < 4) {max(daterange2[,1:ncol(daterange2)-1], na.rm = T)} else {5}
  xbreaks <- if(ncol(barp) > 10) {seq(1, ncol(barp), 2)} else {1:ncol(barp)}
  barpmeans <- colMeans(barp)
  axis(1, at = barpmeans[xbreaks], labels = rownames(daterange2[xbreaks,]), las = 2)
  axis(2, at = pretty(0:max(daterange2[,1:ncol(daterange2)-1], na.rm = T), ybreaks))

  par(new=T)

  plot(x = barpmeans, daterange2$parameter_value, yaxt = "n", xaxt = "n", ylab = "", xlab = "", col = "blue", type = "l", lwd=2, xlim=c(0,max(barp)+1), ylim = c(min(daterange2$parameter_value, na.rm = T), max(daterange2$parameter_value, na.rm=T)*1.1))#, ylab = "Returning adults", xlab= "Outmigration year", yaxt="n", col="red", pch=20)
  axis(side = 4)#, labels = c(2000:2016), at = c(2000:2016))
  mtext("Flow (cfs) at Wilkins Slough", side=4, line=3, cex=1.5, col="blue")
}
2.1 Detections at Tower Bridge (downtown Sacramento) versus Sacramento River flows at Wilkins Slough

2.1 Detections at Tower Bridge (downtown Sacramento) versus Sacramento River flows at Wilkins Slough




3. Survival Probability



3.1 Minimum survival to Tower Bridge (using CJS survival model)
Release Week Survival (%) SE 95% lower C.I. 95% upper C.I. Detection efficiency (%)
ALL 27.2 2.4 22.8 32.1 92.9
Week 1 18.7 5.4 10.3 31.5 NA
Week 2 70.2 4.7 60.3 78.5 NA
Week 3 11.9 4.6 5.4 24.1 NA
Week 4 8.5 3.3 3.9 17.8 NA
Week 5 0.0 0.0 0.0 0.0 NA
Week 6 0.0 0.0 0.0 0.0 NA



4. Detections statistics



4.1 Detections for all release weeks combined
general_location First_arrival Mean_arrival Fish_count Percent_arrived rkm
TowerBridge 2018-04-10 15:36:58 2018-04-25 23:09:10 96 25.26 172.000
I80-50_Br 2018-04-10 08:05:10 2018-05-01 17:38:25 56 14.74 170.748
Georgiana_Slough1 2018-04-11 00:35:22 2018-04-22 02:49:54 16 4.21 119.208
Sac_BlwGeorgiana 2018-04-10 08:34:25 2018-04-25 03:56:59 61 16.05 119.058
Benicia_east 2018-04-24 22:43:11 2018-04-28 00:14:25 31 8.16 52.240
Benicia_west 2018-04-25 19:57:29 2018-04-28 17:46:53 22 5.79 52.040
4.2 Detections for Week 1 release groups
general_location First_arrival Mean_arrival Fish_count Percent_arrived rkm
TowerBridge 2018-04-10 15:36:58 2018-04-11 03:16:27 7 12.50 172.000
I80-50_Br 2018-04-10 08:05:10 2018-04-11 01:30:20 4 7.14 170.748
Georgiana_Slough1 2018-04-11 00:35:22 2018-04-11 00:59:07 2 3.57 119.208
Sac_BlwGeorgiana 2018-04-10 08:34:25 2018-04-14 07:02:12 6 10.71 119.058
4.3 Detections for Week 2 release groups
general_location First_arrival Mean_arrival Fish_count Percent_arrived rkm
TowerBridge 2018-04-19 16:43:58 2018-04-22 16:31:36 77 66.96 172.000
I80-50_Br 2018-04-19 10:26:30 2018-04-23 00:02:48 43 37.39 170.748
Georgiana_Slough1 2018-04-20 17:17:14 2018-04-22 11:59:56 14 12.17 119.208
Sac_BlwGeorgiana 2018-04-20 17:36:37 2018-04-24 22:12:32 51 44.35 119.058
Benicia_east 2018-04-24 22:43:11 2018-04-27 23:44:03 30 26.09 52.240
Benicia_west 2018-04-25 19:57:29 2018-04-28 15:10:24 21 18.26 52.040
4.4 Detections for Week 3 release groups
general_location First_arrival Mean_arrival Fish_count Percent_arrived rkm
TowerBridge 2018-04-28 21:43:30 2018-05-01 11:04:13 6 11.76 172.000
I80-50_Br 2018-04-28 15:17:44 2018-04-30 21:56:55 5 9.80 170.748
Sac_BlwGeorgiana 2018-05-03 13:20:08 2018-05-03 13:22:34 1 1.96 119.058
Benicia_east 2018-05-06 10:54:15 2018-05-06 10:54:51 1 1.96 52.240
Benicia_west 2018-05-06 10:56:01 2018-05-06 10:57:12 1 1.96 52.040
4.5 Detections for Week 4 release groups
general_location First_arrival Mean_arrival Fish_count Percent_arrived rkm
TowerBridge 2018-05-05 21:36:43 2018-05-06 07:14:42 6 8.33 172.000
I80-50_Br 2018-05-05 16:08:40 2018-05-07 01:03:36 4 5.56 170.748
Sac_BlwGeorgiana 2018-05-07 01:27:15 2018-05-07 08:18:01 3 4.17 119.058

No detections for Week 5 release group yet

No detections for Week 6 release group yet