Skip to contents
๐Ÿ“ฆ Data: FAO Global Capture Production, release 2026.1.0 (published by FAO on 2026-03-30; catches 1950โ€“2024), downloaded from Capture_2026.1.0.zip. Licence CC BY 4.0. fao_data_info() shows the release you use and how to cite it.

fao_areas() and fishing_area_map() show the FAO major fishing areas and their subareas; the three other fishing area functions describe one area. The examples use the Northeast Atlantic (area 27); the last section shows the same analysis for the Northwest Atlantic (area 21).

๐Ÿ—บ๏ธ The FAO major fishing areas

The FAO major fishing areas for statistical purposes are defined by the Coordinating Working Party on Fishery Statistics (CWP): 19 marine areas, and the inland waters of each continent. fao_areas() lists them with their catch in the last year of the data and the link to the official FAO map of each area, and saves a world map of the marine areas labelled with their codes:

areas <- fao_areas()
fao_major_areas.png
show_table(areas[order(-areas$catch_last_year), c("area_code", "name_en", "type", "ocean", "catch_last_year", "share_pct")],
           n = 30, digits = 1)
area_code name_en type ocean catch_last_year share_pct
21 61 Pacific, Northwest marine Pacific Ocean 19067991.408 20.5
23 71 Pacific, Western Central marine Pacific Ocean 14105189.055 15.1
26 87 Pacific, Southeast marine Pacific Ocean 9453525.210 10.1
11 27 Atlantic, Northeast marine Atlantic Ocean and adjacent seas 7842194.162 8.4
4 04 Asia - Inland waters inland NA 7785533.070 8.4
19 57 Indian Ocean, Eastern marine Indian Ocean 6401679.921 6.9
18 51 Indian Ocean, Western marine Indian Ocean 6223934.387 6.7
13 34 Atlantic, Eastern Central marine Atlantic Ocean and adjacent seas 5099475.194 5.5
1 01 Africa - Inland waters inland NA 3656926.956 3.9
22 67 Pacific, Northeast marine Pacific Ocean 2551440.501 2.7
24 77 Pacific, Eastern Central marine Pacific Ocean 2349505.260 2.5
15 41 Atlantic, Southwest marine Atlantic Ocean and adjacent seas 1970436.942 2.1
16 47 Atlantic, Southeast marine Atlantic Ocean and adjacent seas 1475796.444 1.6
10 21 Atlantic, Northwest marine Atlantic Ocean and adjacent seas 1407262.000 1.5
12 31 Atlantic, Western Central marine Atlantic Ocean and adjacent seas 1077647.351 1.2
14 37 Mediterranean and Black Sea marine Atlantic Ocean and adjacent seas 1026111.034 1.1
17 48 Atlantic, Antarctic marine Southern Ocean (Antarctic) 466706.916 0.5
5 05 Europe - Inland waters inland NA 386122.976 0.4
25 81 Pacific, Southwest marine Pacific Ocean 381352.879 0.4
3 03 America, South - Inland waters inland NA 337398.156 0.4
2 02 America, North - Inland waters inland NA 117613.045 0.1
6 06 Oceania - Inland waters inland NA 20521.568 0.0
9 18 Arctic Sea marine Atlantic Ocean and adjacent seas 16604.000 0.0
20 58 Indian Ocean, Antarctic marine Southern Ocean (Antarctic) 10861.059 0.0
27 88 Pacific, Antarctic marine Southern Ocean (Antarctic) 2665.606 0.0
7 07 Former USSR area - Inland waters inland NA NA NA
8 08 Antarctica - Inland waters inland NA NA NA

Use these names (e.g.ย "Atlantic, Northwest") or codes in the other functions. The official FAO maps (column fao_map) are the maps of the FAO fishing area maps page; the package links to them.

๐Ÿงญ fishing_area_map(): an area and its subareas

