This R
library is designed to provide an easy way to
extract and manipulate palaeoclimate reconstructions for ecological and
anthropological analyses.
The functionalities of pastclim
are described in Leonardi et al. (2023).
Please cite it if you use pastclim
in your research.
pastclim
is on CRAN, and the easiest way to install it
is with:
{r install_cran, eval=FALSE} install.packages("pastclim")
If you want the latest development version, you can get it from
GitHub. To install from GitHub, you will need to use
devtools
; if you haven’t done so already, install it from
CRAN with install.packages("devtools")
. Also, note that the
dev
version of pastclim
tracks changes in the
dev
version of terra
, so you will need to
upgrade to both:
{r install_dev, eval=FALSE} install.packages('terra', repos='https://rspatial.r-universe.dev') devtools::install_github("EvolEcolGroup/pastclim", ref="dev")
On its dedicated website, you can
find Articles giving you a step-by-step overview
of the package, and a cheatsheet.
There is also a version of the
site updated for the dev
version (on the top left, the
version number is in red, and will be in the format x.x.x.9xxx,
indicating it is a development version).
Pastclim currently includes data from Beyer et al 2020, a reconstruction of climate based on the HadCM3 model for the last 120k years, and Krapp et al 2021, which covers the last 800k years. The reconstructions are bias-corrected and downscaled to 0.5 degree. More details on these datasets can be found here. There are also instructions on how to build and use custom datasets.
You can also build the vignettes when installing
pastclim
(note that you will need to have the necessary
tools to build vignettes already installed; requirements depend on your
OS):
devtools::install_github("EvolEcolGroup/pastclim", build_vignette = TRUE)
If you built the vignettes, you can read them directly in R. For example, the overview can be obtained with:
vignette("pastclim_overview", package = "pastclim")
If something does not work, check the issues on GitHub to see whether the problem has already been reported. If not, feel free to create an new issue. Please make sure you provide a reproducible example for the developers to investigate the problem.
pastclim
relies on terra
to process
rasters. There is a known bug in terra
that leads to the
occasional message:
"Error in x$.self$finalize() : attempt to apply non-function"
This is an error related to garbage collection, which does not affect the script being correctly executed, so it can be ignored. More discussion of this issue can be found on stackoverflow
terra
without NETCDF driver for macOSA number of versions of terra
available as binaries for
macOS X86-64 on CRAN (including the latest one) have been compiled
without a NETCDF driver (the latest ARM library is OK). This prevents
pastclim
, which relies on terra
, from
correctly reading files. Other packages that rely on terra
are similarly affected (e.g. stars
; see this bug)
When loaded, pastclim
checks if the driver is available;
in case of a missing driver, you will get the error:
Error: The installed version of terra lacks support for reading netcdf files.
pastclim needs netcdf support: you will need to reinstall terra,
possibly from source, if there isn't a version with netcdf support
on CRAN. Alternatively, try the latest development version from R-universe:
install.packages('terra', repos='https://rspatial.r-universe.dev')
The easiest solution is probably to install the dev
version of terra
from R-universe with:
install.packages('terra', repos='https://rspatial.r-universe.dev')
However, note that the dev
version of terra
is incompatible with the version of pastclim
on CRAN.
Therefore, you need to also upgrade pastclim
to
dev
:
devtools::install_github("EvolEcolGroup/pastclim", ref="dev")
Alternatively, if you want to install a specific version of
terra
from source, see instructions here.
dev
version of terra
the dev
version of terra
is incompatible
with the version of pastclim
on CRAN, leading to the
following error.
Error in time_bp(climate_nc) : no slot of name "ptr" for this object of class "SpatRaster"
To solve this, you need to also upgrade pastclim
to
dev
:
devtools::install_github("EvolEcolGroup/pastclim", ref="dev")