knitr::opts_chunk$set(echo=FALSE, warning = FALSE, 
                                            message = FALSE, cache = FALSE,
                                            progress = TRUE, verbose = FALSE, comment = F
                                            , error = FALSE, dev = 'png', dpi = 200)

options(knitr.kable.NA = '')

Background

Exploration of discard estimates from calendar year module

Steps

  1. pull all merged trips from CAMS_OBS_CATCH

  2. Set stratification variables for all trips

# FULL Stratification variables

stratvars = c('SPECIES_STOCK'
              ,'CAMS_GEAR_GROUP'
                            , 'MESHGROUP'
                          , 'TRIPCATEGORY'
                          , 'ACCESSAREA')
- SPECIES_STOCK is taken from CAMS support table `MAPS.CAMS_STATAREA_STOCK`
- CAMS_GEAR_GROUP is derived from a support table (`MAPS.CAMS_GEARCODE_STRATA`)
- MESHGROUP is hardcoded for all trips according to decisions made by the mesh subgroup (see summary when available)
  1. Run discaRd
    • there are sub-passes for year t and year t-1
# Assumed Stratification variables

stratvars = c('SPECIES_STOCK'
              , 'CAMS_GEAR_GROUP',
              ,'MESHGROUP')
  1. The discaRd functions allow for an assumed rate to be calculated. This assumed rate is relative to the stratification used in the functions. Here, the stratification is coarsened to 'SPECIES_STOCK', 'CAMS_GEAR_GROUP' and 'MESHGROUP'.

  2. A transition rate is calculated between year t and year t-1. This rate determines how much, if any, information is used from previous years.

  3. A broad stock/gear stratification is applied to subtrips that do not meet the requirements for the full or assumed stratification. This broad stock/gear stratification utilizes observed coverage from both the focal year and the previous year as it includes gear types with low observer coverage.

  4. Rates and DISCARD_SOURCE (in parentheses) are assigned for each trip according to:

  5. (I) in season rate; >= 5 trips in Full Stratification
  6. (T) Transition in season rate; < 5 trips in Full Stratification, year t, AND >= 5 trips in year t-1
  7. (GM) Gear/mesh This is the rate when there were <5 trips in season and <5 in previous season.
  8. (G) Broad stock/gear rate <5 trips in season and <5 trips in previous season
  9. (N) No coverage in focal season and previous season; discard rate is not possible to estimate.
  10. (O) Observed values used from observed rate trips; discard rate is NOT USED.

  11. CV calculations are available for (I), (T), (GM) and (G).

  12. Discard pounds per trip are calculated according to

    mutate(DISC_MORT_RATIO = coalesce(DISC_MORT_RATIO, 1)) %>%
    mutate(DISCARD = case_when(!is.na(LINK1) ~ DISC_MORT_RATIO*OBS_DISCARD
                                                         , is.na(LINK1) ~ DISC_MORT_RATIO*COAL_RATE*LIVE_POUNDS)

            # COAL_RATE is the final discard rate used. It is 'coalesced' from the (I), (T), (GM) and (G) rates      

By assigning SPECIES_STOCK as a stratification variable, the computation time is reduced. Each subtrip may only occur in a single statistical area so it should never cross stock boundaries.

Once the full table (CAMS_OBS_CATCH) is loaded, each species takes ~X seconds to process on the server.

Output tables are produced for each species. These can easily be recombined. Preliminary species tables have been shared on MAPS and CAMS_GARFO.

    MAPS.CAMS_DISCARD_BLACKSEA_BASS_2019
    CAMS_GARFO.CAMS_DISCARD_BLACKSEA_BASS_2019

    MAPS.CAMS_DISCARD_BLUEFISH_2019
    CAMS_GARFO.CAMS_DISCARD_BLUEFISH_2019

    MAPS.CAMS_DISCARD_BUTTERFISH_2019
    CAMS_GARFO.CAMS_DISCARD_BUTTERFISH_2019

    MAPS.CAMS_DISCARD_SQUIDATLLONG_FIN_2019
    CAMS_GARFO.CAMS_DISCARD_SQUIDATLLONG_FIN_2019

    MAPS.CAMS_DISCARD_SQUIDSHORT_FIN_2019
    CAMS_GARFO.CAMS_DISCARD_SQUIDSHORT_FIN_2019

    MAPS.CAMS_DISCARD_MACKERELATLANTIC_2019
    CAMS_GARFO.CAMS_DISCARD_MACKERELATLANTIC_2019

        MAPS.CAMS_DISCARD_MACKERELCHUB_2019
    CAMS_GARFO.CAMS_DISCARD_MACKERELCHUB_2019

    MAPS.CAMS_DISCARD_FLUKE_2019
    CAMS_GARFO.CAMS_DISCARD_FLUKE_2019

    MAPS.CAMS_DISCARD_SCUP_2019
    CAMS_GARFO.CAMS_DISCARD_SCUP_2019

    MAPS.CAMS_DISCARD_SURFCLAM_2019
    CAMS_GARFO.CAMS_DISCARD_SURFCLAM_2019

    MAPS.CAMS_DISCARD_OCEANQUAHOG_2019
    CAMS_GARFO.CAMS_DISCARD_OCEANQUAHOG_2019

    MAPS.CAMS_DISCARD_ALEWIFE_2019
    CAMS_GARFO.CAMS_DISCARD_ALEWIFE_2019

    MAPS.CAMS_DISCARD_AMSHAD_2019
    CAMS_GARFO.CAMS_DISCARD_AMSHAD_2019

Diagnostic Plots/Tables

# library(odbc)
# library(dplyr, warn.conflicts = FALSE)
# # library(dbplyr)
library(ggplot2)
# # library(config)
# library(stringr)
# library(discaRd)
# library(knitr)
# library(kableExtra)
devtools::load_all()
options(scipen = 999)

discard <- read.csv("~/discaRd/CAMS/MODULES/CALENDAR/January_comparisons.csv")

'%ni%' <- Negate("%in%")

discard %>% filter(Source == 'Federal') %>%  pivot_wider(id_cols = !Source, names_from = Method,values_from =  c(Discards, kall)) %>% mutate(diff = Discards_CAMS-Discards_QM, perc_diff = 100 * (Discards_QM - Discards_CAMS)/(Discards_CAMS)) %>% dplyr::select(Species, 
Discards_CAMS, Discards_QM, diff, perc_diff) %>%dplyr::mutate(across(where(is.numeric), round, 2))%>% 
        DT::datatable(caption = 'Comparison of total federal discards in FY 2019 by species and source')
discard <- read.csv("~/discaRd/CAMS/MODULES/CALENDAR/January_comparisons.csv")

'%ni%' <- Negate("%in%")

discard %>% filter(Source %in% c("State")) %>% dplyr::select(Species, Discards) %>%
    DT::datatable(caption = 'Total discards by species for state trips')

```{bring in species tables}

dw_maps <- config::get(config = "maps", file = "~/config_group.yml")

Connect to database - move this to config file in the future - quick addition for server

connectString <- paste( "(DESCRIPTION=", "(ADDRESS=(PROTOCOL=tcp)(HOST=", dw_maps$host, ")(PORT=", dw_maps$port, "))", "(CONNECT_DATA=(SERVICE_NAME=",dw_maps$svc, ")))", sep = "" )

Connect to oracle each loop in case of timeouts

bcon <- ROracle::dbConnect(
  drv = ROracle::Oracle(),
  username = dw_maps$uid,
  password = dw_maps$pwd,
  dbname = connectString
)

db_blackseabass = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BLACKSEA_BASS_2019")) %>% collect

db_blackseabass$SPECIES <- "BLACKSEABASS"

db_bluefish = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BLUEFISH_2019")) %>% collect

db_bluefish$SPECIES <- "BLUEFISH"

db_butterfish = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BUTTERFISH_2019")) %>% collect

db_butterfish$SPECIES <- "BUTTERFISH"

db_longfinsquid = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SQUIDATLLONG_FIN_2019")) %>% collect

db_longfinsquid$SPECIES <- "LONGFINSQUID"

db_shortfinsquid = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SQUIDSHORT_FIN_2019")) %>% collect

db_shortfinsquid$SPECIES <- "SHORTFINSQUID"

db_mackerel = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_MACKERELATLANTIC_2019")) %>% collect

db_mackerel$SPECIES <- "MACKEREL"

db_chubmackerel = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_CHUBMACKEREL_2019")) %>% collect

db_chubmackerel$SPECIES <- "CHUB MACKEREL"

db_fluke = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_FLUKE_2019")) %>% collect

db_fluke$SPECIES <- "FLUKE"

db_scup = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SCUP_2019")) %>% collect

db_scup$SPECIES <- "SCUP"

db_surfclam = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_CLAMSURF_2019")) %>% collect

db_surfclam$SPECIES <- "SURFCLAM"

db_oceanquahog = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_QUAHOGOCEANBLACK_CLAM_2019")) %>% collect

db_oceanquahog$SPECIES <- "OCEANQUAHOG"

db_alewife = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_ALEWIFE_2019")) %>% collect

db_alewife$SPECIES <- "ALEWIFE"

db_final <- rbind(db_blackseabass, db_bluefish, db_butterfish, db_longfinsquid, db_shortfinsquid, db_mackerel, db_chubmackerel, db_fluke, db_scup, db_surfclam, db_oceanquahog, db_alewife)

db_final %>%
filter(DISCARD_SOURCE != 'O') %>% dplyr::group_by(FED_OR_STATE) %>% dplyr::summarise(DISCARD_Total = round(sum(CAMS_DISCARD, na.rm=TRUE))) %>%

         dplyr::arrange(desc(DISCARD_Total)) %>%# top_n(10) %>%
    DT::datatable(caption = 'Discard Totals QM and non QM')
```r


 dw_maps <- config::get(config = "maps", file = "~/config_group.yml")

# Connect to database - move this to config file in the future - quick addition for server
  connectString <- paste(
    "(DESCRIPTION=",
    "(ADDRESS=(PROTOCOL=tcp)(HOST=", dw_maps$host, ")(PORT=", dw_maps$port, "))",
    "(CONNECT_DATA=(SERVICE_NAME=",dw_maps$svc, ")))",
    sep = ""
  )

# Connect to oracle each loop in case of timeouts
    bcon <- ROracle::dbConnect(
      drv = ROracle::Oracle(),
      username = dw_maps$uid,
      password = dw_maps$pwd,
      dbname = connectString
    )

db_blackseabass = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BLACKSEA_BASS_2019")) %>% 
    collect

db_blackseabass$SPECIES <- "BLACKSEABASS"

db_bluefish = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BLUEFISH_2019")) %>% 
    collect

db_bluefish$SPECIES <- "BLUEFISH"

db_butterfish = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_BUTTERFISH_2019")) %>% 
    collect

db_butterfish$SPECIES <- "BUTTERFISH"

db_longfinsquid = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SQUIDATLLONG_FIN_2019")) %>% 
    collect

db_longfinsquid$SPECIES <- "LONGFINSQUID"

db_shortfinsquid = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SQUIDSHORT_FIN_2019")) %>% 
    collect

db_shortfinsquid$SPECIES <- "SHORTFINSQUID"

db_mackerel = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_MACKERELATLANTIC_2019")) %>%
    collect

db_mackerel$SPECIES <- "MACKEREL"

db_chubmackerel = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_CHUBMACKEREL_2019")) %>%
    collect

db_chubmackerel$SPECIES <- "CHUB MACKEREL"

db_fluke = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_FLUKE_2019")) %>%
    collect

db_fluke$SPECIES <- "FLUKE"

db_scup = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_SCUP_2019")) %>%
    collect

db_scup$SPECIES <- "SCUP"

db_surfclam = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_CLAMSURF_2019")) %>%
    collect

db_surfclam$SPECIES <- "SURFCLAM"

db_oceanquahog = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_QUAHOGOCEANBLACK_CLAM_2019")) %>%
    collect

db_oceanquahog$SPECIES <- "OCEANQUAHOG"

db_alewife = tbl(bcon, sql("select * from MAPS.CAMS_DISCARD_ALEWIFE_2019")) %>%
    collect

db_alewife$SPECIES <- "ALEWIFE"


db_final <- rbind(db_blackseabass, db_bluefish, db_butterfish, db_longfinsquid, 
            db_shortfinsquid, db_mackerel, db_chubmackerel, db_fluke, db_scup,
            db_surfclam, db_oceanquahog, db_alewife)


strat_blackseabass <- db_blackseabass %>%   
   dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_bluefish <- db_bluefish %>%   
    dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_butterfish <- db_butterfish %>%   
    dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)


