APP下载

地理国情普查仿真三维地图制作技术研究

2018-04-27

地理空间信息 2018年4期
关键词:国情普查建模

张 磊

(1.福建省基础地理信息中心,福建 福州 350003)

目前市场上比较成熟的三维建模软件CityEngine采用了基于规则的三维快速建模方法,为大场景三维快速建模提供了一种有效的解决方案[1]。同时,由于成本、运行环境等因素限制,2.5维地图仍具有一定优势,既能有效克服三维地图网络应用问题,又能提供较强的三维仿真感。因此,本文通过引入CityEngine三维建模技术和2.5维地图制作技术,从地理国情普查成果数据特点的挖掘、三维可视化符号的设计、三维场景的快速建模、2.5维地图制作技术研究等几个方面,研究互联网地理国情普查成果仿真三维地图服务制作流程,解决地理国情普查成果在互联网三维地图服务应用时的网络发布和效率问题,为政府部门和社会大众提供较好的用户体验。

1 技术方法

三维地图一般基于数字高程模型数据制作,且三维场景输出时一般为非正射投影方式,因此输出的图片会因地形起伏造成地物空间位置发生明显变化。为便于与天地图的地图服务进行对接,本文采用平面仿真三维的构建方法,即建模时不考虑地形起伏因素,关键技术涉及数据显示方案制定、三维符号模型制作、三维快速建模和多比例尺平行投影算法共4个方面。

1.1 数据显示方案制定

根据三维地图数据的承载力及表现力,结合地表覆盖分类数据的地物分类代码属性、重要地理国情要素数据的类型及属性信息,制定不同比例尺下的数据显示方案。经试验,因重要地理国情要素数据和地表覆盖分类数据的比例尺与1∶1 000DLG数据相当,电子地图显示级别设定为15~17级。重要地理国情要素数据显示内容主要涉及道路、桥梁和隧道,符号化表达主要涉及的属性项有类型、路宽和长度;地表覆盖分类数据15级仅显示一级类,16级在15级基础上对房屋建筑(区)进行细化,显示至二级类,17级显示至二级类。该显示方案综合考虑了三维数据承载力及三维显示效果,可较好地展现地表覆盖分类和重要地理国情要素数据的特点,提高数据生产加工的效率。

1.2 三维符号模型制作

结合遥感影像解译样本数据,针对地表覆盖分类数据和重要地理国情要素数据的特点,对不同类别的地物制作数据量小且生动形象的图片素材库,并在CityEngine软件中通过CGA规则编程,将其转换成表现力强的三维可视化符号模型库。其中,树木类地物可采用点状三维树木符号按照一定密度均匀分布,涉及函数为scatter(surface,rint(geometry.area/20),uniform),并按一定高度值范围随机生成大小不同的三维符号进行填充,涉及函数为s(0,rand(3,10),0);部分地物类在三维视觉效果上差不多的情况下,可采用图片填充的方式进行表示,尽量减少计算机三维模型渲染的负荷,如耕地、草地、水域等;道路可参考陈秋晓等提出的城市道路参数化建模规则[2]进行表示;高架路可用具有一定厚度、悬浮于地面的道路面叠加均匀分布的桥墩表示。各种地物类的CGA规则可根据实际图面效果和表达需求进行编程和优化。

1.3 三维快速建模

段雅萍等设计了基于CityEngine 的城市三维建模解决方案,总结了一套有效的建模技术流程[3]。针对大范围、大数据量地理国情普查成果数据,因CityEngine软件功能限制及软硬件运行支撑环境限制,可将其按照一定范围进行分幅建模。常用的分幅方式有国家基本比例尺地形图分幅、规则渔网分幅等,数据分幅处理时建议采用高斯-克吕格平面直角坐标系以提高数据导入时的效率,并外扩一定范围以避免三维场景输出的图片无法拼接。

同时,在CityEngine软件中还可以通过修改CGA规则文件,如填充密度、高度值范围、分割大小等参数,使地理国情普查数据在快速三维建模的同时又能美观逼真地模拟实际场景。

1.4 多比例尺平行投影算法

为适合图片快速无缝拼接,刘向南等提出基于投影坐标计算的方法,实现任意俯仰角与水平角组合方式下的三维虚拟场景渲染出图数据无缝拼接[4],李峰设计了基于CityEngine的多比例尺平行投影算法,具有参数可调节、支持坐标信息文件自动配准等优势[1]。因多比例尺平行投影算法更具代表性且易于实现,本文直接引用该方法并增加一个视角输出。当摄影机的视角切换为正南向下45°俯视时,可设定侧视角为180°,需对算法计算公式进行如下调整:

