Matching the sampling frame for FAO area 27 (Northeast Atlantic) with ICES assessments.
Date: 2017-08-16
Institutions: Joint Research Centre
Subjects: Atlantic Ocean, FAO, common fisheries policy, conservation of fish stocks, evaluation of resources, fisheries policy, fishery management, fishery research, fishery resources, research report

Matching the sampling frame for FAO
area 27 (Northeast Atlantic) with
ICES assessments

Finlay Scott, Maurizio Gibin,
Paris Vasilakopoulos, Ernesto Jardim

2017

EUR 28542 EN

JRC TECHNICAL REPORTS Report EUR xxxxx EN20xx      Forename(s) Surname(s) First subtitle line first line Second subtitle line second Third subtitle line third line First Main Title Line First Line Second Main Title Line Second Line Third Main Title Line Third Line This publication is a Technical report by the Joint Research Centre (JRC), the European Commission’s science 
and knowledge service. It aims to provide evidence-based scientific support to the European policymaking 
process. The scientific output expressed does not imply a policy position of the European Commission. Neither 
the European Commission nor any person acting on behalf of the Commission is responsible for the use that 
might be made of this publication. 

Contact information  
Name: Finlay Scott 
Address: Joint Research Centre, Via Enrico Fermi 2749, TP 051, 21027 Ispra (VA), Italy 
Email: finlay.scott@jrc.ec.europa.eu 
Tel.: +39 0332 9610 

JRC Science Hub 
https://ec.europa.eu/jrc 

JRC106115 

EUR 28542 EN 

PDF 

ISBN 978-92-79-67437-2 

ISSN 1831-9424 

doi:10.2760/818883 

Luxembourg: Publications Office of the European Union, 2017 

© European Union, 2017 

Reuse is authorised provided the source is acknowledged. The reuse policy of European Commission documents 
is regulated by Decision 2011/833/EU (OJ L 330, 14.12.2011, p. 39). 

For any use or reproduction of photos or other material that is not under the EU copyright, permission must be 
sought directly from the copyright holders. 

How to cite this report: Finlay Scott, Maurizio Gibin, Paris Vasilakopoulos, Ernesto Jardim, Matching the 
sampling frame for FAO area 27 (Northeast Atlantic) with ICES assessments, EUR 28542 EN, Publications Office 
of the European Union, Luxembourg, 2017, ISBN 978-92-79-67437-2, doi:10.2760/818883, JRC106115. 

All images © European Union 2017 

Abstract 
Matching the sampling frame for FAO area 27 (Northeast Atlantic) with ICES assessments 
This document describes the matching of the CFP indicators sampling frame for FAO area 27 (Northeast 
Atlantic) with ICES assessments. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
Contents

Abstract ............................................................................................................. 1

1. Introduction ................................................................................................. 2

2. ICES areas and rectangles ............................................................................. 3

3. ICES assessment data ................................................................................... 5

3.1. Compilation of the ICES dataset................................................................. 5

3.2. Pre-processing of the ICES dataset............................................................. 6

4. The TAC sampling frame ................................................................................ 8

5. Pre-merge checks ......................................................................................... 9

5.1. Checking the areas .................................................................................. 9

5.1.1. Area 27.3.A ....................................................................................... 9

5.1.2. Area 27.3.22 ...................................................................................... 10

5.2. Checking the species codes ....................................................................... 10

5.2.1. ICES assessment species not found in the sampling frame ....................... 10

5.2.2. Sampling frame species not found in the ICES assessments...................... 12

6. Merging....................................................................................................... 16

6.1. Merging the ICES assessment with the ICES rectangles................................. 16

6.2. Merging the sampling frame with the ICES rectangles ................................... 16

6.3. Merging the sampling frame with the assessment data.................................. 16

7. Analysis ...................................................................................................... 18

8. Differences in stocks with last years analysis .................................................... 21

9. Conclusions ................................................................................................. 22

References ......................................................................................................... 23

List of abbreviations and definitions ....................................................................... 24

List of tables ....................................................................................................... 25

Abstract

In this document the FMZs in the CFP sampling frame for FAO area 27 (Northeast Atlantic)
are matched to the corresponding ICES stock assessment. The matching is performed
through the ICES rectangles that make up the FMZs and stock assessment areas. Some
TACs are matched to multiple assessments and some TACs are not matched to any assess-
ments. The matching is peformed by the R code that is embedded in the document.

1

1. Introduction

The CFP indicators sampling frame for FAO area 27 has already been generated (Scott et al.,
2017). In this document the FMZs in the sampling frame are matched to the corresponding
ICES stock assessment. To perform the match, the ICES areas that make up the FMZs
and the ICES stock assessments are expanded to their constituent ICES rectangles. The
TACs and the ICES assessments are then matched by the constituent ICES rectangles and
species.

This approach requires the FMZs and the ICES assessments to be mapped to ICES areas.
For the FMZs, the mapping to ICES areas is not perfect and an ICES area may feature in
more than one FMZ.

2

2. ICES areas and rectangles

Each ICES area is made up of ICES rectangles. These rectangles are used to merge the
sampling frame and ICES assessment data sets. In this section the data set that describes
the rectangles that make up each area is loaded and cleaned.

library(rgdal)
# Load the ICES rectangles data
rectangles <- readOGR("../data/ICES_Areas", layer=

"ICES_StatRec_map_Areas_Full_20170124")

## OGR data source with driver: ESRI Shapefile
## Source: "../data/ICES_Areas", layer: "ICES_StatRec_map_Areas_Full_20170124"
## with 11074 features
## It has 17 fields

# Pull out the data element
rectangles <- rectangles@data
# The rectangles column is called ICESNAME
# We change it to something more helpful
colnames(rectangles)[colnames(rectangles)=="ICESNAME"] <- "Rectangle"
# And force it to be a character
rectangles$Rectangle <- as.character(rectangles$Rectangle)
rectangles$Area_27 <- as.character(rectangles$Area_27)
rectangles$AreasList <- as.character(rectangles$AreasList)
#rectangles$Max_Area <- as.character(rectangles$Max_Area)
#rectangles$Area_List <- as.character(rectangles$Area_List)
# Rename columns
colnames(rectangles)[colnames(rectangles) %in% c("Area_27", "AreasList")] <-

c("Max_Area","Area_List")

# Keep only columns of interest
rectangles <- rectangles[,c("Max_Area", "Area_List", "Rectangle")]

