importWorld: Import a world where movement is possible

View source: R/importWorld.R

importWorldR Documentation

Import a world where movement is possible

Description

A function that for a given region imports all cells from the transition .fst files. If such files have not yet been generated, they can be created by passing along the necessary parameters to this function as with calculateCosts.

Usage

importWorld(
  region,
  banned = NULL,
  dir = tempdir(),
  vars = NULL,
  costFUN = energyCosts,
  ...
)

Arguments

region

An object of class SpatRraster, Raster* or SpatialPolygons* representing the total area where movement is possible.

banned

An object of class Raster* or SpatialPolygons* representing the total area where movement is prohibited. Must lie within the area defined by polys

dir

A filepath to the directory being used as the workspace, the same one instantiated with defineWorld. Default is tempdir() but unless the analyses will only be performed a few times it is highly recommended to define a permanent workspace.

vars

The variable names to import.

costFUN

A cost function such as (timeCosts or energyCosts). The input to such a function should be a data.table object with column names present in the makeWorld file (initially c('x_i','x_f','y_i','y_f','z_i','z_f','dz','dl','dr')), and the output should be an data.table object with the same number of rows and the desired output variables as the only column names. Constants can be passed in the ... slot. Default is costFUN = energyCosts.

...

Additional arguments to pass to calculateCosts and costFUN.

Details

The default parameters are sufficient for a workflow involving calculating costs with the energyCosts function. However, if non-energetic analyses are desired, the user must define their own.

Value

An object of class data.table containing at least three columns:

(1) $from, a character string of all possible origin cells in format "x,y",

(2) $to, a character string of all possible destination cells in format "x,y"

(3+) a numeric representing the imported costs(s)

Examples

# Generate a DEM
n <- 5
dem <- expand.grid(list(x = 1:(n * 100),
                        y = 1:(n * 100))) / 100
dem <- as.data.table(dem)
dem[, z := 250 * exp(-(x - n/2)^2) + 
      250 * exp(-(y - n/2)^2)]
dem <- rast(dem)
ext(dem) <- c(10000, 20000, 30000, 40000)
crs(dem) <- "+proj=lcc +lat_1=48 +lat_2=33 +lon_0=-100 +datum=WGS84"

# Export it so it doesn't just exist on the memory
dir <- tempdir()
writeRaster(dem, paste0(dir,"/DEM.tif"),overwrite=TRUE)


# Import raster, get the grid
dem <- rast(paste0(dir,"/DEM.tif"))
grid <- makeGrid(dem = dem, nx = n, ny = n, sources = TRUE)

# Select all tiles that exist between x = (12000,16000) and y = (32000,36000)
tiles <- ext(c(12000,16000,32000,36000))
tiles <- as.polygons(tiles)
crs(tiles) <- crs(grid)
tiles <- whichTiles(region = tiles, polys = grid)

#' # Make a world but limit it to the DEM grid size
defineWorld(source = grid, cut_slope = 0.5, 
            res = res(dem), dir = dir, overwrite=TRUE)

# Make a world but limit it to the DEM grid size
world <- importWorld(grid[8,], dir = dir, vars = 'dE_l', costFUN = energyCosts,
m = 70, v_max = 1.5, BMR = 76, k = 3.5, s = 0.05, l_s = 1,
L = 0.8)

andresgmejiar/lbmech documentation built on Feb. 2, 2025, 12:37 a.m.