相机位置camera_y计算公式:camera_y=miny+(j+0.5)*height+offset_y X 方向上的像素分辨率: resolution_x=-0.025 4*scale/72 Y方向上的像素分辨率:resolution_y=0.025 4*scale/(72*sinθ)

栅格地图左上角像素中心X坐标:leftupper_x=minx+(i+1)*width

栅格地图左上角像素中心Y坐标:leftupper_y=miny+j*height

相机镜头姿态旋转参数:views[0].setCamera Rotation(-θ,180,0)

上述公式中,i、j为场景范围内第(i,j)张相片对应的列、行编号,minx、miny为最小起始点X、Y坐标,height、width为相片对应的地面实际高度、宽度,offset_y为相机位置到相片中心在Y方向上的偏移量,camera_y为第(i,j)张相片对应相机位置的Y坐标,scale为输出图片的比例尺,θ为俯视角度。

三维场景输出脚本中数据输出路径、场景输出范围、视图窗口大小和输出比例尺共4类参数需根据数据情况进行实时调整。同时,为避免三维场景输出图片颗粒感较重的现象,可将比例尺参数放大至√2倍以提高输出图片的显示效果。

2 技术试验

按照上述技术方法,将技术试验过程划分为准备工作、数据预处理、三维工程建立、三维场景输出、影像拼接和服务发布共6部分内容,技术流程见图1。

图1 技术流程图

2.1 准备工作

准备工作主要包括硬件准备、软件准备、数据准备和符号库准备共4个方面。其中,硬件方面需准备性能强劲的计算机,建议内存32 GB以上;软件方面需安装CityEngine、ArcGIS等专业软件;数据方面需提取特定区域范围内的地表覆盖分类、重要地理国情要素、0.1°格网等数据;符号库方面需准备三维符号库模型规则库,便于快速构建三维场景。

2.2 数据预处理

对于重要地理国情要素数据,先从构筑物线图层中提取隧道和长度大于300 m的桥梁,然后将公路、城市道路和乡村道路通过擦除和融合处理的方法获取完整道路网要素,最后单独提取高架路以增强道路要素三维符号表达的层次感,并按宽度属性融合后以40 m分割图形生成桥墩点。对于无“宽度”属性项的乡村道路,可赋其宽度属性值为3 m;若数据中无法从“是否高架”属性项区分出高架路,可只提取“技术等级”属性中为“高速”的道路作为高架路。

对于地表覆盖分类数据,因其采集方式为所见即所得、最小图斑的地面实际面积为200 m2、存在一定的综合性等特点,以致地表覆盖分类数据与道路要素在三维表示时会产生矛盾。可先将道路网要素按照宽度属性值的一半进行缓冲区分析,生成有轨路面和无轨路面数据,然后对地表覆盖分类数据和道路面数据进行擦除和融合处理,并按照数据显示方案生成15~17级各级别的地表覆盖分类数据。

数据整理完后统一投影至高斯-克吕格平面直角坐标系,然后按照0.1°格网在平面直角坐标系下的最小外接矩形外扩一定范围(可设定为100 m)进行分幅和图形几何修复处理,以免数据无法正常导入三维工程或无法正常符号化显示。

2.3 三维工程建立

在City Engine中新建三维工程,新建15~17级各级别分幅三维场景文件并设置投影坐标系参数,再逐层导入对应分幅地理国情普查数据。导入线状要素时不需 勾 选“Run Genenrate Bridges Tool after Import”、“Run Simplify Graph Tool after Import”、“Run Graph Cleanup Tool after Import”选项,以免数据产生变形;导入面状要素时只勾选“Import and map attributes”选项,设置图形折角为15°,图形清理水平垂直融合距离为0.1 m,勾选“Resolve Conflicting Shapes”参数,以免数据产生较大变形。

在City Engine的Inspector属性页中,需设置道路 “street Width”挂接数据属性项“WIDTH”,铁路“street Width”可设为14,桥梁和隧道则根据对应道路宽度属性逐一设置“street Width”,“sidewalk Width Left”和“sidewalk Width Right” 可 设 为 0,“type” 可 设 为“Crogsing”。参数设置完成后逐一图层全选物件,加载并应用对应要素的CGA规则文件,实现三维场景的快速建模。若道路模型出现异常时,需用编辑工具对其进行编辑处理,使其能正常、完整地表示出来;若地表覆盖分类数据出现部分图斑无法建模时,可在Arc Map中先对无法建模的图斑进行图形分割处理后再重新导入工程建模。