Large areas are divided into subareas, divisions and subdivisions; in the Northeast Atlantic they are the ICES areas, from 27.1 (Barents Sea) to 27.14 (East Greenland). fishing_area_map() maps one marine area with these units, labelled with their codes, from the boundaries bundled with the package (FAO 2024). When the ggOceanMaps package (Vihtakari 2026) is installed, the map is drawn on its bathymetric base map, with the depth of the ETOPO 2022 relief model (NOAA NCEI 2022) bundled with ggOceanMaps; areas reaching beyond 60ยฐ of latitude, such as area 27, are drawn in a polar stereographic projection. Without ggOceanMaps, the land of Natural Earth is drawn in a Lambert azimuthal equal-area projection centred on the area.

ne_atlantic <- fishing_area_map(27)
Atlantic__Northeast_subarea_map.png
show_table(ne_atlantic$units, n = 20)
code level name_en
27.1 subarea Barents Sea (Subarea 27.1)
27.2 subarea Norwegian Sea, Spitzbergen, and Bear Island (Subarea 27.2)
27.3 subarea Skagerrak, Kattegat, Sound, Belt Sea, and Baltic Sea (Subarea 27.3)
27.4 subarea North Sea (Subarea 27.4)
27.5 subarea Iceland and Faroes Grounds (Subarea 27.5)
27.6 subarea Rockall, Northwest Coast of Scotland and North Ireland (Subarea 27.6)
27.7 subarea Irish Sea, West of Ireland, Porcupine Bank, Eastern and Western English Channel, etc (Subarea 27.7)
27.8 subarea Bay of Biscay (Subarea 27.8)
27.9 subarea Portuguese Waters (Subarea 27.9)
27.10 subarea Azores Grounds and Northeast Atlantic South (Subarea 27.10)
27.12 subarea North of Azores (Subarea 27.12)
27.14 subarea East Greenland (Subarea 27.14)
ne_atlantic$fao_map      # the official FAO map of the area
#> [1] "https://www.fao.org/fishery/docs/maps/fig_h2_27_0.gif"

The sources of the map are in ne_atlantic$sources, to cite with it:

show_table(ne_atlantic$sources)
layer reference url
boundaries FAO (2024). FAO Major Fishing Areas for Statistical Purposes. Licence: CC-BY 4.0. https://www.fao.org/fishery/geonetwork?uuid=ac02a460-da52-11dc-9d70-0017f293bd28
base map Vihtakari, M. (2026). ggOceanMaps: Plot Data on Oceanographic Maps using โ€˜ggplot2โ€™. R package version 3.0.0. doi:10.32614/CRAN.package.ggOceanMaps https://github.com/MikkoVihtakari/ggOceanMaps
land Natural Earth. 1:10m Land and Minor Islands (public domain), as bundled with ggOceanMaps. https://www.naturalearthdata.com/downloads/10m-physical-vectors/
depth NOAA National Centers for Environmental Information (2022). ETOPO 2022 15 Arc-Second Global Relief Model. doi:10.25921/fd45-gt74 https://doi.org/10.25921/fd45-gt74

The divisions, here without depth:

fishing_area_map(27, level = "division", bathymetry = FALSE)
Atlantic__Northeast_division_map.png

All arguments of fishing_area_map():

Argument Meaning Default
area FAO major marine fishing area: code (e.g.ย 27) or English name
level Units drawn inside the area: "subarea", "division", "subdivision" or "none" (outline only) "subarea"
bathymetry Show the depth (ggOceanMaps only) TRUE
labels Label the units with their codes TRUE
engine "auto" (ggOceanMaps when installed, else "sf"), "ggOceanMaps" or "sf" "auto"
plot Save the map in figures/png/area/ TRUE
table Save the table of units in tables/ TRUE
lang Language of the map text: "en", "zh" or "both" NULL: the language of fao_settings()
pptx Also save the map as an editable PowerPoint file FALSE, or pptx of fao_settings()
plot_show Also draw each chart in the plot window (e.g.ย the Plots pane of RStudio) as it is saved FALSE, or plot_show of fao_settings()

