作者:邓雯婷
一、项目背景 2015年国务院批复同意《全国基础测绘中长期规划纲要(2015-2030年)》,明确提出了“加快发展基础测绘,形成新型基础测绘体系”的要求,提出要“完善地理信息公共服务体系,创新产品形式、服务方式,扩宽服务领域”。 交通是城市的“血管”,是城市社会经济活动最活跃的区域。上海作为新型基础测绘体系建设研究的试点城市之一,提出了“智能化全息测绘”的解决方案。道路全息测绘作为“智能化全息测绘”的重要组成部分,是解决超大型城市道路交通“城市病”、城市现代化治理、无人驾驶等领域需求最迫切、技术相对成熟的全息测绘。本文主要探讨的是FME在道路全要素实景建模中的应用。 二、问题分析 道路全息测绘的目标是在传统基础测绘基础上,进一步丰富和完善道路相关的地理空间要素的种类,并补充城市管理等应用所需的自然属性和社会属性,以“应采尽采”为原则,形成道路全息测绘基础数据。道路全息测绘的采集手段是以车载三维激光扫描测量方式为主、其他技术手段为辅,在数据处理过程中通过深度学习等AI技术自动、半自动化提取矢量数据,最终形成全空间一体化的结构化道路全息地理信息产品。 道路全息测绘的数据采集与处理简化流程如图1所示。道路全要素实景模型的数据源包括点云数据、全景影像、全要素地形数据、外业调绘补测照片等,基于以上数据源,通过建模软件(3ds Max)进行道路全要素实景模型制作。 在利用3ds Max进行建模的过程中,笔者发现在某些生产环节,存在大量重复性操作。FME作为一款基于语义转换的数据处理工具,在数据格式转换及数据批量处理方面具有显著优势,笔者认为利用FME可以在道路全要素实景模型制作过程中减少人工干预、提高生产效率。 图1. 道路全息测绘数据采集与处理流程 目前笔者已识别的可优化生产环节包括: 1)地面模型制作 2)道路交通标线模型制作 3)停车位模型制作 笔者将围绕这三个具体生产环节,研究FME在道路全要素实景模型生产中的应用,通过研究达到提升三维建模数据质量、降低人工干预程度、提高数据生产效率的目标。 本次采用的生产环境,操作系统为Windows 10 64位,FME版本为FME 2020.1.2.0 WIN 64,其他相关软件包括ArcMap10.6.1,AutoCAD 2018,3ds Max 2018等。 三、解决方案 3.1 地面模型制作 地面模型应真实反映道路面及人行道的地面起伏情况,其中道路面的主要数据源包括道路上的散点标高、道路边线、道路交通标线、路面上各种箭头等,数据统一存储于“road.dwg”文件中,人行道的主要数据源包括地类界、道路边线、盲道中心线等,数据统一存储于“sidewalk.dwg”文件中。道路全要素实体模型有单体化建模的需求,道路面与人行道都必须进行单体化操作。具体分为路口、机动车道、非机动车道,人行道,其具体范围存储于“clip_boundary.shp”文件中。原作业方式是利用ArcGIS中Create TIN,Edit TIN,Tin Triangle等工具,依次输出单体化的DWG文件,并依次导入3ds Max软件转换为可编辑多边形并进行贴图操作。 笔者认为上述操作,可以有两种方式进行优化:第一,是利用ArcPy制作自定义脚本工具,在ArcMap环境下实现流程化处理;第二,是制作FME模板,利用FME中TINGenerator与Clipper处理器,实现地面模型制作的自动化处理。笔者使用第二种方法制作的FME模板如图2所示。 图2. 地面模型制作模板 其中,对CAD数据的读取采用如图3所示设置,依据几何类型读取CAD文件。对于road.dwg文件来说存储了地面高程信息的几何类型包括text,lines,polygons,其中text主要为地面散点标高,lines为地面标线,polygons为人形横道线或地面标志箭头等。对于sidewalk.dwg文件来说存储了地面高程信息的几何类型为lines,主要为道路边线或盲道中心线等。 图3. CAD数据读取参数设置 利用上述模板生成的地面模型的CAD成果,以及导入3ds Max软件,通过“焊接”顶点、转换为“可编辑多边形”、以及贴图和命名操作后,在3ds Max中的展示效果如图4所示。 图4. 地面模型制作效果图 3.2 道路交通标线模型制作 道路交通标线主要是指在道路路面上用线条、箭头等向交通参与者传递引导、限制、警告等交通信息的标识,这里特指路面上的线条,包括不同宽度的白色或黄色的实线或虚线。道路交通标线模型需要按照道路全要素地形图采集的高度、宽度、颜色与走向,利用建模软件生产相应的模型。全要素地形图采集了道路标线的中心线,建模时需要依据实地宽度和标线颜色进行模型制作,不能出现标线宽度、颜色与实地不符的情况,而且要考虑地面模型的起伏情况,不能出现标线被地面模型遮挡的情况。全要素地形数据、全景影像数据与全要素实景模型中道路交通标线形式如图5所示。 图5. 道路交通标线示意图 为了实现道路交通标线的自动化建模,需要从两方面入手:第一,数据源要属性完备、信息准确,能包含标线高度、宽度、颜色、线型等必要信息;第二,FME模板要尽量减少人工干预,且能处理地面标线被地面模型遮挡的特殊情况。道路标线模型制作的FME模板如图6所示。 图6. 道路交通标线模型制作模板 模型运行时的参数设置如图7所示,其中的标线线宽为15cm,路面文件指向的是地面模型制作的成果JD.dwg,FJD.dwg和LK.dwg文件,该模型使用SurfaceDraper处理器重新计算地面标线的高程,避免地面标线发生被地面模型遮挡的情况。 图7. 道路交通标线模型运行参数界面 在模型中有个关键环节是对地面标线数据的预处理,本文使用AttributeManager处理器将标线高度与宽度等属性进行标准化,然后使用Buffer处理器,依据输入的线宽生成道路交通标线多边形,AttributeManager处理器的参数设置如图8所示。 图8. AttributeManager处理器参数设置 3.3 停车位模型制作 停车位标线也是一种道路交通标线,但由于数据采集和制作流程,停车位标线的采集方法与其他地面标线稍有不同,主要体现在两个方面:第一,前面介绍的比如停止线、车道分隔线、人行横道线等采集的是中心线,但停车位采集的是外边框,在进行模型制作时需要向内挤压一定的宽度,并根据实际情况指定贴图。第二、停止线、车道分割线、人行横道线等都是地面模型构面的数据源,所以在地形起伏上高度差距不大,只需进行微调就能符合模型生产要求,但停车位采集的高程与地面模型的高程吻合度比较低,需要的人工干预比较多,严重影响了模型生产效率。基于上述情况,笔者设计了如图9所示FME模板。 图9. 停车位模型制作模板 模型运行时的参数设置如图10所示,其中的停车位的线宽统一为10cm,路面TIN文件指向的是地面模型制作的成果JD.dwg,FJD.dwg和LK.dwg文件,人行道TIN文件指向的是地面模型制作的成果RX.dwg文件,输出文件为parking.dwg,路面停车位模型存储于road_parking图层,人行道停车位模型存储于sidewalk_parking图层。 图10. 停车位模型运行参数界面 对于停车位数据采集的是外边框,在进行模型制作时需要向内挤压一定的宽度的情况,笔者首先读取停车位外边框多边形A,使用Bufferer处理器向内生成缓冲区B,使用Clipper处理器剪切后,得到停车位模型在平面的投影多边形,然后使用SurfaceDraper处理器重新计算停车位模型每个节点的高程,提高模型与地形起伏的吻合度。 利用上述模板生成的停车位模型的CAD成果叠加地面模型在ArcScene中的展示效果如图11所示,可以看到停车位模型和地面起伏情况还是比较契合的,导入3ds Max中,可以减少对停车位节点高度的人工调整。 图11. 停车位模型制作效果图 四、结语 FME作为一套完整的空间ETL解决方案,以图形化的用户界面和拖拽式的使用方式,让数据处理想搭积木一样的方便、简单、有趣。自从接触到FME以后,感觉在数据处理方面把我从程序开发的泥潭中解救出来,数据处理变得不那么枯燥,而是一件特别有趣的事情。虽然我对FME的认识还比较浅显,但它就像一个得心应手的小工具,在平时的工作中帮我解决了很多问题。线上多种交流形式,比如博客、技术群、公众号等让也我可以获取更多资讯,并能不断在新的领域用FME进行新的尝试。 这篇博客也是如此,以前我主要时用FME进行二维数据的分析处理,这次试着用FME解决三维自动建模方面的问题,虽然没有形成完整的技术路线,但的确在工作中解决了实际问题,利用3ds Max进行道路全要素实景模型制作的生产效率得到显著提高,后续希望能和其他小伙伴多交流,进一步提高道路全要素实景模型建模的自动化程度。 本文转载来自CSDN作者:fmechina 版权归作者所有 原文链接:https://blog.csdn.net/fmechina/article/details/115456459?spm=1001.2014.3001.5501
|