
01 数据说明
1. 主要道路.shp:江苏省主要道路数据来源于 OpenStreet 网站。
2. 江苏省省界.shp:江苏省行政区面数据。
3. 江苏市届.shp:江苏省地级市面数据。
4. 江苏县界.shp:江苏省区县面数据。
5. 市级点.shp:江苏省地级市点数据。
6. 县级点.shp:江苏省区县点数据。
7. 三甲医院.shp:江苏省三甲医院点数据。
8. 区县数据.xls:江苏省各区县 GDP 数据。
文末有数据下载链接
02 分析要求
处理研究区数据
创建江苏省主要道路的道路网络,忽略所有转弯耗时
创建服务区并计算面积比
绘制各地级市/县级市城市联系强度图
绘制城市中心度专题地图
我们的研究区是地级市市区和县级市,请按照下面的要求创建县市级点数据和县市级面数据。
注意:结果数据是本项目的研究区数据,之后所有的步骤都使用本步骤结果数据,请按照要求处理数据并保证属性信息的正确。
1)创建县市级点数据。
县级点数据中 Name 字段属性值为“XX 区”并且属于同一个地级市的点,请使用市级点代替。例如:在县级点中,苏州市一共有 9 个点,分别是虎丘区、姑苏区、吴中区、相城区、吴江区、常熟市、昆山市、太仓市、张家港市。其中虎丘区、姑苏区、吴中区、相城区和吴江区属于苏州市市区,用市级点中的苏州市代表。最终结果应该是苏州市(市级点)、常熟市(县级点)、昆山市(县级点)、太仓市(县级点)、张家港市(县级点)。
解答:
,打开工具后输入:”NAME” LIKE ‘%区’,SQL语句中筛选字符串就是这样的规则,具体参考帮助文档哈。

这时候“NAME”字段以“区”字结尾的县级点都会被选中,接着点击属性表菜单栏上面的反向选择按钮
,可以看到“Name”字段属性值不为“XX 区”的数据都被高亮显示选中了,我们直接导出数据并且命名为“非区点”。
2.我们将“非区点”数据和市级点数据合并起来。我们在菜单栏上面的【地理处理】下拉选项栏中选中【合并】(【地理处理】里面有矢量数据叠置分析最常用的几种工具,用起来比较方便哦),将“非区点”数据和市级点数据加载进来,输出数据命名为:“县市点”(一共55个)。

2)创建县市级面数据。
合并规则和上一步相同,但是请注意面和点的差异,所以您将如何处理面数据?请使用您自己的方法,将属于同一个市区的“XX 区”面要素合并成一个面要素。
解答:
1.首先我们将县级点数据中“Name”字段属性值为“XX 区”的数据给筛选出来。打开县级点数据属性表,选中“Name”字段后双击属性表中菜单栏上面的按属性选择工具
,打开工具后输入:”NAME” LIKE ‘%区’,SQL语句中筛选字符串就是这样的规则,具体参考帮助文档哈。这时候“NAME”字段以“区”字结尾的县级点都被高亮显示选中了,我们直接导出数据并且命名为“区点”。
2.我们选择ArcMap菜单栏的“选择”下拉选项中的“按位置选择”,【目标图层】:“江苏县界”,【源图层】:“区点”,【目标图层要素的空间选择方法】:“与源图层要素相交”,点击确定即可。

这时候发现所有包含区点要素的江苏县界都会被高亮显示:

3.按照题目的意思就是,这些被选中的在并且是同一个市级下面的县级面数据要合并成一个面数据,我们通过属性表可以知道,属于同一个“隶属市”字段的都要整合成一个面,这时候我们想到了使用【融合】工具,融合字段选中“隶属市”即可(因为隶属市就是他们的上一级行政区)。

部分江苏县界属性表

融合工具参数设置

蓝色为融合结果
4.首先我们江苏县界面数据中“Name”字段属性值不为“XX 区”的数据给筛选出来。打开江苏县界面数据属性表,选中“Name”字段后双击属性表中菜单栏上面的按属性选择工具
,打开工具后输入:”NAME” LIKE ‘%区’,这时候“NAME”字段以“区”字结尾的江苏县界都会被选中,接着点击属性表菜单栏上面的反向选择按钮
,可以看到“Name”字段属性值不为“XX 区”的数据都被高亮显示选中了,我们直接导出数据并且命名为“非区县界”。
5.最后将“非区县界”和上面的融合结果合并即可,输出数据命名为“县市面”。但是打开属性表会发现之前融合的那些字段值为空,题目要求属性信息正确:
我们打开编辑器对该图层进行编辑,选中“隶属省”右键选中字段计算器输入:”江苏省”,接下来选中所有有“Null”的行数据,再右键“NAME”字段选中字段计算器输入:[隶属市],“名称”字段也是一样,选中字段计算器输入:[隶属市],最终属性如下图所示:

1)主要道路的 fclass 字段含义和车行平均速度如下表:

2)计算时间时,使用计时单位“分钟”。
3)道路数据已经做了初步处理,地面道路十字路口连接的地方已经全部打断,您不需要额外处理。
4)路网分析定位时,只定位在 primary、secondary 和 tertiary 道路上,并且在最近的道路形状上,如下图所示:

解答:
1.我们打开“主要道路”属性表,添加一个双精度的空白字段“Length”和“Time”,右键该字段选中“计算几何”,在打开的界面属性选择:长度,单位选择:米,点击确定即可计算各道路线段的长度。

由于要求计时单位是“分钟”,为此我进行了单位换算,换算结果如下图所示:

2.我们右键选择“Time”字段后选择字段计算器,输入如下代码:

具体代码如下:
def niubi(sy,C):
if(sy=="motorway"):
return C/1666.67
if((sy=="motorway_link")|(sy=="trunk_link")|(sy=="primary_link")|(sy=="secondary_link")|(sy=="tertiary_link")):
return C/666.67
if(sy=="trunk"):
return C/1166.67
if(sy=="primary"):
return C/916.67
if(sy=="secondary"):
return C/833.33
if(sy=="tertiary"):
return C/750
这时候“Time”字段就会显示行驶完不同类型路线段所需要的时间(分钟)啦:

3.接着在目录那边新建文件(个人)数据库,新建要素数据集,构建网络数据集(记得只选择“主要道路”参与构建),记得添加属性字段“Time”哦(值选择刚才计算出来的“Time”字段,这一步至关重要的),后面阻抗计算要根据这个来计算。


创建的网络数据集加载进来后如下图所示:

- END -