strat_longfinsquid <- db_longfinsquid %>%   
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)



strat_shortfinsquid <- db_shortfinsquid %>%     
 dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)


strat_mackerel <- db_mackerel %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_chubmackerel <- db_chubmackerel %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_fluke <- db_fluke %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_scup <- db_scup %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_surfclam <- db_surfclam %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_oceanquahog <- db_oceanquahog %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_alewife <- db_alewife %>%
  dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                   dplyr::select(
                              SPECIES
                              ,STRATA_FULL
                             # STRATA 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD
              ,DISCARD_SOURCE
              ,FED_OR_STATE)

strat_final <- rbind(strat_blackseabass, strat_bluefish, strat_butterfish,
                     strat_longfinsquid, strat_shortfinsquid, strat_mackerel,
                     strat_chubmackerel, strat_fluke, strat_scup,
                     strat_surfclam, strat_oceanquahog, strat_alewife)


  strat_final %>% 
    filter(FED_OR_STATE=='FED') %>% 
#   dplyr::group_by(SPECIES, STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>% 
    #slice(1) %>% 
    ggplot()+
    geom_histogram(aes(x = CAMS_DISCARD_RATE, fill = DISCARD_SOURCE), bins=60, position = "dodge") +
    facet_wrap(~SPECIES)+
    theme_light()
