Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
3c2e3b0
Update MH Data Log Environment based on recent MH download that resto…
GaitlynMalone-NOAA Dec 16, 2024
7fa4807
Remove old Data Log environment
GaitlynMalone-NOAA Dec 16, 2024
b5ed6a5
Move old RDS file to archive folder
GaitlynMalone-NOAA Dec 16, 2024
1798295
New RDS file containing restored MH files that were previously missing
GaitlynMalone-NOAA Dec 16, 2024
1479d79
Updated environment through MH04
GaitlynMalone-NOAA Dec 16, 2024
acd8e76
Remove old MH04 environment
GaitlynMalone-NOAA Dec 16, 2024
14c6788
Move old MH download to archive folder
GaitlynMalone-NOAA Dec 16, 2024
ea5dc0a
Add new MH download containing restored MH files that were previously…
GaitlynMalone-NOAA Dec 16, 2024
39b318b
Move old MH download file to archive folder
GaitlynMalone-NOAA Dec 16, 2024
e4e06c3
Add old MH download to archive folder
GaitlynMalone-NOAA Dec 16, 2024
220f1eb
Updated clusters file
GaitlynMalone-NOAA Dec 16, 2024
8c6da15
Removes MANAGEMENT_CATEGORY == CATCH LIMITS from the creation of sect…
GaitlynMalone-NOAA Dec 16, 2024
9a8add1
Update file to reflect new MH download
GaitlynMalone-NOAA Dec 16, 2024
69b389c
Update the expansion function to appropriately capture monthly recurr…
GaitlynMalone-NOAA Dec 16, 2024
b586847
Update RDS file. Restore commented out parts of code that were remove…
GaitlynMalone-NOAA Dec 17, 2024
076a9e5
Add notes. Remove previous code that was commented out
GaitlynMalone-NOAA Dec 17, 2024
cf8bdcf
exploratory code for catch limits
SarinaAtkinson-NOAA Jan 24, 2025
67f2778
Merge branch 'GaitlynMalone-NOAA-patch-1' of https://github.com/SEFSC…
SarinaAtkinson-NOAA Jan 24, 2025
e215990
Update file based on new MH download
GaitlynMalone-NOAA Feb 21, 2025
a701b3a
Remove old MH download, environments, and data log file
GaitlynMalone-NOAA Feb 21, 2025
6f10227
Add new MH download file
GaitlynMalone-NOAA Feb 21, 2025
365a833
Move old MH downloads to archive file
GaitlynMalone-NOAA Feb 21, 2025
cbacea4
Update cluster file based on new download
GaitlynMalone-NOAA Feb 21, 2025
d6533c3
Update new sector clusters file based on new download
GaitlynMalone-NOAA Feb 21, 2025
36a860b
Archive previous MH download
GaitlynMalone-NOAA Mar 21, 2025
b7d3daa
Add new MH download. During investigations into closures for Gulf ree…
GaitlynMalone-NOAA Mar 21, 2025
55e3185
Move previous MH download to archive folder
GaitlynMalone-NOAA Mar 21, 2025
04ca7b9
Add new MH 04 environment
GaitlynMalone-NOAA Mar 21, 2025
ddeb08e
Update script with new MH download
GaitlynMalone-NOAA Mar 21, 2025
725dbc4
Update end of time series to end of 2025 based on regulations being u…
GaitlynMalone-NOAA Mar 21, 2025
7a4a746
Update cluster files based on new MH download
GaitlynMalone-NOAA Mar 21, 2025
22b9b4f
Update sector cluster files based on new MH download
GaitlynMalone-NOAA Mar 21, 2025
a871714
Remove previous MH download
GaitlynMalone-NOAA Mar 26, 2025
eb0745b
Add new MH download which includes missing records that were identifi…
GaitlynMalone-NOAA Mar 26, 2025
8ee1f23
Move previous MH download to archive folder
GaitlynMalone-NOAA Mar 26, 2025
297daf3
Delete previous MH04 environment
GaitlynMalone-NOAA Mar 26, 2025
0c16854
Update script to read new mh raw file
GaitlynMalone-NOAA Mar 26, 2025
6335206
Add new MH04 environment
GaitlynMalone-NOAA Mar 26, 2025
ccef1e2
Remove old data log environment
GaitlynMalone-NOAA Mar 26, 2025
acb9c74
Add new data log environment
GaitlynMalone-NOAA Mar 26, 2025
081ec54
Remove old rds file
GaitlynMalone-NOAA Mar 26, 2025
ff10b9b
Add new rds file
GaitlynMalone-NOAA Mar 26, 2025
e326e19
Update expansion function to take start and end time into account. Up…
GaitlynMalone-NOAA Apr 3, 2025
6f24e2a
Remove old data log file
GaitlynMalone-NOAA Apr 3, 2025
a69b446
Update data log file based on adjustments identified during investiga…
GaitlynMalone-NOAA Apr 3, 2025
e799470
Add new MH data log environment based on update MH download
GaitlynMalone-NOAA Apr 3, 2025
a0d72b3
Remove previous MH data log environment
GaitlynMalone-NOAA Apr 3, 2025
6bdcee2
Add new MH04 environment based on changes made due to investigation i…
GaitlynMalone-NOAA Apr 3, 2025
a245d98
Remove previous MH04 environment
GaitlynMalone-NOAA Apr 3, 2025
db23969
Add old MH download to archive folder
GaitlynMalone-NOAA Apr 3, 2025
a08b1e3
Add new MH download based on updates made in response to investigatio…
GaitlynMalone-NOAA Apr 3, 2025
94bb1b4
Remove old MH download from raw data folder
GaitlynMalone-NOAA Apr 3, 2025
2408c31
Update script to read new MH download
GaitlynMalone-NOAA Apr 3, 2025
557cfd4
Update closure script to account for start and end times
GaitlynMalone-NOAA Apr 3, 2025
ce948d6
Update CSV to most recent download
GaitlynMalone-NOAA Sep 10, 2025
5bda864
Update zone_forks code
GaitlynMalone-NOAA Sep 10, 2025
50aa479
Update clusters file based on most recent download
GaitlynMalone-NOAA Sep 10, 2025
7894181
Update sector clusters based on most recent code
GaitlynMalone-NOAA Sep 10, 2025
aa2f3e4
Move previous versions of the download to the archive folder
GaitlynMalone-NOAA Sep 10, 2025
cb53f08
Remove previous download and data log files
GaitlynMalone-NOAA Sep 10, 2025
eb6f81f
Add new MH download file
GaitlynMalone-NOAA Sep 10, 2025
95392cd
Add new RDS file based on new records. Remove previous environments
GaitlynMalone-NOAA Sep 10, 2025
dfb692a
Remove previous environments
GaitlynMalone-NOAA Sep 10, 2025
487f935
Update MH dates script
GaitlynMalone-NOAA Sep 10, 2025
e6dd24c
Add catch limits script to pull catch limit regulations
GaitlynMalone-NOAA Sep 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions Examples/Gulf_reef_fish_CatchLimits_EDA.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@