Due to the way ICES areas are defined, the rectangles may exist in more than one area,
for example if the rectangles are on the borders of multiple areas. The analysis here is
based on each rectangle being allocated to a single ICES area. The allocated area is the
area that contains the majority of the rectangle. This information is stored in the column
Max_Area. This column needs some cleaning to make it compatible with the other data
sets.

# There are some NAs in the max_area column.
# These have no areas so remove them - they intefere with merging
rectangles <- subset(rectangles, !is.na(Max_Area))
# A new column is added based on Max_Area so that it is comparable
# across the other data sets
rectangles$Area <- paste("27.",toupper(as.character(rectangles$Max_Area)),sep="")

We expect each rectangle to only feature in a single area, i.e. the rectangle is unique in

the ICES rectangles data set.

# Check that each rectangle is unique and only appears once in the data
# i.e. each rectangle is uniquely assigned to one area
length(unique(rectangles$Rectangle)) == nrow(rectangles)

## [1] TRUE

As an example, we show the rectangles that make up the ICES area 27.7.D area. The
Rectangle column stores the ICES rectangles, the Area column stores the ICES area that
contains the majority of that rectangle and the Area_List column stores all of the ICES
areas that feature that rectangle. Note that several rectangles actually feature in two areas
(e.g. 27E8 has 7.d and 7.e in the Area_List column). However, as mentioned above, each
rectangle is allocated to a single area (the Area column) that contains the largest part of
the rectangle.

3

subset(rectangles, Area=="27.7.D")[,c("Rectangle","Area","Area_List")]

##
## 3319
## 3320
## 3321
## 3386
## 3387
## 3388
## 3389
## 3453
## 3454
## 3455
## 3456
## 3524
## 3525
## 3526
## 3595

Rectangle

28E8 27.7.D
29E8 27.7.D
30E8 27.7.D
27E9 27.7.D
28E9 27.7.D
29E9 27.7.D
30E9 27.7.D
27F0 27.7.D
28F0 27.7.D
29F0 27.7.D
30F0 27.7.D
28F1 27.7.D
29F1 27.7.D
30F1 27.7.D
30F2 27.7.D

Area Area_List
7.d, 7.e
7.d, 7.e
7.d, 7.e
7.d
7.d
7.d
7.d
7.d
7.d
7.d
7.d
7.d
7.d
7.d
7.d

4

3. ICES assessment data

3.1 Compilation of the ICES dataset

Stock assessment data for all ICES stocks assessed in years 2013, 2014, 2015 and 2016
were extracted from http://standardgraphs.ices.dk/stockList.aspx. For stocks assessed in
more than one of these years, only the most recent assessment was retained. In addition,
the following stocks were removed:

(cid:136) bss-47 assessed in 2014, because it was also assessed in 2016 as Bss-47.

(cid:136) had-34 and had-scow assessed in 2013, because they were merged in 2016 (had-

346a).

(cid:136) her-irlw and her-vian assessed in 2014, because they were merged in 2016 (her-

67bc).

(cid:136) Nop-34-june assessed in 2014, because it was also assessed in 2016 as nop-34-oct.

(cid:136) her-31 assessed in 2015, because it was also assessed in 2016 as Her-31.

Stock Category and EcoRegion were not included in the ICES dataset, so these were
added manually after consulting ICES. Only stocks of Category 1-3 were relevant to the
analysis, hence stocks of Categories 4-6 were identified and removed.

’

’

../../data/ices/2017/ICES_stks_fromGraphs_17.02.csv

#file containing stock assessment data
stks<-read.csv(
#remove stocks of category 4+
stks<-stks[!stks$FishStock%in% c("alf-comb","bli-oth","hom-nsea",
"nep-10","nep-34","rjh-7afg","bss-8c9a","bss-wosi","Nep-32","nep-33","nep-5",
"nep-oth-6a","nep-oth-7", "ory-comb","pan-flad","ple-7b-c","ple-89a","pol-89a",
"pol-nsea","raj-89a","raj-celt","rhg-nea","rjb-34","rjb-89a","rjc-echw",
"rje-ech","rjf-celt","rjh-4aVI","rjh-4c7d","rjh-7e","rji-celt","rng-1012",
"rng-kask","rng-oth","san-ns5","san-ns6","san-ns7","sbr-678","sbr-x",
"sol-7b-c","spr-celt","usk-mar","usk-rock","whg-89a"),]
stks$FishStock<-droplevels(stks$FishStock)
nlevels(stks$FishStock)#176 stocks retained

, header=TRUE)

## [1] 176

#A file containing only FishStock, Category (1-3) and Ecoregion information
#was merged with the graphs dataset
stks2<-read.csv(
stks3<-merge(stks,stks2,by="FishStock")

../../data/ices/2017/ICES_Cat&Eco.csv

, header=TRUE)

’

’

The polished ICES dataset contained 147 stocks assessed in 2016, 28 stocks assessed
in 2015, and 1 stock assessed in 2014. 91 stocks were Category 1, 2 stocks were Category
2 and 83 stocks were Category 3.

stks16<-stks[stks$AssessmentYear == "2016",]
stks16$FishStock<-droplevels(stks16$FishStock)
nlevels(stks16$FishStock)

## [1] 147

stks15<-stks[stks$AssessmentYear == "2015",]
stks15$FishStock<-droplevels(stks15$FishStock)
nlevels(stks15$FishStock)

## [1] 28

stks14<-stks[stks$AssessmentYear == "2014",]
stks14$FishStock<-droplevels(stks14$FishStock)
nlevels(stks14$FishStock)

5

## [1] 1

stksc1<-stks3[stks3$Category == "1",]
stksc1$FishStock<-droplevels(stksc1$FishStock)
nlevels(stksc1$FishStock)

## [1] 91

stksc2<-stks3[stks3$Category == "2",]
stksc2$FishStock<-droplevels(stksc2$FishStock)
nlevels(stksc2$FishStock)

## [1] 2

stksc3<-stks3[stks3$Category == "3",]
stksc3$FishStock<-droplevels(stksc3$FishStock)
nlevels(stksc3$FishStock)

## [1] 83

#write.csv(stks3, "ICESstks_polished_v2.csv")

These data were compared with the respective data available at the online summary
sheets to ensure consistency. Some data were found to be placed in wrong columns; i.e.
some stock size, fishing pressure and reference points data were placed in custom columns,
rather than their dedicated columns. These were manually added to the correct columns.
Also, stock size and fishing pressure descriptions and their respective units were found to
be wrong for many stocks. These were also manually corrected based on the information
available at the online summary sheets.

