https://blog.csdn.net/liyuanxiang1984/article/details/52784628
利用到路面提取道路中心线的方法
在利用GIS制图时,需要经常跟数据打交道。很多初级的制图人员都存在一种惯性思路,以为数据精度越高,出图的效果就越好。这是错误的观点。假如现在需要制作1:1w的地图,但手头上却只有1:500的地形图,数据精度虽然很高,但却无法在小比例尺下显示出来。
回到主题上,1:500的数据,大多数道路都是以面状显示。由于其精度高,有些数据甚至是不带线道路图层的,而在1w的地图下,道路以线状表达才是符合要求的。所以,这就需要涉及到地图制图的一个常规工作—地图缩编。
本文主要介绍如何从到路面直接提取出道路中心线,从而辅助小比例尺地图的制作。
由于面状数据一般都是不规则的,所以很难从其提取中心线,一般的GIS软件也没提供直接提取的工具。ArcGIS里面虽然也有一些工具可以辅助一下处理,例如在制图工具箱里面有一个提取中心线的工具,但这个工具的作用是通过道路边线(双线)提取中心线。也有人说,ArcGIS里面同样是提供面转线工具,先用工具转一道再提取不就行了吗?可是问题来了,面转线工具传出来的数据是封闭线,而不是道路边线,提取中心线工具依然是不可用,除非在每个路面图形打断两端的封闭,不然无法进行提取,恰好打断工作又是非常的巨大。因此,该方法还是不可用。
为了解决这个问题,作者想到以另一种方式去完成这个工作,那就是ArcScan扩展模块。提到ArcScan扩展,很多专业人员第一时间反应是这只是个栅格矢量化工具,跟当前讨论的中心线提取似乎没有任何关系。只要深入了解ArcScan扩展的具体细节,我们不难发现其自动矢量化里面可以提取面要素和中心线,利用这一特性,我们就可以曲线去完成该任务了。
先来说说总体思路:将路面(矢量面数据)转化为栅格数据,因为ArcScan只能对栅格数据进行处理,由于是从矢量转为栅格而非扫描,栅格质量一般会非常好;通过二值化栅格数据后,调整捕捉参数和提取参数,直接提取矢量中心线。步骤看似简单,但在实际操作中有很多细节需要注意,以下是详细步骤:
-
单独加载路面数据,要先设置好纯色符号(建议为纯黑色),去掉轮廓线。这样是为了提升栅格数据质量,黑白分明,便于计算机识别像元。
-
设置好约束比例,例如2000。约束比例是为了在输出栅格图时控制质量。
- 点击全屏视图,导出地图,采用tiff方式记录坐标,格式设置为1位单色阈值(非常重要)。如果不选这项,默认出来是RGB三个通道的栅格数据,加载任何一个通道都没法实现栅格数据二值化,意味着无法使用ArcScan功能,所以此处必须要设置。
根据实际需要设置好dpi,这个是直接影响图形识别的因素。Dpi是根据具体的地图图幅进行设置,因此,可能需要尝试多次,找一个比较合适的值,这样图像才能清晰保存下来。
-
将导出的栅格地图加载到arcmap中,新建一个线要素图层,坐标系与栅格一致,一并加载。加载arcscan工具条,如下图
对栅格数据进行充分类,设置为两类,0和1 ,这就是二值化处理。如果不做分类,ArcScan同样不能识别栅格数据。
设置了分类后,arcscan工具条会显示栅格数据
-
打开编辑器,开始编辑,选中中心线图层。在arcscan工具条中可以显示预览
如果需要更详细的设置,在矢量化—选项中设置对应的输出图层
由于提取的是中心线,矢量化方式就必须选中心线
预览效果如下
-
蓝色部分为没有捕捉到,可以设置一下工具条
将栅格捕捉适当调整一下,如下图
设置后的预览就不存在蓝色不能捕捉部分,如下图
-
达到效果后可以点击生成按钮生成最终的效果。
停止编辑并保存数据即可完成所有的提取工作。
直至该步就完成所有的操作,可见,处理一个实际的难题,不能光靠软件提供的工具,要巧妙地运用,做适当的处理,这样才能在意想不到的情况下解决难题。