library(tidyverse)
library(RColorBrewer)

# MH dataset
mh <- readRDS("C:/Users/sarina.atkinson/Documents/GitHub/SEFSC/SEFSC-ODM-Management-History/ODM-MH-Data_log/data/results/MH_DL_2024Apr30.RDS")

# Catch limits for Gulf Reef
mh2 <- mh %>% filter(MANAGEMENT_CATEGORY == 'CATCH LIMITS',
FMP == "REEF FISH RESOURCES OF THE GULF OF MEXICO")

chk <- filter(mh, MANAGEMENT_TYPE == 'DEFINITION',
FMP == "REEF FISH RESOURCES OF THE GULF OF MEXICO") %>% ungroup() %>% select(VALUE, FR_CITATION) %>% distinct()

# Summarize management types by sector
plot1 <- ggplot(mh2 %>%
group_by(SECTOR_USE, MANAGEMENT_TYPE_USE) %>%
summarise(nrecs = n_distinct(REGULATION_ID)) %>%
group_by(SECTOR_USE) %>%
mutate(tot = sum(nrecs), perc = nrecs/tot, labels = paste0(round(perc * 100,1), "%")), aes(x = "" , y = perc, fill = MANAGEMENT_TYPE_USE)) +
geom_col(width = 1, color = 1) +
coord_polar(theta = "y") +
#geom_text(aes(x = 1.7, label = labels), size=4.5,
# position = position_stack(vjust = 0.5))+
facet_wrap(~SECTOR_USE) +
scale_fill_brewer(palette = "Set3") +
guides(fill = guide_legend(title = "Management Type")) +
theme_void()