A detailed description of the compilation process for the ICES assessment dataset, in-
cluding a list of all the corrections carried out, can be found in the dedicated "Compilation
of the ICES dataset" report.

3.2 Pre-processing of the ICES dataset

We load and tidy the assessment data.

library(reshape2)
ass <- read.csv("../../data/ices/2017/ICESstks_polished_v2.csv",

stringsAsFactors=FALSE)

# Check category column
cols <- c("FishStock","ICES.Areas..splited.with.character....." , "SpeciesName",

"SGName", "Category", "EcoRegion")

ass <- ass[,cols]
colnames(ass)[colnames(ass) == "ICES.Areas..splited.with.character....."] <- "Areas"
# Drop duplicates
ass <- unique(ass)
# Remove white space and any capital letters from assessment name
ass[,"FishStock"] <- tolower(gsub("\\s", "", ass[,"FishStock"]))
# Make a species column from the assessment name
spp <- strsplit(ass[,"FishStock"], "-")
ass$Species <- toupper(unlist(lapply(spp, function(x) x[1])))
# Split ICES area by ~
areas <- strsplit(ass[,"Areas"], "~")
names(areas) <- ass[,"FishStock"]
areas <- melt(areas)
colnames(areas) <- c("Area","FishStock")
big_ass <- merge(ass, areas)
big_ass <- big_ass[,c("FishStock","Area", "Species", "SpeciesName", "SGName",

"Category", "EcoRegion")]

big_ass[,"Area"] <- toupper(gsub("\\s", "", big_ass[,"Area"]))

6

It should be noted that the same ICES area can feature in multiple assessments of the
same species. For example, the ICES area 27.4.B appears in several different species SAN
(sandeel) assessments.

subset(big_ass, Area == "27.4.B" & Species == "SAN")[,c("FishStock","Area")]

##
## 925
## 927
## 931
## 933

FishStock

Area
san-ns1 27.4.B
san-ns2 27.4.B
san-ns3 27.4.B
san-ns4 27.4.B

The stock assessments are attributed to an ecoregion:

unique(big_ass$EcoRegion)

## [1] "Bay of Biscay and the Iberian Coast"
## [2] "Iceland Sea and Greenland Sea"
## [3] "Widely distributed"
## [4] "Baltic Sea"
## [5] "Greater North Sea"
## [6] "Barents Sea and Norwegian Sea"
## [7] "Celtic Seas"
## [8] "Faroes"
## [9] "Azores"

We need to remove stock assessments that are in areas outside of the EU:

big_ass <- subset(big_ass, !(EcoRegion %in% c("Iceland Sea and Greenland Sea",

"Barents Sea and Norwegian Sea", "Faroes")))

We also remove her-noss which is a widely distributed species:

big_ass <- subset(big_ass, FishStock!="her-noss")

We remove category 3 stocks (but make a copy first):

big_ass3 <- big_ass
big_ass <- subset(big_ass, Category != 3)

7

4. The TAC sampling frame

We load the already created sampling frame data.

load("../../neaSampFrame/report/sframe.RData")
# fmz is the frame of all TACs
# For consistency
colnames(fmz)[colnames(fmz) == "area"] <- "Area"
colnames(fmz)[colnames(fmz) == "spp"] <- "Species"
colnames(fmz)[colnames(fmz) == "stock_id"] <- "TAC_id"

We subset the sampling frame TACs from the FMZ file

sframe <- subset(fmz, TAC_id %in% sframe_TAC)

Each FMZ area can exist over multiple ICES areas. These constituent ICES areas can
be of different scales e.g. ICES division, subdivision or subunit. To merge with the ICES
rectangles we want the smallest scale possible for each constituent area. This is contained
in the Area column.

For example, the two ICES areas that make up the stock code PLE/7DE (plaice in the

English Channel) can be seen here. The smallest scale for the areas is the ICES division.

subset(sframe, TAC_id=="PLE/7DE.")[, c("TAC_id","fmz_id","f_subarea","f_division",

"f_subdivis","f_subunit","Area")]

##
TAC_id
## 1162 PLE/7DE. 27000489
## 1164 PLE/7DE. 27000489

fmz_id f_subarea f_division f_subdivis f_subunit
27.7.E
27.7.D

Area
<NA> 27.7.E
<NA> 27.7.D

27.7
27.7

<NA>
<NA>

Given their different spatial characteristics, the same ICES area can feature in multiple
FMZ areas, even for the same species. For example, the area 27.2.A.2 features in many
different FMZs including 3 MAC FMZs.

# Area appears in multiple TACs
unique(subset(sframe, Area=="27.2.A.2")$TAC_id)

"POK/2A34."

[1] "MAC/2A34."
"MAC/2A4A-N" "MAC/2CX14-" "HER/2A47DX"
##
[6] "D/F/2AC4-C" "T/B/2AC4-C" "ANF/2AC4-C" "DGS/2AC4-C" "SPR/2AC4-C"
##
"PRA/2AC4-C" "L/W/2AC4-C" "LEZ/2AC4-C" "SRX/2AC4-C"
## [11] "SOL/24-C."
"HAD/2AC4."
"WHB/24A567"
## [16] "NEP/2AC4-C" "HKE/2AC4-C" "WHG/2AC4."
"OTH/2A46AN" "WHB/2A4AXF"
## [21] "COD/2A3AX4" "PLE/2A3AX4" "WHB/24-N."
"GHL/2A-C46" "GFB/1234-"
## [26] "WHB/1X14"
"BSF/1234-"
"SAN/2A3A4." "NOP/2A3A4." "ORY/1CX14"
## [31] "RTX/124-"

"BLI/24-"
"JAX/2A-14"

# And for same the species, e.g.
subset(sframe, Area=="27.2.A.2" & Species =="MAC")[, c("TAC_id","fmz_id","f_subarea",

MAC

"f_division", "f_subdivis","f_subunit","Area")]

TAC_id

##
## 260
MAC/2A34. 27000014
## 289 MAC/2A4A-N 27000021
## 321 MAC/2CX14- 27000038

fmz_id f_subarea f_division f_subdivis f_subunit
27.2.A
27.2.A
27.2.A

27.2.A.2
27.2.A.2
27.2.A.2

Area
<NA> 27.2.A.2
<NA> 27.2.A.2
<NA> 27.2.A.2

27.2
27.2
27.2