1๏ธโƒฃ fishing_area_data(): catch of the area

FAO27 <- fishing_area_data("Atlantic, Northeast")
fishing_trend.png
fishing_percentage.png
area_country_map.png

It saves three charts in figures/png/:

File Chart
fishing_trend.png Total catch of the area. With timeseries_analysis = TRUE, the grey horizontal lines are the mean catch of each period between breakpoints, and the dashed lines mark the start of each period (see How the breakpoints are found)
fishing_percentage.png The areaโ€™s share of the world catch of all marine areas each year (for an inland area: of the world catch of all inland waters), and the average of these shares (red line)
area_country_map.png Total catch of each country in the area over all years, on a world map

and returns a list:

Element Content
area_data Catch records of the area (all eight columns of the data): the input of the other functions
coefs_data Periods between breakpoints of the total catch: start_year, end_year and intercept (mean catch of the period, in tonnes)
act_world_map The map data, an sf object with the total catch of each country (NULL with plot = FALSE)
FAO27$coefs_data
#> # A tibble: 3 ร— 3
#>   start_year end_year intercept
#>        <int>    <int>     <dbl>
#> 1       1950     1964  7251706.
#> 2       1965     2005 10855609.
#> 3       2006     2024  8806378.

Options

fishing_area_data(
  "Atlantic, Northeast",
  timeseries_analysis = FALSE,          # no breakpoints
  area_color1 = "#9ecae1",              # fill of the catch area
  area_color2 = "#08519c",              # its outline
  hline_color = "#e6550d",              # average line of the share chart
  fill_scale = "blue",                  # palette of the map
  lang = "zh"                           # Chinese chart text
)
fishing_trend.png
fishing_percentage.png
area_country_map.png

All arguments of fishing_area_data():

Argument Meaning Default
area_name FAO major fishing area, as named in the data (table above)
plot Save the three charts; FALSE only returns the data TRUE
timeseries_analysis Draw the breakpoints and the mean catch of each period on the total catch chart (coefs_data is returned either way) TRUE
area_color1 Fill colour of the total catch "grey80"
area_alpha Transparency of that fill (0 transparent to 1 opaque) 0.7
area_color2 Outline colour of the total catch "black"
line_color Colour of the line of the share chart "black"
line_alpha Transparency of that line 0.8
line_linewidth Width of that line 1.5
point_size Size of the points of the share chart 2
hline_color Colour of the average line of the share chart "red"
hline_alpha Transparency of the average line 0.7
hline_linewidth Width of the average line 1.5
axis_text_size Size of the axis labels of the share chart, and of the axis titles of the total catch chart 10
axis_text_face Font face of the axis titles of the total catch chart: "plain", "bold", "italic" or "bold.italic" "plain"
axis_title_size Size of the axis titles of the share chart 12
axis_title_face Font face of the axis titles of the share chart and the map "bold"
strip_text_size, strip_text_face Size and font face of panel titles; the charts of this function have no panels, so they have no visible effect 12, "bold"
polygon_color Colour of the country borders on the map "grey90"
fill_scale Palette of the map, any choice of map_palette in fao_settings() (e.g.ย "blue", "YlOrRd", "viridis" or a vector of colours) NULL: map_palette of fao_settings() ("deep-orange")
axis_title_size_map Size of the axis titles of the map 14
axis_text_size_map Size of the axis labels (longitudes and latitudes) of the map 12
legend_text_size_map Size of the legend text of the map 12
ZH Older way of asking for Chinese: TRUE is lang = "zh" FALSE
lang Language of the chart text: "en", "zh" or "both" NULL: "zh" if ZH = TRUE, else the language of fao_settings()
data_version FAO release: "latest" (newest available), "bundled" or a release such as "2026.1.0" (see ๐Ÿ’พ FAO data) "latest"
pptx Also save the charts as editable PowerPoint files in figures/pptx/ FALSE, or pptx of fao_settings()
plot_show Also draw each chart in the plot window (e.g.ย the Plots pane of RStudio) as it is saved FALSE, or plot_show of fao_settings()

