R/statusquo_catch.R

Defines functions statusquo_catch

statusquo_catch <- function(ABC.DATA,scenario) {
    
    if (scenario == 1 | scenario == 2 | scenario == 3) {
        FISH.DATA <- ABC.DATA
        FISH.DATA$ABCboth <- FISH.DATA$ABC.BSAI.202 + FISH.DATA$ABC.BS.201
        FISH.DATA$ABCboth2 <- pmin(FISH.DATA$ABCboth,1.5e6)
        FISH.DATA$ABCboth.UB.150 <- as.numeric(FISH.DATA$ABC.BS.201 + FISH.DATA$ABC.BSAI.202 >= 1.5e6)
        FISH.DATA$pollock.bs.UB <-  as.numeric(FISH.DATA$ABC.BS.201 > 1.2e6)
    }   else if (scenario == 1.1) {
        FISH.DATA <- log(ABC.DATA)
        FISH.DATA$ABCboth <- exp(FISH.DATA$ABC.BSAI.202) + exp(FISH.DATA$ABC.BS.201)
        FISH.DATA$ABCboth2 <- pmin(FISH.DATA$ABCboth,1.5e6)
        FISH.DATA$ABCboth.UB.150 <- as.numeric(exp(FISH.DATA$ABC.BS.201) + exp(FISH.DATA$ABC.BSAI.202) >= 1.5e6)
        FISH.DATA$pollock.bs.UB <-  as.numeric(exp(ABC.DATA$ABC.BS.201) > 1.2e6)
    } 
    
    # These are all the indicators required in the regressions (I honestly think some of them are no longer needed, so this could probably
    # do to be cleaned up a bit, but its not hurting anyone.)
    # 
    # 1 means active in scenarios (2018+), 0 means inactive.  So for example flatfish flex is active from 2018 onwards; the strict SSL closure (WAISSL) from 2011-2014 is not.
    
    FISH.DATA$flex <-  1  # introduction of flatfish flex
    FISH.DATA$A80 <-  1  # introduction of A80
    FISH.DATA$po10 <- 1
    FISH.DATA$pre97 <- 0
    FISH.DATA$is93 <- 0
    FISH.DATA$WAISSLadj <- 1
    FISH.DATA$solegone <-  1
    FISH.DATA$plaicegone <-  1
    FISH.DATA$kamsplit <-  1
    FISH.DATA$AFA <-  1
    FISH.DATA$pollockAIchange <-  1 
    FISH.DATA$A28 <- 1
    FISH.DATA$atkadisp <- 0
    FISH.DATA$SSL <-  1 # stellar sea lion closure
    FISH.DATA$WAISSL <- 0
    FISH.DATA$A80.ask.POP <- 1
    FISH.DATA$A82 <- 1

    
    if (scenario == 1) {
        TAC.BOTHBIND.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBIND_loglin_flatsur,FISH.DATA)
        
        CATCH.BOTHBIND.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBIND_loglin_flatsur,TAC.BOTHBIND.FLATSUR)
        
        TAC.BOTHBINDICATOR.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBINDICATOR_loglin_flatsur,FISH.DATA)
        
        CATCH.BOTHBINDICATOR.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBINDICATOR_loglin_flatsur,TAC.BOTHBINDICATOR.FLATSUR)
        
        TAC.BOTHBIND.NOFIRSTYEAR.SUR <- predict.tac.function(predictmethod = 1, model="SUR",fit=tac_BOTHBIND_NOFIRSTYEAR_loglin_sur,FISH.DATA)
        
        CATCH.BOTHBIND.NOFIRSTYEAR.SURSUR <- predict.catch.function(model="SUR",fit=catch_BOTHBIND_NOFIRSTYEAR_loglin_sur,TAC.BOTHBIND.NOFIRSTYEAR.SUR)
        
    } else if (scenario == 2) {
        #whitefish gets more TAC
        TAC.BOTHBIND.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBIND_loglin_flatsur,FISH.DATA)
        TAC.BOTHBIND.FLATSUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBIND.FLATSUR$ABC.BS.201 + TAC.BOTHBIND.FLATSUR$ABC.BSAI.202 >= 1.50e6*1.1)
        
        CATCH.BOTHBIND.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBIND_loglin_flatsur,TAC.BOTHBIND.FLATSUR)
        
        TAC.BOTHBINDICATOR.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBINDICATOR_loglin_flatsur,FISH.DATA)
        TAC.BOTHBINDICATOR.FLATSUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBINDICATOR.FLATSUR$ABC.BS.201 + TAC.BOTHBINDICATOR.FLATSUR$ABC.BSAI.202 >= 1.50e6*1.1)
        
        CATCH.BOTHBINDICATOR.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBINDICATOR_loglin_flatsur,TAC.BOTHBINDICATOR.FLATSUR)
        
        TAC.BOTHBIND.NOFIRSTYEAR.SUR <- predict.tac.function(predictmethod = 1, model="SUR",fit=tac_BOTHBIND_NOFIRSTYEAR_loglin_sur,FISH.DATA)
        TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABC.BS.201 + TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABC.BSAI.202 >= 1.50e6*1.1)
        
        CATCH.BOTHBIND.NOFIRSTYEAR.SURSUR <- predict.catch.function(model="SUR",fit=catch_BOTHBIND_NOFIRSTYEAR_loglin_sur,TAC.BOTHBIND.NOFIRSTYEAR.SUR)
      
    } else if (scenario == 3) {
        # flatfish gets more TAC
        TAC.BOTHBIND.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBIND_loglin_flatsur,FISH.DATA)
        TAC.BOTHBIND.FLATSUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBIND.FLATSUR$ABC.BS.201 + TAC.BOTHBIND.FLATSUR$ABC.BSAI.202 >= 1.50e6*0.9)
        
        CATCH.BOTHBIND.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBIND_loglin_flatsur,TAC.BOTHBIND.FLATSUR)
        
        TAC.BOTHBINDICATOR.FLATSUR <- predict.tac.function(predictmethod = 1, model="FLATSUR",fit=tac_BOTHBINDICATOR_loglin_flatsur,FISH.DATA)
        TAC.BOTHBINDICATOR.FLATSUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBINDICATOR.FLATSUR$ABC.BS.201 + TAC.BOTHBINDICATOR.FLATSUR$ABC.BSAI.202 >= 1.50e6*0.9)
        
        CATCH.BOTHBINDICATOR.FLATSUR <- predict.catch.function(model="FLATSUR",fit=catch_BOTHBINDICATOR_loglin_flatsur,TAC.BOTHBINDICATOR.FLATSUR)
        
        TAC.BOTHBIND.NOFIRSTYEAR.SUR <- predict.tac.function(predictmethod = 1, model="SUR",fit=tac_BOTHBIND_NOFIRSTYEAR_loglin_sur,FISH.DATA)
        TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABCboth.UB.150 <- as.numeric(TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABC.BS.201 + TAC.BOTHBIND.NOFIRSTYEAR.SUR$ABC.BSAI.202 >= 1.50e6*0.9)
        
        CATCH.BOTHBIND.NOFIRSTYEAR.SURSUR <- predict.catch.function(model="SUR",fit=catch_BOTHBIND_NOFIRSTYEAR_loglin_sur,TAC.BOTHBIND.NOFIRSTYEAR.SUR)
    }
    
    
    
    # create ensemble
    # 
    CATCH.PRED <- (CATCH.BOTHBIND.FLATSUR + CATCH.BOTHBINDICATOR.FLATSUR + CATCH.BOTHBIND.NOFIRSTYEAR.FLATSUR)/3



   output <- CATCH.PRED[c("CATCH.BS.141",
                           "CATCH.BS.204",
                           "CATCH.BS.103",
                           "CATCH.BS.102",
                           "CATCH.BS.147",
                           "CATCH.BS.303",
                           "CATCH.BS.60",
                           "CATCH.BS.100",
                           "CATCH.BS.310",
                           "CATCH.BS.202",
                           "CATCH.BS.106",
                           "CATCH.BS.301",
                           "CATCH.BS.201",
                           "CATCH.BS.104",
                           "CATCH.BS.307",
                           "CATCH.BS.203",
                           "CATCH.BS.400",
                           "CATCH.BS.65",
                           "CATCH.BS.326",
                           "CATCH.BS.90",
                           "CATCH.BS.50",
                           "CATCH.BS.140")]
    return (output)
}
amandafaigUW/ATTACH documentation built on Nov. 2, 2019, 1:46 p.m.