ArcGIS制作城市空间经济联系强度图
这⼏天有师到我让帮忙画上⾯的图。看着不是很难,关键在于画线,但搜索⽹上却没有相关制作⽅法。偶然在别⼈的问题上(zhihu.esrichina/question/19205)看到了XY to lines 这个⼯具,顺带看到了径向流图的制作⽅法(见后⽂链接)。因⽽,便借鉴径向流图的画法完成了上图的制作。然后,我还发现⽤这种⽅法还可以制作很多类似的图,像什么领域图,城市间相互作⽤等等,只是相关指标需要提前运算,然后赋值给⽣成的每条曲线,接着进⾏分层设⾊符号化等操作。
这⾥主要记录⼀下核⼼步骤,以备忘。
这个图师只给了⼀个经济联系矩阵:
梦到坐电梯所以,⾸先要准备底图数据。
然后利⽤点图层获取点的坐标数据,并导出,⽅法见:Arcgis中怎么获取点shape数据的坐标_百度经验
jingyan.baidu/article/d5c4b52bee0369da560dc509.html。
接着便是繁琐的利⽤坐标构建线段过程,构建线段主要⽤到的就是XY to lines ⼯具,其原理见:ArcGIS中制作流向图(Flow Map)_红黄蓝狗⽇的_新浪博客blog.sina/s/blog_673c98be0101ggel.html
这⼀步⾥⾯最难的或者说最繁琐的,就是⽤excel制作线段的起始坐标的过程,长这样:
经过⼀顿操作之后,制成类似这样的:        然后⽤XY to lines 转成线段就⾏,注意转的时候要把最后⼀列的权重选进去,以便后期分层设⾊。
总的来说,这不是⼀个很便捷的⽅法,很多⼈制作这个图都是⽤代码实现的,后⾯附上的就是从⼤神同学那问来的⽅法,感兴趣的可以⾃⼰研究⼀下。代码⾥是根据斑块的⼏何中⼼(也可能是质⼼)来创建邻域曲线的,⽤的时候注意⼀下就好。此外,制作交通流量啥的很⽜的transCAD,好像也能制作这个图,时间原因,有兴趣的可以继续研究。
最后,贴个很漂亮的径向流图 。
参考:
ArcMap中如何制作径向流图 - CSDN博客  blog.csdn/arcgis_all/article/details/8216246清朝官员等级
韩红个人资料简介祖籍ArcGIS制作放射状流向地图(Radial Flow Map) - gisangela - 博客园  wwwblogs/gisangela/p/3429276.html 地图慧-在线制作地图,数据地图,专题地图,⽤地图说话  c.dituhui/apps/flow
ArcGIS放射状流向地图 - 我也是个傻⽠ - 博客园  wwwblogs/liweis/p/4297859.html
Creating radial flow maps with ArcGIS | ArcGIS Blog  blogs.esri/esri/arcgis/2011/09/06/creating-radial-flow-maps-with-arcgis/
附上R⽣成邻域线段代码,结果需要在ArcGIS中打开:
#### 读取 shp ⽂件
library(rgdal)
CSJSHP <- readOGR("./d", "data") # shp
CSJSHP <- CSJSHP[order(as.numeric(CSJSHP$IDs)),] # 需要ID序列标识图斑
CSJSHP$IDs <- factor(CSJSHP$IDs)
IDs <- CSJSHP$IDs
coords <- coordinates(CSJSHP) #
#### 创建基于距离倒数的空间权重
library(spdep)
CSJ_nb <- dnearneigh(coords, d1 = 0, d2 = 150000, row.names = IDs) dsts <- nbdists(CSJ_nb, coords)
idw <- lapply(dsts, function(x){1/(x/1000)})
尹天照spw <- nb2listw(CSJ_nb, glist = idw, style = "B")
spwmat <- listw2mat(spw)
outspw <- data.frame(spwmat)
write.csv(outspw, "outspw.csv")
write.sn2gwt(listw2sn(spw), "outspw2.GWT", useInd = TRUE)
董卿的老公和孩子照片####创建邻域曲线
CSJ_nb_lines <- listw2lines(spw,coords)张玉珊个人资料
CSJ_nb_lines$j_ID <- NULL
CSJ_nb_lines$i_ID <- NULL
writeOGR(CSJ_nb_lines,".","CSJ_nb_lines4",driver="ESRI Shapefile")