2๏ธโƒฃ fishing_area_species(): main species

species <- fishing_area_species(FAO27$area_data, rank_range = 1:10)
area_species.png
area_species_wrap.png
File Chart
area/area_species.png Catch of the selected species over time
area/area_species_wrap.png One panel per species with its share of the areaโ€™s catch over all years, a linear trend (dashed) and the breakpoints of its mean catch; with timeseries_analysis = FALSE, a smooth curve instead of the trend and breakpoints

The function returns a list:

Element Content
area_species Catch of every species item by year
area_species_ranked Catch by year of the selected species, with their total catch and share
area_species_ranked_total The selected species: total catch over all years (Total_Tonnes) and share of the areaโ€™s catch (Percentage)
coefs_data Breakpoints of each species: start_year, end_year and intercept (mean catch of the period, in tonnes)
show_table(species$area_species_ranked_total)
ASFIS.species..Name. Total_Tonnes Percentage Rank_Tonnes
Atlantic herring 133,779,008 18.55 133,779,008
Atlantic cod 100,515,875 13.94 100,515,875
Capelin 72,254,558 10.02 72,254,558
Blue whiting(=Poutassou) 51,097,741 7.09 51,097,741
Atlantic mackerel 44,615,940 6.19 44,615,940
Sandeels(=Sandlances) nei 33,532,765 4.65 33,532,765
European sprat 28,491,530 3.95 28,491,530
Saithe(=Pollock) 27,734,472 3.85 27,734,472
Haddock 25,693,597 3.56 25,693,597
Norway pout 15,252,882 2.11 15,252,882

It also saves two tables in tables/: species_ranked_table.csv (average catch per decade, catch in each of the last five years, catch and share in the last year) and species_coefs_data.csv (the breakpoints).

show_table(read.csv("tables/species_ranked_table.csv", fileEncoding = "UTF-8-BOM", check.names = FALSE), n = 5, digits = 0)
ASFIS.species..Name. 1950s 1960s 1970s 1980s 1990s 2000s 2010s 2020s 2020 2021 2022 2023 2024 total_2024_production percentage_of_total_2024
Atlantic cod 1,675,240 1,610,620 1,772,437 1,424,846 1,104,442 814,172 1,162,071 975,521 1,051,293 1,116,132 1,039,707 908,068 762,408 762,408 10
Atlantic herring 2,478,450 2,737,960 1,078,316 1,080,178 1,732,866 1,945,565 1,592,207 1,464,718 1,514,865 1,554,649 1,568,174 1,435,049 1,250,851 1,250,851 16
Atlantic mackerel 100,330 414,570 603,160 580,576 654,196 574,634 1,022,817 1,022,622 1,018,792 1,076,697 1,043,653 1,069,949 904,017 904,017 12
Blue whiting(=Poutassou) 12,680 17,740 223,187 712,974 675,005 1,725,821 1,019,466 1,445,802 1,472,561 1,145,203 1,041,463 1,737,135 1,832,649 1,832,649 23
Capelin 43,550 314,260 2,294,263 1,838,143 1,230,845 867,671 480,992 311,462 57 204,767 679,198 504,595 168,693 168,693 2

Options

  • rank_range lists the ranks shown: 11:20 shows the next ten species, c(5, 6) the fifth and the sixth.
  • timeseries_analysis = FALSE replaces the breakpoints by a smooth curve (smooth_method, default "loess").
  • h_value is the minimum length of a period between breakpoints: a fraction of the series (default 0.15) or a number of years (e.g.ย 5). Larger values give fewer breakpoints; species with too short a series are skipped with a message.
