MK_dECA_grid: Estimate the ECA, dA and dECA in a regular grid

View source: R/MK_dECA_grid.R

MK_dECA_gridR Documentation

Estimate the ECA, dA and dECA in a regular grid

Description

Use the function to compute the ECA, dECA, dA indexes in a regular grid.

Usage

MK_dECA_grid(
  nodes,
  nodes_names = NULL,
  attribute = NULL,
  region = NULL,
  grid = list(hexagonal = TRUE, cellsize = NULL, grid_boundary = FALSE, clip = FALSE,
    tolerance = NULL),
  area_unit = "m2",
  distance = list(type = "centroid"),
  metric = "IIC",
  distance_threshold = NULL,
  threshold,
  probability = NULL,
  parallel = NULL,
  intern = TRUE
)

Arguments

nodes

list. List of objects containing nodes (e.g., habitat patches or fragments) of each time to analyze information. Nodes are spatial data of type vector (class sf, SpatVector, SpatialPolygonsDataFrame). It must be in a projected coordinate system.

nodes_names

character. (optional, default = NULL). Name of each time or scenario used in the nodes parameter

attribute

character. If NULL the area of the nodes will be used as the node attribute. The unit of area can be selected using the area_unit parameter. Specify the name of the column containing the attribute for the nodes. The column name must be present in each element of the node list.

region

object of class sf, SpatialPolygonsDataFrame. Polygon delimiting the region or study area. It must be in a projected coordinate system.

grid

list or object of class sf, SpatialPolygonsDataFrame. Use this parameter to generate a grid indicating its characteristics in a list (see get_grid) or enter the name of an sf class sf or SpatialPolygonsDataFrame with the grid whose coordinate system must be the same as that of the nodes. Example for generating 100 km2 hexagons:
list(hexagonal = TRUE, cellsize = unit_convert(100, "km2", "m2"), grid_boundary = FALSE, clip = FALSE, tolerance = NULL).

area_unit

character. (optional, default = "m2")
. A character indicating the area units when attribute is NULL. Some options are "m2" (the default), "km2", "cm2", or "ha"; See unit_convert for details.

distance

A list to establish the distance between each pair of nodes. Distance between nodes may be Euclidean distances (straight-line distance) or effective distances (cost distances) by considering the landscape resistance to the species movements. It must contain the distance parameters necessary to calculate the distance between nodes. For example, two of the most important parameters: “type” and “resistance”. For "type" choose one of the distances: "centroid" (faster), "edge", "least-cost" or "commute-time". If the type is equal to "least-cost" or "commute-time", then you must use the "resistance" argument. To see more arguments see the distancefile function. You can place a list with resistances where there must be one resistance for each time/scenario of patches in the nodes parameter, for example, if nodes has a list with two time patches then you can use two resistances one for time 1 and one for time 2:
distance(type = "least-cost", resistance = list(resistanceT1, resistanceT2)).

metric

A character indicating the connectivity metric to use: "PC" (the default and recommended) to calculate the probability of connectivity index, and "IIC" to calculate the binary integral index of connectivity.

distance_threshold

A numeric indicating the dispersal distance (meters) of the considered species. If NULL then distance is estimated as the median dispersal distance between nodes. Alternatively, the dispersal_distance function can be used to estimate the dispersal distance using the species home range. Can be the same length as the distance_thresholds parameter.

threshold

numeric. Pairs of nodes with a distance value greater than this threshold will be discarded in the analysis which can speed up processing.

probability

A numeric value indicating the probability that corresponds to the distance specified in the distance_threshold. For example, if the distance_threshold is a median dispersal distance, use a probability of 0.5 (50%). If the distance_threshold is a maximum dispersal distance, set a probability of 0.05 (5%) or 0.01 (1%). Use in case of selecting the "PC" metric. If probability = NULL, then a probability of 0.5 will be used.

parallel