strat_final %>% 
    filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=='STATE') %>% 
    #dplyr::group_by(SPECIES, STRATA, DISCARD_SOURCE, FED_OR_STATE) %>% 
    #slice(1) %>% 
    ggplot()+
    geom_histogram(aes(x = CAMS_DISCARD_RATE, fill = DISCARD_SOURCE), bins=60, position = "dodge") +
    facet_wrap(~SPECIES)+
    theme_light()
db_final %>% 
    # filter(DISCARD_SOURCE != 'O')&
  filter(FED_OR_STATE=='FED') %>% 
    group_by(SPECIES, SPECIES_ITIS, DISCARD_SOURCE,SPECIES_STOCK) %>% 
    dplyr::summarise(DSUM = sum(CAMS_DISCARD, na.rm = T)) %>% 
    # slice(1) %>% 
    ggplot()+
    geom_bar(aes(x = SPECIES_STOCK, y = DSUM, fill = DISCARD_SOURCE), stat = 'identity', position = 'dodge')+
 facet_wrap(~SPECIES, scales = 'free')+
    theme_light()
db_final %>% 
    # filter(DISCARD_SOURCE != 'O')&
  filter(FED_OR_STATE=='STATE') %>% 
    group_by(SPECIES, SPECIES_ITIS, DISCARD_SOURCE,SPECIES_STOCK) %>% 
    dplyr::summarise(DSUM = sum(CAMS_DISCARD, na.rm = T)) %>% 
    # slice(1) %>% 
    ggplot()+
    geom_bar(aes(x = SPECIES_STOCK, y = DSUM, fill = DISCARD_SOURCE), stat = 'identity', position = 'dodge')+
 facet_wrap(~SPECIES, scales = 'free')+
    theme_light()