# ACLs by species
plot2 <- ggplot(mh2 %>%
filter(MANAGEMENT_TYPE == 'ACL') %>%
group_by(SECTOR_USE, SPP_NAME) %>%
summarise(nrecs = n_distinct(REGULATION_ID)) %>%
group_by(SECTOR_USE) %>%
mutate(tot = sum(nrecs), perc = nrecs/tot, labels = paste0(round(perc * 100,1), "%")), aes(x = "" , y = perc, fill = SPP_NAME)) +
geom_col(width = 1, color = 1) +
coord_polar(theta = "y") +
#geom_text(aes(x = 1.7, label = labels), size=4.5,
# position = position_stack(vjust = 0.5))+
facet_wrap(~SECTOR_USE) +
#scale_fill_brewer(palette = "Set3") +
guides(fill = guide_legend(title = "Species")) +
theme_void()

unique(mh2$SPP_NAME)

# DWG ACLS
acl_dwg <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'ACL/ACT: DEEP-WATER GROUPER (DWG) COMBINED') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

chk <- filter(mh2, MANAGEMENT_TYPE_USE == 'QUOTA', SPP_NAME == 'QUOTA: DEEP-WATER GROUPERS (DWG)')
# SWG ACLS
acl_swg <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'ACL/ACT: OTHER SHALLOW-WATER GROUPER (OTHER SWG)') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

filter(mh2, SPP_NAME == 'ACL/ACT: SHALLOW-WATER GROUPER (SWG) COMBINED') %>% ungroup() %>%
select(COMMON_NAME_USE) %>% distinct() %>% pull()

# FRs for ACLS
chk <- mh2 %>%
filter(MANAGEMENT_TYPE == 'ACL') %>%
group_by(FR_CITATION, SPP_NAME) %>%
summarise(nrecs = n_distinct(REGULATION_ID))

filter(mh2, FR_CITATION == '73 FR 38139') %>% ungroup() %>% select(FR_URL) %>% distinct() %>% pull()

# Gray Snapper ACLS
acl_gs <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'SNAPPER, GRAY') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# Tilefish ACLS
acl_tile <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'ACL/ACT: TILEFISHES COMBINED') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# Vermilion Snapper ACLS
acl_vs <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'SNAPPER, VERMILION') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# Mutton Snapper ACLS
acl_ms <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'SNAPPER, MUTTON') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# Yellowtail Snapper ACLS
acl_ys <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'SNAPPER, YELLOWTAIL') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# HOgfish ACLS
acl_hog <- mh2 %>% ungroup() %>%
filter(SPP_NAME == 'HOGFISH') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE, NEVER_IMPLEMENTED) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION)

# Catch limits for Gulf Reef
mh3 <- mh %>% filter(MANAGEMENT_CATEGORY == 'CATCH LIMITS',
FMP == "COASTAL MIGRATORY PELAGIC RESOURCES")
# Cobia ACLS
acl_cobia <- mh3 %>% ungroup() %>%
filter(SPP_NAME == 'COBIA', MANAGEMENT_TYPE_USE == 'ACL') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION, ZONE_USE,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION, REGULATION_ID)

# Spanish Mackerel ACLS
acl_sm <- mh3 %>% ungroup() %>%
filter(SPP_NAME == 'MACKEREL, SPANISH', ZONE_USE == 'GULF MIGRATORY GROUP SPANISH MACKEREL', MANAGEMENT_TYPE_USE == 'ACL') %>%
select(REGULATION_ID, MANAGEMENT_TYPE_USE, SECTOR, SECTOR_USE, FR_CITATION, ZONE_USE,
EFFECTIVE_DATE, START_YEAR, START_DATE2, END_DATE2,
VALUE, VALUE_TYPE, VALUE_UNITS, VALUE_RATE) %>% distinct() %>%
arrange(START_YEAR, FR_CITATION, REGULATION_ID)


