查看原文
其他

干货分享 | 20分钟做一个中国城市经济联系图

The following article is from 数读城事 Author 数读菌





城市经济网络对于我们分析城市群区域、探索有价值的区域中心和发现“洼地城市”等方面,有着重要的作用。今天给大家带来的就是制作“城市经济联系图”的分解步骤教程,原文小编语言诙谐有趣,把枯燥的教程变得简单好玩。读完这篇文章,相信大家会发现,干货满满~




01

准备数据

由于这个简化的联系模型是基于所谓的“城市引力模型”,不管你信不信,反正我今天用的就是它。首先你需要有“城市GDP”或者“城市常住人口”的数据。比如我整理的下面这个(没有怎么办,我分享啊~数据2017年,自己整理的地市尺度的常住人口和GDP,坐标为WGS84,不保证正确,仅作为练习勿挪作他用)

2017年常住人口空间分布图

2017年GDP空间分布图

由于我们做个经济联系图,那么我们就选择GDP来做。先要把面转为点(这边有所简化,因为面转点在中心,其实“城市”并不在市域中心,但是先不考虑这个)。


需要用到的工具叫做【要素转点】:依次打开【数据管理工具】—【要素】—【要素转点】,建议勾选“内部”,这样生成的点可以控制在市域范围内。点击确定生成点要素。



生成的点要素的字段与原来的面要素应该是一样的。

2017年GDP空间分布图(点)


现在我们要给每个点添加经纬度的属性,为什么一会再说。
使用【添加XY坐标】工具,依次打开【数据管理工具】—【要素】—【添加XY坐标】。添加的“POINT_X”是经度,“ POINT_Y”是纬度(当坐标系是WGS84的情况下)


02

构建两两联系矩阵

所谓的两两联系矩阵,就是“A—B”这样的情况下的城市相关关系,直接看个图就明白了:

但是呢==我是不知道ArcGIS中怎么实现这玩意。因此需要把这个换个形式:
那么我们来说操作,怎么能形成上面的表格?我们现在有的是350多个城市各自的数据,要如何形成两两对应的关系呢?
先要把“城市数据点”导出为可编辑的CSV文件:


然后用excel打开刚刚生成的csv文件,如果出现乱码的话,建议用记事本打开,另存的时候ANSI编码。现在有369个城市,需要复制369次,当然不是说手动复制,是有技巧的。先选中第2行到第370行,“CTRL+C”复制;使用“CTRL+G”定位,输入“371:136162”;然后“CTRL+V”黏贴,就一次性黏贴完了;最后看一下,一共136162行,除去表头行就是136161行,相当于369个城市,每个出现了369次。之前的“371:136162”意思是从371行开始选中到136162行。

我们现在做好了一半,还剩一半的数据需要“创造”。首先把现有的表头改成“起点XX”的格式,然后照着下面,全复制到右侧,筛选后排序(仅排序新粘贴的数据),然后修改表头,完事。点击保存。



03

创建联系线

在ArcGIS中添加CSV文件,并导出至文件地理库中,成为“文件和个人地理数据库表”,之所以要到文件地理库中,是因为==在库里面字段的名称不受三个字符的限制,比较清楚。导出后检查下数量有没有问题,没问题的话是136161条数据。


添加一个双精度字段“乘积”,使用【字段计算器】为其赋值:起点GDP*终点GDP;


使用【XY转线】工具:依次打开【数据管理工具】—【要素】—【XY转线】,如下设置:


线类型那边,选择“GEODESIC”的话,出来的效果就是有一定弧度,别的也可以自己试一下。结果要等一阵子==毕竟数据不少。
我没猜错的话==生成的结果就是一大陀==就像这下面的样子,不要管他,直接关了它的图层,卡的要命==打开它的属性表进行操作。

我们可以新建一个双精度字段“长度”,使用【计算几何】来计算长度,计算的时候坐标系建议选择投影坐标系,我使用的是数据框的坐标系“Krasovsky 1940 Albers”,单位就选择千米吧。
打开编辑器,选中长度为0的线段,删除后保存编辑。这一步是为了筛选掉“A—A”这样的自己与自己联系的城市,如果之前操作没问题的话,筛选掉的数量为369,筛选后还剩的线段数量为135792。
然后新建一个双精度字段“联系度”,计算值:[乘积] /( [长度] * [长度])。
也就是根据公式(这边暂且选取的k为1):
现在还有最后一步,因为之前的操作中“A—B”与“B—A”其实是一致的,所以,需要通过融合来减少重复的线。
融合前的要素一共135792条,理论上因为每一个城市组合都有两条,所以融合后的数据量理应为67896条。我才疏学浅不知道为什么使用双精度字段融合达不到预期,所以新建了一个长整型字段“长整型厘米”,计算其长度(以厘米为单位),不用毫米是因为超出了字段限制。
使用【融合】工具,以“长整型厘米”为融合字段,统计字段为“联系度”,统计类型可以选择“MEAN”,不过因为是一样的值,选什么也没差别。(这一步也会花比较多的时间,建议点开新番看一集=。=或者看三个鬼畜视频也行,另外要在电脑旁常备可乐和薯片,不想干活了可以肥宅快乐一下==比如我现在这样)融合设置的时候,“创建多部件要素”前的勾建议不要打上。
最后出来的结果为67898条数据,多了两条不知道为啥==先不管了,删除一些“联系度”为0的线段(0是因为这里原本就没数据),最后的结果就像下面这样(这是个动的很慢的动图,在你以为他停止的时候,它还会继续动==):

城市联系(所有城市间)



所有城市的联系线都放上会==emmmm,我们试着只放前20%联系度的线条在图上,也就是大概1万3千条左右的数据,或者使用属性选择联系度大于10的线段,差不多也是1万多条。根据联系度的数值可以分区间用颜色表示,分类的时候如果提示采样数达到最大可以像下面这样调整:

继续看一下选择联系度大于10的线段后的效果:

城市联系(前1W的联系度)


接下来就是一些自己的调整了,不详细说了。比如我最后选择的效果是前50%的线:

城市联系(前50%的联系度)


本文转载自公众号 数城读事,版权归原作者及原公众号所有。点击“阅读原文”,获取更多信息和练习数据。

图文排版:康楠责任编辑:李倩审核:王波涛 常贵蒋终审:顾伟男 田巍 梁龙武

猜你喜欢

1.招贤纳士 | 临沂大学资源环境学院2020年高层次人才招聘

2.全国地理学研究生联合会第十五届信息一览

3.全国地理学研究生联合会第十五届理事单位一览表

4.欢迎大家积极投稿并展开合作!

5.佳文赏析 | 城市景观的空间布局是否重要?——以凤凰城和拉斯维加斯的城市升温和降温为例


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存