Easy to use marine climate layers for ecological modelling

3 min readDec 4, 2019


The availability of high-resolution global environmental datasets is crucial to model the relationship between the occurrence or abundance of species and their natural environment. For terrestrial environments, WorldClim has served this purpose since the early 2000s, significantly improving the application in the fields of ecology, biogeography, conservation biology and evolution.

Equivalent data for the marine realm only became available in 2012, with the pioneer initiative Bio-ORACLE providing data for several ecologically relevant variables. A new update of this dataset includes the most recent Intergovernmental Panel on Climate Change (IPCC) scenarios and new present-day variables like sea ice thickness, dissolved iron, phytoplankton, primary productivity and light at the bottom. The update also includes near sea bottom layers, which allow modelling a large fraction of the benthic diversity that inhabits deeper habitats.

Mean benthic ocean temperature for the present (source: Bio-ORACLE)

The relevance of new data aiming for species associated with sea benthic features is clearly underlined by the disparity in ocean temperatures between surface and benthic layers, which can amount to up to 28.8 8C in the deeper regions of lower latitudes (Figure).

The reliability of data layers was further tested using a cross-validation framework against in situ quality controlled data. This showed a generally good agreement between data layers and the global climatic patterns.

The R package sdmpredictors facilitates listing, extraction and management of the data layers provided by Bio-ORACLE, as well as easy integration with the available pipelines for bioclimatic modelling.

Sample R code: Plotting maximum temperature at the sea bottom

# Load package
# Download data layer (Maximum Temperature at the sea bottom)
temp.max.bottom <- load_layers("BO2_tempmax_bdmax")
# Crop raster to fit the North Atlantic
ne.atlantic.ext <- extent(-100, 45, 30.75, 72.5)
temp.max.bottom.crop <- crop(temp.max.bottom, ne.atlantic.ext)
# Generate a nice color ramp and plot the map
my.colors = colorRampPalette(c("#5E85B8","#EDF0C0","#C13127"))
plot(temp.max.bottom.crop,col=my.colors(1000),axes=FALSE, box=FALSE)
title(cex.sub = 1.25, sub = "Maximum temperature at the sea bottom (ºC)")

Sample R code: Extracting environmental data for a set of sites

# Load packages (leaflet allows to load google maps)
# List layers avaialble in Bio-ORACLE v2
layers.bio2 <- list_layers( datasets="Bio-ORACLE" )
# Download data layers (Max. Temperature, Min. Salinity and Min. Nitrates at the sea bottom)
environment.bottom <- load_layers( layercodes = c("BO2_tempmax_bdmean" , "BO2_salinitymin_bdmean", "BO2_nitratemin_bdmean") , equalarea=FALSE, rasterstack=TRUE)
# Download bathymetry
bathymetry <- load_layers("BO_bathymean")
# Generate a data.frame with the sites of interest
my.sites <- data.frame(Name=c("Faro, Portugal, NE Atlantic" , "Maspalomas, Spain, NE Atlantic" , "Guadeloupe, France, Caribbean Sea" , "Havana, Cuba, Caribbean Sea") , Lon=c(-7.873,-15.539,-61.208,-82.537) , Lat=c(37.047, 27.794,15.957,23.040 ) )
# Visualise sites of interest in google maps
m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, lng=my.sites$Lon, lat=my.sites$Lat, popup=my.sites$Name)
# Extract environmental values from layers
my.sites.environment <- data.frame(Name=my.sites$Name , depth=extract(bathymetry,my.sites[,2:3]) , extract(environment.bottom,my.sites[,2:3]) )

The data available in Bio-ORACLE are documented in two articles:

Assis, J., Tyberghein, L., Bosh, S., Verbruggen, H., Serrão, E. A., & De Clerck, O. (2017). Bio-ORACLE v2.0: Extending marine data layers for bioclimatic modelling. Global Ecology and Biogeography, 27, 277–284.

Tyberghein L, Verbruggen H, Pauly K, Troupin C, Mineur F, De Clerck O (2012) Bio-ORACLE: A global environmental dataset for marine species distribution modelling. Global Ecology and Biogeography, 21, 272–281.




Hi!! I’m Jorge Assis, a Data Scientist, Marine Ecologist, Climate Change Analyst, R and Python Developer based in Portugal [biodiversitydatascience.com]