158 changes: 158 additions & 0 deletions ODM-MH-Analysis_ready/Catch Limits/CatchLimits.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
##### Catch Limits ####
# Code to filter to all Catch Limit regulations for a species of interest

##### Load packages ####
librarian::shelf(here, tidyverse, gt, flextable, officer, dplyr, gt, officer, lubridate, htmltools, rmarkdown, tidyr)

#### Load data ####
# Load the MH Data Log
mh <- readRDS(here("ODM-MH-Data_log", "data", "results", "MH_DL_2025Sep10.RDS"))

#### Define species and region of interest ####
species = c('SNAPPER, CUBERA', 'AMBERJACK, GREATER', 'AMBERJACK, LESSER', 'JACK, ALMACO', 'SNAPPER, SILK', 'SNAPPER, QUEEN', 'SNAPPER, BLACKFIN', 'WENCHMAN',
'DRUM, RED', 'COBIA', 'GROUPER, GAG', 'SNAPPER, GRAY', 'MACKEREL, KING', 'GROUPER, YELLOWEDGE', 'SNAPPER, LANE', 'GROUPER, RED', 'SNAPPER, RED',
'SCAMP', 'MACKEREL, SPANISH','HOGFISH', 'SNAPPER, MUTTON', 'SNAPPER, YELLOWTAIL', 'SNAPPER, VERMILION', 'TRIGGERFISH, GRAY', 'TRIGGERFISH, QUEEN')
region = 'GULF OF MEXICO'
sector = 'RECREATIONAL'

#### ACLs ####
# Filter to species and region of interest
# Remove non-detailed regulations and those that were never implemented
# Filter to only include records that apply to the entire region (ZONE_USE = ALL) and sector of interest
ACLs <- mh %>%
filter(COMMON_NAME_USE %in% species,
REGION %in% region,
SECTOR == sector,
DETAILED == "YES",
NEVER_IMPLEMENTED %in% c(0, NA),
REG_REMOVED == 0,
MANAGEMENT_TYPE_USE == "ACL") %>%
arrange(CLUSTER, START_DATE2) %>%
mutate(Species = case_when(str_detect(COMMON_NAME_USE, ",") ~ {parts <- str_split_fixed(COMMON_NAME_USE, ",", 2)
str_to_title(str_trim(parts[,2])) %>% paste(str_to_title(str_trim(parts[,1])))},
TRUE ~ str_to_title(COMMON_NAME_USE)),
Fishery = str_to_title(paste0(SECTOR_USE, " ", SUBSECTOR_USE)),
`Region Affected` = str_to_title(paste0(REGION, " ", ZONE_USE)),
`First Year in Effect` = year(START_DATE2),
`Fishing Year Effective Date` = format(START_DATE2, "%m/%d/%Y"),
`FR Notice Effetive Date` = format(EFFECTIVE_DATE, "%m/%d/%Y"),
`FR Notice Ineffective Date` = format(INEFFECTIVE_DATE, "%m/%d/%Y"),
ACL = case_when(MANAGEMENT_TYPE_USE == "ACL" ~ paste0(VALUE, " ", tolower(VALUE_UNITS),ifelse(!is.na(VALUE_TYPE), paste0(" (", tolower(VALUE_TYPE), ")"), "")),
TRUE ~ NA_character_),
`FR Reference` = case_when(MANAGEMENT_TYPE_USE == "ACL" ~ FR_CITATION,
TRUE ~ NA_character_),
`FR URL` = case_when(MANAGEMENT_TYPE_USE == "ACL" ~ FR_URL,
TRUE ~ NA_character_),
`Amendment Number or Rule Type` = case_when(!is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE, " ", AMENDMENT_NUMBER)),
!is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", AMENDMENT_NUMBER)),
is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE)),
is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(ACTION)),
`Cluster` = CLUSTER) %>%
select(CLUSTER, Species, Fishery, `Region Affected`,
`First Year in Effect`, `Fishing Year Effective Date`, `FR Notice Effetive Date`, `FR Notice Ineffective Date`, `ACL`,
`FR Reference`, `FR URL`, `Amendment Number or Rule Type`) %>%
arrange(Species, CLUSTER, `First Year in Effect`)