Each ICES area should only appear once for each FMZ stock (to prevent the appearance
of duplicate rectangles when merging with the ICES rectangle data later). We check this
here:

library(plyr)
unarea <- daply(sframe, .(TAC_id), function(x){
return(length(unique(x$Area))==nrow(x))

})
all(unarea)

## [1] TRUE

8

5. Pre-merge checks

Before the sampling frame can be matched to the ICES assesment data it is necessary to
check that the species and area codes are consistent between the data sets.

5.1 Checking the areas

It is necessary that the areas in the ICES assessment data, the TAC sampling frame and
the ICES rectangles data set have common names. Unfortunately, this is not the case:

# Areas in ICES assessment but missing in rectangles
unique(big_ass$Area)[!(unique(big_ass$Area) %in% unique(rectangles$Area))]

## [1] "27.3.A" "21.1"

"21.2"

# Areas in FMZ but missing in rectangles
unique(sframe$Area)[!(unique(sframe$Area) %in% unique(rectangles$Area))]

##
##

[1] "27.3.23" "27.3.22" "27.3.A"
[8] "34.1.11" "34.1.12" "34.2"

"21.1.F"

"21.3.M"

"34.1.2"

"34.1.13"

The areas 21.x and 34.x are from FMZs that have ICES areas in area 27 as well either
area 21 and area 34. The rectangles data only includes FAO Area 27. This means that
areas 21.x and 34.x will be dropped when merging later (just the areas, not the TACs).

5.1.1 Area 27.3.A

The area 27.3.A.X is reported differently in the data sets. The different ways the areas are
reported can be seen here:

# In the ICES rectangles data
rect273A <- sort(unique(rectangles[grepl("27.3.A", rectangles$Area),"Area"]))
rect273A

## [1] "27.3.A.20" "27.3.A.21"

# In the ICES assessment data
ices273A <- sort(unique(big_ass[grepl("27.3.A", big_ass$Area),"Area"]))
ices273A

## [1] "27.3.A"

# In the FMZ assessment data
sf273A <- sort(unique(sframe[grepl("27.3.A", sframe$Area),"Area"]))
sf273A

## [1] "27.3.A"

The areas 27.3.A.20 and 27.3.A.21 are the Skagerrak and Kattegat respectively. To-

gether they make up 27.3.A. They each have different constituent rectangles.

# 27.3.A.20 has different ICES rectangles to 27.3.A.21
subset(rectangles, Area=="27.3.A.20")$Rectangle

##
[1] "44F7" "45F7" "43F8" "44F8" "45F8" "46F8" "43F9" "44F9" "45F9" "46F9"
## [11] "47F9" "48F9" "44G0" "45G0" "46G0" "47G0" "48G0" "44G1" "45G1" "46G1"
## [21] "47G1" "44G2"

subset(rectangles, Area=="27.3.A.21")$Rectangle

## [1] "42G0" "43G0" "41G1" "42G1" "43G1" "41G2" "42G2" "43G2"

The two areas are reported as a single area, 27.3.A, in the ICES assessment data and
TAC sampling frame. This means that the two areas can be combined in the ICES rectangles
data to give a single area that contains all of the rectangles. We do this by renaming them.

9

rectangles[rectangles$Area == "27.3.A.20","Area"] <- "27.3.A"
rectangles[rectangles$Area == "27.3.A.21","Area"] <- "27.3.A"

5.1.2 Area 27.3.22

The areas 27.3.C.22 and 27.3.B.23 in the ICES rectangles and assessment data sets are
reported as 27.3.22 and 27.3.23 in the TAC sampling frame. This is straightforward to fix
by renaming the areas in all data sets to 27.3.C and 27.3.B.

rectangles[rectangles$Area == "27.3.B.23","Area"] <- "27.3.B"
rectangles[rectangles$Area == "27.3.C.22","Area"] <- "27.3.C"
big_ass[big_ass$Area == "27.3.B.23","Area"] <- "27.3.B"
big_ass[big_ass$Area == "27.3.C.22","Area"] <- "27.3.C"
sframe[sframe$Area == "27.3.23","Area"] <- "27.3.B"
sframe[sframe$Area == "27.3.22","Area"] <- "27.3.C"

We run the area check again.

# Areas in ICES assessment but missing in rectangles
unique(big_ass$Area)[!(unique(big_ass$Area) %in% unique(rectangles$Area))]

## [1] "21.1" "21.2"

# Areas in FMZ but missing in rectangles
unique(sframe$Area)[!(unique(sframe$Area) %in% unique(rectangles$Area))]

## [1] "21.1.F"

"21.3.M"

"34.1.2"

"34.1.13" "34.1.11" "34.1.12" "34.2"

Only areas 21 and 34 remain which is OK.

5.2 Checking the species codes

Later in the analysis we merge the TAC sampling frame data and the ICES assessment data
by species code and ICES rectangle. It is necessary for the assessment data and the TAC
sampling frame to have a common set of species codes. Where species exist on one data
set but not in the other it is necessary to understand why.

5.2.1 ICES assessment species not found in the sampling frame

Here we check which species that feature in the assessment data that do not feature in the
TAC data.

# Assessment species not found in SF
sp_no_tac <- sort(unique(big_ass$Species)[!(unique(big_ass$Species) %in%

unique(sframe$Species))])

sp_no_tac

[1] "ANB" "ANP" "BSS" "HOM" "MEG" "MGB" "MGW" "PAN" "RNG" "SAI" "SAR"

##
## [12] "SMN"

There are several reasons why a species code in the ICES assessment data is not found

in the sampling frame:

(cid:136) The assessed species has a TAC but has different names in the data sets;

(cid:136) The assessed species does not have a TAC but the genus does have a TAC;

(cid:136) The assessed species is a special condition subspecies of a parent TAC in the full TAC
definitions table (special conditions have been dropped from the sampling frame);

(cid:136) The assessed species does not have a TAC or has a TAC outside of the areas of interest.

10

In the first case, the species codes used in the data sets are different. These include
boarfish, horse mackerel, Northern shrimp and saithe. This can be fixed by changing the
species code in the ICES assessment data set.

# Horse mackerel
big_ass[big_ass$Species=="HOM","Species"] <- "JAX"
# Northern shrimp
big_ass[big_ass$Species=="PAN","Species"] <- "PRA"
# Saithe
big_ass[big_ass$Species=="SAI","Species"] <- "POK"
# Update missing species
sp_no_fmz <- sort(unique(big_ass$Species)[!(unique(big_ass$Species) %in%

unique(sframe$Species))])