fishing_area_species(FAO27$area_data, rank_range = 11:20, h_value = 5, lang = "both")
area_species.png
area_species_wrap.png

All arguments of fishing_area_species(). โ€œTime series chartโ€ is area_species.png, โ€œpanel chartโ€ is area_species_wrap.png; the panel chart with breakpoints has fixed line widths, text sizes and two columns, and only the text_* arguments change it.

Argument Meaning Default
area_data Catch data of an area: fishing_area_data()$area_data or any subset of load_fao_data()
rank_range Ranks of the species shown, by total catch over all years: 1:10 the ten largest, 11:20 the next ten, c(5, 6) the fifth and the sixth 1:10
plot Save the charts TRUE
table Save the two tables in tables/ TRUE
timeseries_analysis TRUE: panel chart with linear trend and breakpoints; FALSE: panel chart with a smooth curve TRUE
h_value Minimum length of a period between breakpoints: a fraction of the series or a number of years (the h of strucchange::breakpoints()) 0.15
line_width Width of the lines of the time series chart 1.5
line_alpha Transparency of the lines of the time series chart and of the panel chart without breakpoints 0.7
line_linewidth Width of the lines of the panel chart without breakpoints 1.5
point_size Size of the points of the time series chart and of the panel chart without breakpoints 1.8
point_alpha Transparency of these points 0.7
point_shape Shape of these points (R point symbol, e.g.ย 1 open circle, 16 filled circle) 1
axis_text_size, axis_text_face Size and font face of the axis labels (time series chart; y axis of the panel chart without breakpoints) 10, "plain"
axis_title_size, axis_title_face Size and font face of the axis titles (time series chart; panel chart without breakpoints) 10, "bold"
strip_text_size, strip_text_face Size and font face of the panel titles of the panel chart without breakpoints 10, "bold"
smooth_method Smoothing method of the curve in the panel chart without breakpoints, as in ggplot2::geom_smooth(): "loess", "lm", "gam", โ€ฆ "loess"
smooth_linetype Line type of that curve: "dashed", "solid", "dotted", โ€ฆ "dashed"
text_hjust, text_vjust Horizontal and vertical justification of the share label in each panel (it is anchored at 1957 and zero catch) 0.9, -4
text_size, text_color Size and colour of the share label 4.5, "black"
facet_ncol Number of columns of the panel chart without breakpoints 2
ZH Older way of asking for Chinese: TRUE is lang = "zh" FALSE
lang Language of the chart text and names: "en", "zh" or "both" NULL: "zh" if ZH = TRUE, else the language of fao_settings()
pptx Also save the charts as editable PowerPoint files in figures/pptx/ FALSE, or pptx of fao_settings()
plot_show Also draw each chart in the plot window (e.g.ย the Plots pane of RStudio) as it is saved FALSE, or plot_show of fao_settings()

3๏ธโƒฃ fishing_area_country(): main countries

countries <- fishing_area_country(FAO27$area_data, rank_range = 1:10)
area_country.png
area_country_wrap.png

It works like fishing_area_species(), by country:

Output Content
area/area_country.png Catch of the selected countries over time
area/area_country_wrap.png One panel per country with its share of the areaโ€™s catch, a linear trend and the breakpoints (or a smooth curve)
tables/country_ranked_table.csv Average catch per decade, catch in each of the last five years, catch and share in the last year
tables/country_coefs_data.csv The breakpoints
Returned list area_country (catch of every country by year), area_country_ranked, area_country_ranked_total and coefs_data
show_table(countries$area_country_ranked_total)
Country..Name. Total_Tonnes Percentage Rank_Tonnes
Norway 175,537,274 24.34 175,537,274
Iceland 90,654,303 12.57 90,654,303
Denmark 85,470,967 11.85 85,470,967
United Kingdom 65,908,778 9.14 65,908,778
Un. Sov. Soc. Rep. 53,248,275 7.38 53,248,275
France 35,289,487 4.89 35,289,487
Spain 31,240,735 4.33 31,240,735
Russian Federation 30,914,334 4.29 30,914,334
Germany 27,722,268 3.84 27,722,268
Faroe Islands 23,481,732 3.26 23,481,732

