ohi logo
OHI Science | Citation policy

Summary

This script takes the Watson 2019 catch data, provided at a resolution of half-degree cells globally, and creates 3 data layers:

  1. Catch data aggregated to stock levels to calculate B/Bmsy values. For the Ocean Health Index, we assume a stock is represented by the FAO region in which the species is caught. We also use these data to aggregate to OHI/FAO region to weight the B/Bmsy values. In order to aggregate to FAO regions, we associate each cell to the FAO region and the OHI region in which it is located.

An example of our aggregation process: New Zealand is located entirely in FAO region 81. All catch reported by New Zealand will be aggregated by species to the FAO region. If a species was reported as caught in both New Zealand waters and in the High Seas of area 81, these two records will be combined into one by summing the catch.

  1. An average catch dataset used to weight B/Bmsy values in the fisheries model. For this dataset, the catch is assigned to FAO and OHI regions.

  2. Average catch over time for each region for food provision weighting.

Updates from previous assessment

2018 Watson (v3) data didn’t have Taxon Key information. Previously we added it in from Watson 2017 data after aggregating catch to work with a relatively smaller dataframe. The 2019 Watson data (v4) does have Taxon Key information, located in Codes.xlsx in mazu. We use this instead of the 2017 taxon key information data, therefore there is no need to run the catch_taxon_key.Rmd. Saving total catch as only IUU and Reported. Last year we used IUU, Reported, and Discards.


Data Source

Reference: Watson, R. A. and Tidd, A. 2018. Mapping nearly a century and a half of global marine fishing: 1869–2015. Marine Policy, 93, pp. 171-177. (Paper URL)

Downloaded: July 3, 2019 from IMAS portal - click on download tab, step 3

Description: Global fisheries landings data per cell separated by Industrial versus Non-Industrial catch, IUU, and discards.

Native data resolution:

Time range: 1950 - 2015

Format: CSV format

Additional Information: Metadata, Supplementary Material ***

Load Data

Read in Cells Datatable

Since we are using a new data source, we recreate the cells.csv file in clean_cells.Rmd, which will include cell ids and corresponding OHI and FAO region ids, which is later used to align catch data with appropriate regions.

These files are large so using the data.table package is recommended due to R memory limitations. Check that the cell values match up with the cell values in the catch data.

Aggregate catch

Aggregate catch per OHI region and FAO area. This catch will be used twice.

  1. The catch is used to weight scores per region. For this we need to use catch records, including those not reported at the species level. See note below.

  2. The catch data at species level is used to calculate stock status (BBmsy) per stock (remember that our definition of a stock is a species caught within a single FAO area).

Note: Save IUU and Reported only (CatchTotal) as the catch sum. This is difference from v2019, which saved it as IUU, Reported, and Discards.

Total Catch

Add Taxon Key Information

Need taxon key to easily remove higher level (e.g. genus) taxonomic catch data. Unique taxon key was extracted from Watson 2019 (v4) Codes.xlsx, sheet name “Taxa”.

Must have taxon key match for every stock. If some are not matched, do it manually by searching the SAUP website.

Look at which entries that don’t have a Taxon key match. Search taxon in Sea Around Us website. Click on “View graph for catches of Taxon Name” link in the results. It’ll take you to a new page. The Taxon key is the six digit code in the url.

Note: All entries had a taxon key match for 2019.

Add taxa to the stock catch by region.

Data Check

Take a look at catch data with missing ohi and fao regions in stock_catch_by_rgn_taxa. These have taxon key matches, but no ohi or fao regions assigned to them.

Check NA values before taxa was added

Look at summary info for original catch file and output after joining to cells.csv

Look at which cells we are missing ohi and fao regions for in the 2014 catch. Looks like a lot of the cells in Watson catch with missing FAO regions are on land along the coastline, especially in Antarctica.


Prep data for B/Bmsy calculations

Catch-MSY is the model we use to estimate stock status for all global stocks. This model requires information about the resilience of each species in addition to the catch data for each year.

Load taxonomic resilience information, created in species_resilience_lookup_table.Rmd. The species resilience prep (species_resilience_lookup_table.Rmd) resulted less resilience information this year than in 2017.

Data Check

Take a look at the stock data datatable


Prep data for mean catch

Calculate Mean Catch

Calculate mean catch for ohi regions (using data from 1980 onward). These data are used to weight the RAM b/bmsy values

## correcting for forage fish used as feed/fish oil
## We have traditionally included all fisheries catch in the Food Provision goal. However, a substantial portion of catch is used in animal feed. Our plan is to remove a portion of catch of these species from the fisheries goal.

## read in list of species used for feed
forage_fish_taxa_list <- read_csv(file.path("raw/forage_fish_taxa_list.csv"))


taxon_key_info <- read_csv(file.path(dir_M,'git-annex/globalprep/fis/v2019/int/stock_catch_by_rgn_taxa.csv'))

## need to get TaxonKey's for each species to join with catch_zeros
forage_fish_taxa_list <- forage_fish_taxa_list %>%
  left_join(taxon_key_info, by = c("forage_fish" = "TaxonName")) %>%
  dplyr::select(forage_fish, inWatson, TaxonKey) %>%
  unique()

 
prop_human_cons <- (1 - (19/31))
## join this with catch_zeros by species, and multiply by 1 - (19/31) =  0.3870968... this is the proportion of catch used for humans 
catch_zero_minus_fish_feed <- forage_fish_taxa_list %>%
  left_join(catch_zeros, by = "TaxonKey") %>%
  mutate(catch_human = prop_human_cons*catch)

#join catch_zeros with catch_zero_minus_fish_feed
catch_zeros <- catch_zeros %>%
  left_join(catch_zero_minus_fish_feed) %>%
  mutate(catch_human = case_when(
    is.na(catch_human) ~ catch,
    !is.na(catch_human) ~ catch_human
  )) %>%
  dplyr::select(-forage_fish, -inWatson)

mean_catch <- catch_zeros %>%
  filter(year >= 1980) %>%
  group_by(rgn_id, fao_id, TaxonKey, stock_id) %>%
  mutate(mean_catch = mean(catch, na.rm=TRUE),
         mean_catch_human = mean(catch_human, na.rm = TRUE)) %>% # mean catch for each stock (in a specific ohi-fao region)
  filter(mean_catch != 0,
         mean_catch_human != 0)  %>%      ## some stocks have no reported catch for time period
  ungroup()

Check out the data

Data check

Compare v2019 with last year v2018

Plot mean catch v2019 against mean catch v 2018

Prep data for food provision weights

These data determine the tonnes of food provided by fisheries. Ultimately, the proportion of food from fisheries relative to mariculture will be calculated to weight the contributions of fishery and mariculture scores to final food provision scores.

Check differences in data for food provision weights


Citation information

Pauly D. and Zeller D. (Editors), 2015. Sea Around Us Concepts, Design and Data (seaaroundus.org)