sp_no_fmz

## [1] "ANB" "ANP" "BSS" "MEG" "MGB" "MGW" "RNG" "SAR" "SMN"

In the second case, the species codes used in the TAC sampling frame set are at the
genus level, not the species level. These include anglerfish, megrim and red fish. The
species codes in the assessment data set are changed to the genus code used by the
sampling frame.

# ANB, ANP - Anglerfish - species to genus
big_ass[big_ass$Species=="ANB","Species"] <- "ANF" # black bellied anglerfish
big_ass[big_ass$Species=="ANP","Species"] <- "ANF" # white anglerfish
# Megrim - species and genus to genus
big_ass[big_ass$Species=="MEG","Species"] <- "LEZ" # sp.
big_ass[big_ass$Species=="MGB","Species"] <- "LEZ" # 4 spot
big_ass[big_ass$Species=="MGW","Species"] <- "LEZ" # whiff.
# Golden redfish - species to genus (Sebastes Species.)
big_ass[big_ass$Species=="SMR","Species"] <- "RED" # Sebastes norvegicus
big_ass[big_ass$Species=="SMN","Species"] <- "RED" # Sebastes mentella
# Update missing species
sp_no_fmz <- sort(unique(big_ass$Species)[!(unique(big_ass$Species) %in%

unique(sframe$Species))])

sp_no_fmz

## [1] "BSS" "RED" "RNG" "SAR"

#unique(subset(big_ass, Species %in% sp_no_fmz)[,c("Species","SpeciesName")])

The third case, with special conditions, needs closer inspection. The species in question
is roundnose grenadier, RNG. In the TAC definitions, RNG features as a main stock outside of
the areas of interest (in REG-NAFO and REG-NEAFC) and as a subspecies special condition
of the parent stock RTX in the areas of interest. The parent stock RTX is a combination of
RNG and RHG species.

unique(subset(speccond, Main.Stock.Species.Code == "RTX")[,c("Species.Code")])

## [1] "RHG" "RNG"

This means that the RTX TAC is at least partially assessed through the assessment for
the subspecies RNG. To account for this we change the name of RNG in the assessment
data to RTX.

big_ass[big_ass$Species=="RNG","Species"] <- "RTX"
# Update missing species
sp_no_fmz <- sort(unique(big_ass$Species)[!(unique(big_ass$Species) %in%

unique(sframe$Species))])

sp_no_fmz

## [1] "BSS" "RED" "SAR"

11

Some species do exist in the full list of TACs but not in the areas or groups that we are
interested in. Here, redfish (RED, the genus, not a species, that was corrected above) does
not feature in the ICES areas III, IV, VI, VII. VIII and IX and so has been dropped from the
sampling frame.

unique(subset(fmz, Species=="RED")[,c("Species","f_subarea")])

##
## 92
## 1461
## 1467
## 1506
## 2709
## 2711

Species f_subarea
<NA>
27.1
27.2
27.5
27.12
27.14

RED
RED
RED
RED
RED
RED

# NA in f_subarea means that it is not in Area 27

Finally, there are some assessed species that do not feature at all in the list of TAC FMZs.
These include sea bass (BSS) and sardine (SAR, although the code PIL is used by the EC).

5.2.2 Sampling frame species not found in the ICES assessments

We also need to know what species we have in the sampling frame that do not feature in
the assessment:

sp_no_ass <- sort(unique(sframe$Species)[!(unique(sframe$Species) %in%

unique(big_ass$Species))])

sp_no_ass

[1] "ALF" "ARU" "BOR" "BSF" "D"

##
## [12] "OTH" "POL" "SBR" "SOO" "SRX" "T"

"USK"

"DWS" "GFB" "GHL" "L"

"LIN" "ORY"

OTH is other species. There is no assessment for this.
D, L and T are from grouped TACs (the codes come from the code manipulation per-
formed earlier). The species code D is actually D/F, a grouped TAC of dab and flounder (for
example, DAB/2AC4-C and FLE/2AC4-C). Individually, they are special conditions.

speccond[grepl("D/F", speccond$main_TAC_id),c("main_TAC_id","TAC_id")]

##
## 36
## 37

main_TAC_id

TAC_id
D/F/2AC4-C DAB/2AC4-C
D/F/2AC4-C FLE/2AC4-C

We need to include the assessments of individual stocks that make up the grouped TACs.
However, here these stocks are category 3 and are not considered when matching with the
stock assessment data:

unique(subset(big_ass3, Species=="FLE")[,c("FishStock","Species","Category")])

##
## 350
## 352
## 354
## 356

FishStock Species Category
3
3
3
3

fle-2223
fle-2425
fle-2628
fle-2732

FLE
FLE
FLE
FLE

unique(subset(big_ass3, Species=="DAB")[,c("FishStock","Species","Category")])

##
## 269
## 281

FishStock Species Category
3
3

dab-2232
dab-nsea

DAB
DAB

Similarly, L is actually, L/W, a grouped TAC of lemon sole and witch flounder with the

individual TACs being special conditions:

12

speccond[grepl("L/W", speccond$main_TAC_id),c("main_TAC_id","TAC_id")]

##
## 88
## 278

main_TAC_id

TAC_id
L/W/2AC4-C LEM/2AC4-C
L/W/2AC4-C WIT/2AC4-C

Again, these stocks are category 3:

unique(subset(big_ass3, Species=="LEM")[,c("FishStock","Species","Category")])

##
## 583

FishStock Species Category
3

lem-nsea

LEM

unique(subset(big_ass3, Species=="WIT")[,c("FishStock","Species","Category")])

##
## 1282

FishStock Species Category
3

wit-nsea

WIT

Finally, T is turbot which has a joint TAC with brill.

speccond[grepl("T/B", speccond$main_TAC_id),c("main_TAC_id","TAC_id")]

##
## 11
## 268

main_TAC_id

TAC_id
T/B/2AC4-C BLL/2AC4-C
T/B/2AC4-C TUR/2AC4-C

These stocks are also category 3:

unique(subset(big_ass3, Species=="TUR")[,c("FishStock","Species","Category")])

##
## 1143
## 1155
## 1156

FishStock Species Category
3
3
3

tur-2232
tur-kask
tur-nsea

TUR
TUR
TUR

unique(subset(big_ass3, Species=="BLL")[,c("FishStock","Species","Category")])

##
## 108
## 120

