Yesterday’s high-seas treaty: Ocean ecosystems produce half the oxygen we breathe, represent 95% of the planet’s biosphere and soak up carbon dioxide, as the world’s largest carbon sink. Yet until now, fragmented and loosely enforced rules governing the high seas have rendered this area more susceptible than coastal waters to exploitation.

Resources

Objectives

Today

Today we’ll begin with breakouts and then discussion of longline issues. Recall my questions, which are supplemented with your own:

  1. Where are the threats and why they are occurring?

  2. How good are the data? Are there big holes in our understanding?

  3. How might the interaction between fishing and other variables, such as temperature change, affect the results?

  4. What are some of the ways to mitigate the problem of overfishing?

I’ll then introduce the longline fisheries data. Use this vignette to prepare for the discussion of management options. In groups, modify code from these examples for some of the other species that we discussed. Collect evidence for how effort has changed in time and space, overall catch, and catch per effort.

Catch per effort

In fisheries, species abundance is often summarized as catch per effort (CPE). Effort can be numbers of hooks on a long line or numbers of trawls. Here I use hooks for effort.

The longline data

We have available to us the long-line data used in the Tuna and swordfish catch paper that was included in the discussion. The data come from logbook records of longline catch by US fishing vessels over 13 years offshore of northeastern US.

We need these packages and functions:

library(corrplot)
library(dendextend)
library(gjam)
library(colorspace)
library(RColorBrewer)
source('clarkFunctions2022.r')

LOGBOOK_SWO_ENV_4.csv

Read in the file here:

longline <- read.csv("LOGBOOK_SWO_ENV_4.csv")
dim(longline)
## [1] 259350    152

This is a large data set and may take a minute to ingest, with 259350 rows. I begin by partitioning this data.frame into two parts, one for predictors and another for responses:

xdata <- longline[,c(1:13,134:140)]     # predictors
ydata <- longline[,104:133]             # responses

The data.frame xdata includes variables related to fishing effort (e.g., HOOKS_SET). The responses in data.frame ydata include the catch for species.

The spatial extent of the data is shown here.

lonLat <- xdata[,c('Longitude','Latitude')]
maps::map(xlim=c(-100,-10), ylim=c(0,55), fill=T, col='wheat')
points(lonLat[,1],lonLat[,2], col = .getColor('brown',.03), cex=.2)

You may notice that I used a semi-transparent symbol color so that areas with intense activity show up as darker on the map, rather than simply masking one another.

The data uses the number -9999 to indicate no data. I replace these entries with NA. I then construct a correlation matrix, which helps me to see the relationships between variables:

xdata[xdata == -9999] <- NA
round( cor(xdata[,c(7:20)], use='pairwise.complete.obs'), 2 )
##                HOOKS_SET HOOKS_BETW LIGHT_STIC MAINLINE_S GANGION_LE FLOATLINE_
## HOOKS_SET           1.00       0.07      -0.24       0.28      -0.18      -0.15
## HOOKS_BETW          0.07       1.00      -0.08       0.00       0.04       0.06
## LIGHT_STIC         -0.24      -0.08       1.00       0.01       0.03      -0.03
## MAINLINE_S          0.28       0.00       0.01       1.00       0.06       0.00
## GANGION_LE         -0.18       0.04       0.03       0.06       1.00       0.45
## FLOATLINE_         -0.15       0.06      -0.03       0.00       0.45       1.00
## BAIT               -0.11      -0.04       0.27      -0.07      -0.14      -0.17
## SST                -0.18       0.00      -0.09      -0.01       0.11       0.08
## TKE                -0.18       0.00      -0.02      -0.15      -0.11      -0.07
## Bathy              -0.22       0.04       0.02      -0.21      -0.04      -0.03
## AMO                 0.27       0.00      -0.02       0.03      -0.25      -0.32
## NAO                -0.19      -0.02       0.04      -0.01       0.16       0.18
## WNAO               -0.16      -0.01       0.05      -0.01       0.10       0.11
## CHLA_AQUA_8DAY      0.03       0.19      -0.06      -0.15      -0.13      -0.05
##                 BAIT   SST   TKE Bathy   AMO   NAO  WNAO CHLA_AQUA_8DAY
## HOOKS_SET      -0.11 -0.18 -0.18 -0.22  0.27 -0.19 -0.16           0.03
## HOOKS_BETW     -0.04  0.00  0.00  0.04  0.00 -0.02 -0.01           0.19
## LIGHT_STIC      0.27 -0.09 -0.02  0.02 -0.02  0.04  0.05          -0.06
## MAINLINE_S     -0.07 -0.01 -0.15 -0.21  0.03 -0.01 -0.01          -0.15
## GANGION_LE     -0.14  0.11 -0.11 -0.04 -0.25  0.16  0.10          -0.13
## FLOATLINE_     -0.17  0.08 -0.07 -0.03 -0.32  0.18  0.11          -0.05
## BAIT            1.00 -0.10  0.05  0.04  0.07 -0.08 -0.04           0.00
## SST            -0.10  1.00  0.13  0.03  0.02 -0.03 -0.03          -0.26
## TKE             0.05  0.13  1.00  0.07 -0.02 -0.02 -0.01          -0.01
## Bathy           0.04  0.03  0.07  1.00  0.03  0.00  0.00           0.19
## AMO             0.07  0.02 -0.02  0.03  1.00 -0.42 -0.31           0.03
## NAO            -0.08 -0.03 -0.02  0.00 -0.42  1.00  0.48          -0.01
## WNAO           -0.04 -0.03 -0.01  0.00 -0.31  0.48  1.00           0.03
## CHLA_AQUA_8DAY  0.00 -0.26 -0.01  0.19  0.03 -0.01  0.03           1.00

