Research Article |
|
Corresponding author: Johannes De Groeve ( j.degroeve@uva.nl ) Academic editor: Robert Whittaker
© 2025 Johannes De Groeve, Kenneth F. Rijsdijk, Eline S. Rentier, Suzette G. A. Flantua, Sietze J. Norder.
This is an open access article distributed under the terms of the Creative Commons Attribution License (CC BY 4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Citation:
De Groeve J, Rijsdijk KF, Rentier ES, Flantua SGA, Norder SJ (2025) Temporal Altitudinal Biogeographic Shifts (tabs): R package for reconstructing biogeographic shifts in terrestrial and marine systems over time. Frontiers of Biogeography 18: e151677. https://doi.org/10.21425/fob.18.151677
|
Past climate fluctuations have profoundly influenced the global distribution of biomes, ecosystems and species, altering their altitude, spatial configuration, area, and connectivity. Notable examples include island archipelagos and alpine biomes, where shifts in sea levels and forest lines respectively reshaped their spatial structures. To understand how such changes affected species distributions and biodiversity patterns, we require spatially explicit reconstructions over continuous time series. However, a comprehensive and reproducible methodology that captures their spatio-temporal dynamism is lacking. Here, we introduce the R package Temporal Altitudinal Biogeographic Shifts (tabs), a tool designed for reconstructing spatial configurations over time, focusing on biogeographic systems bounded by an altitudinal range. We demonstrate the use of tabs by modelling spatial configurations of island archipelagos and alpine biomes in response to fluctuations in sea levels and forest lines. Unique to tabs, it can also account for geophysical effects on regional sea levels, and for geotectonic topographic changes. Beyond past reconstructions, tabs can project spatial configurations shaped by future climatic conditions. This versatile package is easily adaptable to various altitude-bounded biogeographic systems influenced by long-term climatic variations, such as coral reefs and shelf seas. Studying the shifts in biogeographic systems through continuous spatial reconstructions, rather than snapshots in time such as the Last Glacial Maximum, captures the nuances of continuously changing environments and provides a more complete understanding of the biogeography of our planet.
tabs R package enables detailed spatio-temporal reconstructions of biogeographic systems along altitudinal gradients.
Designed with user-friendliness in mind, it offers a streamlined setup, enabling researchers to start reconstructions quickly without extensive technical expertise.
tabs is applicable to diverse biogeographic systems, including islands, coastal zones, and alpine biomes.
It provides flexibility to tailor input data, parameters, and settings according to specific local conditions and research objectives.
tabs generates outputs using a standardised data structure and open data formats, enabling effective analysis and presentation of results.
Climate-driven biome shifts, ecosystem modelling, paleogeographic reconstructions, Quaternary climate change, sea level fluctuations, spatio-temporal analysis
Past climate fluctuations have been a significant driver of evolutionary and ecological processes, profoundly influencing the spatial distribution of biogeographic systems, biomes, ecosystems and their species communities (
By examining how biogeographic systems shifted their distributions over time, we can reveal dynamics of expansion and contraction, isolation and connectivity, as well as their influence on ecological patterns and processes (
Despite a broad interest in spatio-temporal reconstructions and projections of biogeographic systems, there is currently no standardised, adaptable workflow capable of reconstructing spatio-temporal shifts across diverse biogeographic contexts, including both marine and terrestrial systems. Workflows are often developed to generate reconstructions for a specific biogeographic system, spatial or temporal scale, or research question. This limits their utility to other researchers who may wish to incorporate not only climate-driven shifts but also geological dynamics, or those who are focused on projected instead of reconstructed biogeographic shifts. Finally, current workflows often fail to provide outputs in open, compatible formats that facilitate further analysis, visualisation and collaboration. Thus, applying a proposed workflow also tends to require extensive data preparation and technical expertise, further limiting their usability. To address these gaps and advance our understanding of biogeographic dynamics across both space and time, the development of a versatile, user-friendly workflow is essential.
Here, we introduce a globally applicable, reproducible workflow for reconstructing and projecting biogeographic shifts in terrestrial and marine systems in response to climate, topography, and geological changes. The Temporal Altitudinal Biogeographic Shifts (tabs) R package models spatial configurations over time, focusing on biogeographic systems bounded by an altitudinal range, such as island archipelagos, alpine biomes, coral reefs and shelf seas. Additionally, to derive regional sea-level estimates, tabs allows to account for crustal deformations and gravitational forces generated by ice sheets, often neglected in earlier studies (e.g.
The functionality of tabs builds on and automates the foundational work laid out by
tabs allows for generating reconstructions using region-specific custom data sources, but various built-in datasets can be used to create reconstructions anywhere on the globe. To access these datasets, first-time users are encouraged to run the setup() function, which creates a directory structure in a specified or default local path, and automatically downloads these datasets (requiring 15 GB of disk space). Datasets include: i) a tiled version of the global bathymetry and topography (
The reconstruct() function is the core function of tabs and operates with several integrated helper or utility functions (Fig.
To generate a tabs reconstruction, it is important to first define and select the region of interest. This can be done using one of five approaches (Table
The infographic provides a summary of the tabs R package and the steps incapsulated by the function reconstruct(). (A) A region of interest on the globe can be selected using a wide range of methods, including by extent, filename, R objects, or geographic names such as islands, countries, archipelagos, mountains, and tectonic plates. (B) For the selected region, a harmonised input dataset compilation is prepared, which includes topo (I1; topography), curve (I2), correction (I3), labs (I4; labels) and iso (I5; altitudinal offset). Each dataset can be customised, and both curve and correction support various formats, including numeric vector(s) or raster(s). The latter two datasets are intersected with the region of interest and resampled to the resolution of the topography. If needed, the correction dataset is also aligned to the temporal resolution of the curve. The labs dataset, specified through the reclabs argument, can be one of the default global datasets (e.g., islands, mountains, geonames), a custom column name, or labelling can be ignored altogether. The iso variable defines the altitudinal offset from the curve for a biogeographic system (e.g., coral reefs between 0–30 m below sea level), and in this example, it is set to 0. (C) Reconstructed shapes are calculated as topographic pixels higher than the sum of the curve and correction. A line graph illustrates the interaction between these three variables (topo, curve, correction) for a single pixel (cross-marked), showing reconstructed shapes for three timestamps (t0, t1, t2). At t0, the pixel remains below the combined curve-correction threshold, but exceeds it at t1 and t2, resulting in reconstructed shapes. (D/E) The generated shapes are then labelled by identifying the highest point in the reconstructed shapes and intersecting them with the labelling dataset. Emerging shapes (e.g., at timestamp t2) are named using a standard convention (e.g., ‘S’ for shape, time of disappearance, and an identifier). Each shape is also assigned spatial attributes, such as the period, curve and iso, the area (in m² and raster cells), [x, y, z] coordinates, a list of intersecting present-day labels from the labs dataset, and a record of all reconstructed shapes intersecting with the shape at timestamp tx. (E) The reconstruct() function results in three output datasets: reconstructed shapes in vector and raster formats (recvect, recrast), and reconstructed area estimates for each shape (recarea). (F) The final dataset collection includes all the necessary datasets to reproduce the workflow, including all in-and outputs. The dataset collection can be exported, imported, and explored visually using various open data formats, including a (zipped) directory and R object.
| Description | Value |
|---|---|
| Default; Interactive drawing of an extent or polygon within R session | region=NULL |
| Specifying the extent as vector or ext-object | region=c(xmin,xmax,ymin,ymax) |
| A path to a locally stored spatial dataset (e.g., shapefile, geopackage) | region=’filename’ |
| A spatial (sf, SpatVector) object containing points or shapes | region=’spatvector’ |
| A name of an island, archipelago, country, tectonic plate or mountain | region=’Greece’ |
| region=’Sporades’ |
tabs facilitates labelling of the biogeographic shapes, i.e., naming of each reconstructed shape. To assign such labels, the user can specify the reclabs parameter, which includes three approaches (Table
| Description | Value |
|---|---|
| Labelling using the islands, mountains or geonames global datasets | reclabs=‘isls’ |
| reclabs=‘mnts’ | |
| reclabs=‘peak’ | |
| Custom labelling by specifying the column name of a user-defined region-object | reclabs=‘name’ |
| Automatically generated labels | reclabs=FALSE |
| Default; No labelling dataset defined; Labelling depends on the input of the region-object | reclabs=NULL |
By default, the GEBCO raster (
The curve can be defined as any dataset which expresses the relative shift in altitude over time for the biogeographic system of interest. Curves can vary both in space and in time within a region, thus it can be a vector of one or more altitude values, or one or more rasters. A typical example of a curve is a sea-level curve, expressing the change in sea level compared to the present-day reference (i.e., 0 m below sea level). Another example is the upper forest line (UFL), expressing the altitude above present-day sea level at which continuous forest persists. When a curve is represented as a raster, local variations can be incorporated. For instance, spatial differences in sea level due to gravitational pulling by large ice masses, or regional shifts in the upper forest line driven by slope, aspect and temperature gradients across mountain latitudes. A curve can also be defined by a single value, for instance, the median sea level across the Pleistocene or a future scenario of sea-level rise. Hence, tabs allows a flexible and customisable definition of a curve. tabs has several built-in curves that can be called by their name (Table
| Name | Description | Time span | Temporal resolution | Spatial resolution | Source |
|---|---|---|---|---|---|
| Lambeck | Global eustatic sea-level curve | 35 ky BP | 1000 yr |
|
|
| curve=’lambeck’ | |||||
| Cutler | Global eustatic sea-level curve | 120 ky BP | 1000 yr |
|
|
| curve=’cutler’ | |||||
| Bintanja | Global eustatic sea-level curve | 3 Myr BP | 1000 yr |
|
|
| curve=’bintanja’ | |||||
| De Groeve | Global spatio-temporal sea-level curve | 26 ky BP | 500 yr | 0.2° |
|
| curve=’st_curve’ | |||||
| IPCC | Global average sea level for four IPCC scenarios (SSP1, SSP2, SSP3, SSP5). | Present to 2100 | 20 yr | Intergovernmental Panel on Climate Change (IPCC) 2023 | |
| curve=’IPCC’ | |||||
| Funza | Upper forest line altitudes derived from fossil pollen record Funza (Colombia) | 1 Myr BP – 22 ky BP | 1000 ky |
|
|
| curve=’funza’ | |||||
| User-defined | A vector with the altitude(s) or a data frame containing altitudes at different time steps. | Any | Any | Any | |
| NULL | If no argument is provided, construction will be produced for the present |
The iso (hypse) argument defines the offset from the curve and covers the altitudinal range of the biogeographic system to reconstruct. By default, this argument is set to 0 meter to reconstruct configurations of coastlines and forest lines, but any altitudinal range that describes the altitudinal distribution of a biogeographic region can be used. For example, the availability of coral and shelf seas varies synchronously with sea-level change, thus to reconstruct their spatial configurations we need to specify the minimum and maximum altitude range at which they may occur, respectively 0 m – 30 m below sea level (BSL) and 0 m – 140 m BSL.
The reconstruction of biogeographic systems and their spatial configurations over time is influenced not only by specific climatic conditions but also by geotectonic and geophysical processes that can result in topographic changes during the study period. For instance, whether an island is above or below sea level will not only depend on the redistribution of water from ice sheets, but also local effects that change the topography. Examples are uplift and subsidence in tectonic active areas, deposition and erosion of sediment in fluvial deltas and land loss or land gain due to catastrophes such as volcanic eruptions (e.g.
In addition to these six main input parameters of reconstruct(), there are other settings that can be tailored to specific purposes. A buffer can be defined to increase the extent of the region definition. With fillholes, remaining holes in reconstructed shapes are removed. Further, it is possible to identify and remove reconstructed shapes below a specific size (with the noise and noiserm parameters respectively) and to generate outputs at lower spatial resolution (fact). Both noise(rm) and fact will reduce computation time, since the former will decrease the number of spatial features, and the latter reduces the number of output cells in rasters. The metrics parameter specifies which metrics are by default computed, currently only including the area change over time. Moreover, several steps of the reconstruct() function can be run separately using specific helper-functions, including get_region(), get_curve() and get_correction().
The two main outputs of the reconstruct() function are 1) the reconstructed biogeographic shapes at each time step in raster (recrast) and vector (recvect) format, and 2) a table with the calculated surface area for each reconstructed shape (recarea) per time step and a unique ID assigned to each shape. These IDs enable tracking which present-day shapes were merged into larger shapes across time steps. In addition, all preprocessed input datasets are also provided for the defined region (topo, labs, curve, correction). The reconstruct() output can be exported in three file formats: (1) directory, where rasters are exported as GEOTIFF and vectors in GeoPackage, (2) zip, a zipped version of directory-type export and (3) rds/qs2, as the default R export data format. Outputs can be exported by specifying the argument filename, including the path and optional extension in the reconstruct() function or in the export() function. Finally, the import() function allows loading a saved reconstruction (e.g. from a directory or rds/qs2) as an R object of class ‘tabs’.
In addition to these in- and outputs that are stored locally, an R object of class ‘tabs’ will be generated that can be used to explore the outputs interactively with the explore() function. This function will generate interactive maps to visually explore biogeographic shapes over time, or to compare reconstructed shapes to their present-day distribution.
To demonstrate the application of tabs, we present two case studies that reflect different biogeographic contexts: a coastal system in the Sporades (Greece) and a high-elevation system in the Venezuelan Andes. These examples illustrate how tabs can be used to reconstruct spatial configurations under different altitudinal scenarios. We provide sample code demonstrating the use of the reconstruct() function to illustrate the core of the functionality of tabs. Although sample code for the reconstruct() function is provided, generating the final figures requires additional steps and relies on code and data that are openly available at
As a first case study, we reconstructed the coastlines of the Sporades archipelago in Greece since the LGM (26 ky BP) to the present-day using the default input datasets (topo, labs, curve). In addition, we defined a correction raster to account for local changes in uplift and subsidence (sample dataset in tabs). Such a complex reconstruction can be run simply by defining four parameters: (1) region, as the extent of the correction, (2) reclabs, to specify the labelling dataset, (3) correction, to account for topographic changes over the last 26 ky BP and (4) curve, set to the spatio-temporal sea-level curve by De Groeve et al. (2022; Table
# load built-in correction raster
correction <- sporades()$correction
# reconstruct
sporades <- reconstruct(region = ext(correction),
reclabs = ’isls’,
correction = correction,
curve = ’st_curve’)
Using the reconstruct outputs of tabs, we can create, for example, coastline change maps or graphs representing area change and island connectivity since the LGM due to sea-level fluctuations (Fig.
Reconstruction using the built-in dataset of the Sporades archipelago (Greece). (A) Coastline change map. (B/C) Area change of the island groups Skopelos (B) and Skantzoura (C). Lines indicate the island areas (y-axis, km2) at different moments in time (x-axis, yr BP). Separating lines indicate different islands as connections are lost due to rising sea levels. (D) Sea-level fluctuations at different moments in time (x-axis, yr BP) with and without topographic corrections. The colour gradient in all figures indicates time, where green represents the LGM and white the present.
In our second case study, we reconstruct the area change of the ‘páramo’, i.e., high altitude alpine biome in Venezuela (Northern Andes), during the last 1 million years following
# define region using extent coordinates
region <- terra::ext(c(-72.5,-69.2,7.5,10.2))
# curve
curve <- funza[2:length(funza)]
# calculate forest line deciles from curve
deciles <- quantile(curve, probs = seq(0, 1, by = 0.1))
# reconstruct forest line deciles
andes <- reconstruct(region = region,
curve = deciles,
reclabs = FALSE,
aggregate = TRUE)
# reconstruct 0-130 ky BP
andes130 <- reconstruct(region = region,
curve = funza[1:(130-27)],
reclabs = FALSE,
aggregate = TRUE)
We can see that the present-day UFL altitude (here standardised to UFL = 3250 m a.s.l.) is within the upper decile (UFL = 3105–3404 m a.s.l.), resulting in one of the smallest areal extensions (i.e., 2203 km2) of the páramo in comparison to the last 1 million years. More precisely, only for c. 12 ky, or 1.2% of the time, the UFL was higher and the corresponding area smaller than the present-day. Half of the time (500 ky; middle decile), the UFL was below 2750 m a.s.l. resulting in the páramo to be 1.84 times larger (> 4044 km2) than the present. For 10% of the time (100 ky; lower decile), the UFL was as low as 2213 m a.s.l., resulting in an areal extension c. 3.4 times larger (>7510 km2) than the present-day (2203 km2 for a UFL of 3250 m a.s.l.).
Reconstruction of upper forest line (UFL) deciles, representing the proportion of time during the last 1 million years that the UFL was above an altitudinal threshold. (A) The map represents the proportion of time (1000–29 ky BP) that a pixel was above the UFL threshold. (B) Graph shows the altitudinal variation of the Funza UFL from 1000–29 ky ago with the coloured deciles on the background showing the UFL altitudinal range of each decile. (C) Area change in relation to UFL deciles, where the dots show the number of individual “páramo sky islands” at each decile. (D) Area change curve for the last 130–29 ky BP.
Here we present tabs as a workhorse for modelling and quantifying spatio-temporal dynamics of biogeographic systems in response to climate and geology. It is built in such a way that it can be used for any biogeographic system that can be roughly defined by an altitudinal range. Specifically, we modelled shorelines of the Sporades archipelago (Greece) and the upper forest lines delimiting the lower boundary of the páramo (high altitude alpine biome of the Northern Andes) as case studies to showcase tabs’ functionality. These case studies illustrate that tabs requires very limited lines of code and a limited number of parameter settings to reconstruct biogeographic shapes over time. While it is easy to generate such reconstructions using default settings, we showed that tabs is also highly flexible and can incorporate diverse curve representations including sea level rasters in the first case study and (aggregated) upper forest line vectors in the second. Thanks to tabs’ interoperable and standardised output structure, results can be turned into insightful visualisations to investigate patterns of changing biogeographic systems over time. For example, the first case study illustrates the ease of performing automated labelling procedures for both present-day and submerged islands, and how these outputs can be transformed into maps and graphs to analyse past dynamics of island connections. The second case study illustrates how statistics (i.e., deciles) formalising boundaries of a biogeographic system can be turned into insightful maps and graphs, representing surface area dynamics. In short, we illustrate tabs’ potential to facilitate and enrich scientific analyses with strong visualisations supporting a broad range of biogeographic studies.
Some existing software tools, especially used in the field of island biogeography, are complementary to tabs. The PleistoDist R package (
The performance of tabs is dependent on the complexity of the reconstruction. For instance, generating reconstructions using GEBCO and an eustatic curve, which has been the practice in literature until now (
Global vs regional reconstructions
: Currently, tabs is customised for regional reconstructions across the globe and not for continuous global reconstructions, such as the global shoreline and shelf sea rasters (
Naming
: Automated labelling of biogeographic shapes is currently only integrated for shoreline shapes (continents, islands, islets) and mountain ranges. The default labelling option is based on GSV (
Furthermore, labelling of reconstructed shapes is primarily based on the location of the highest point observed within the underlying topography. This is a valid naming convention for biogeographic systems which only have a lower range limit, such as shorelines as well as upper forest lines, but not for biogeographic systems defined by a range, such as corals or shelf seas. This is because the highest point is not constant and can shift horizontally with every sea-level change. A more advanced procedure is required to enable labelling of shapes during horizontal biogeographic shifts. Reconstructions that do not require labelling or only require area change reconstructions at the extent level are applicable for any biogeographic range definition.
Corrections : While topographic corrections can be integrated in the model, either through definition of a (list of) rasters or values, it is expected from the user to prepare this input. This is particularly time consuming if corrections are defined as rasters requiring potential data collection, integration and manipulation. Given that there are no integrated databases including rates of topographic change (e.g., uplift, subsidence, erosion, sedimentation), a user will need to first screen the literature to collect known rates for locations within the study area. These rates can be digitised as linear features (in case of linear breakpoints, typically occurring along a tectonic fold and thrust belt) or as point features (in case rates are known for a specific location). Further, it might be necessary to define support points to enhance and facilitate the interpolation to obtain a smoothed raster accounting also for breakpoints. In case rates are not linear and vary over time, the process will need to be repeated for every period. In the future, we aim to facilitate this procedure by creating (1) a point and linear feature database with topographic rates of change and (2) an interpolation function, accounting for breakpoint features.
Isolation metrics and visualisations : We aim to further integrate more functionalities to tabs, including other pre-calculated metrics than area change, such as distance between shapes and timing of isolation, and functions to create publication-ready visualisations including maps, connectivity metrics and curve changes for selected regions or reconstructed shapes.
We encourage researchers interested in using tabs to contact our team for potential collaborations, allowing us to better address user-specific needs and further optimise the tool for diverse applications. For reporting bugs and recommendations, we advise users to create an issue in the tabs gitlab repository (
In conclusion, tabs is just as intuitive as pressing the tab key—streamlining the complex process of reconstructing spatio-temporal biogeographic configurations. By effortlessly mapping surface area changes, connectivity, and isolation over time, tabs generates structured geospatial datasets ready-to-use for further analysis and visualisation. Its customisable parameters can be adapted to any local environment, making it a valuable tool for researchers aiming to model and quantify biome and ecosystem changes over temporal scales, anywhere on the globe.
JDG was supported by institutional resources from the Computational Support Team of the Institute for Biodiversity and Ecosystem Dynamics (IBED), University of Amsterdam (Netherlands). ESR and SGAF acknowledge financial support from Trond Mohn Stiftelse (TMS) and the University of Bergen for the startup grant ‘TMS2022STG03’ to SGAF. We would like to thank scientific illustrator Miranta Kouvari for preparing the graphical abstract supported by the grant ‘TMS2022STG03’ to SGAF and by IBED institutional budgets.
JDG: Writing – Original draft, Writing – Review and Editing, Visualisation, Software, Data curation, Methodology, Project Administration, Conceptualisation. SJN: Writing – Original draft, Writing – Review and Editing, Resources, Methodology, Project Administration, Conceptualisation. KFR: Writing – Review and Editing, Project Administration, Methodology, Resources, Conceptualisation. ESR: Writing – Review and Editing, Project Administration, Validation, Conceptualisation. SGAF: Writing – Review and Editing, Project Administration, Resources, Funding Acquisition, Conceptualisation.
The tabs R package is available on CRAN. The development version (v0.1.1), as used in this publication, is accessible via GitLab [https://gitlab.com/uva_ibed_piac/tabs/-/releases/0.1.1] and archived on Figshare (