In the ‘inser’ package, selectivity data can be obtained from three types of experimental protocols onboard fishing vessels: ‘twin’, ‘single paired’ or ‘independent’ sampling, for which a test fishing gear is compared to a standard fishing gear.
STD: stands for the standard fishing gear usually used, it is the reference gear
TEST: stands for the gear modified with a new selective device to be tested
LAN: Fraction of the catch retained by the fisherman (= Landings)
DIS: Part of the catch not retained by the fisherman (= Discards)
FO: Fishing Operation
For the two paired protocol types (twin or paired-single hauls), the environmental (depth, type of bottom) and fishing (duration, speed, heading/current, characteristics of the gear apart from the tested device) conditions, as well as the available fished population are assumed to be equivalent between the two FOs of each pair.
Some fishing gears allow the simultaneous comparison of a gear equipped with a selective device with a standard one during the same fishing trip.
This is typically the case for a twin trawl, where the STD and TEST gear can be rigged simultaneously (the catches of two sub-gears will be compared as if they were two separate gears). This configuration can also be transposed to nets, lines, or pots gear deployed from a single vessel.
The ‘twin’ configuration is ideal as the variability of fishing conditions between the two gears is limited, as the two gears STD and TEST are paired within each FO (1 pair = 1 FO).
In the case of the single trawl, it is possible to implement a protocol where the FOs are paired: FOs are paired as STD/TEST when they take place under conditions considered similar (i.e. similar target species, depth, gear speed, orientation to the current and fishing duration). For example, STD and TEST FOs can be alternated so that two FOs close together in time and space (but not exactly at the same location) are matched to form a pair.
The least restrictive protocol when the gear does not allow a ‘matched’ protocol is to conduct two sets of FOs (STD and TEST) independently. The available fishery resource, environmental and fishing conditions should nevertheless be similar, but only at the scale of the two sets of FOs. This protocol is subject to more uncertainties and will require more FOs to achieve the same accuracy as a paired protocol.
Catch sampling is carried out by an observer on board a professional fishing vessel. Whether it is a twin trawl or a single trawl operation (alternating or parallel), the catch sampling method is the same. For each trawl, the discarded and landed fractions must be processed, and at least the total catch weight (discards + landings) must be recorded.
These selectivity experiments may focus on one or a few problematic species and not necessarily on all species caught. In this case, the catch sampling protocol focuses on a selection of species of interest (in addition to the total catch weight in each trawl). The catch sampling methodology consists of (Figure 1) :
estimate the total quantity of the discarded fraction of a gear [1]. This quantity can be estimated by weighing only a part of the discard (e.g. a basket), assuming that the density of this sample is representative of the whole discarded fraction.
Collect, weigh and sort a ‘bulk’ sample of the discard [2]. The ‘bulk’ sample consists of a mixture of species representative of the discarded fraction. The ratio taken is recorded (1/n) [3].
Weigh the species of interest separately from the bulk sample [4] and measure the individuals [5]. (NB: if individuals of a species are measured, they must be measured for both fractions (landed and discarded) in order to describe a complete catch profile (same for weighing: the weight of a discarded species must be associated with the weight of the landed species if applicable). If a subsample per species is required, the ratio taken is recorded (1/m) [6].
record the weights by species of the landed fraction [7]. For each species of interest, a sample of individuals is measured [8] and its weight recorded [9]. If it is not possible to weigh the samples on board, a conversion to weight can be made later on land from the available length-weight relationships.
Individuals present in very small quantities and easily identifiable can be considered as “non-bulk”. In this case, all individuals are extracted from the catch and are not subject to the same sampling rules as those described for the “bulk” sample: all individuals are weighed and measured and a sampling coefficient of 1:1 is applied to them [10].
Once the species in the bulk sample have been sorted, individuals of the species of interest are measured. The minimum size of the measured samples is assessed by the observer; the objective being to be able to describe the length distribution of the captured species. If a small length range is observed for a species, the distribution will stabilize fairly quickly and a small number of individuals (minimum 30) will be required. The sample size will be increased if a large length range is observed.

The input data format is banked in the form of 4 data tables based on the ICES RDB data exchange format and corresponding to the different scales of the data.
The TR table contains information relating to the fishing trip and the two compared gears.
| Field names | Type | Status | Basic checks | Comments |
|---|---|---|---|---|
| project | String | Obligatory | Code list | Name of the project underwhich the experiment was carried out |
| vessel_identifier | Integer | Obligatory | 1 - 999 999 | Encripted vessel identifier. ID encrypted so that no-one can map the ID to the real vessel |
| trip_code | String | Obligatory | NA | Identifier of the trip for a given project and vessel |
| gear_label | String | Obligatory | Code list | Identify the subgear (for twin protocol) or the gear (for paired/unpaired protocol): STD for Standard gear or TEST for experimental gear |
| vessel_name | String | Optional | Free text | Vessel name |
| selective_device | String | Optional | Free text | Name of the tested device |
| departure_date_time | String | Optional | NA | “YYY-MM-DD HH:MM:SS” (ISO 8601) |
| return_date_time | String | Optional | NA | “YYY-MM-DD HH:MM:SS” (ISO 8601) |
| mesh_gauge_codend_mm | Integer | Optional | NA | Codend mesh gauge in millimeters |
| headline_cumulative_length | Double | Optional | NA | Headline length, in meters |
| NA | NA | NA | NA | NA |
| Key fields | NA | NA | NA | NA |
The HH table contains information relating to the FO for each gear. For twin gears, both gears are deployed at each FO, so there are two different lines for each FO, while for single gears, there is one line for each FO (as only one gear is deployed at each FO).
| Field names | Type | Status | Basic checks | Comments |
|---|---|---|---|---|
| project | String | Obligatory | Code list | Name of the project underwhich the experiment was carried out |
| vessel_identifier | Integer | Obligatory | 1 - 999 999 | Encripted vessel identifier. ID encrypted so that no-one can map the ID to the real vessel |
| trip_code | NA | Obligatory | NA | Identifier of the trip for a given project and vessel |
| station_number | Integer | Obligatory | 1 - 999 999 | Identifier of the fishing operation for a given trip |
| gear_label | String | Obligatory | Code list | Identify the subgear (for twin protocol) or the gear (for paired/unpaired protocol): STD for Standard gear or TEST for experimental gear |
| tag_operation | String | Obligatory | NA | Free tag used to associate station in case of “paired” protocols |
| haul_date | String | Obligatory | YYYY-MM-DD | Haul sarting date. “YYYY-MM-DD” (ISO 8601) in UTC |
| haul_time | String | Obligatory | HH:MM:SS | Haul starting time. “HH:MM:SS” (ISO 8601) in UTC |
| fishing_duration | Integer | Obligatory | NA | minutes |
| fishing_validity | String | Optional | Code list | I = Invalid ou V = Valid. Haul validity according to protocol criteria. If reported, invalid operations are removed. |
| statistical_rectangle | String | Optional | Code list | ICES statistical rectangle |
| pos_start_lat | Dec | Optional | NA | Latitude in decimal degrees of the shooting position |
| pos_stop_lat | Dec | Optional | NA | Latitude in decimal degrees of the hauling position |
| pos_start_lon | Dec | Optional | NA | Longitude in decimal degrees of the shooting position |
| pos_stop_lon | Dec | Optional | NA | Longitude in decimal degrees of the hauling position |
| water_depth | Integer | Optional | 1 - 999 999 | Water depth in metres |
| start_sorting_date_time | String | Optional | NA | “YYYY-MM-DD HH:MM:SS” (ISO 8601) in UTC |
| end_sorting_date_time | String | Optional | NA | “YYYY-MM-DD HH:MM:SS” (ISO 8601) |
| diurnal_operation | String | Optional | Y or N | Haul deployed during day or night time |
| gear_speed | Double | Optional | NA | Gear speed in knots |
| gear_depth | Double | Optional | NA | Gear Depth in metres |
| sea_state | String | Optional | Code list | Sea state from Douglas Scale |
| wind_force | String | Optional | Code list | Wind force from Beaufort Scale |
| wind_cardinal_direction | String | Optional | Code list | N, NE, E, SE, S, SW, W, NW |
| seabed_features | String | Optional | Code list | Sediment type of fishing ground |
| sub_gear_position | String | Optional | Free text | Identify the side of the subgear (e.g. Portside/Starboard for OTT). |
| catch_weight | Double | Optional | NA | Total weight of the catch in kg |
| discard_weight | Double | Optional | NA | Total weight of the discarded fraction of the catch in kg |
| coef_discard | Double | Optional | NA | Sampling ratio of the bulk fraction of the discards |
The SL table contains information relating to the weight of the studies species, for the strata FO x species x catch category (and eventually x landing category x commercial size category x subsampling category x sex).
| Field names | Type | Status | Basic checks | Comments |
|---|---|---|---|---|
| project | String | Obligatory | Code list | Name of the project underwhich the experiment was carried out |
| vessel_identifier | Integer | Obligatory | 1 - 999 999 | Encripted vessel identifier. ID encrypted so that no-one can map the ID to the real vessel |
| trip_code | NA | Obligatory | NA | Identifier of the trip for a given project and vessel |
| station_number | Integer | Obligatory | 1 - 999 999 | Sequential numbering of hauls. Starting by 1 for each new trial |
| gear_label | String | Obligatory | Code list | Identify the subgear (for twin protocol) or the gear (for paired/unpaired protocol): STD for Standard gear or TEST for experimental gear |
| species | String | Obligatory | Free text | Species name |
| catch_category | String | Obligatory | Code list | “DIS” = Discards and “LAN” = Landings |
| landing_category | String | Optional | Free text | The intended usage at the time of landing. This should match the same field in SL record. |
| commercial_size_category | String | Optional | Free text | Commercial sorting category in the given scale.This should match the same field in SL record. |
| subsampling_category | String | Optional | Free text | If different subsampling is applied within the catch (e.g. in the DIS fraction).This should match the same field in SL record. |
| sex | String | Optional | Free text | Sex category.This should match the same field in SL record. |
| weight | Integer | Obligatory | 1 - 999 999 | Whole weight of the stratum (Species / Catch_Category / Size_Category) in gramme. Decimals are not allowed? |
| subsample_weight | Integer | Obligatory | 1 - 999 999 | Weight of subsample in grammes of the corresponding stratum (Species / Catch_Category) for the measurement (HL table) |
| length_code | String | Obligatory | code list | Unit of length measurement : 1mm =“mm”, 0.5cm=“scm”,1cm=“cm” |
The HL table contains information relating to the size of individuals of the species studied, within the strata recorded in HL.
| Field names | Type | Status | Basic checks | Comments |
|---|---|---|---|---|
| project | String | Obligatory | Code list | Name of the project underwhich the experiment was carried out |
| vessel_identifier | Integer | Obligatory | 1 - 999 999 | Encripted vessel identifier. ID encrypted so that no-one can map the ID to the real vessel |
| trip_code | NA | Obligatory | NA | Identifier of the trip for a given project and vessel |
| station_number | Integer | Obligatory | 1 - 999 999 | Sequential numbering of hauls. Starting by 1 for each new trial |
| gear_label | String | Obligatory | Code list | Identify the subgear (for twin protocol) or the gear (for paired/unpaired protocol): STD for Standard gear or TEST for experimental gear |
| species | String | Obligatory | Free text | Species name |
| catch_category | String | Obligatory | Code list | “DIS” = Discards and “LAN” = Landings |
| landing_category | String | Optional | Free text | The intended usage at the time of landing. |
| commercial_size_category | String | Optional | Free text | Commercial sorting category in the given scale. |
| subsampling_category | String | Optional | Free text | If different subsampling is applied within the catch (e.g. in the DIS fraction). |
| sex | String | Optional | Free text | Sex category. |
| length_class | Integer | Obligatory | NA | Lower bound of the length class in mm (e.g. 650 for 65-66 cm) |
| number_at_length | Integer | Obligatory | NA | Not raised to the whole catch. Length classes with zero should be excluded from the record |
| measure_type | String | Obligatory | Code list | Mesure type : “LT” for Total Length and “LC” for Carapace Length |
| elevated_number_at_length | Double | Optional | NA | Elevated number of individuals for the length class. |
The function prep_sel_data() transforms and prepare the
database in order to compute the indices of the
create_selectivity_sheet() function.
### Example for protocol 'twin'
OTT_data_folder <-
system.file("script_origin", "Data", "Example_OTT",
package = "inser")
TR <- readr::read_delim(
file = file.path(OTT_data_folder, "TR.csv"),
delim = ";",
escape_double = FALSE,
locale = readr::locale(encoding = "WINDOWS-1252"),
trim_ws = TRUE
)
#> Rows: 2 Columns: 31
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ";"
#> chr (12): sampling_type, landing_country, vessel_flag_country, project, harb...
#> dbl (11): trip_code, year, vessel_length, vessel_power, vessel_size, vessel_...
#> lgl (8): number_of_sets, days_at_sea, departure_date_time, return_date_time...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
HH <- read.table(
file.path(OTT_data_folder, "HH.csv"),
sep = ";",
header = TRUE,
encoding = "WINDOWS-1252"
)#,colClasses = colClasses)
SL <- read.table(
file.path(OTT_data_folder, "SL.csv"),
sep = ";",
header = TRUE,
encoding = "WINDOWS-1252"
)
HL <- read.table(
file.path(OTT_data_folder, "HL.csv"),
sep = ";",
header = TRUE,
encoding = "WINDOWS-1252"
)
colClasses <- rep(NA, ncol(HH))
colClasses[which(names(HH) == "statistical_rectangle")] <-
"character"
HH <- read.table(
file.path(OTT_data_folder, "HH.csv"),
sep = ";",
header = TRUE,
colClasses = colClasses,
encoding = "WINDOWS-1252"
)
# HH<-HH |>
# rename(pos_start_lat=pos_start_lat_dec) |>
# rename(pos_start_lon=pos_start_lon_dec) |>
# rename(pos_stop_lat=pos_stop_lat_dec) |>
# rename(pos_stop_lon=pos_stop_lon_dec)
#
# write.table(HH,file= file.path(OTT_data_folder, "HH.csv"),row.names = F,sep=";")
TAB <- prep_sel_data(data = list(TR, HH, SL, HL))