Exploratory data analysis (EDA)

I start by looking for structure in the data. The function cor( ydata ) produces a matrix of correlations between all pairwise columns in ydata. Here is correlation structure in the responses:

cory <- cor(ydata)                      # species correlation
corrplot( cory , type='lower',diag=F)   # generate plot
*Pairwise correlations between species in longline catch.*

Pairwise correlations between species in longline catch.

Clearly, there are few large correlations between species. Here is a cluster analysis using the hierarchical clustering function hclust and related functions in package dendextend. The cluster analysis finds the species that tend to be caught together (on the same land line):

dsigma <- as.dist( cov2Dist(cory) )              # correlation to distance
yclust <- hclust(dsigma, method='complete')      # generate clusters
dend   <- as.dendrogram(yclust)                  # generate dendrogram
dend   <- color_branches(dend, k=3)
dend   <- hang.dendrogram(dend, hang_height=0.1) 
dend   <- set(dend, "labels_cex", 0.5)
plot(dend, horiz =  TRUE,  nodePar = list(cex = .007))
*Cluster analysis of longline catch.*

Cluster analysis of longline catch.

Here are trends through time for swordfish. I plot abundance on the square root scale to improve visibility of low values. The spline function shows the general trend:

y <- sqrt( ydata[,'Swordfish'] )
plot(jitter( xdata$Year ), y, cex=.2, xlab='Year', ylab='sqrt Catch', 
     col = .getColor('brown',.03), ylim = c(0, 8) )
ymode <- tapply( y, xdata$Year, quantile, .5, na.rm = T )
lines( as.numeric( names(ymode) ), ymode, lwd = 5, col='white')
lines( as.numeric( names(ymode) ), ymode, lwd = 2)
*Catch trends for swordfish on the square-root scale with spline trend.*

Catch trends for swordfish on the square-root scale with spline trend.

Here is catch effort, gauged as number of hooks set:

plot(jitter( xdata$Year ), xdata$HOOKS_SET, cex=.2, 
     xlab='Year',ylab='Hooks set', log='y', ylim = c(100, 2000), 
     col = .getColor('brown',.03))
hooks <- tapply( xdata$HOOKS_SET, xdata$Year, quantile, .5, na.rm = T )
lines( as.numeric( names(hooks) ), hooks,lwd=5,col='white')
lines( as.numeric( names(hooks) ), hooks, lwd = 2)
*Trends in effort.*

Trends in effort.

Here is catch per effort (CPE):

y <- ydata[,'Swordfish']/xdata$HOOKS_SET 
plot(jitter( xdata$Year ), y, cex=.2, log='y', ylim = c(.002, .1), 
     xlab='Year',ylab='Catch/Hook', col = .getColor('brown',.03))
## Warning in xy.coords(x, y, xlabel, ylabel, log): 61750 y values <= 0 omitted
## from logarithmic plot
ymode <- tapply( y, xdata$Year, quantile, .5, na.rm = T )
lines( as.numeric( names(ymode) ), ymode, lwd = 5, col='white' )
lines( as.numeric( names(ymode) ), ymode,  lwd = 2)
*Trends in CPE*

Trends in CPE

So despite the fact that the catch does not show a clear trend, the effort has increased and the CPE has therefore declined.

Here is a map of changing catch location

years <- sort(unique(xdata$Year))                         # all years in data
nyr   <- length(years)                                    # no. of years
ycol  <- round(quantile(years, c(0, .33, .67, 1)))        # four intervals

colors <- c('blue','green','orange','brown')              # color gradient
cf     <- colorRampPalette(colors)(nyr)                   # symbol size and color by CPE
size   <- y/max(y)
colr   <- cf[match(xdata$Year, years)]

maps::map(xlim=c(-110,-30), ylim=c(7,55), fill=T, col='wheat')
points(lonLat[,1],lonLat[,2], cex = size^.5, col = colr)
legend('topleft',legend=c(ycol), text.col=colors)
*Spatial trends in CPE*

Spatial trends in CPE

For next time

  1. Modifying the code here, select four species to analyze for the time trend and the mapped changes in distribution. Referring back to the discussion, show evidence that agrees or not with interpretations in papers we discussed last time. Consider the catch distribution you see from these data, including its distribution in time and space, effort, and catch per effort. We will discuss these results in class as basis for a new set of experiments to sharpen our evidence for effects discussed previous papers.

  2. From NOAA’s list of endangered species, under Species category search for Fish and sharks. Which of the species here might you find for sale in a market here and why?

In advance of next class, place a summary of findings on Sakai dropbox, which can include graphics and interpretations.