nwfscDiscard.RmdThe nwfscDiscard package was written by scientists at the Northwest Fisheries Science Center (NWFSC) to explore and process West Coast Groundfish Observer Program (WCGOP) data. This package can be used to process WCGOP data for West Coast groundfish assessments.
nwfscDiscard can be used to:
Ensure confidentiality is met based on the requested stratification of data by gear and area.
Process discard rates by gear and area for use in groundfish stock assessments.
Process biological data from observer biological samples for use in groundfish stock assessments.
Visualize data.
WCGOP data include observations of the size, age for select species, and the amount of discards that from observed trips across various West Coast Groundfish sectors starting in 2002. Data from the onboard observers and electronic monitoring (EM) are available. The EM data only provides discard amounts, no biological data (length or age). Only vessels participating in the Individual Fishing Quota (IFQ, also referred to as the catch share fishery) fishery are allowed to use EM.
As of 2024, WCGOP only observes federal fisheries. Historically, select fisheries that occurred only in state waters had federal observers. Most sectors observed by WCGOP have less than 100% observer coverage. Only the IFQ fishery has 100% observer coverage (as of 2026) with either onboard human observers or EM used for every vessels and trip. The observation rate can be variable for all other sectors and years. The Fisheries Observation Science (FOS) Program provides an annual report detailing coverage rates for each observed sector.
WGCOP data includes the following gear types; bottom trawl, midwater trawl, shrimp trawl, fixed gears, hook & line, and pot. The sectors represented in each gear type are:
Bottom trawl: Catch shares and catch shares EM (since 2011), limited entry trawl (2002-2010), limited entry California halibut, open access California halibut, and sea cucumber.
Midwater trawl: Catch shares (since 2011), limited entry trawl (2002-2010); midwater hake, and midwater rockfish;
Shrimp trawl: Pink shrimp and ridgeback prawn;
Fixed gears: Nearshore;
Hook & line: Catch shares and catch shares EM (since 2011), directed Pacific halibut, limited entry fixed gear DTL, limited entry sablefish, and open access fixed gear; and
Pot: Catch shares and catch shares EM (since 2011), limited entry sablefish, and open access fixed gear.
The Nearshore sector is a sector comprised of multiple fixed gear types that operate in shallow federal water areas. Additional information about sectors can be found online
WCGOP data are grouped by gears and areas, as specified by the lead assessment author. The requested data grouping are checked to ensure confidentiality requirements are met. The data processing will weight the biological data within each gear group based on observed catches for the grouped gears and areas. For example, if hook & line and pot gears are requested to be combined into a “fixed gear” group, the observations by hook & line and pot for each year will be weighted by the corresponding catches for each gear type. The catches by gear are calculated from the Groundfish Expanded Multiyear Mortality (GEMM) report or from an alternative GEMM (provided by the FOS team), depending on the fleet areas requested. The discard rates are also processed and weighted by catches for the requested gears. However, the discard rates and variances are weighted by the catch between catch share and non-catch share sectors to produce a weighted discard rate by gear and area grouping.
Landing and discard data by gear type can provide insight on
discarding and retention practices by gear.
Additionally, plotting the data by catch share can provide information
about discarding practices between catch share and non-catch share
sectors which should be considered when processing and using data from
West Coast Groundfish Observer Program (WCGOP).
gemm <- nwfscSurvey::pull_gemm(common_name = species_name)
gemm_filtered <- gemm |>
dplyr::filter(
species == species_name
)
plot_gemm(
data = gemm_filtered,
plot = 1
)WCGOP collects primarily length data for discarded fish (i.e., age data are collected for select species as well). Length data from WCGOP can inform estimates of retention and selectivity curves in Stock Synthesis. The frequency and size of discarded fish often varies by gear type in WCGOP data.
plot_wcgop_bio(
data = biological_data,
species_name = species_name,
gear_groups = list(
"Bottom Trawl",
"Midwater Trawl",
"Shrimp Trawl",
"Fixed Gears",
"Hook & Line",
"Pot"
),
gear_names = c(
"Bottom Trawl",
"Midwater Trawl",
"Shrimp Trawl",
"Fixed Gears",
"Hook & Line",
"Pot"
),
fleet_groups = list(c("WA", "OR", "CA")),
fleet_names = c("coastwide"),
fleet_colname = "r_state"
)Three trawl gears have discard length data for the example speces; bottom trawl, midwater trawl, and shrimp trawl. Based on the GEMM data, bottom trawl catch share vessels represent the majority of discarding for the example species. Shrimp trawl often catches much smaller rockfish compared to other trawl gears due to the net and areas fished, but shrimp trawl often only represents a very small fraction of landing and discard mortality for non-target species. Based on the landings data and the size frequency among trawl gears, it is recommended to only use discard length data from bottom trawl gear to represent the majority of discarding practices by trawl gear.
There are variable observations of lengths from hook & line and pot gear, but the size of discarded fish are generally similar between the gears. Given the similarity in the discarded lengths, the hook & line and pot data can be combined to increase sample size. Length data from these gears will be catch weighted which helps ensure that the length data are representative of the gear with the highest impact on the species in terms of mortality.
Based upon the data summaries, a proposed data grouping is provided below. This should be considered as a starting point. The final data used and how the data are split should be based on a holistic view of how the data are modeled in terms of fleet in the stock assessment.
# Omit data from midwater and shrimp trawl
gear_groups <- list(
"Bottom Trawl",
c("Fixed Gears", "Hook & Line", "Pot")
)
gear_names <- c(
"trawl",
"fixed-gear"
)
fleet_groups <- list(c("WA", "OR", "CA"))
fleet_names <- c("coastwide")
fleet_colname <- "r_state"
length_bins <- seq(12, 60, 2)
age_bins <- 1:40Load in the alternative GEMM data (the regular GEMM data would also work with a coastwide fleet area) and calculate weights based on the gear groupings.
format_gemm <- format_gemm_alt(
dir = gemm_dir,
species_name = species_name,
areas_to_keep = c("NORTH_42", "SOUTH_42"),
gears_to_keep = unlist(gear_groups),
data_file = "ALTERNATIVE_GEMM_2026-04-12.csv"
) |>
dplyr::mutate(
area = "coastwide"
)
weights <- get_weights(
data = format_gemm |> dplyr::filter(gear %in% unlist(gear_groups)),
include_catch_share = FALSE
)
comps <- get_biological_data(
dir = output_dir,
biological_data = biological_data |> dplyr::mutate(SEX = "U"),
weight_data = weights,
catch_data = catch_data,
species_name = species_name,
length_bins = length_bins,
age_bins = age_bins,
gear_groups = gear_groups,
gear_names = gear_names,
fleet_colname = fleet_colname,
fleet_groups = fleet_groups,
fleet_names = fleet_names
)Discard rates are provided by gear and area below (akin to a fleet). The revised processing of these data now provides a single discard rate by year for each fleet. The single discard rate is the weighted rate and variance between catch share and non-catch share by fleet.
# Calculate weights based on catch share and area
weights <- get_weights(
data = format_gemm,
include_catch_share = TRUE
)
# Combine and format WCGOP observer and EM data
data_combined <- combine_catch_data(
catch_data = catch_data,
em_catch_data = em_catch_data
)
# Calculate discard rates by fleet and catch share
ob_out <- get_discard_rates(
dir = output_dir,
data = data_combined,
species_name = species_name,
boot_number = 10000,
gear_groups = gear_groups,
gear_names = gear_names,
fleet_colname = fleet_colname,
fleet_groups = fleet_groups,
fleet_names = fleet_names,
seed_number = 1
)
# Weight discard rates
rates <- weight_discard_rates(
weight_data = weights,
ncs_data = ob_out$ncs,
cs_data = ob_out$cs,
dir = output_dir
)Visualize the weighted discard rate by fleet:
plot_discard_rates(
data = rates
)The following CSV files will be provided for each data processing request:
Confidentiality Checks:
Biological Data:
wcgop_discard_lengths.csv and if available wcgop_discard_age.csv: The length/age observations of discarded fish formatted based on requested stratification, data bin structure, and sex (majority of observations in WCGOP are unsexed). Only select species include sex-specific data within WCGOP. Data are formatted for SS3.
wcgop_discard_sample_sizes_length.csv: The number of hauls and trips sample by stratification for each year and the resulting number of fish sampled. The input sample size (included in the wcgop_discard_lengths.csv file) is also provided based on the Stewart fishery data input sample size calculation.
Discard Rates:
The intermediate files are also provided split between catch share and non-catch share before data weighting:
wcgop_discards_rates_catch_share.csv: The observed discard totals and rates for catch-share vessels. The catch-share fishery has full observer coverage, hence data are considered a census and no measure of uncertainty are provided.
wcgop_discard_rates_noncatch_share.csv: The observed discard totals and rates for non-catch share vessels. These data are bootstrapped to estimate median discard rates and standard deviation for use in assessment.