利用ArcGIS统计各地区内路网密度(道路长度/面积)

来源:互联网 发布:通化县教育局网络办公 编辑:程序博客网 时间:2024/05/22 01:33

我在研究和学习的过程中,经常是遇到了问题就在网上查啊找啊,很多时候都是在大家的博客中找到了答案,有些朋友把过程写得很详细,很感谢这些人!

我就想我不能只是一味的索取,应当把我在学习过程中的一些经验和问题与大家分享。不仅能够作为自己的学习笔记,还能够在大家遇到相似问题时提供一些参考。

由于水平有限,而且不是专门学GIS的,所以让大神们见笑啦!

我用的ArcGIS是10.0版本的。

1、要实现的目标

我们经常以道路网密度来衡量一个地区的道路设施情况,在此之前首先要知道地区内道路长度。

在此以上海市为例,学习如何让统计上海各区县的道路长度。

2、所用到的数据

路网数据:直接用的OSM的线要素数据,把道路(即Highway属性非空的要素)导出来。openstreetmap里面的道路,有的是单向的有的是双向的,所以这个测试仅仅是学习如何统计路网密度,得到的结果和年报中的有出入。
行政区边界:OSM中的面要素数据,把行政区划导出(Boundary属性为administrative的要素)导出来,再编辑整理一下。

3、要开始手把手教了

(1)投影变换:由于我们要统计道路的长度和各区县的面积,长度的单位一般是米、千米,面积是平方米、平方公里。但是OSM上的数据是地理坐标系WGS84,使用经纬度表示的,所以首先要转换成可以度量长度和面积的投影坐标系。
ArcToolbox—>数据管理工具—>投影和变换—>要素—>投影or批量投影
我这里选了批量投影。
输入要变换的要素类:道路和上海区县
输出坐标系点那个拿着纸的小手
出来空间参考属性对话框,点选择按钮,选Projected Coordinate Systems—>UTM—>WGS 1984—>Northern Hemisphere—>WGS 1984 UTM Zone 51N.prj
到底选那个区,一般是根据所在地区:经度/6+31,上海的经度是121,所以选51区。
投影完了,再重新打开一个地图,加入投影后的道路和区县,你看上海是不是不像上面的图那样变形得不顺眼了。

(2)标识道路数据
接下来要开始进入正题了,要通过工具箱的“标识”工具来把每条路段在行政边界处打断,并且标识出每条路段所属的区县名称。ArcToolbox—>分析工具—>叠加分析—>标识。输入要素选“道路”,标识要素选“上海区县”,其他默认。

处理完成后会得到一个新的要素类文件“道路_1_Identity”,并添加为一个图层,可以看到这个新的道路属性里面,把行政区划的属性加上去了。

(3)计算各路段长度并汇总统计
打开“道路_1_Identity”的属性表,增加一个字段“len”

右键路段长度—>计算几何,属性选长度,单位我选了千米,因为通常路网密度的单位是“公里/平方公里”。
这样属性表里面就有各条路段的长度了。
右键区县名称—>汇总,汇总字段是各区县的名称,汇总统计的内容是刚才的len属性的总和。

这样就得到了各区县的道路总长度:

(4)统计各区县面积
跟前面计算路段长度类似,在上海区县中增加“area"字段,通过计算几何得到面积,单位选平方千米。

(5)计算路网密度
把刚才汇总统计输出的表连接到上海区县属性表上去:


在上海区县属性表中增加“road_density”路网密度属性,通过"字段计算器",计算路网密度指标。


路网密度图如下:


4、举一反三

在整个过程中,最主要的是“标识”工具的使用,这个工具还可以用于统计不同区域的点对象是属于那个区域的,在交通上还可以用于计算不同区域的公交站点密度等等等用途。在实际应用中需要灵活处理。



0 0