So, there has been some news on cod fisheries in Jan Mayen. In that context I became interested in knowing what was the size of the shelf area, a potential proxy for the order of magnitute of cod that this ecosystem could hold. As usual R-comes to the rescue.
The only data we need is some depth raster information, here we use the NOAA global relief database, accessing it from within R via the getNOAA.bathy
-function that resides in the marmap-package. Beside that library we need the usual additional suspects:
library(raster)
library(sf)
library(tidyverse)
library(marmap)
The data for the Icelandic and Jan Mayen shelf we obtain by the following command:
depth <-
marmap::getNOAA.bathy(lon1 = -28.0, lon2 = 0.0,
lat1 = 62.5, lat2 = 72.5,
resolution = 1) %>%
marmap::fortify.bathy() %>%
as_tibble()
What we have is:
glimpse(depth)
Observations: 1,008,000
Variables: 3
$ x <dbl> -27.99167, -27.97500, -27.95833, -27.94167, -27.92500, -2…
$ y <dbl> 72.49167, 72.49167, 72.49167, 72.49167, 72.49167, 72.4916…
$ z <int> 1432, 1439, 1445, 1446, 1446, 1449, 1458, 1460, 1449, 143…
Where the variable x and y are the Cartesian coordinates and z is the relief (value is negative for below sea-level).
We need to isolate the area of interest a little further because we want to exclude any Greenland shelf area. So we first generate a polygon:
clip <-
data_frame(x = c(-28.0, -12, -5, -7, -20, -28, -28.0),
y = c( 65.7, 72.5, 72, 64, 62, 63, 65.7)) %>%
as.matrix() %>%
st_linestring() %>%
st_cast("POLYGON") %>%
st_sfc() %>%
st_set_crs(4326)
In the next step we:
z <-
depth %>%
rasterFromXYZ() %>%
rasterToContour(levels = c(-1, -100, -200, -300, -400, -500)) %>%
st_as_sf() %>%
st_cast("POLYGON") %>%
st_set_crs(4326) %>%
lwgeom::st_make_valid() %>%
st_intersection(clip) %>%
st_transform(crs = 32627) %>%
st_cast("MULTILINESTRING") %>%
mutate(z = -as.integer(as.character(level))) %>%
select(-level)
Visually we have:
ggplot() +
geom_sf(data = z %>% filter(z != 1), aes(colour = as.factor(z))) +
geom_sf(data = z %>% filter(z == 1) %>% st_cast("POLYGON"), fill = "black") +
scale_color_brewer(palette = "Set1") +
labs(colour = "depth")
Here we separate the Jan Mayen and Iceland area and for each area calculate the size of the shelf from the shoreline to 100, 200, 300, 400 and 500 meter depths.
We first calculate the size of each area separately, then merge the data and provide a summary graph.
jm <-
z %>%
st_transform(4326) %>%
st_crop(c(xmin = -15, ymin = 70, xmax = 0, ymax = 72.5)) %>%
st_transform(32627) %>%
st_cast("POLYGON") %>%
mutate(area = abs(st_area(.)),
area = area - min(area),
area = units::set_units(area, km^2),
name = "Jan Mayen",
zone = paste0("0-", z))
ice <-
z %>%
st_transform(4326) %>%
st_crop(c(xmin = -28, ymin = 62, xmax = 0, ymax = 68)) %>%
st_transform(32627) %>%
st_cast("POLYGON") %>%
mutate(area = abs(st_area(.)),
area = area - min(area),
area = units::set_units(area, km^2),
name = "Iceland",
zone = paste0("0-", z))
bind_rows(st_set_geometry(ice, NULL), st_set_geometry(jm, NULL)) %>%
ggplot(aes(z, area, colour = name)) +
geom_point() +
geom_line() +
scale_color_brewer(palette = "Set1") +
coord_flip() +
scale_x_reverse(label = paste0("0-", seq(0, 500, by = 100))) +
theme(legend.position = c(0.8, 0.8)) +
labs(y = "Area [km^2]", x = "Depth range [m]", colour = "Area")
The proportion of the size of Jan Mayen depths relative to the equivalent depth range in Iceland is:
bind_rows(st_set_geometry(ice, NULL) %>% mutate(area = as.numeric(area)),
st_set_geometry(jm, NULL) %>% mutate(area = as.numeric(area))) %>%
mutate(area = as.numeric(area)) %>%
spread(name, area) %>%
mutate(p = 1 / (Iceland / `Jan Mayen`)) %>%
ggplot(aes(z, p)) +
geom_point() +
scale_x_continuous(label = paste0("0-", seq(0, 500, by = 100))) +
labs(x = "Depth [m]", y = "Jan Mayen as a proportion if Icelandic shelf") +
expand_limits(y = 0)
Ergo, the size of any depth range of the shelf and slope of Jan Mayen is only 1-2.5% of equivalent depth range in Icelandic waters.
Lets “move” the Jan Mayen shelf and slope into Icelandic waters, sort of to get a more direct visual comparison:
jm.shifted <-
jm %>%
st_geometry() %>%
+ c(-0.12e5, -0.4e6) %>%
st_sf(z = jm$z,geometry = .) %>%
st_set_crs(32627) %>%
st_cast("MULTILINESTRING")
ice <-
ice %>%
st_cast("MULTILINESTRING")
ggplot() +
geom_sf(data = ice %>% filter(z != 1), aes(colour = as.factor(z))) +
geom_sf(data = jm.shifted %>% filter(z != 1), aes(colour = as.factor(z))) +
geom_sf(data = ice %>% filter(z == 1) %>% st_cast("POLYGON"), fill = "black") +
geom_sf(data = jm.shifted %>% filter(z == 1) %>% st_cast("POLYGON"), fill = "black") +
scale_color_brewer(palette = "Set1") +
labs(colour = "depth")
So, the Jan Mayen shelf is only about the size of Digranesgrunn. It is thus very unlikely that one can expect large sustained catches in Jan Mayen, neither now or in the foreseeable future. High catch rates like are now reported are also not expected to last over the long run.
For attribution, please cite this work as
Hjörleifsson (2018, Dec. 17). Splatter: Jan Mayen shelf size. Retrieved from https://splatter.netlify.com/posts/2018-12-17-jan-mayen-shelf-size/
BibTeX citation
@misc{hjörleifsson2018jan, author = {Hjörleifsson, Einar}, title = {Splatter: Jan Mayen shelf size}, url = {https://splatter.netlify.com/posts/2018-12-17-jan-mayen-shelf-size/}, year = {2018} }