Estimate isotropic cost distances

cost_distances(
  x,
  id,
  LCD = "least-cost",
  resistance = NULL,
  CostFun = NULL,
  ngh = NULL,
  mask = NULL,
  threshold = NULL,
  geometry_out = NULL,
  bounding_circles = NULL,
  least_cost.java = FALSE,
  cores.java = 1,
  ram.java = NULL,
  pairwise = TRUE,
  write_table = NULL
)

Arguments

x

object of class sf, sfc, sfg or SpatialPolygons. The shapefile must be in a projected coordinate system (number of patches > 2).

id

character. Column name with the patches id.

LCD

logical. If TRUE “least-cost distance” is estimated(default) else "commute-time" , analogous to the resistance distance of circuitscape, will be estimated (See, gdistance package).

resistance

raster. Raster object with resistance values (landscape friction). Consider using a range of resistance values between 1 and 10, where 10 is the maximum resistance to movement, NA should be a complete barrier.

CostFun

A function to compute the cost to move between cells. The default is the conductance (isotropic cost distance): function(x) 1/x[2].

ngh

numeric. Neighbor graph (directions) for distance calculations: 4 (von Neu-mann neighbourhood), 8 (Moore neighbourhood) or 16 (king’s and knight’s moves). Default equal 8.

mask

object of class sf, sfc, sfg or SpatialPolygons. For higher processing speed use this option to clip the resistance at the extent of the mask.

threshold

numeric. Distance threshold, pairs of nodes with a distance value above this threshold will be discarded.

geometry_out

numeric. Avoids the "Inf" error and corrects the "Inf" distance values when some spatial geometries are out of the resistance extent. The raster NA values will be replaced by a Resistance value that must be provided by the user using this argument, so that it is possible to calculate cost distances for all the pairs of nodes. If NULL, then a Euclidean distance will be calculated to find these distances.

bounding_circles

numeric. If a value is entered, this will create bounding circles around pairs of core areas (recommended for speed, large resistance rasters or pixel resolution < 150 m). Buffer distances are entered in map units. Also, the function is parallelized using and furrr package and multiprocess plan, default = NULL.

least_cost.java

logical. If TRUE then the programming language and computing platform 'java' will be used to estimate the least-cost distance USING only the FORMULA: function(x) 1/mean(x). It is necessary to have java installed. This option use the package 'graph4lg' to reduce computation times. WARNING: This function only works with integer type resistance raster (it does not accept decimals or floating point resistance).

cores.java

numeric. Computer cores used to run the .jar file (see, graph4lg), default = 1.

ram.java

numeric. RAM gigabytes to run the .jar file (see, graph4lg), default = NULL.

pairwise

logical. If TRUE a pairwise table is returned (From, To, distance) otherwise it will be a matrix.

write_table

character. "" indicates output to the console.

Value

cost distance matrix

Details

The function builds on functions out of Jacob van Etten’s ’gdistance’ package.

References

Jacob van Etten. 2017. R Package gdistance: Distances and Routes on Geographical Grids. Journal of Statistical Software. 10.18637/jss.v076.i13

Paul Savary. 2020. R Package graph4lg: Build Graphs for Landscape Genetics Analysis. https://cran.r-project.org/web/packages/graph4lg/index.html