db_blackseabass %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Blackseabass')
db_blackseabass %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by strata for Blackseabass')
db_bluefish %>%     
   filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates by Strata for Bluefish')
db_bluefish %>%     
   filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates by Strata for Bluefish')
db_butterfish %>%   
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Butterfish')
db_butterfish %>%   
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by strata for Butterfish')
db_longfinsquid %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Longfinsquid')
db_longfinsquid %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by strata for Longfinsquid')
db_shortfinsquid %>%    
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Shortfinsquid')
db_shortfinsquid %>%    
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Shortfinsquid')
db_mackerel %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Mackerel')
db_mackerel %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Mackerel')
db_chubmackerel %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Chub Mackerel')
db_chubmackerel %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Chub Mackerel')
db_fluke %>%    
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Fluke')
db_fluke %>%    
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Fluke')
db_scup %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Scup')
db_scup %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Scup')
db_surfclam %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Surfclam')
db_surfclam %>%     
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Surfclam')
db_oceanquahog %>%  
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Ocean Quahog')
db_oceanquahog %>%  
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Ocean Quahog')
db_alewife %>%  
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="FED") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for federal trips by strata for Alewife')
db_alewife %>%  
  filter(DISCARD_SOURCE != 'O' & FED_OR_STATE=="STATE") %>%
  group_by(STRATA_FULL, DISCARD_SOURCE, FED_OR_STATE) %>%
  dplyr::summarise(SUBTRIP_KALL = sum(SUBTRIP_KALL)
                       , CAMS_DISCARD_RATE = round(mean(CAMS_DISCARD_RATE), digits=5)
                       , DISC_MORT_RATIO = mean(DISC_MORT_RATIO)
                      # , CV = mean(CV, na.rm=TRUE)
                       , DISCARD = round(sum(CAMS_DISCARD))) %>%
                      # , N_OBS_TRIPS_F = mean(N_OBS_TRIPS_F)) %>% 
   ungroup() %>% dplyr::select(STRATA_FULL,
                                                                                                                                          DISCARD_SOURCE 
             # ,N_OBS_TRIPS_F
              ,CAMS_DISCARD_RATE
              ,SUBTRIP_KALL
              ,DISC_MORT_RATIO
              ,DISCARD) %>%
             # ,CV) 
             dplyr::arrange(desc(DISCARD)) %>%# top_n(10) %>%
        DT::datatable(caption = 'Discard rates for state trips by Strata for Alewife')