FishStock Species Category
3
3

bll-2232
bll-nsea

BLL
BLL

Of the other species, BOR (boarfish, BOC in the assessment data), ARU (Greater silver
smelt, ARG in the assessment data), BSF (black scabbard fish), USK (tusk), LIN (tusk),
and GFB (greater forkbeard) are category 3 stocks and are therefore not considered when
matching the data.

Some of the other species are stocks that are less than category 3 and so do not feature
in the assessment data that was read in above: ALF (Alfonsinus nei) is category 5, ORY
(orange roughy) is category 6, POL (pollack) has categories 4 and 5, depending on the
stock, and SBR (Blackspot(=red) seabream) has categories 3 and 6, depending on the
stock (all categories are according to advice sheets on the ICES website).

unique(subset(big_ass3, Species %in% c("ARG","BOC", "BSF", "GFB", "LIN", "SBR",

"USK"))[,c("FishStock","Species","Category")])

##
## 50
## 126
## 148
## 361
## 599
## 936
## 1170

FishStock Species Category
3
3
3
3
3
3
3

arg-rest
boc-nea
bsf-nea
gfb-comb
lin-oth
sbr-ix
usk-oth

ARG
BOC
BSF
GFB
LIN
SBR
USK

13

unique(subset(big_ass3, Species %in% c("ALF", "ORY", "POL", "SBR"))[,c("FishStock",

"Species","Category")])

##
## 936

FishStock Species Category
3

sbr-ix

SBR

GHL (Greenland halibut) is covered by two assessments (ghl-grn and ghl-arct). However,
both of these assessments have been dropped through the Ecoregion subsetting above.
This means that there is no assessment for GHL.

subset(ass, Species=="GHL")[,c("Species","FishStock","EcoRegion")]

##
## 1785
## 1808

Species FishStock

EcoRegion
ghl-arct Barents Sea and Norwegian Sea
ghl-grn Iceland Sea and Greenland Sea

GHL
GHL

DWS is a grouped TAC of deep-water sharks. There is no assessment of these species.

There are also no subspecies special conditions of this TAC.

subset(stockdef, Species.Code == "DWS")[,c("Species.Code","TAC_id","Species.Name")]

##
## 117
## 118
## 119

TAC_id

Species.Name
Species.Code
DWS
DWS/10- Deep-water sharks nei
DWS DWS/12INT- Deep-water sharks nei
DWS DWS/56789- Deep-water sharks nei

SRX is a grouped TAC of skates and rays (Rajiformes). It is a parent TAC of several
special condition subspecies TACs. The individual species are: RJC (thornback ray), RJE
(small-eyed ray), RJF (shagreen ray), RJH (blonde ray), RJI (sandy ray), RJM (spotted ray),
RJN (cuckoo ray) and RJU (undulate ray).

srxsp <- unique(speccond[grepl("SRX", speccond$main_TAC_id),]$Species.Code)
srxsp

## [1] "RJC" "RJE" "RJF" "RJH" "RJI" "RJM" "RJN" "RJU"

Of these, stocks of RJC, RJE, RJH, RJM, RJN, RJU are category 3. RJF and RJI are

category 5, according to the ICES advice sheets.

unique(subset(big_ass3, Species %in% srxsp)[,c("FishStock","Species","Category")])

##
rjc-347d
## 805
rjc-7afg
## 810
rjc-bisc
## 813
rjc-pore
## 820
rjc-vi
## 821
rje-7fg
## 824
rjh-pore
## 826
rjm-347d
## 827
rjm-67bj
## 832
rjm-7aeh
## 838
rjm-bisc
## 843
rjm-pore
## 850
## 851
rjn-34
## 855 rjn-678abd
rjn-8c
## 875
rjn-pore
## 876
rju-ech
## 885

FishStock Species Category
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3

RJC
RJC
RJC
RJC
RJC
RJE
RJH
RJM
RJM
RJM
RJM
RJM
RJN
RJN
RJN
RJN
RJU

SOO is Solea spp. This only features in one TAC:

14

subset(stockdef, Species.Code=="SOO")[,c("Species.Code","TAC_id","Species.Name")] # Solea spp

##
## 586

Species.Code

SOO SOO/8CDE34

TAC_id Species.Name
Solea spp

We have assessments for solea solea (SOL) which may contribute to this TAC. Therefore
we change the species code in the sampling frame (not the TAC id code) to SOL to ensure
we match correctly. We cannot change the name in the assessment data to SOO (as we
did above) as there are TACs with that are specifically SOL.

sframe[sframe$Species=="SOO","Species"] <- "SOL"

In summary, we have confirmed that the species codes (grouped TACs etc) in the sam-

pling frame that appear to have no assessments, do not have assessments.

15

6. Merging

6.1 Merging the ICES assessment with the ICES rectangles

We merge the assessment data with the ICES rectangles data. Each area in the assessment
data is exploded into its constituent rectangles.

ass_rect <- merge(big_ass, rectangles[,c("Area","Rectangle")], by="Area")

Do we have all the assessments?

all(sort(unique(big_ass$FishStock)) == sort(unique(ass_rect$FishStock)))

## [1] TRUE

As some assessments over lap in area, it is possible for a species and rectangle to have

multiple assessments:

any(duplicated(ass_rect[,c("Species","Rectangle")]))

## [1] TRUE

6.2 Merging the sampling frame with the ICES rectangles

We do the same for the TAC FMZ sampling frame:

sf_rect <- merge(sframe, rectangles[,c("Area","Rectangle")], by="Area")

Do we have all the TACs?

all(sort(unique(sframe$TAC_id)) == sort(unique(sf_rect$TAC_id)))

## [1] TRUE

6.3 Merging the sampling frame with the assessment data

Here we bring the assessment data into the sampling frame. We merge by species and
rectangle. We want to keep the species the TAC FMZ sampling frame that do not have an
assessment. A species and rectangle in the TAC FMZ sampling frame may have more than
1 assessment.

We also perform a second merge which keeps all of the ICES assessments, as well as

the TACs.

# Keep all TACs
sf_ass <- merge(sf_rect, ass_rect[,c("Species","Rectangle","FishStock","Category")],

by=c("Species","Rectangle"), all.x = TRUE)

# Keep all assessments and TACs
all_sf_ass <- merge(sf_rect, ass_rect[,c("Species","Rectangle","FishStock",

"Category")], by=c("Species","Rectangle"), all = TRUE)

Do we have all the TACs and assessments?

