R語言製作長三角城市羣空間權重矩陣及作圖顯示

 長三角一體化進入新的發展階段,下面通過製作最新長三角城市羣地圖,並運用R語言形成空間權重矩陣,同時畫出了空間連接權重矩陣圖示。

 

library("raster")
library("spdep")
#p1<- shapefile("E:\new_delta_map\\new_delta_map_2.shp")
p=shapefile("E:\\new_delta_map\\deltacity_2.shp",encoding="UTF-8")
cityname=c('安慶市',	'池州市',	'滁州市',	'宣城市',	'常州市',	'南京市',	
           '南通市',	'蘇州市',	'泰州市',	'無錫市',	'鹽城市',	'揚州市',	'鎮江市',	
           '杭州市',	'湖州市',	'嘉興市',	'金華市',	'寧波市',	'紹興市',	'台州市',	'舟山市',	'馬鞍山市',	
           '蕪湖市',	'合肥市',	'上海市',	'銅陵市')
p$count_name=cityname

latlon=read.csv("E:\\data\\cor.csv")
latlon=as.data.frame(latlon)
xy[,1]=latlon[,2]#換成城市實際座標
xy[,2]=latlon[,3]
###############
wr <- poly2nb(p, row.names=p$ID_1, queen=TRUE)
wr[[18]]=sort(as.integer(c(wr[[18]],21)))
wr[[21]]=sort(as.integer(c(18)))
wm <- nb2mat(wr, style='B', zero.policy = TRUE)
write.csv(wm,"E:\\new_delta_map\\deltacitycluster-1.csv") #相鄰矩陣

##############
#Distance based:
wd100 <- dnearneigh(xy, 0, 100, longlat=TRUE)
wmwd100<- nb2mat(wd100, style='B', zero.policy = TRUE)
write.csv(wmwd100,"\\new_delta_map\\deltacitycluster-wd100.csv") #相距離100km矩陣
#Nearest neighbors:
k3 <- knn2nb(knearneigh(xy, k=3, RANN=FALSE))
wmk3<- nb2mat(k3, style='B', zero.policy = TRUE)
write.csv(wmk3,"E:\\new_delta_map\\deltacitycluster-k3.csv") #相鄰3個矩陣
plot(p, col='white', border='blue')
plot(wr, xy, col='red', lwd=2, add=TRUE)#作圖,以相鄰矩陣爲連接
text(xy,p$count_name,cex=.7, halo=TRUE, hc="white", col='blue', hw=0.0)#halo是暈圈,設置hw=0則去除暈圈

以100km爲門檻建立空間權重矩陣的圖示如下:

以相鄰與否(wij=1,if adj=1)建立空間權重矩陣的圖示如下:

以三個相近鄰居(k=3)建立空間權重矩陣的圖示如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章