R/run_one_rep.R

Defines functions run_one_rep

Documented in run_one_rep

#' Run one replicate of the model
#'
#' Run one replicate of the model; a replicate is a water_year/chinook_run combination
#'
#' @md
#' @param water_year_string    Water year (1997-2011) as a string
#' @param chinook_run          Run timing classification: Fall, LateFall, Winter, Spring
#' @param ocean_year_type      Type of ocean survival relationship used for that year: length or intercept
#'
#' @export
#'
#'

## probably would have take a different approach to storing output data
## if I was planning to incorporate Delta rearing from beginning
## approach that I'm using in Yolo section is very prone to typos
run_one_rep <- function(water_year_string, chinook_run,
                        ocean_year_type = c("length", "intercept")){

  knights_dates <- wy_dates[[water_year_string]]
  knights_dates_index <- 1:length(knights_dates)
  knights_abun <- initial_cohort_abundance(chinook_run, water_year_string)
  knights_fl <- initial_cohort_fork_length(chinook_run, water_year_string, knights_dates_index)
  knights_ww <- length_weight(knights_fl)

  # no travel time, mortality, or growth from Knights Landing to Fremont Weir
  entrain_list <- entrainment(water_year_string, knights_dates_index, knights_abun)

  # Sacramento route
  sac <- data.frame(KnightsDate = knights_dates,
                    KnightsDateIndex = knights_dates_index,
                    KnightsAbun = knights_abun,
                    KnightsFL = knights_fl,
                    KnightsWW = knights_ww,
                    stringsAsFactors = FALSE)

  sac[["FremontAbun"]] <- entrain_list[["Sac"]]
  sac <- sac[sac[["FremontAbun"]] > 0,]

  if (nrow(sac) > 0){

    # Sacramento River passage
    sac_passage_list <- passage(water_year_string,
                                sac[["KnightsDateIndex"]],
                                sac[["FremontAbun"]],
                                sac[["KnightsFL"]],
                                route = "Sac")

    sac[["DeltaDateIndex"]] <- sac[["KnightsDateIndex"]] + sac_passage_list[["PassageTime"]]
    sac[["DeltaAbun"]] <- sac_passage_list[["Abundance"]]

    # Delta rearing

    sac[["DeltaRearingTime"]] <- rearing_time_delta(water_year_string,
                                                    sac[["DeltaDateIndex"]],
                                                    sac_passage_list[["PassageTime"]],
                                                    sac[["KnightsFL"]])

    sac[["ChippsAbun"]] <- rearing_survival(water_year_string,
                                            sac[["DeltaDateIndex"]],
                                            sac[["DeltaAbun"]],
                                            sac[["DeltaRearingTime"]],
                                            location = "Delta")

    sac[["ChippsFL"]] <- weight_length(rearing_growth(water_year_string,
                                                      sac[["DeltaDateIndex"]],
                                                      sac[["DeltaRearingTime"]],
                                                      "Delta",
                                                      sac[["KnightsWW"]]))

    # Ocean
    sac[["AdultReturns"]] <- ocean_survival(sac[["ChippsAbun"]],
                                            sac[["ChippsFL"]],
                                            ocean_year_type)
  }else{
    sac = data.frame()
  }

  # Yolo route
  yolo <- data.frame(KnightsDate = knights_dates,
                     KnightsDateIndex = knights_dates_index,
                     KnightsAbun = knights_abun,
                     KnightsFL = knights_fl,
                     KnightsWW = knights_ww,
                     stringsAsFactors = FALSE)

  yolo[["FremontAbun"]] <- entrain_list[["Yolo"]]
  yolo <- yolo[yolo[["FremontAbun"]] > 0,]

  if (nrow(yolo) > 0){

    # Yolo Bypass rearing

    # YoloRearingAbun is proportion of cohorts that "decide" to rear on the Yolo Bypass multipled by abundance
    yolo[["YoloRearingAbun"]] <- rearing_abundance(yolo[["FremontAbun"]], yolo[["KnightsFL"]])
    yolo[["YoloRearingTime"]] <- rearing_time_yolo(water_year_string, yolo[["KnightsDateIndex"]])

    yolo[["PostYoloRearingAbun"]]  <- rearing_survival(water_year_string,
                                                       yolo[["KnightsDateIndex"]],
                                                       yolo[["YoloRearingAbun"]],
                                                       yolo[["YoloRearingTime"]],
                                                       location = "Yolo")

    yolo[["PostYoloRearingFL"]] <- weight_length(rearing_growth(water_year_string,
                                                                yolo[["KnightsDateIndex"]],
                                                                yolo[["YoloRearingTime"]],
                                                                "Yolo",
                                                                yolo[["KnightsWW"]]))

    # Yolo Bypass passage

    # yolo passage for rearing individuals
    yolo_passage_rear <- passage(water_year_string,
                                 yolo[["KnightsDateIndex"]] + yolo[["YoloRearingTime"]],
                                 yolo[["PostYoloRearingAbun"]],
                                 yolo[["PostYoloRearingFL"]],
                                 route = "Yolo")

    # yolo passage for non-rearing individuals
    yolo_passage_no_rear <- passage(water_year_string,
                                    yolo[["KnightsDateIndex"]],
                                    yolo[["FremontAbun"]] - yolo[["YoloRearingAbun"]],
                                    yolo[["KnightsFL"]],
                                    route = "Yolo")

    yolo[["DeltaAbun_YoloRear"]] <- yolo_passage_rear[["Abundance"]]
    yolo[["DeltaAbun_YoloNoRear"]] <- yolo_passage_no_rear[["Abundance"]]

    yolo[["DeltaDateIndex_YoloRear"]] <- yolo[["KnightsDateIndex"]] + yolo[["YoloRearingTime"]] + yolo_passage_rear[["PassageTime"]]
    yolo[["DeltaDateIndex_YoloNoRear"]] <- yolo[["KnightsDateIndex"]] + yolo_passage_no_rear[["PassageTime"]]

    # Delta rearing
    yolo[["DeltaRearingTime_YoloRear"]] <- rearing_time_delta(water_year_string,
                                                              yolo[["DeltaDateIndex_YoloRear"]],
                                                              yolo_passage_rear[["PassageTime"]],
                                                              yolo[["PostYoloRearingFL"]])
    yolo[["DeltaRearingTime_YoloNoRear"]] <- rearing_time_delta(water_year_string,
                                                                yolo[["DeltaDateIndex_YoloNoRear"]],
                                                                yolo_passage_no_rear[["PassageTime"]],
                                                                yolo[["KnightsFL"]])

    yolo[["ChippsAbun_YoloRear"]] <- rearing_survival(water_year_string,
                                                      yolo[["DeltaDateIndex_YoloRear"]],
                                                      yolo[["DeltaAbun_YoloRear"]],
                                                      yolo[["DeltaRearingTime_YoloRear"]],
                                                      location = "Delta")
    yolo[["ChippsAbun_YoloNoRear"]] <- rearing_survival(water_year_string,
                                                        yolo[["DeltaDateIndex_YoloNoRear"]],
                                                        yolo[["DeltaAbun_YoloNoRear"]],
                                                        yolo[["DeltaRearingTime_YoloNoRear"]],
                                                        location = "Delta")

    yolo[["ChippsFL_YoloRear"]] <- weight_length(rearing_growth(water_year_string,
                                                                yolo[["DeltaDateIndex_YoloRear"]],
                                                                yolo[["DeltaRearingTime_YoloRear"]],
                                                                "Delta",
                                                                length_weight(yolo[["PostYoloRearingFL"]])))
    yolo[["ChippsFL_YoloNoRear"]] <- weight_length(rearing_growth(water_year_string,
                                                                  yolo[["DeltaDateIndex_YoloNoRear"]],
                                                                  yolo[["DeltaRearingTime_YoloNoRear"]],
                                                                  "Delta",
                                                                  yolo[["KnightsWW"]]))

    # Ocean

    yolo[["AdultReturns_YoloRear"]] <- ocean_survival(yolo[["ChippsAbun_YoloRear"]],
                                                      yolo[["ChippsFL_YoloRear"]],
                                                      ocean_year_type)
    yolo[["AdultReturns_YoloNoRear"]] <- ocean_survival(yolo[["ChippsAbun_YoloNoRear"]],
                                                        yolo[["ChippsFL_YoloNoRear"]],
                                                        ocean_year_type)
  }else{
    yolo = data.frame()
  }

  return(list("Sac" = sac, "Yolo" = yolo))
}
fishsciences/YoloBypassSBM documentation built on July 26, 2020, 12:38 p.m.