Let’s get a dataset from OBIS using robis, R client for OBIS API.
occ <- occurrence(resourceid = 2296)
The function occurrence() get occurrence records from OBIS which has resourceid = 2296 and transform the results into an R dataframe. To quickly visualize the occurrences, we can do
There are a lot of points overlapping each other. We can bin these points into hexagons/squares and colour these hexagons/squares based on the number of points in each hexagon. To achieve this, we can use the ly_hexbin function from rbokeh.
# hexbin with rbokeh
figure(width = 900, height = 450) %>%
ly_map("world", color = "#707070", alpha = 0.8) %>%
ly_hexbin(decimalLongitude, decimalLatitude, xbins = 100, shape = 0.2,
alpha = 0.8, palette = "Spectral6", trans = log, inv = exp) %>%
theme_plot(background_fill_color = "black") %>% # dark background
theme_grid(grid_line_alpha = 0) # remove grid
Warmer colour means more occurrences within that hexagon. The colour is based on log scale of the count.
It is nicer, but we could have done better! A lot of points are scatter around antarctic/subantarctic zone. It could be nicer to make the plot in polar projection. In this case, we can do that with ggplot!
world <- map_data("world")
geom_bin2d(data = occ, aes(x = decimalLongitude, y = decimalLatitude), bins = 100) +
geom_path(data = world, aes(x = long, y = lat, group = group), colour = "#c0c0c0") +
scale_y_continuous(name = "latitude", breaks = (-2:2) * 30) +
scale_x_continuous(name = "longitude", breaks = (-4:4) * 45) +
coord_map("ortho", orientation = c(-90, 0, 0)) + # orthographic projection from South Pole
scale_fill_viridis(option = "viridis", trans = "log") + # log scale for bin count
theme(panel.background = element_rect("black"), # dark background
panel.grid = element_blank(), # remove panel grid
axis.text.x = element_blank()) # remove x-axis value
Tada!! 🙂 We will post more interesting tutorials later! Thanks for reading!!
British Antarctic Survey. SOMBASE PYCNOGONIDS. Occurrence Dataset https://doi.org/10.15468/qtm508 accessed via iobis.org on 2018-02-11.