All arguments of fishing_area_country(). As for the species, the panel chart with breakpoints has fixed line widths, text sizes and two columns.

Argument Meaning Default
area_data Catch data of an area: fishing_area_data()$area_data or any subset of load_fao_data()
rank_range Ranks of the countries shown, by total catch over all years: 1:10 the ten largest, c(5, 6) the fifth and the sixth 1:10
plot Save the charts TRUE
table Save the two tables in tables/ TRUE
timeseries_analysis TRUE: panel chart with linear trend and breakpoints; FALSE: panel chart with a smooth curve TRUE
h_value Minimum length of a period between breakpoints: a fraction of the series or a number of years 0.15
line_width Width of the lines of the time series chart (area_country.png) 1.5
line_alpha Transparency of the lines of the time series chart and of the panel chart without breakpoints 0.7
line_linewidth Width of the lines of the panel chart without breakpoints 1.5
point_size Size of the points of the time series chart and of the panel chart without breakpoints 1.8
point_alpha Transparency of these points 0.7
point_shape Shape of these points (R point symbol) 1
axis_text_size, axis_text_face Size and font face of the axis labels (time series chart; y axis of the panel chart without breakpoints) 10, "plain"
axis_title_size, axis_title_face Size and font face of the axis titles (time series chart; panel chart without breakpoints) 10, "bold"
strip_text_size, strip_text_face Size and font face of the panel titles of the panel chart without breakpoints 10, "bold"
smooth_method Smoothing method of the curve in the panel chart without breakpoints, as in ggplot2::geom_smooth() "loess"
smooth_linetype Line type of that curve "dashed"
text_hjust, text_vjust Justification of the share label in each panel 0.9, -4
text_size, text_color Size and colour of the share label 4.5, "black"
facet_ncol Number of columns of the panel chart without breakpoints 2
ZH Older way of asking for Chinese: TRUE is lang = "zh" FALSE
lang Language of the chart text and names: "en", "zh" or "both" NULL: "zh" if ZH = TRUE, else the language of fao_settings()
pptx Also save the charts as editable PowerPoint files FALSE, or pptx of fao_settings()
plot_show Also draw each chart in the plot window (e.g.ย the Plots pane of RStudio) as it is saved FALSE, or plot_show of fao_settings()

๐Ÿ“ How the breakpoints are found

The breakpoints divide a catch series into periods with different mean catch. Each series is fitted with a model of constant mean (catch ~ 1) in each period; the breakpoints that minimise the residual sum of squares are found by dynamic programming (Bai and Perron 2003), and the number of breakpoints is chosen by the Bayesian information criterion (BIC), as done by strucchange::breakpoints() (Zeileis et al.ย 2002, 2003). Every period has at least h years: 15% of the series in fishing_area_data(), and h_value in the other functions.

Function Series analysed
fishing_area_data() Total catch of the area in each year
fishing_area_species() Catch of each species, over its longest run of consecutive years
fishing_area_country() Catch of each country, over all years with records (a warning is given when years are missing)

The breakpoints show when the level of the catch changed, not why: changes in fishing, in the stocks, in markets or in reporting can all move the catch.

๐ŸŒ Another area: the Northwest Atlantic

Any FAO area works the same way. The Northwest Atlantic (area 21) lies off Canada, the United States and Greenland:

FAO21 <- fishing_area_data("Atlantic, Northwest")
fishing_area_country(FAO21$area_data, rank_range = 1:8)
fishing_trend.png
fishing_percentage.png
area_country_map.png
area_country.png
area_country_wrap.png