all(sort(unique(sframe$TAC_id)) == sort(unique(sf_ass$TAC_id)))

## [1] TRUE

all(sort(unique(big_ass$FishStock)) == sort(unique(all_sf_ass$FishStock)))

## [1] TRUE

16

We know that in the TAC data, anglerfish is referred to by genus (ANF) whereas in the
assessment data it is referred to by two species (ANB and ANP). Here we check that both
assessments have been included: We can see that in some areas (27.8.C and 27.9.A) both
assessments for anglerfish have been matched to the anglerfish TAC and that in some areas
there is no corresponding assessment.

anf <- subset(all_sf_ass, TAC_id=="ANF/8C3411")
# What assessments
unique(anf$FishStock)

## [1] NA

"anb-8c9a" "anp-8c9a"

# Assessments by area
table(anf$FishStock, anf$f_division)

##
##
##
##

anb-8c9a
anp-8c9a

27.10.A 27.10.B 27.8.C 27.9.A 27.9.B
0
0

26
26

49
49

0
0

0
0

Some assessments do not match any TACs. For example, the assessment of sea bass:

unique(subset(all_sf_ass, Species=="BSS")[,c("Species", "TAC_id", "FishStock")])

##
## 16990

Species TAC_id FishStock
bss-47
<NA>

BSS

17

7. Analysis

Here we investigate which TACs have at least one constituent ICES rectangle that features
in an ICES assessment.

dat <- ddply(sf_ass, .(TAC_id), function(x) {

ass <- any(!is.na(x$FishStock))
if (ass){

asses <- unique(x[!is.na(x$FishStock),"FishStock"])
nass <- length(asses)
ass_names <- paste(asses, collapse =", ")

}
else {

ass <- FALSE
nass <- 0
ass_names <- NA

}
out <- data.frame(TAC_id = unique(x$TAC_id),

ass = ass,
nass = nass,
ass_names = ass_names,
stringsAsFactors=FALSE)

return(out)

})

# Check all TACs are present
all(unique(sf_ass$TAC_id) %in% unique(dat$TAC_id))

## [1] TRUE

# No of TACs
dim(dat)[1]

## [1] 156

# No of TACs with assessment
sum(dat$ass)

## [1] 85

# No if TACs with no assessment
sum(!dat$ass)

## [1] 71

# Proportion assessed
sum(dat$ass) / dim(dat)[1]

## [1] 0.5448718

TAC
ALF/3X14-
ANE/08.
ANE/9/3411
ANF/07.
ANF/2AC4-C
ANF/56-14
ANF/8ABDE.
ANF/8C3411
ARU/34-C
ARU/567.
BLI/03-

Assessed No. assess.
0
FALSE
1
TRUE
0
FALSE
0
FALSE
0
FALSE
0
FALSE
0
FALSE
2
TRUE
0
FALSE
0
FALSE
0
FALSE

1
2
3
4
5
6
7
8
9
10
11

ICES assessments

ane-bisc

anb-8c9a, anp-8c9a

18

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

FALSE
BLI/24-
TRUE
BLI/5B67-
FALSE
BOR/678-
FALSE
BSF/1234-
FALSE
BSF/56712-
FALSE
BSF/8910-
TRUE
COD/03AN.
TRUE
COD/03AS.
TRUE
COD/07A.
TRUE
COD/07D.
TRUE
COD/2A3AX4
COD/3BC+24 TRUE
FALSE
COD/3DX32.
TRUE
COD/5BE6A
FALSE
COD/5W6-14
TRUE
COD/7XAD34
FALSE
D/F/2AC4-C
TRUE
DGS/03A-C.
TRUE
DGS/15X14
TRUE
DGS/2AC4-C
FALSE
DWS/56789-
FALSE
GFB/1234-
FALSE
GFB/567-
FALSE
GFB/89-
FALSE
GHL/2A-C46
FALSE
HAD/07A.
HAD/2AC4.
TRUE
HAD/3A/BCD TRUE
TRUE
HAD/5BC6A.
TRUE
HAD/6B1214
TRUE
HAD/7X7A34
TRUE
HER/03A.
TRUE
HER/03A-BC
TRUE
HER/03D.RG
HER/06ACL.
TRUE
HER/07A/MM TRUE
TRUE
HER/2A47DX
TRUE
HER/30/31.
TRUE
HER/3BC+24
TRUE
HER/3D-R30
HER/4AB.
TRUE
HER/4CXB7D TRUE
TRUE
HER/5B6ANB
TRUE
HER/6AS7BC
FALSE
HER/7EF.
TRUE
HER/7G-K.
TRUE
HKE/2AC4-C
TRUE
HKE/3A/BCD
TRUE
HKE/571214
TRUE
HKE/8ABDE.
TRUE
HKE/8C3411
TRUE
JAX/08C.
TRUE
JAX/09.
TRUE
JAX/2A-14
FALSE
JAX/4BC7D
TRUE
LEZ/07.
TRUE
LEZ/2AC4-C
TRUE
LEZ/56-14
TRUE
LEZ/8ABDE.
TRUE
LEZ/8C3411
FALSE
LIN/04-C.

0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
2
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
2
0

bli-5b67

cod-347d
cod-347d
cod-iris
cod-347d
cod-347d
cod-2224

cod-scow

cod-7e-k, cod-347d

dgs-nea
dgs-nea
dgs-nea

had-346a
had-346a
had-346a
had-rock
had-7b-k
her-3a22, her-47d3
her-3a22, her-47d3
her-riga
her-67bc
her-irls, her-nirs
her-47d3
her-30
her-3a22
her-2532-gor
her-47d3
her-47d3
her-67bc
her-67bc

her-irls, her-nirs
hke-nrtn
hke-nrtn
hke-nrtn
hke-nrtn
hke-soth
hom-west
hom-soth
hom-west

mgw-78
meg-4a6a
meg-4a6a
mgw-78
mgb-8c9a, mgw-8c9a

19