db_blackseabass %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Blackseabass')
db_blackseabass %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Blackseabass')
db_bluefish %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Bluefish')
db_bluefish %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Bluefish')
db_butterfish %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Butterfish')
db_butterfish %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Butterfish')
db_longfinsquid %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Longfinsquid')
db_longfinsquid %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Longfinsquid')
db_shortfinsquid %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Shortfinsquid')
db_shortfinsquid%>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Shortfinsquid')
db_mackerel %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Mackerel')
db_mackerel %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Mackerel')
db_chubmackerel %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Chub Mackerel')
db_chubmackerel %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Chub Mackerel')
db_fluke %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Fluke')
db_fluke %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Fluke')
db_scup %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Scup')
db_scup %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Scup')
db_surfclam %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Surf Clam')
db_surfclam %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Surfclam')
db_oceanquahog %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Ocean Quahog')
db_oceanquahog %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Ocean Quahog')
db_alewife %>% filter(FED_OR_STATE == 'FED') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for federal trips by stock, gear and discard source for Alewife')
db_alewife %>% filter(FED_OR_STATE == 'STATE') %>% group_by(DISCARD_SOURCE, CAMS_GEAR_GROUP, SPECIES_STOCK) %>% dplyr::summarise(D = sum(CAMS_DISCARD), K = sum(SUBTRIP_KALL), Drate = mean(CAMS_DISCARD_RATE), Dmort = mean(DISC_MORT_RATIO)) %>% arrange(desc(D))%>% top_n(10) %>% dplyr::mutate(across(where(is.numeric), round, 4)) %>% mutate(across(ends_with("D"), round, 0))%>%
        DT::datatable(caption = 'Discard totals for state trips by stock, gear and discard source for Alewife')

Appendix

For more information regarding stratification variables and discard rates by species see

MAPS.CAMS_STATAREA_STOCK MAPS.CAMS_DISCARD_MORTALITY_STOCK MAPS.CAMS_GEARCODE_STRATA MAPS.CAMS_MASTER_GEAR MAPS.CAMS_OBS_CATCH



noaa-garfo/discaRd documentation built on April 17, 2025, 10:32 p.m.