The catch of area 21 was largest in 1968 (4.6 million t) and was 1.4 million t in 2024. Its Atlantic cod fell from 564 thousand t in 1990 to 31 thousand t in 1995: the cod off Newfoundland and Labrador collapsed, and Canada closed the fishery in 1992 (Hutchings and Myers 1994).

Charts of different areas are saved under the same file names (e.g.ย fishing_trend.png), so use one working folder per area, e.g.ย setwd("reports/FAO21").

๐Ÿ“– References

Bai, J. and Perron, P. (2003). Computation and analysis of multiple structural change models. Journal of Applied Econometrics 18(1): 1โ€“22. doi:10.1002/jae.659

CWP (Coordinating Working Party on Fishery Statistics). CWP Handbook of Fishery Statistics: Main water areas (FAO major fishing areas). Rome: FAO. https://www.fao.org/cwp-on-fishery-statistics/handbook/general-concepts/main-water-areas/en/

FAO (2026). FishStat: Global capture production 1950โ€“2024 (release 2026.1.0). In: FishStatJ. https://www.fao.org/fishery/statistics/software/fishstatj/en. Licence: CC-BY-4.0. Release file: https://www.fao.org/fishery/static/Data/Capture_2026.1.0.zip

FAO. Fishing area maps. In: FAO Fisheries and Aquaculture Division [online]. Rome. https://www.fao.org/fishery/docs/maps/Default.htm

FAO (2024). FAO Major Fishing Areas for Statistical Purposes. In: FAO Fisheries and Aquaculture Division [online]. Licence: CC-BY 4.0. https://www.fao.org/fishery/geonetwork?uuid=ac02a460-da52-11dc-9d70-0017f293bd28 (the area boundaries of the maps, bundled as inst/extdata/FAO_AREAS_CWP.shp)

FAO (2026). Fishery and Aquaculture Statistics โ€“ Yearbook 2024. FAO Yearbook of Fishery and Aquaculture Statistics. Rome: FAO. doi:10.4060/ce1217en

Hutchings, J.A. and Myers, R.A. (1994). What can be learned from the collapse of a renewable resource? Atlantic cod, Gadus morhua, of Newfoundland and Labrador. Canadian Journal of Fisheries and Aquatic Sciences 51(9): 2126โ€“2146. doi:10.1139/f94-214

Massicotte, P. and South, A. rnaturalearth: World Map Data from Natural Earth. R package. doi:10.32614/CRAN.package.rnaturalearth

Natural Earth. Admin 0 โ€“ Details, map units, 1:50m (the country outlines of the maps). https://www.naturalearthdata.com/downloads/50m-cultural-vectors/50m-admin-0-details/

NOAA National Centers for Environmental Information (2022). ETOPO 2022 15 Arc-Second Global Relief Model. doi:10.25921/fd45-gt74

Pebesma, E. (2018). Simple features for R: standardized support for spatial vector data. The R Journal 10(1): 439โ€“446. doi:10.32614/RJ-2018-009

Vihtakari, M. (2026). ggOceanMaps: Plot Data on Oceanographic Maps using โ€˜ggplot2โ€™. R package version 3.0.0. doi:10.32614/CRAN.package.ggOceanMaps. GitHub: https://github.com/MikkoVihtakari/ggOceanMaps

Wickham, H. (2016). ggplot2: Elegant Graphics for Data Analysis. New York: Springer. doi:10.1007/978-3-319-24277-4

Zeileis, A., Kleiber, C., Krรคmer, W. and Hornik, K. (2003). Testing and dating of structural changes in practice. Computational Statistics & Data Analysis 44(1โ€“2): 109โ€“123. doi:10.1016/S0167-9473(03)00030-6

Zeileis, A., Leisch, F., Hornik, K. and Kleiber, C. (2002). strucchange: an R package for testing for structural change in linear regression models. Journal of Statistical Software 7(2): 1โ€“38. doi:10.18637/jss.v007.i02