This function combines strings with layer identifiers and ZOI radii to create
names for ZOI layers at different distances. It can either append each radius to the end
of each layer string, or replace a pattern (e.g. "XXX") by each radius.
Optionally, a corresponding name field is created with the same expansion.
Arguments
- layers
[character]
Vector of input layer strings to expand.- zoi_radius
[numeric]
Numeric vector of ZOI radii used to expand each layer.- name
[character=NULL]
Optional vector of names to expand with the same radii. If provided, output includes anamecolumn.- pattern
[character=NULL]
Pattern to be replaced by each value ofzoi_radius. IfNULL, radii are appended to the end of each string.
Value
A data.frame with expanded layer definitions:
if
nameisNULL: columnszoi_radius,layerif
nameis provided: columnsname,zoi_radius,layer
Details
The function produces a data.frame with all combinations of variable names
and zoi radii, to ease listing or accessing them from GRASS GIS or for
setting up a model formula.
Examples
# attaching zoi_radius to the end
name <- c("houses", "roads", "railways")
radii <- seq(100, 500, by = 100)
add_zoi_layers(name, radii)
#> zoi_radius layer
#> 1 100 houses100
#> 2 100 roads100
#> 3 100 railways100
#> 4 200 houses200
#> 5 200 roads200
#> 6 200 railways200
#> 7 300 houses300
#> 8 300 roads300
#> 9 300 railways300
#> 10 400 houses400
#> 11 400 roads400
#> 12 400 railways400
#> 13 500 houses500
#> 14 500 roads500
#> 15 500 railways500
# replacing a pattern by zoi_radius
themes <- c("houses_XXX", "private_cabins_XXX", "roads_XXX", "powerlines_XXX", "railways_XXX")
maps <- c("houses_XXX@my_mapset", "private_cabins_XXX@my_mapset", "roads_summer_XXX@my_mapset",
"powerlines_XXX@my_mapset", "railway_XXX@my_mapset")
add_zoi_layers(layers = maps, zoi_radius = c(100, 500, 1000, 5000, 10000),
name = themes, pattern = "XXX")
#> name zoi_radius layer
#> 1 houses_100 100 houses_100@my_mapset
#> 2 private_cabins_100 100 private_cabins_100@my_mapset
#> 3 roads_100 100 roads_summer_100@my_mapset
#> 4 powerlines_100 100 powerlines_100@my_mapset
#> 5 railways_100 100 railway_100@my_mapset
#> 6 houses_500 500 houses_500@my_mapset
#> 7 private_cabins_500 500 private_cabins_500@my_mapset
#> 8 roads_500 500 roads_summer_500@my_mapset
#> 9 powerlines_500 500 powerlines_500@my_mapset
#> 10 railways_500 500 railway_500@my_mapset
#> 11 houses_1000 1000 houses_1000@my_mapset
#> 12 private_cabins_1000 1000 private_cabins_1000@my_mapset
#> 13 roads_1000 1000 roads_summer_1000@my_mapset
#> 14 powerlines_1000 1000 powerlines_1000@my_mapset
#> 15 railways_1000 1000 railway_1000@my_mapset
#> 16 houses_5000 5000 houses_5000@my_mapset
#> 17 private_cabins_5000 5000 private_cabins_5000@my_mapset
#> 18 roads_5000 5000 roads_summer_5000@my_mapset
#> 19 powerlines_5000 5000 powerlines_5000@my_mapset
#> 20 railways_5000 5000 railway_5000@my_mapset
#> 21 houses_10000 10000 houses_10000@my_mapset
#> 22 private_cabins_10000 10000 private_cabins_10000@my_mapset
#> 23 roads_10000 10000 roads_summer_10000@my_mapset
#> 24 powerlines_10000 10000 powerlines_10000@my_mapset
#> 25 railways_10000 10000 railway_10000@my_mapset