# Quota
Quotas <- mh %>%
filter(COMMON_NAME_USE %in% species,
REGION %in% region,
SECTOR == sector,
DETAILED == "YES",
NEVER_IMPLEMENTED %in% c(0, NA),
REG_REMOVED == 0,
MANAGEMENT_TYPE_USE == "QUOTA") %>%
arrange(CLUSTER, START_DATE2) %>%
mutate(Species = case_when(str_detect(COMMON_NAME_USE, ",") ~ {parts <- str_split_fixed(COMMON_NAME_USE, ",", 2)
str_to_title(str_trim(parts[,2])) %>% paste(str_to_title(str_trim(parts[,1])))},
TRUE ~ str_to_title(COMMON_NAME_USE)),
Fishery = str_to_title(paste0(SECTOR_USE, " ", SUBSECTOR_USE)),
`Region Affected` = str_to_title(paste0(REGION, " ", ZONE_USE)),
`First Year in Effect` = year(START_DATE2),
`Fishing Year Effective Date` = format(START_DATE2, "%m/%d/%Y"),
`FR Notice Effetive Date` = format(EFFECTIVE_DATE, "%m/%d/%Y"),
`FR Notice Ineffective Date` = format(INEFFECTIVE_DATE, "%m/%d/%Y"),
Quota = case_when(MANAGEMENT_TYPE_USE == "QUOTA" ~ paste0(VALUE, " ", tolower(VALUE_UNITS),ifelse(!is.na(VALUE_TYPE), paste0(" (", tolower(VALUE_TYPE), ")"), "")),
TRUE ~ NA_character_),
`FR Reference` = case_when(MANAGEMENT_TYPE_USE == "QUOTA" ~ FR_CITATION,
TRUE ~ NA_character_),
`FR URL` = case_when(MANAGEMENT_TYPE_USE == "QUOTA" ~ FR_URL,
TRUE ~ NA_character_),
`Amendment Number or Rule Type` = case_when(!is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE, " ", AMENDMENT_NUMBER)),
!is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", AMENDMENT_NUMBER)),
is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE)),
is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(ACTION)),
`Cluster` = CLUSTER) %>%
select(CLUSTER, Species, Fishery, `Region Affected`,
`First Year in Effect`, `Fishing Year Effective Date`, `FR Notice Effetive Date`, `FR Notice Ineffective Date`, `Quota`,
`FR Reference`, `FR URL`, `Amendment Number or Rule Type`) %>%
arrange(Species, CLUSTER, `First Year in Effect`)

