空間分析  實習七

助教 杜承軒 2021.05.10

Procedures of F(d) Function


library(sf);library(spatstat)
setwd("D:/1092SA/Data")
school=st_read("Schools.shp")
Tainan=st_read("TainanCounty.shp")
school.coord=st_coordinates(school)
  1. Loading school.shp & convert to ppp.
TN=as.owin(Tainan)
SH=as.ppp(school.coord,TN)
n=SH$n
  1. Generating random points: rpoint()
CRS=rpoint(100, win=TN)
  1. Calculate dmin(pi, s): nncross()
NND=nncross(X=CRS,Y=SH)
  1. Calculate F(d): ecdf()
Fd=ecdf(NND$dist)
  1. Monte Carlo Significance Test: for-loop
F_sim=matrix(nrow=99,ncol=100)
for(i in 1:99)  F_sim[i,]=nncross(CRS,rpoint(n, win=TN))$dist
F_sim_sort=apply(t(apply(F_sim,1,sort)),2,sort)
  1. Plotting the CDF curve: plot()
plot(Fd,col="red",cex=0,main="F function",xlab="distance",ylab="F(d)",xlim=c(0,4000))
for(i in 1:99) lines(ecdf(F_sim[i,]),col="grey",verticals=T,cex=0)
lines(ecdf(F_sim_sort[5,]),verticals=T,col='blue',cex=0,lwd=1.5)
lines(ecdf(F_sim_sort[95,]),verticals=T,col='blue',cex=0,lwd=1.5)
lines(Fd,col="red",verticals=T,cex=0,lwd=3)

Comparing with the result of envelope (school.ppp, fun=Fest)

CI=envelope(SH, Fest, nsim=99, nrank=5)
plot(CI)