F(d) & K(d) Functions

1. creating PPP format

rm(list = ls())
library(sf)
警告: 套件 ‘sf’ 是用 R 版本 4.3.3 來建造的
library(tmap)
警告: 套件 ‘tmap’ 是用 R 版本 4.3.3 來建造的
library(spatstat)
警告: 套件 ‘spatstat’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.data’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.univar’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.geom’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.random’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.explore’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.model’ 是用 R 版本 4.3.3 來建造的警告: 套件 ‘spatstat.linnet’ 是用 R 版本 4.3.3 來建造的
# setwd("C:/data")
schools_sf <- st_read("./Data/Schools.shp")
Reading layer `Schools' from data source `C:\Users\wenth\Desktop\WK08\Data\Schools.shp' using driver `ESRI Shapefile'
Simple feature collection with 424 features and 10 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 155883.3 ymin: 2535008 xmax: 207754.3 ymax: 2588596
Projected CRS: TWD97 / TM2 zone 121
county_sf <- st_read("./Data/TainanCounty.shp")
Reading layer `TainanCounty' from data source 
  `C:\Users\wenth\Desktop\WK08\Data\TainanCounty.shp' using driver `ESRI Shapefile'
Simple feature collection with 1 feature and 1 field
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 149892.7 ymin: 2531586 xmax: 215203.6 ymax: 2590609
Projected CRS: TWD97 / TM2 zone 121
Coord <- st_coordinates(schools_sf)
Windows <- as.owin(county_sf)
schools_ppp <- as.ppp(Coord, Windows)
plot(schools_ppp)

2. creating F(d) functions

RND<- rpoint(100, win= Windows)
nndist1 <- nncross(RND, schools_ppp)
F = ecdf(nndist1[,1]) 

RND2<- rpoint(400, win= Windows)
nndist2 <- nncross(RND, RND2)
F_RND <- ecdf(nndist2[,1]) 

plot(F, main="F function", col = "red", xlim=c(0,5000))
lines(F_RND, col = "gray")


CI_F <- envelope(schools_ppp, fun=Fest, nsim=99, n=1) 
Generating 99 simulations of CSR  ...
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 
99.

Done.
plot(CI_F)

3.1 creating K(d) functions

k <- Kest(schools_ppp)
plot(k, main="K function", xlim=c(0,5000))

CI_K<- envelope(schools_ppp, fun=Kest, nsim=99, n=1) 
Generating 99 simulations of CSR  ...
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 
99.

Done.
plot(CI_K)

3.2 creating L(d) functions

L <- Lest(schools_ppp)
plot(L, main="L function", xlim=c(0,5000))

CI_L<- envelope(schools_ppp, fun=Lest, nsim=99, n=1) 
Generating 99 simulations of CSR  ...
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 
99.

Done.
plot(CI_L, .-r~r)

LS0tDQp0aXRsZTogIlNwYXRpYWwgQW5hbHlzaXM6IDA4Ig0KYXV0aG9yOiAiVHphaS1IdW5nIFdlbiINCmRhdGU6ICcyMDI1LTA0LTI4Jw0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOg0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19kZXB0aDogNg0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KLS0tDQoNCiMjIEYoZCkgJiBLKGQpIEZ1bmN0aW9ucw0KDQojIyMgMS4gY3JlYXRpbmcgUFBQIGZvcm1hdA0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRX0NCnJtKGxpc3QgPSBscygpKQ0KbGlicmFyeShzZikNCmxpYnJhcnkodG1hcCkNCmxpYnJhcnkoc3BhdHN0YXQpDQoNCiMgc2V0d2QoIkM6L2RhdGEiKQ0Kc2Nob29sc19zZiA8LSBzdF9yZWFkKCIuL0RhdGEvU2Nob29scy5zaHAiKQ0KY291bnR5X3NmIDwtIHN0X3JlYWQoIi4vRGF0YS9UYWluYW5Db3VudHkuc2hwIikNCg0KQ29vcmQgPC0gc3RfY29vcmRpbmF0ZXMoc2Nob29sc19zZikNCldpbmRvd3MgPC0gYXMub3dpbihjb3VudHlfc2YpDQpzY2hvb2xzX3BwcCA8LSBhcy5wcHAoQ29vcmQsIFdpbmRvd3MpDQpwbG90KHNjaG9vbHNfcHBwKQ0KYGBgDQoNCiMjIyAyLiBjcmVhdGluZyBGKGQpIGZ1bmN0aW9ucw0KDQpgYGB7cn0NClJORDwtIHJwb2ludCgxMDAsIHdpbj0gV2luZG93cykNCm5uZGlzdDEgPC0gbm5jcm9zcyhSTkQsIHNjaG9vbHNfcHBwKQ0KRiA9IGVjZGYobm5kaXN0MVssMV0pIA0KDQpSTkQyPC0gcnBvaW50KDQwMCwgd2luPSBXaW5kb3dzKQ0Kbm5kaXN0MiA8LSBubmNyb3NzKFJORCwgUk5EMikNCkZfUk5EIDwtIGVjZGYobm5kaXN0MlssMV0pIA0KDQpwbG90KEYsIG1haW49IkYgZnVuY3Rpb24iLCBjb2wgPSAicmVkIiwgeGxpbT1jKDAsNTAwMCkpDQpsaW5lcyhGX1JORCwgY29sID0gImdyYXkiKQ0KDQpDSV9GIDwtIGVudmVsb3BlKHNjaG9vbHNfcHBwLCBmdW49RmVzdCwgbnNpbT05OSwgbj0xKSANCnBsb3QoQ0lfRikNCmBgYA0KDQojIyMgMy4xIGNyZWF0aW5nIEsoZCkgZnVuY3Rpb25zDQoNCmBgYHtyfQ0KayA8LSBLZXN0KHNjaG9vbHNfcHBwKQ0KcGxvdChrLCBtYWluPSJLIGZ1bmN0aW9uIiwgeGxpbT1jKDAsNTAwMCkpDQpDSV9LPC0gZW52ZWxvcGUoc2Nob29sc19wcHAsIGZ1bj1LZXN0LCBuc2ltPTk5LCBuPTEpIA0KcGxvdChDSV9LKQ0KDQpgYGANCiMjIyAzLjIgY3JlYXRpbmcgTChkKSBmdW5jdGlvbnMNCg0KYGBge3J9DQpMIDwtIExlc3Qoc2Nob29sc19wcHApDQpwbG90KEwsIG1haW49IkwgZnVuY3Rpb24iLCB4bGltPWMoMCw1MDAwKSkNCkNJX0w8LSBlbnZlbG9wZShzY2hvb2xzX3BwcCwgZnVuPUxlc3QsIG5zaW09OTksIG49MSkgDQpwbG90KENJX0wsIC4tcn5yKQ0KYGBgDQoNCg==