殷 俊,黄宗维
(广西国土测绘院,广西 南宁 530023)
基于ArcGIS的道路中心线自动提取方法*
殷俊,黄宗维
(广西国土测绘院,广西 南宁530023)
摘要:以柳州基础地理数据库道路中心线的提取为例,对比利用ArcGIS生成道路中心线的两种方法,在此基础上提出了基于ArcScan工具与ArcEngine二次开发相结合自动提取道路中心线的方法。结果表明,该方法可提高效率和准确度。
关键词:地理数据库;道路面;道路中心线;ArcGIS
0引言
城市是中国经济发展最活跃、信息化程度较高、人口居住集中、社会管理难度较大的区域。从1998年美国副总统戈尔首次提出“数字地球”之后,我国也相继提出了“数字中国”、 “数字省区”、“数字城市”等概念并且已开始实施。国家测绘局在“数字区域”建设的基础上,面向全国遴选出部分城市进行“数字城市”地理空间基础框架建设试点,目前已有多个城市先后建成了城市地理空间基础框架[1]。2008年柳州市被国家测绘地理信息局正式批复为第三批数字城市地理空间框架建设试点城市。
道路是城市的主要基础设施,道路信息的快速获取与更新对于数字城市的建设具有重要意义[2]。为此,本文在分析ArcGIS生成中心线的方法后,提出了一种利用ArcScan工具与ArcEngine二次开发相结合提取道路中心线的方法。
1主要思路
ArcGIS Desktop是对地理信息进行创建、编辑以及分析的GIS软件,它提供了一系列的工具用于数据采集和管理、可视化、空间建模和分析、以及高级制图。ArcGIS Engine是随ArcGIS 9系列软件一起推出的一种新的开发产品,它是基于ArcObject构建的,借助它进行GIS应用开发时能彻底摆脱ArcGIS桌面平台,提高开发效率,为用户提供了一个低成本的、特定的、轻量级的GIS应用选择[3]。
当前使用ArcGIS Desktop提取道路中心线主要有两种方法:一种是使用CollapseDualLineToCenterline工具进行提取[4];另一种是利用ArcScan工具进行生成。第一种方法首先把面要素转化为线要素,然后把线要素两端封口删除,最后使用Arctoolbox→Data Management Tools→Generalization→CollapseDualLineToCenterline工具处理。该方法对于规则的平行线生成中心线比较理想,但是在处理基础地理数据库中复杂的道路数据时,大多数情况需要对其进行人工编辑,工作量非常大。
ArcScan是ArcGIS Desktop套件的附加组件,它提供了一些工具可用来将栅格数据转化为矢量的要素图层。第二种方法首先把矢量道路面要素转为栅格要素,然后利用Reclassify工具对栅格数据进行二值化,最后使用ArcScan工具中的GenerateFeatureinsideArea功能自动生成道路中心线。此方法生成的道路中心线很真实美观,线上的节点不需要做修改,存在的主要问题是中心线不会根据道路交叉处打断,而且栅格化过程中会产生一些噪点,这些噪点会自动产生实际不存在的中心线,后期人工检查和修改工作量较大。
上述两种方法均可部分完成从道路面到道路中心线的转化,但是人工干预较多,效率不高,无法满足实际工作需要。结合两种方法的优势和劣势,本文采用ArcScan工具与ArcEngine二次开发结合的方法来实现。具体处理流程,见图1。
图1 自动生成道路中心线流程Fig.1 The flowchart of automatic extraction of road centerline
2处理流程
本实验数据使用数字柳州基础地理数据库中的道路面要素类,实验数据中的道路面要素包括多岔路口、多层立交桥等地物。
2.1道路面要素类转化为栅格要素类
使用ArcGIS软件工具箱中Polypon to Raster工具,把道路面要素类转化为道路面栅格要素类。
2.2栅格要素类二值化处理
设置栅格要素类渲染方式为Classified,将类别划分为两类:一类是白色,一类是黑色,通过对道路面栅格要素类作二值化处理,得到道路面二值化栅格要素类。
2.3栅格要素类生成道路中心线要素
ArcScan支持两种矢量方法,分别是中心线矢量化方法和轮廓矢量化方法,本文采用中心线矢量化方法,使用ArcScan的Generate Feature功能沿着栅格线性元素的中心生成矢量道路中心线要素。
2.4道路中心线后处理
道路中心线后处理采用ArcEngine二次开发工具(见图2),只需选择数据库中道路面要素类和已生成的道路中心线要素类路径,点击处理按钮即可自动化处理。
图2 ArcEngine二次开发工具界面Fig.2 Second development interface of ArcEngine
2.4.1在不同道路交汇处打断道路中心线要素
自动矢量化生成的道路中心线不能识别道路分段位置(见图3),中心线贯穿了面P1和面P2,采用道路面要素的范围打断道路中心线,得到与道路面范围一致的道路中心线。
图3 打断线处理前后效果对比Fig.3 Comparison of breaking line
2.4.2删除不在道路面范围内的悬挂线和悬挂点
矢量要素类转化到栅格要素类的过程中容易产生噪点,由面积较大的噪点生成的道路中心线和悬挂点都是错误的,因此本步骤进行悬挂线、悬挂点删除(见图4)。
图4 删除悬挂线前后效果对比Fig.4 Comparison of deleting suspension line
2.4.3合并每个道路面要素内的中心线要素
道路中心线要素类与道路面要素类进行相交分析,对道路面要素范围内存在的多条零散道路中心线进行合并处理,合并原则采用长度占优法,即超出面范围的线长度如果大于该线长度一半则合并,否则不合并(见图5),搜索与道路面P1相交有L1和L2两条中心线,其中L1由落在道路面P1内的L3和落在道路面P2内的L4组成,判断如果L3长度大于L4长度,则对中心线L1与L2进行合并,否则不合并。
图5 合并道路中心线Fig.5 Merge of road centerline
关键代码如下:
while((pThisLineFea = plineFeaCursor.NextFeature())!= null)
{
IGeometry pTopoGeo = pThisLineFea.ShapeCopy;
pTopoGeo.SpatialReference =(pFeature.Shape as IGeometry).SpatialReference;
IGeometry pClipGeo =(pTopoGeo as ITopologicalOperator).Intersect(pFeature.Shape,esriGeometryDimension.esriGeometry1Dimension);
IPolyline pLine = pClipGeo as IPolyline;
double pMidLength = Math.Abs((pThisLineFea.Shape as IPolyline).Length / 2);
if(pLine.Length < pMidLength)//判断是否长度占优,占优则合并
{
continue;
}
pSaveGeo.SpatialReference =(pThisLineFea.ShapeCopy).SpatialReference;
ITopologicalOperator pGoodTopo = pSaveGeo as ITopologicalOperator;
pSaveGeo = pGoodTopo.Union(pThisLineFea.ShapeCopy);
pThisLineFea.Delete();
}
2.4.4道路中心线属性赋值
上述生成的道路中心线没有属性信息,在数字城市基础地理数据库建设中,属性信息是地理实体重要的组成部分。此步骤将道路中心线要素类与道路面要素类进行相交分析,把道路面要素的名称、线路编号、技术等级等属性字段值自动赋值到道路中心线要素对应的字段上。
最终生成的道路中心线,见图6。
图6 自动生成道路中心线效果图Fig.6 Automatic extraction of road centerline
3结束语
基础地理数据库建设是一项庞大而又复杂的工作。本文首先总结了现有生成道路中心线的方法,并指出这些方法的局限性,接着提出使用ArcScan和ArcEngine二次开发相结合实现自动提取道路中心线的方法,最后用实验验证了本文提出方法的可行性。结果表明:利用该方法不仅能提高道路中心线的提取效率和准确度,而且仅需少量人工干预即可实现自动提取。
[参考文献]
[1]曹建成.城市基础地理信息数据库设计与实现[J].测绘与空间地理信息,2010(2):55-58.
[2]彭检贵,马洪超,高广,等.利用机载LiDAR点云数据提取城区道路[J].测绘通报,2012(9):16-19.
[3]吴玮,李小帅,张斌.基于ArcGIS Engine的GIS开发技术探讨[J].科学技术与工程,2006,6(2):176-178.
[4]马健梅.ArcGIS下的道路多边形采集方法[J].西安科技大学学报,2009,29(2):205-208.
Automatic Extraction of Road Centerline Based on ArcGIS
YIN Jun,HUANG Zong-wei
(GuangxiInstituteofLand&SurveyingandMapping,NanningGuangxi530023,China)
Abstract:The aim of this study is to create Liuzhou Fundamental Geodatabase by using road centerline data.By comparing the two methods of using ArcGIS to generate the road centerline,a method of automatic extraction of the road centerline based on the combination of ArcScan tool and ArcEngine second development was presented.The test results showed that the method can improve the efficiency and accuracy.
Key words:geodatabase;road polygon;road centerline;ArcGIS
作者简介:殷俊(1988~),男,广西桂林人,学士,助理工程师,现主要从事GIS数据应用及无人机数据处理方面的工作。
中图分类号:P 208
文献标识码:B
文章编号:1007-9394(2016)01-0040-03
收稿日期:2015-12-28
地矿测绘2016,32(1):40~42
CN 53-1124/TDISSN 1007-9394
Surveying and Mapping of Geology and Mineral Resources