# ACT
ACTs <- mh %>%
filter(COMMON_NAME_USE %in% species,
REGION %in% region,
SECTOR == sector,
DETAILED == "YES",
NEVER_IMPLEMENTED %in% c(0, NA),
MANAGEMENT_TYPE_USE == "ACT") %>%
arrange(CLUSTER, START_DATE2) %>%
mutate(Species = case_when(str_detect(COMMON_NAME_USE, ",") ~ {parts <- str_split_fixed(COMMON_NAME_USE, ",", 2)
str_to_title(str_trim(parts[,2])) %>% paste(str_to_title(str_trim(parts[,1])))},
TRUE ~ str_to_title(COMMON_NAME_USE)),
Fishery = str_to_title(paste0(SECTOR_USE, " ", SUBSECTOR_USE)),
`Region Affected` = str_to_title(paste0(REGION, " ", ZONE_USE)),
`First Year in Effect` = year(START_DATE2),
`Fishing Year Effective Date` = format(START_DATE2, "%m/%d/%Y"),
`FR Notice Effetive Date` = format(EFFECTIVE_DATE, "%m/%d/%Y"),
`FR Notice Ineffective Date` = format(INEFFECTIVE_DATE, "%m/%d/%Y"),
ACT = case_when(MANAGEMENT_TYPE_USE == "ACT" ~ paste0(VALUE, " ", tolower(VALUE_UNITS),ifelse(!is.na(VALUE_TYPE), paste0(" (", tolower(VALUE_TYPE), ")"), "")),
TRUE ~ NA_character_),
`FR Reference` = case_when(MANAGEMENT_TYPE_USE == "ACT" ~ FR_CITATION,
TRUE ~ NA_character_),
`FR URL` = case_when(MANAGEMENT_TYPE_USE == "ACT" ~ FR_URL,
TRUE ~ NA_character_),
`Amendment Number or Rule Type` = case_when(!is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE, " ", AMENDMENT_NUMBER)),
!is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", AMENDMENT_NUMBER)),
is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE)),
is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(ACTION)),
`Cluster` = CLUSTER) %>%
select(CLUSTER, Species, Fishery, `Region Affected`,
`First Year in Effect`, `Fishing Year Effective Date`, `FR Notice Effetive Date`, `FR Notice Ineffective Date`, `ACT`,
`FR Reference`, `FR URL`, `Amendment Number or Rule Type`) %>%
arrange(Species, CLUSTER, `First Year in Effect`)

# TAC
TACs <- mh %>%
filter(COMMON_NAME_USE %in% species,
REGION %in% region,
SECTOR == sector,
DETAILED == "YES",
NEVER_IMPLEMENTED %in% c(0, NA),
REG_REMOVED == 0,
MANAGEMENT_TYPE_USE == "TAC") %>%
arrange(CLUSTER, START_DATE2) %>%
mutate(Species = case_when(str_detect(COMMON_NAME_USE, ",") ~ {parts <- str_split_fixed(COMMON_NAME_USE, ",", 2)
str_to_title(str_trim(parts[,2])) %>% paste(str_to_title(str_trim(parts[,1])))},
TRUE ~ str_to_title(COMMON_NAME_USE)),
Fishery = str_to_title(paste0(SECTOR_USE, " ", SUBSECTOR_USE)),
`Region Affected` = str_to_title(paste0(REGION, " ", ZONE_USE)),
`First Year in Effect` = year(START_DATE2),
`Fishing Year Effective Date` = format(START_DATE2, "%m/%d/%Y"),
`FR Notice Effetive Date` = format(EFFECTIVE_DATE, "%m/%d/%Y"),
`FR Notice Ineffective Date` = format(INEFFECTIVE_DATE, "%m/%d/%Y"),
TAC = case_when(MANAGEMENT_TYPE_USE == "TAC" ~ paste0(VALUE, " ", tolower(VALUE_UNITS),ifelse(!is.na(VALUE_TYPE), paste0(" (", tolower(VALUE_TYPE), ")"), "")),
TRUE ~ NA_character_),
`FR Reference` = case_when(MANAGEMENT_TYPE_USE == "TAC" ~ FR_CITATION,
TRUE ~ NA_character_),
`FR URL` = case_when(MANAGEMENT_TYPE_USE == "TAC" ~ FR_URL,
TRUE ~ NA_character_),
`Amendment Number or Rule Type` = case_when(!is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE, " ", AMENDMENT_NUMBER)),
!is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", AMENDMENT_NUMBER)),
is.na(AMENDMENT_NUMBER) & !is.na(ACTION_TYPE) ~ str_to_title(paste0(ACTION, " ", ACTION_TYPE)),
is.na(AMENDMENT_NUMBER) & is.na(ACTION_TYPE) ~ str_to_title(ACTION)),
`Cluster` = CLUSTER) %>%
select(CLUSTER, Species, Fishery, `Region Affected`,
`First Year in Effect`, `Fishing Year Effective Date`, `FR Notice Effetive Date`, `FR Notice Ineffective Date`, `TAC`,
`FR Reference`, `FR URL`, `Amendment Number or Rule Type`) %>%
arrange(Species, CLUSTER, `First Year in Effect`)
Loading
Loading