基于Arcgis 利用道路面要素提取道路中心线的方法

转载自李远祥博客:http://blog.csdn.net/liyuanxiang1984 http://blog.csdn.net/liyuanxiang1984/article/details/52784628 


路网复杂的时候,arcgis制图综合工具箱里提取中心线的方法效果很难让人满意,以下方法亲测有效,效果很好,结果直接输出到模板,很实用,感谢大神。

但是Arcscan在进行栅格单元捕捉时最大能识别100个像素,所以如果道路面数据没有预处理工作没做好的话,还是容易导致部分交叉路口识别不了。


利用到路面提取道路中心线的方法

 

在利用GIS制图时,需要经常跟数据打交道。很多初级的制图人员都存在一种惯性思路,以为数据精度越高,出图的效果就越好。这是错误的观点。假如现在需要制作1:1w的地图,但手头上却只有1:500的地形图,数据精度虽然很高,但却无法在小比例尺下显示出来。

回到主题上,1:500的数据,大多数道路都是以面状显示。由于其精度高,有些数据甚至是不带线道路图层的,而在1w的地图下,道路以线状表达才是符合要求的。所以,这就需要涉及到地图制图的一个常规工作—地图缩编。

本文主要介绍如何从到路面直接提取出道路中心线,从而辅助小比例尺地图的制作。

由于面状数据一般都是不规则的,所以很难从其提取中心线,一般的GIS软件也没提供直接提取的工具。ArcGIS里面虽然也有一些工具可以辅助一下处理,例如在制图工具箱里面有一个提取中心线的工具,但这个工具的作用是通过道路边线(双线)提取中心线。也有人说,ArcGIS里面同样是提供面转线工具,先用工具转一道再提取不就行了吗?可是问题来了,面转线工具传出来的数据是封闭线,而不是道路边线,提取中心线工具依然是不可用,除非在每个路面图形打断两端的封闭,不然无法进行提取,恰好打断工作又是非常的巨大。因此,该方法还是不可用。

为了解决这个问题,作者想到以另一种方式去完成这个工作,那就是ArcScan扩展模块。提到ArcScan扩展,很多专业人员第一时间反应是这只是个栅格矢量化工具,跟当前讨论的中心线提取似乎没有任何关系。只要深入了解ArcScan扩展的具体细节,我们不难发现其自动矢量化里面可以提取面要素和中心线,利用这一特性,我们就可以曲线去完成该任务了。

先来说说总体思路:将路面(矢量面数据)转化为栅格数据,因为ArcScan只能对栅格数据进行处理,由于是从矢量转为栅格而非扫描,栅格质量一般会非常好;通过二值化栅格数据后,调整捕捉参数和提取参数,直接提取矢量中心线。步骤看似简单,但在实际操作中有很多细节需要注意,以下是详细步骤:

  1. 单独加载路面数据,要先设置好纯色符号(建议为纯黑色),去掉轮廓线。这样是为了提升栅格数据质量,黑白分明,便于计算机识别像元。

    基于Arcgis 利用道路面要素提取道路中心线的方法

  2. 设置好约束比例,例如2000。约束比例是为了在输出栅格图时控制质量。

    基于Arcgis 利用道路面要素提取道路中心线的方法

  3. 点击全屏视图,导出地图,采用tiff方式记录坐标,格式设置为1位单色阈值(非常重要)。如果不选这项,默认出来是RGB三个通道的栅格数据,加载任何一个通道都没法实现栅格数据二值化,意味着无法使用ArcScan功能,所以此处必须要设置。

基于Arcgis 利用道路面要素提取道路中心线的方法

根据实际需要设置好dpi,这个是直接影响图形识别的因素。Dpi是根据具体的地图图幅进行设置,因此,可能需要尝试多次,找一个比较合适的值,这样图像才能清晰保存下来。

基于Arcgis 利用道路面要素提取道路中心线的方法

 

  1. 将导出的栅格地图加载到arcmap中,新建一个线要素图层,坐标系与栅格一致,一并加载。加载arcscan工具条,如下图

    基于Arcgis 利用道路面要素提取道路中心线的方法

    对栅格数据进行充分类,设置为两类,0和1 ,这就是二值化处理。如果不做分类,ArcScan同样不能识别栅格数据。

    基于Arcgis 利用道路面要素提取道路中心线的方法

    设置了分类后,arcscan工具条会显示栅格数据

  2. 打开编辑器,开始编辑,选中中心线图层。在arcscan工具条中可以显示预览

    基于Arcgis 利用道路面要素提取道路中心线的方法

    如果需要更详细的设置,在矢量化—选项中设置对应的输出图层

    由于提取的是中心线,矢量化方式就必须选中心线

    基于Arcgis 利用道路面要素提取道路中心线的方法

    预览效果如下

    基于Arcgis 利用道路面要素提取道路中心线的方法

  3. 蓝色部分为没有捕捉到,可以设置一下工具条

    基于Arcgis 利用道路面要素提取道路中心线的方法

    将栅格捕捉适当调整一下,如下图

    基于Arcgis 利用道路面要素提取道路中心线的方法

    设置后的预览就不存在蓝色不能捕捉部分,如下图

    基于Arcgis 利用道路面要素提取道路中心线的方法

  4. 达到效果后可以点击生成按钮生成最终的效果。

    基于Arcgis 利用道路面要素提取道路中心线的方法

    基于Arcgis 利用道路面要素提取道路中心线的方法

    停止编辑并保存数据即可完成所有的提取工作。

    直至该步就完成所有的操作,可见,处理一个实际的难题,不能光靠软件提供的工具,要巧妙地运用,做适当的处理,这样才能在意想不到的情况下解决难题。