地表模型与建筑模型匹配方法
地表模型与建筑模型匹配方法
一、问题的引出: 目前的三维城市平台地表模型构成方式为,由 DEM 构成 TIN,再附上 DOM 从而形成 地表模型; 建筑和地物模型大都由建模软件手工制作完成, 倾斜摄影和激光雷达在国内目前 也普遍在最后环节由建模软件手工优化处理。 建模软件制作完成建筑模型后如何赋予建筑地 表高程的问题就由此引出。 1、由 DOM 与 DEM 生成地表,
2、目前行业中,一般根据 CAD 或影像底图进行建模,经常没有高程信息,制作的模 型都在一个平面上。
3、那么如何把 3D 模型发布到 GIS 平台后才能与地表高度吻合呢?
二、解决方案 步骤一:模型落地
1、模型获取 DEM 同名点高程信息。 具体步骤如下: 1)、首先确定数据采用的投影坐标系。如 CGCS2000、BEIJING54、XIAN80。转换 DOM 和 DEM 数据到目标投影坐标系。 2)、参照同名点把 MAX 场景的物体偏移到实际地理坐标位置。
3)、输出模型的名称、X、Y、Z 坐标到文本。该步骤用都本人编的 MAXSCRIPT 小工具(脚 本文件联系 QQ 250707670)。工具操作界面如下和输出的文本样式如下:
2、模型获取 DEM 同名点高程信息。 1)、加入 Point 坐标文件到 ARCMAP,并叠加对应的 DEM 文件。
2)、提取 DEM 高程值,写入点 SHP 文件的属性表中(Spatial Analyst Tools>Extraction>Extract Valuesto
Ponits)
3、读取 Point 要素 SHP 文件中高程属性字段值赋予模型 1、把 SHP 数据的 DBF 文件的数值复制到文本文件中,编辑成下图所示格式:
2、打开模型场景运行脚本(QQ 250707670),读取文本,程序会自动根据文本中的 NAME 查找模型,并赋值模型文本中对应的坐标 (X,Y,Z)值。程序操作界面和代码如下
3、运行程序后,所有模型已经移位到目标位置。
4、在 GIS 平台中三维模型和地形已大致匹配。建筑底部中心已跟 DEM 匹配,但是由于建 筑底面是个平面,因此建筑局部还会插入地形或者飘起的现象。
匹配效果如下图:
由于 DEM 格网精度不够,并且制作的模型与之本身不是一套数据。所以步骤一完成后,仍 然会有细节问题。那么如何解决呢?能不能根据建筑轮廓线重构高程数据呢?
步骤二:重构 DEM
1、获取模型建筑轮廓。
1)、如果有 CAD 可以由 CAD 提取。这里我们由建筑三维场景通过脚本工具提取。运行脚 本工具,界面如下。按脚本 1、2、3 顺序操作,可提取场景建筑底部轮廓。
2)导出场景为 CAD 文件,打开 ARCMAP 载入 CAD 中 PLOYGON 要素。
2、根据建筑轮廓线构建 TIN。
1)通过 3DAnalyst 工具,把要素构成 TIN。
构 TIN 的要素最好坐标在 0 点附近,否则计算量非常大。
3、转换 TIN 成 RASTER
1)、通过 3DAnalyst 工具,把 TIN 转成
RASTER
2)、对 DEM 栅格进行裁切取出边沿部分(边沿部分由于没有建筑, 要素点不足,所以构 TIN 后褶皱比较明显。
3)、把 DEM 栅格数据利用 ARCTOOLBOX 工具偏移到正确的坐标位置。(一开始为了减少 构 TIN 的计算量,把建筑轮廓线移位到原点附近位置,现在转成栅格后要移回来)
把 DEM 重新和 DOM 生成地形匹配模型看看效果。如下图:
遗留问题 重构的高程数据跟原始 DEM 接边的衔接问题。 建筑轮廓要素点不足, 重构的 DEM 数据褶皱 较明显,DEM 内插?