2.4 三维场景输出

三维场景输出之前需先设置并确认工程的背景、格网、指北针、方向指针以及图形符号线框不显示,设置平行投影算法脚本输出图片尺寸与视窗输出范围大小保持一致,然后分别运行两个视角的三维场景输出脚本,批量获取场景图片及对应的坐标文件。从正北俯视三维场景时可设置太阳方位角为120°,从正南俯视时可设置太阳方位角为300°,以修正地物向阳面与阴影的方向。

2.5 影像拼接

先按照分幅编号、不同级别和不同视角分别拼接三维场景输出的图片数据,然后对其构建镶嵌数据集,拼接成不同级别、不同视角的三维场景数据。构建镶嵌数据集时应生成和编辑接边线以去除接边痕迹,同时还应检查镶嵌数据集的分幅分块图像是否存在异常。若图像存在异常,需找出对应的分幅编号,分析异常产生的原因并重新输出。常见异常问题主要有分块图像内部存在较大色彩差异、分块图像之间存在较大色彩差异、分块图像存在空间位置偏移和数据空白等,一般情况下重新输出一次即可解决问题。若因房屋建筑(区)随机生成的模型高低不同而导致接边困难时,可适当增加数据分幅的外扩范围,以保证有较大的重叠区域编辑接边线。

2.6 服务发布

在Arc Map中利用建好的镶嵌数据集,先按照天地图的地图瓦片生产技术方法[5]建立两个视角15~17级地图切片工程,分别发布服务获取两个视角15~17级的瓦片数据,最后将瓦片数据与地理国情普查数据进行叠加显示,逐级逐屏检查瓦片数据是否存在空洞或显示异常的情况。

3 实现效果

以仙游县为试验区,在ArcGIS模型构建工具中利用裁切、投影、擦除、缓冲区、合并、计算字段、连接字段、融合、修复几何等处理功能,将地理国情普查数据预处理系列过程进行可视化编程,实现数据的一键式批量处理;在VB环境下利用文本框、按钮等控件进行编程,实现三维场景文件和三维场景输出脚本文件的批量生成,将文件创建、参数设置等繁琐工作自动化实现(如图2),只需在生成的三维场景文件中导入对应分幅的数据进行建模和模型编辑后,即可运行对应的脚本文件进行三维场景批量输出,大幅提高生产效率和降低生产成本。图3为仙游县局部区域地理国情普查仿真三维地图服务叠加天地图矢量地图注记服务的15~17级显示效果图。

图2 基于VB开发的国普仿真三维辅助程序

图3 地理国情普查仿真三维地图15~17级显示效果图

4 结 语

本文以地理国情普查成果为数据源,充分利用三维快速建模技术和2.5维地图制作技术,研究出一套地理国情普查成果的仿真三维地图制作技术流程,实现了仙游县正北、正南俯视两个视角地理国情普查成果仿真三维地图瓦片数据的批量生产。该方法能有效解决大范围、大数据量地理国情普查成果在三维地图服务应用方面的问题,使其能在互联网上为政府部门和社会大众提供较好的用户体验,对地理国情普查成果在互联网上的推广应用起到了重要的作用。

[1] 李锋.基于CityEngine的2.5维地图生成方法与应用[J].城市勘测,2015(4):20-23

[2] 陈秋晓,张斌,吴宁,等.城市道路参数化建模规则初探[J].建筑与文化,2013(7):40-41

[3] 段雅萍,郝连秀,王瑞富,等.基于CityEngine的城市三维模型构建方法与问题分析[J].地理空间信息,2017,15(5):75-77

[4] 刘向南,马纯永,陈璐,等.基于三维场景出图的拼接制作2.5维地图算法[J].计算机应用,2015,35(增刊):217-220

[5] CH/Z 9011-2011.地理信息公共服务平台电子地图数据规范[S].

猜你喜欢

国情普查建模
立即全面普查 警惕二代粘虫发生
胡春华强调:确保脱贫攻坚普查取得圆满成功
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
家国情 诗词魂
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
推广生物乙醇汽油:迫切且合乎国情
关于农业文化遗产普查与保护的思考
地理国情监测知识支持库初步设计
特定国情教情中的中小学校自主权