Type: | Package |
Title: | Euclidean Climatch Algorithm |
Version: | 1.0.2 |
Depends: | R (≥ 3.5.0) |
Description: | An interface for performing climate matching using the Euclidean "Climatch" algorithm. Functions provide a vector of climatch scores (0-10) for each location (i.e., grid cell) within the recipient region, the percent of climatch scores >= a threshold value, and mean climatch score. Tools for parallelization and visualizations are also provided. Note that the floor function that rounds the climatch score down to the nearest integer has been removed in this implementation and the “Climatch” algorithm, also referred to as the “Climate” algorithm, is described in: Crombie, J., Brown, L., Lizzio, J., & Hood, G. (2008). “Climatch user manual”. The method for the percent score is described in: Howeth, J.G., Gantz, C.A., Angermeier, P.L., Frimpong, E.A., Hoff, M.H., Keller, R.P., Mandrak, N.E., Marchetti, M.P., Olden, J.D., Romagosa, C.M., and Lodge, D.M. (2016). <doi:10.1111/ddi.12391>. |
BugReports: | https://github.com/JustinHubbard/Euclimatch/issues |
License: | GPL (≥ 3) |
Encoding: | UTF-8 |
Imports: | Rcpp (≥ 1.0-10), foreach, doParallel, RcppParallel, terra, RColorBrewer, grDevices |
LinkingTo: | Rcpp |
RoxygenNote: | 7.2.3 |
NeedsCompilation: | yes |
Packaged: | 2024-10-03 14:54:25 UTC; justi |
Author: | Justin A. G. Hubbard
|
Maintainer: | Justin A. G. Hubbard <justin.hubbard@mail.utoronto.ca> |
Repository: | CRAN |
Date/Publication: | 2024-10-03 18:00:02 UTC |
Run climatch in parallel
Description
Run climatch in parallel
Usage
climatch_par(recipient,
source,
globvar,
biovar = 1:length(globvar),
ncores,
type = "perc",
threshold = 6)
Arguments
recipient |
List of data.frames of the recipient regions |
source |
List of dataf.rames of the source regions |
globvar |
Vector of the global variance of each variable |
biovar |
Vector of the columns (climate variables) to use, default all columns |
ncores |
The number of cores to use in parallel |
type |
Choose between "perc" (default) or "mean" passed to climatch_sum() and "vec" passes to climatch_vec() |
threshold |
The climatch score (0-10) to use in calculating the percentage match, which is the number of grid cells within the recipient region with a climatch >= the threshold (default is 6). |
Value
"perc" and "mean" returns data.frame of climatch within recipients (rows) for each source represented in columns, "vec" returns data.frame of climatch of a recipient (each column corresponds to grid cell), to sources (corresponding to rows)
Examples
# Dummy data
i1 <- data.frame("clim1" = 1:10, "clim2" = 9:18) # Fake source climate data
i <- list(i1, i1) # list the source dataframes
j1 <- data.frame("clim1" = 11:20, "clim2" = 16:25) # Fake recipient climate data
j <- list(j1, j1) # list the recipient dataframes
variance <- c(60, 80) # Fake global variance
# Climate matching
climatch_par(recipient = j, source = i, globvar = variance, ncores = 1, type = "vec")
Plot or Create SpatRaster of Climatch Data
Description
Create a plot or SpatRaster of climatch values within recipient region.
Usage
climatch_plot(climdat,
recipient,
source = NULL,
climatch = NULL,
provide_SpatRaster = FALSE,
xlim = terra::ext(recipient)[1:2],
ylim = terra::ext(recipient)[3:4],
plg = list(title = "Climatch", size=1),
xlab = expression(paste("Longitude (",degree,")")),
ylab = expression(paste("Latitude (",degree, ")")),
...
)
Arguments
climdat |
A SpatRaster, RasterStack or RaterLayer of the climate data to extract. |
recipient |
An object specifying location of where the recipient (i.e., target) region. Can be a SpatialPolygosDataFrame, SpatialPolygons, SpatVector. |
source |
An object, like 'recipient', specifying the location of the source region. |
climatch |
Vector of climatch values to use in creating SpatRaster of recipient. |
provide_SpatRaster |
Logical. If TRUE then function returns SpatRaster object, if FALSE (default) return plot. |
xlim |
Numeric, specify the limits of the x axis. Default is extent of x-axis from recipient SpatRaster. |
ylim |
Numeric, specify the limits of the y axis. Default is extent of y-axis from recipient SpatRaster. |
plg |
A list of parameters for specifying the legend. Default is "Climatch" see 'plot' in 'terra' for more documentation. |
xlab |
Character for x axis label. |
ylab |
Character for y axis label. |
... |
Pass arguments to plot function. |
Value
A plot of the climatch within the recipient region. A SpatRater if provide_SpatRaster is TRUE.
Examples
r1 <- data.frame()
for(i in 1:100){r1 <- rbind(r1, runif(60))}
rclim1 <- terra::rast(as(r1, "matrix")) #Create the RasterLayer
# Dummy lon lat mimicking species occurrence records
spec_occ <- data.frame("lon" = 1:10, "lat" = 11:20)
# Create dummy polygons
x_coor <- c(1, 5, 10, 8, 3)
y_coor <- c(15, 20, 27, 30, 29)
dum_coor <- cbind(x_coor, y_coor)
dum_poly <- terra::vect(dum_coor, type = "polygon")
# Run and plot the climatch
climatch_plot(recipient = dum_poly, source = spec_occ, climdat = rclim1, xlab = "Lon", ylab = "Lat")
Climatch Summary Score
Description
A summarized climatch score within the recipient region to a source region. Provides the percentage of climate data points in the recipient region equal to or above a specified score (default is 6), or the mean climatch score across the whole recipient region. Note no floor function is used as in Crombie et al. (2008)
Usage
climatch_sum(recipient, source, globvar, type = "perc", threshold = 6)
Arguments
recipient |
A data.frame or list of data.frames of climatic variables for the recipient region. |
source |
A data.frame or list of data.frames of climatic variables for the source region. |
globvar |
A vector of the global variance of each climate variable. |
type |
Specifies the type of summary score to use. "perc" (default) specifies a percent climatch score representing the number of grid cells above or equal to a given value specified with the 'thershold' argument. "mean" provides the mean climatch score across the recipient region. |
threshold |
The climatch score to use in calculating the percentage match, which is the number of grid cells within the recipient region with a climatch >= the threshold (default is 6). |
Value
A numeric value, vector or data.frame of the percentage of climatch scores within the recipient region(s) >= a threshold value, or the mean climatch score across the region(s).
References
Predicting invasiveness of species in trade: climate match, trophic guild and fecundity influence establishment and impact of non-native freshwater fishes"<doi:10.1111/ddi.12391>
Examples
i <- as.data.frame(matrix(runif(n=180, min=1, max=20), nrow=60)) # Fake source climate data
j <- as.data.frame(matrix(runif(n=300, min=10, max=40), nrow=100)) # Fake recipient data
variance <- c(600, 800, 450) # Fake global variance
climatch_sum(recipient = j, source = i, globvar = variance, type = "perc", threshold = 6)
Euclidean climatch scores
Description
Vector of the climatch scores within the recipient region
Usage
climatch_vec(recipient, source, globvar)
Arguments
recipient |
A data.frame of climatic variables for the recipient region. |
source |
A data.frame of climatic variables for the source region. |
globvar |
A vector of the global variance of each climate variable, in the same order as the columns of source and recipient region data.frames. |
Value
A vector of climatch scores corresponding to each grid cell within recipient region, i.e., each row in the recipient data.frame.
References
Crombie, J., Brown, L., Lizzio, J., & Hood, G. (2008). "Climatch user manual"
Examples
i <- as.data.frame(matrix(runif(n=180, min=1, max=20), nrow=60)) # Fake source climate data
j <- as.data.frame(matrix(runif(n=300, min=10, max=40), nrow=100)) # Fake recipient data
variance <- c(600, 800, 450) # Fake global variance
climatch_vec(recipient = j, source = i, globvar = variance)
Extract Climate Data
Description
Extracts climate data from several types of inputs.
Usage
extract_clim_data(climdat, locations, id = FALSE)
Arguments
climdat |
A SpatRaster, RasterStack or RaterLayer of the climate data to extract. |
locations |
An object specifying location of where to extract the climate data from. Can be a SpatialPolygosDataFrame, SpatialPolygons, SpatVector, a single data.frame or a list of data.frames. If data.frame of list of data.frames, must provide only two columns with column names "lon" for longitude and "lat" for latitude. |
id |
Choose to include cell numbers with climate data. 'TRUE' includes cell numbers, the default 'FALSE' does not include cell numbers. Used in the climatch_plot() function. |
Value
A data.frame or list of data.frames of the extracted climate data.
Examples
# Create fake climate data in as a SpatRaster object
r1 <- data.frame()
for(i in 1:100){r1 <- rbind(r1, runif(60))}
rclim1 <- terra::rast(as(r1, "matrix")) #Create the RasterLayer
rclim2 <- c(rclim1, rclim1) # Create the stack
# Dummy lon lat data i.e., species occurrences. Cols must be labelled "lon" and "lat"
# Cols must be labelled "lon" and "lat"
species.occurr <- data.frame("lon" = 1:10, "lat" = 11:20)
# Create dummy polygons
x.coor <- c(1, 5, 10, 8, 3)
y.coor <- c(15, 20, 27, 30, 29)
dummy_coordinates <- cbind(x.coor, y.coor)
dummy_polygon <- terra::vect(dummy_coordinates, type = "polygon")
dummy_polygon2 <- rbind(dummy_polygon, dummy_polygon)
# Extract the dummy data
# Extract dummy lon lat data
extract_clim_data(climdat = rclim2, locations = species.occurr)
# Extract dummy SpatVector with single polygon
extract_clim_data(climdat = rclim2, locations = dummy_polygon2)