陈再春
(常州市测绘院,江苏 常州 213003)
全面启用2000国家大地坐标系是开展城市空间布局规划、推动“多规合一”“多测合一”等重点工作顺利实施的基本保障[1]。虽然地形图按区域管理已广泛使用,但许多城市测量单位的地形图以DWG格式分幅管理任在工作中发挥着重要作用。高质量地完成非2000国家大地坐标系到2000国家大地坐标的转换,是全面启用2000国家大地坐标系的重要先行基础性工作,图幅接边处数据的融合是进行坐标转换前的一个必须的数据处理工艺,传统的数据融合方法,主要通过手工或半自动的模式把接边处的数据拼接在一起,删除多余的房屋楼层注记等,对在图幅边的面状要素还要先在内图廓线上找出交点先打断,删除与内图廓重合的线后再进行拼接,处理的效率低[2]。本文利用FME软件对SHP格式的大比例尺分幅地形图进行坐标转换前的图幅接边处数据的融合方法,不需人工交互干预,即可完成批量数据的处理。将DWG格式数据转换成SHP后进行融合处理,减少了对DWG扩展属性进行读写的耗费并充分利用SHP图层的优点。本文使用的方法在常州市 2 900多平方公里的 1∶500、1∶1 000地形图坐标转换数据处理中得到了验证,证明该方法是一个高效的方法。
FME(Feature Manipulate Engineering,简称FME)是加拿大Safe Software公司开发的空间数据转换处理系统,它是完整的空间ETL解决方案。该方案基于OpenGIS组织提出的新的数据转换理念“语义转换”,通过提供在转换过程中重构数据的功能,实现了超过250种不同空间数据格式(模型)之间的转换,为快速、高质量、多需求的数据转换应用提供了高效、可靠的手段[3]。FME能将数据转换与丰富的GIS数据处理功能结合在一起,将技术人员关注重点放在具体的数据流、业务流的搭建上,只要搭建好流程、定义好规则,即可开展相应的数据处理工作,而且它的执行效率非常高[4]。
第一步,将与分幅线相交的地物要素从原分幅数据中分离出来。分离时包括分幅线处的房屋面内的楼层文字注记,池塘面中的性质注记,如“塘”,叠加原分幅线后如图1所示,图中的这些要素就是需要进行拼接处理的要素。同一房屋面一般跨2个图幅,最多跨4个图幅,同一道路中心线、道路边线、河流面、植被面等跨的图幅比较多,有的多达几十个图幅。
第二步,按照本地形图的数据标准,对图1的数据做一些必要的检查,如封闭性检查,属性检查,对检查出的问题一一修改,做这工作的目的是为了保证高质量完成下一图的自动拼接工作。
第三步,将图1所示的数据利用格式转换工具,带属性转换成SHP文件。图2是转换后的房屋楼层注记点、REST图层(居民地房屋面)及属性信息。
图2 房屋面及属性
利用FME2018拼接处理的核心流程如图3所示。读入分幅线.shp和REST.shp,用到的FME转换器有SpatialFilter(空间过滤转换器)、GeometryCoercer(几何变换器)、LineOnLineOverlayer(线与线覆盖转换器)、Tester(过滤器)、Counter(分类计数器)、LineOnAreaOverlayer(线与面覆盖转换器)、Dissolver(面合并融合转换器),最后输出成融合后的RESN图层。
图3 FME面状要素融合流程
SpatialFilter保持默认设置,目的是根据空间关系过滤出与分幅线相交的要素;GeometryCoercer将面要素转换成FME的线;LineOnLineOverlayer的Overlap(压盖计数器)用以记录分幅线和房屋面转换成线后的压盖情况,当Overlap为1时,表示没有叠加压盖的线,Overlap为2时,表示有一条线与之有压盖,当Overlap=n(n≥3)时,表示有n-1条线与之压盖;Tester将LineOnLineOverlayer输出的Overlap值设置成≥3;Counter保持默认;LineOnAreaOverlayer保持默认;Dissolver的分组参数可以添加多个属性,如图2的YSDM(要素代码)、FWJG(房屋结构)、FWCS(房屋层数),该项添加的属性项越多,合并的房屋面的条件就越苛刻,由于某个属性不接边的房屋面可能不会被合并。当接边处房屋要素复杂时,图3的流程仅运行1次不能达到期望的效果,可以将输出的融合后的房屋面数据作为中间成果,再重复执行1次~2次,从常州市 2 900多平方公里 1∶500、1∶1 000的地形图实际处理结果来分析,循环运行3次后,即使是跨几十个图幅的河流面均达到了预期的目标。
植被面、水系面、道路面等的融合处理均可参照对房屋面的处理方法进行,道路中心线等线状地物的拼接比面的融合要简单,用到的FME核心转换器为LineOnLineOverlayer(线与线覆盖转换器)、LineCombiner(线合并转换器),当使用Tester时将LineOnLineOverlayer输出的Overlap值设置成不为空。
以房屋面为例,当n(n≥2)个房屋面合并成一个后,原则上会多出来n-1个房屋楼层、房屋幢号的文字注记,图4是用FME搭建的处理多余文字注记的流程。读入合并后的REST.shp和TEXTP.shp(需要处理的原始楼层注记点),用到的FME转换器有AttributeCreator(属性创建转换器)、Counter(分类计数器)、PointOnAreaOverlayer(点叠加面转换器)、CenterPointReplacer(中点替代转换器)、FeatureMerger(功能合并转换器)、Offsetter(坐标偏移转换器)、DuplicateFilter(重复过滤器),然后输出剔除了多余文字注记的TEXTP.shp。
图4 删除多余文字注记的流程
图4流程的思想为:对输入的每个房屋面要素用Counter进行分类计数并设置输出属性为“顺序号”;设置PointOnAreaOverlayer的点输出列表为“Plist”,选择的属性为“顺序号”,该转换器的面输出端接CenterPointReplacer转换器,CenterPointReplacer选择内部点,并用AttributeCreator创建目标X、目标Y属性,用以接收创建的内部点的X和Y坐标;对PointOnAreaOverlayer的点输出端用AttributeCreator创建属性“继承的顺序号”“原始X”“原始Y”,继承的顺序号的属性为该文字注记所在的房屋面的顺序号属性值,原始X为该文字注记的X坐标;FeatureMerger设置的条件为“继承的顺序号”等于“顺序号”;用AttributeCreator对FeatureMerger的匹配输出端创建“DX”“DY”属性,DX的属性为目标X-原始X的值,用Offsetter将同一房屋面的相同文字注记移动到同一空间位置,X偏移量设置成DX,Y偏移量设置成DY;最后用DuplicateFilter删除重复的注记文字点。
需要融合、拼接的地物要素和重复文字注记处理完成后的效果如图5。这个时候可以将融合后的多个SHP图层用转换工具转换成一个DWG,在CAD中将这部分数据粘贴到待做坐标转换的分块DWG中去,进行后续的坐标转换工作。
图5 处理完成后的居民地房屋及注记点
基于FME的分幅地形图数据融合的方法,先将某个区域的DWG格式分幅地形图分成若干片,每片的分幅地形图拼接成一个DWG文件,将与分幅线相交的线、面、需要处理的文字注记剪裁出来转换成分层SHP文件,然后对SHP面文件进行批量融合,对SHP线文件进行批量拼接,对融合后的多余文字注记进行批量删除,然后将处理好的SHP文件带属性转换成DWG,最后粘贴到分块DWG中,该方法已经在常州市中心城区、经开区、金坛区、溧阳市2019年的2000国家大地坐标系地形图数据转换工程中作为主要方法使用。工程统计表面,该方法比传统的作业方法时间耗费减少3/4,数据处理质量有明显提升,减小了劳动强度,在类似的需要进行数据融合的工程中可以推广使用。由于FME的转换器多达几百个,再加上版本的不断更新和个人所熟悉的转换器有差异,本文方法中使用的转换器不一定是最优的组合。