FALSE
LIN/3A/BCD
73
FALSE
LIN/6X14.
74
FALSE
L/W/2AC4-C
75
TRUE
MAC/2A34.
76
TRUE
MAC/2A4A-N
77
TRUE
MAC/2CX14-
78
TRUE
MAC/8C3411
79
TRUE
NEP/07.
80
FALSE
NEP/08C.
81
TRUE
NEP/2AC4-C
82
TRUE
NEP/3A/BCD
83
TRUE
NEP/5BC6.
84
TRUE
NEP/8ABDE.
85
FALSE
NEP/9/3411
86
TRUE
NOP/2A3A4.
87
FALSE
ORY/06-
88
FALSE
ORY/07-
89
ORY/1CX14
FALSE
90
OTH/2A46AN FALSE
91
FALSE
OTH/5B67-C
92
TRUE
PLE/03AN.
93
TRUE
PLE/03AS.
94
FALSE
PLE/07A.
95
TRUE
PLE/2A3AX4
96
TRUE
PLE/3BCD-C
97
98
FALSE
PLE/56-14
FALSE
99
PLE/7BC.
TRUE
100 PLE/7DE.
FALSE
101 PLE/7FG.
FALSE
102 PLE/7HJK.
FALSE
103 PLE/8/3411
TRUE
104 POK/2A34.
TRUE
105 POK/56-14
FALSE
106 POK/7/3411
FALSE
107 POL/07.
FALSE
108 POL/08C.
FALSE
109 POL/56-14
FALSE
110 POL/8ABDE.
FALSE
111 POL/9/3411
TRUE
112 PRA/03A.
TRUE
113 PRA/2AC4-C
FALSE
114 RTX/03-
FALSE
115 RTX/124-
TRUE
116 RTX/5B67-
TRUE
117 RTX/8X14-
TRUE
118 SAN/2A3A4.
FALSE
119 SBR/09-
FALSE
120 SBR/678-
TRUE
121 SOL/07A.
TRUE
122 SOL/07D.
TRUE
123 SOL/07E.
TRUE
124 SOL/24-C.
TRUE
125 SOL/3A/BCD
FALSE
126 SOL/56-14
FALSE
127 SOL/7BC.
TRUE
128 SOL/7FG.
FALSE
129 SOL/7HJK.
TRUE
130 SOL/8AB.
FALSE
131 SOO/8CDE34
FALSE
132 SPR/03A.
TRUE
133 SPR/2AC4-C

0
0
0
1
1
1
1
7
0
4
1
3
1
0
1
0
0
0
0
0
2
1
0
2
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
3
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1

mac-nea
mac-nea
mac-nea
mac-nea
nep-16, nep-19, nep-2021, nep-22, nep-14, nep-15, nep-17

nep-8, nep-6, nep-7, nep-9
nep-3-4
nep-12, nep-13, nep-11
nep-2324

nop-34-oct

ple-nsea, ple-2123
ple-2123

ple-nsea, ple-2123
ple-2123

ple-eche

sai-3a46
sai-3a46

pan-sknd
pan-sknd

rng-5b67
rng-5b67
san-ns2, san-ns1, san-ns3

sol-iris
sol-eche
sol-echw
sol-nsea
sol-kask

sol-celt

sol-bisc

spr-nsea

20

TRUE
134 SPR/3BCD-C
FALSE
135 SPR/7DE.
FALSE
136 SRX/03A-C.
FALSE
137 SRX/07D.
138 SRX/2AC4-C
FALSE
139 SRX/67AKXD FALSE
FALSE
140 SRX/89-C.
FALSE
141 T/B/2AC4-C
FALSE
142 USK/04-C.
FALSE
143 USK/3A/BCD
FALSE
144 USK/567EI.
TRUE
145 WHB/1X14
TRUE
146 WHB/24A567
TRUE
147 WHB/24-N.
TRUE
148 WHB/2A4AXF
TRUE
149 WHB/8C3411
FALSE
150 WHG/03A.
FALSE
151 WHG/07A.
FALSE
152 WHG/08.
TRUE
153 WHG/2AC4.
154 WHG/56-14
TRUE
155 WHG/7X7A-C TRUE
FALSE
156 WHG/9/3411

1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
2
0

spr-2232

whb-comb
whb-comb
whb-comb
whb-comb
whb-comb

whg-47d
whg-scow
whg-7e-k, whg-47d

Table 1: TACs and the associated ICES assessments

8. Differences in stocks with last years analysis

Several stocks are included in this analysis that were not included in the 2016 analysis.
dgs-nea, mgw-78, nep-2021 and nep-2324 only became category 1 or 2 in 2016 and so
were excluded from the analysis last year. rng-5b67 was not considered last year as the
TACs it is linked to are subspecies special conditions of RTX/5B67 and RTX/8X14. ane-bisc,
whg-47d and whg-scow did not have reference points in 2015.

Only one stocks was included in 2016 that is not included in 2017: Herring in Division VIa

North, her-vian. This stock has now been combined with Division VIa South and VII.b-c.

21

9. Conclusions

In this document the CFP indicators sampling frame for FAO area 27 (Northeast Atlantic)
was matched to the corresponding ICES assessments. The matching was performed through
the ICES rectangles that make up the FMZs and stock assessment areas.

22

References

Scott, F., Gibin, M. and Jardim, E., `Generating the CFP indicators sampling frame for fao
area 27 (northeast atlantic', Tech. Rep. JRCxxxxxx, Joint Research Centre, Via Enrico Fermi
2749, Ispra, VA, Italy, 2017.

23

List of abbreviations and definitions

CFP Common Fisheries Policy

FAO Food and Agriculture Organisation of the United Nations

FMZ Fisheries Management Zones

ICES International Council for the Exploration of the Sea

TAC Total Allowable Catch

24

List of tables

Table 1. TACs and the associated ICES assessments . . . . . . . . . . . . . . . . . . .

21

25

GETTING IN TOUCH WITH THE EU 

In person 

All over the European Union there are hundreds of Europe Direct information centres. You can find the 
address of the centre nearest you at: http://europea.eu/contact 

On the phone or by email 

Europe Direct is a service that answers your questions about the European Union. You can contact this 
service: 

- by freephone: 00 800 6 7 8 9 10 11 (certain operators may charge for these calls), 

- at the following standard number: +32 22999696, or 

- by electronic mail via: http://europa.eu/contact 

FINDING INFORMATION ABOUT THE EU 

Online 

Information about the European Union in all the official languages of the EU is available on the Europa 
website at: http://europa.eu 

EU publications 
You can download or order free and priced EU publications from EU Bookshop at: 
http://bookshop.europa.eu. Multiple copies of free publications may be obtained by contacting Europe 
Direct or your local information centre (see http://europa.eu/contact). 

 
 
 
 
 
K
J
-
N
A
-
2
8
5
4
2
-
E
N
-
N

doi:10.2760/818883 

ISBN 978-92-79-67437-2