In-class Exercise - Spatial Point Patterns Analysis

Session 5

Author

Pierre HAAS

Published

February 6, 2023

Modified

March 19, 2023

pacman::p_load(tidyverse, tmap, sf, sfdep)
studyArea = st_read(dsn = "data",
                    layer = "study_area") %>%
  st_transform(crs = 3829)
Reading layer `study_area' from data source 
  `C:\p-haas\IS415\In-class_Ex\In-class_Ex05\data' using driver `ESRI Shapefile'
Simple feature collection with 7 features and 7 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 121.4836 ymin: 25.00776 xmax: 121.592 ymax: 25.09288
Geodetic CRS:  TWD97
stores = st_read(dsn = "data",
                    layer = "stores") %>%
  st_transform(crs = 3829)
Reading layer `stores' from data source 
  `C:\p-haas\IS415\In-class_Ex\In-class_Ex05\data' using driver `ESRI Shapefile'
Simple feature collection with 1409 features and 4 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 121.4902 ymin: 25.01257 xmax: 121.5874 ymax: 25.08557
Geodetic CRS:  TWD97
tmap_mode("view")
tm_shape(studyArea)+
  tm_polygons()+
tm_shape(stores)+
  tm_dots(col = "Name",
          size = 0.01,
          border.col = "black",
          border.lwd = 0.5)+
  tm_view(set.zoom.limits = c(12, 16))

Local Colocation Quotients (LCLQ)

nb = include_self(st_knn(st_geometry(stores), 6))

wt = st_kernel_weights(nb, stores, "gaussian", adaptive = TRUE)
FamilyMart = stores %>%
  filter(Name == "Family Mart")
A = FamilyMart$Name
SevenEleven = stores %>%
  filter(Name == "7-Eleven")
B = SevenEleven$Name
LCLQ = local_colocation(A, B, nb, wt, 49)
LCLQ_stores = cbind(stores, LCLQ)
tmap_mode("view")
tm_shape(studyArea)+
  tm_polygons()+
tm_shape(LCLQ_stores)+
  tm_dots(col = "X7.Eleven",
          size = 0.01,
          border.col = "black",
          border.lwd = 0.5)+
  tm_view(set.zoom.limits = c(12, 16))