利用到路面提取道路中心线的方法
分享
利用到路面提取道路中心线的方法
在利用GIS制图时,需要经常跟数据打交道。很多初级的制图人员都存在一种惯性思路,以为数据精度越高,出图的效果就越好。这是错误的观点。假如现在需要制作1:1w的地图,但手头上却只有1:500的地形图,数据精度虽然很高,但却无法在小比例尺下显示出来。
回到主题上,1:500的数据,大多数道路都是以面状显示。由于其精度高,有些数据甚至是不带线道路图层的,而在1w的地图下,道路以线状表达才是符合要求的。所以,这就需要涉及到地图制图的一个常规工作—地图缩编。
本文主要介绍如何从到路面直接提取出道路中心线,从而辅助小比例尺地图的制作。
由于面状数据一般都是不规则的,所以很难从其提取中心线,一般的GIS软件也没提供直接提取的工具。ArcGIS里面虽然也有一些工具可以辅助一下处理,例如在制图工具箱里面有一个提取中心线的工具,但这个工具的作用是通过道路边线(双线)提取中心线。也有人说,ArcGIS里面同样是提供面转线工具,先用工具转一道再提取不就行了吗?可是问题来了,面转线工具传出来的数据是封闭线,而不是道路边线,提取中心线工具依然是不可用,除非在每个路面图形打断两端的封闭,不然无法进行提取,恰好打断工作又是非常的巨大。因此,该方法还是不可用。
为了解决这个问题,作者想到以另一种方式去完成这个工作,那就是ArcScan扩展模块。提到ArcScan扩展,很多专业人员第一时间反应是这只是个栅格矢量化工具,跟当前讨论的中心线提取似乎没有任何关系。只要深入了解ArcScan扩展的具体细节,我们不难发现其自动矢量化里面可以提取面要素和中心线,利用这一特性,我们就可以曲线去完成该任务了。
先来说说总体思路:将路面(矢量面数据)转化为栅格数据,因为ArcScan只能对栅格数据进行处理,由于是从矢量转为栅格而非扫描,栅格质量一般会非常好;通过二值化栅格数据后,调整捕捉参数和提取参数,直接提取矢量中心线。步骤看似简单,但在实际操作中有很多细节需要注意,以下是详细步骤:
根据实际需要设置好dpi,这个是直接影响图形识别的因素。Dpi是根据具体的地图图幅进行设置,因此,可能需要尝试多次,找一个比较合适的值,这样图像才能清晰保存下来。
版权声明:本文为博主原创文章,未经博主允许不得转载。
文章来源:http://www.cnblogs.com/lazygis/p/4866018.html
在利用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工具条中可以显示预览 如果需要更详细的设置,在矢量化—选项中设置对应的输出图层 由于提取的是中心线,矢量化方式就必须选中心线 预览效果如下
- 蓝色部分为没有捕捉到,可以设置一下工具条 将栅格捕捉适当调整一下,如下图 设置后的预览就不存在蓝色不能捕捉部分,如下图
- 达到效果后可以点击生成按钮生成最终的效果。 停止编辑并保存数据即可完成所有的提取工作。 直至该步就完成所有的操作,可见,处理一个实际的难题,不能光靠软件提供的工具,要巧妙地运用,做适当的处理,这样才能在意想不到的情况下解决难题。
版权声明:本文为博主原创文章,未经博主允许不得转载。
文章来源:http://www.cnblogs.com/lazygis/p/4866018.html
0 个评论
相关问题
- 如何使用脚本或其他方法,将图层属性中属性域原值内容替换为属性域描述?
- 基于ArcGIS的CAD数据向GIS数据转换方法
- 如何利用python提取大量点的边界?
- 提取南京要素
- arcgis请问如何把复杂的道路交叉处简化?
- geometryEngine.simplify方法是做图形简化的吗,简化机制是什么,为什么调用后没效果?
- ArcMap中提取波段信息的方法
- arcmap字段属性表中有文本和数字组合如何只提取数字
- 使用arcmap是否可以一次提取行政区划图中多个行政区?
- 字段计算器Python能使用第三方库的方法吗?
- 为什么做欧氏距离出来的道路影响范围没有覆盖整个作业区呢?有大神说要设置掩膜,但是我的10.2一设置环境就会提示失败