Learn R Programming

McSpatial (version 1.1.1)

subgs: Giuliano-Small Employment Subcenter Identification Procedure

Description

Uses spatial weight matrices to find the set of contiguous tracts in a shape file that each have at least mind employees and that together have total employment of at least totemp.

Usage

subgs(shpfile, dens, emp, mind = 10, totemp = 10000, wmat = 0)

Arguments

shpfile
A shape file to be used to calculate the spatial contiguity matrix.
dens
The employment density variable
emp
The total employment variable
mind
The minimum density threshold for employment density. Default: mind=10
totemp
The threshold for total employment across the set of contiguous tracts. Default: totemp=10000.
wmat
The spatial contiguity matrix. Can be inputted directly to program. By default, wmat=0, leading the program to calculate wmat from the shape file specified using the shpfile option.

Value

  • subempTotal employment in subcenter, 0 if not part of a subcenter. Can be used to identify individual subcenters unless two subcenters happen to have identical total employment.
  • subobssubobs = 1 if observation is identified as being part of a subcenter.

References

Giuliano, Genevieve and Kenneth A. Small, Subcenters in the Los Angeles Region, Regional Science and Urban Economics 21 (1991), 163-182. McMillen, Daniel P., "Identifying Subcenters using Contiguity Matrices," Urban Studies 40 (2003), 57-69. McMillen, Daniel P. and T. William Lester, "Evolving Subcenters: Employment and Population Densities in Chicago, 1970-2020," Journal of Housing Economics 12 (2003), 60-81. McMillen, Daniel P. and John F. McDonald, "A Nonparametric Analysis of Employment Density in a Polycentric City," Journal of Regional Science 37 (Nov. 1997), 591-612.

See Also

subnp

Examples

Run this code
library(maptools)
cmap <- readShapePoly(system.file("maps/CookCensusTracts.shp",
  package="McSpatial"))
cmap$acres <- cmap$AREA*640
lmat <- coordinates(cmap)
fit <- geodistance(longvar=lmat[,1], latvar=lmat[,2],  
  lotarget=-87.627800, latarget=41.881998)
cmap$dcbd <- fit$dist
dnorth <- fit$dnorth
deast <- fit$deast

cmap$empdens <- ifelse(cmap$dcbd<=10, exp(log(50) - .16*cmap$dcbd), 10)
dsub1 <- sqrt((dnorth-10)^2 + (deast+10)^2)
dsub2 <- sqrt((dnorth+15)^2 + (deast+5)^2)
cmap$empdens <- cmap$empdens + ifelse(dsub1<=3, exp(log(20) - .19*dsub1), 0)
cmap$empdens <- cmap$empdens + ifelse(dsub2<=3, exp(log(20) - .19*dsub2), 0)
cmap$emp <- round(cmap$empdens*cmap$acres)
fit <- subgs(cmap,cmap$empdens,cmap$emp,mind=20,totemp=10000)
cmap$subobs <- fit$subobs
cmap$subemp <- fit$subemp

mapplot(cmap,"subemp")

Run the code above in your browser using DataLab