numeric. Specify the number of cores to use for parallel processing, default = NULL. Parallelize the function using furrr package.

intern

logical. Show the progress of the process, default = TRUE. Sometimes the advance process does not reach 100 percent when operations are carried out very quickly.

Value

List with sf objects corresponding to the hexagons and each transition between scenarios or node times, each of the following fields:

- Time: name of the time periods, name of the model or scenario (are taken from the name of the elements of the list of nodes or the plot argument)
- ECA.i: Equivalent Connected Area or Equivalent Connectivity for time i (first time/scenery in the comparison)
- ECA.j: Equivalent Connected Area or Equivalent Connectivity for time j (second time/scenery in the comparison)
- ECA.i: Normalized_ECA ( - ECA.j: Normalized_ECA ( - dA: delta Area between times (percentage)
- dECA: delta ECA between times (percentage)
- rECA: relativized ECA (dECA/dA). According to Liang et al. (2021) "an rECA value greater than 1 indicates that habitat changes result in a disproportionately large change in habitat connectivity, while a value lower than 1 indicates connectivity changes due to random habitat changes (Saura et al. 2011; Dilts et al. 2016)".
- dA/dECA comparisons: comparisons between dA and dECA
- Type of change: Type of change using the dECAfun() and the difference between dA and dECA.

The function returns a list comprising elements corresponding to discrete periods. Thus, if a list of nodes contains three scenarios or times, the function returns a list with two elements. The first element corresponds to the transition between scenarios 1 and 2, and it will include the dECA value for that period. The second element of the list corresponds to the transition between scenarios 2 and 3, and it will include the dECA value for that period.

References

www.conefor.org

- Saura, S., Estreguil, C., Mouton, C., & Rodríguez-Freire, M. (2011). Network analysis to assess landscape connectivity trends: Application to European forests (1990-2000). Ecological Indicators, 11(2), 407–416. https://doi.org/10.1016/j.ecolind.2010.06.011
Herrera, L. P., Sabatino, M. C., Jaimes, F. R., & Saura, S. (2017). Landscape connectivity and the role of small habitat patches as stepping stones: an assessment of the grassland biome in South America. Biodiversity and Conservation, 26(14), 3465–3479. https://doi.org/10.1007/s10531-017-1416-7
- Liang, J., Ding, Z., Jiang, Z., Yang, X., Xiao, R., Singh, P. B., ... & Hu, H. (2021). Climate change, habitat connectivity, and conservation gaps: a case study of four ungulate species endemic to the Tibetan Plateau. Landscape Ecology, 36(4), 1071-1087.
- Dilts TE, Weisberg PJ, Leitner P, Matocq MD, Inman RD, Nussear KE, Esque TC (2016) Multi-scale connectivity and graph theory highlight critical areas for conservation under climate change. Ecol Appl 26:1223–1237

Examples

## Not run: 
library(Makurhini)
library(sf)

# Four times (T1.2, T2.3, T3.4)
data("list_forest_patches", package = "Makurhini")
data("study_area", package = "Makurhini")
class(list_forest_patches)

hexagons_dECA <- MK_dECA_grid(nodes = list_forest_patches,
                              nodes_names = c("T1", "T2", "T3", "T4"),
                              region = study_area,
                              area_unit = "ha",
                              metric = "IIC",
                              grid = list(hexagonal = TRUE,
                                                cellsize = unit_convert(100, "km2", "m2")),
                              distance_threshold = 3000,
                              probability = 0.5,
                              distance = list(type = "centroid"),
                              parallel = 4,
                              intern = TRUE)
names(hexagons_dECA)#List of lenght 3, where each element is a transition.
plot(hexagons_dECA$result_T1.T2 ["dECA"], breaks = "quantile")
plot(hexagons_dECA$result_T3.T4["Type.Change"], key.pos = 1)

## End(Not run)

OscarGOGO/Makurhini documentation built on Jan. 9, 2025, 1:20 p.m.