Calculates the Urban Centrality Index (UCI) as in Pereira et al., (2013) doi:10.1111/gean.12002 . The UCI measures the extent to which the spatial organization of a city or region varies from extreme monocentric to extreme polycentric in a continuous scale from 0 to 1. Values close to 0 indicate more polycentric patterns and values close to 1 indicate a more monocentric urban form.
Calculate Urban Centrality Index
Usage
uci(
sf_object,
var_name,
dist_type = "euclidean",
bootstrap_border = FALSE,
showProgress = TRUE,
parallel = FALSE
)
Arguments
- sf_object
A
POLYGON sf data.frame
of the study area.- var_name
A
string
. The name of the column insf_object
with the number of activities/opportunities/resources/services to be considered when calculating urban centrality levels.NA
values are considered to be equal to0
.- dist_type
A
string
indicating whether calculations should be based on"euclidean"
distances (Default) or"spatial_link"
distances. Spatial link distances consider Euclidean distances along the links of spatial neighbor links. In the case of areas with a concave shape (like a bay), it is strongly recommended to use"spatial_link"
distances (even though they are computationally more costly) because simple Euclidean distances can bias UCI estimates in those cases.- bootstrap_border
A
logical
. The calculation of UCI requires one to find the maximum value of the Venables spatial separation index of the study area. Ifbootstrap_border = FALSE
(Default), the function uses a heuristic approach that assumes that the max spatial separation would occur when all activities were equally distributed along the border of the study area. This is a fast approach, but it does not reach the maximum spatial separation. Alternatively, ifbootstrap_border = TRUE
, the function uses a bootstrap approach that simulates 20000 random distributions of activities along the border and uses the max spatial separation found. This approach is more computationally expensive and although it might not return the maximum theoretical value of spatial separation, it is probably very close to it.- showProgress
A
logical
. Indicates whether to show a progress bar for the bootstrap simulation. Defaults toTRUE
.- parallel
Decides whether the function should run in parallel. Defaults is
FALSE.
WhenTRUE
, it will use all cores available minus one usingfuture::plan()
with strategy"multisession"
internally. Note that it is possible to create your own plan before calling uci(). In this case, do not use this argument.
Usage
Please check the vignettes and data documentation on the website.
Author
Maintainer: Rafael H. M. Pereira rafa.pereira.br@gmail.com (ORCID)
Examples
# load data
data_dir <- system.file("extdata", package = "uci")
grid <- readRDS(file.path(data_dir, "grid_bho.rds"))
# calculate UCI
df <- uci(
sf_object = grid,
var_name = 'jobs',
dist_type = "euclidean",
bootstrap_border = FALSE
)
head(df)
#> UCI location_coef spatial_separation spatial_separation_max
#> 1 0.2538635 0.5278007 3880.114 7475.899
# calculate UCI with bootstrap
df2 <- uci(
sf_object = grid,
var_name = 'jobs',
dist_type = "euclidean",
bootstrap_border = TRUE,
showProgress = TRUE
)
head(df2)
#> UCI location_coef spatial_separation spatial_separation_max
#> 1 0.2553067 0.5278007 3880.114 7515.494