一种建立三维地形与建筑模型的方法及系统

文档序号:27034143发布日期:2021-10-24 06:10阅读:310来源:国知局
一种建立三维地形与建筑模型的方法及系统

1.本发明涉及建模技术领域,特别是涉及一种建立三维地形与建筑模型的方法及系统。


背景技术:

2.随着社会经济的高速发展,城市建筑迅猛增加,如今很多城市都有许多高大建筑,又因为城市面积的原因而紧密分布,这些建筑区域的变化将会在城市规划、地形测绘等工作中提高建模的难度。并且,大部分城市的地形是不平坦的,再加上所研究区域的面积基本都是很大区域,所以想要对众多的建筑物、复杂的地形情况和纵横交错的布局,进行精确而又快速的建模是个不小的挑战。
3.此外,全世界的城市人口逐渐增多,大部分的城市环境逐渐恶化,在对城市环境的研究中,需要对城市的大气污染物、风环境等进行数值模拟研究,以了解城市中的环境情况,但是复杂的地形情况和众多建筑物使得建模变得艰难,也对快速建模提出了更高的要求。
4.为此,亟需一种建立三维地形与建筑模型的方法及系统,实现对大区域复杂的三维地形及建筑模型进行快速建模。


技术实现要素:

5.本发明的目的是提供一种建立三维地形与建筑模型的方法及系统,通过分别建立三维地形模型和建筑模型,再进行合并,以实现对大区域复杂地形的三维地形及建筑模型的快速建模。
6.为实现上述目的,本发明提供了如下方案:
7.一种建立三维地形与建筑模型的方法,包括:
8.获取研究区域的高程数据和建筑数据;所述高程数据包括高程点的三维坐标;所述建筑数据包括建筑轮廓和建筑标高;
9.对所述高程数据进行预处理得到第一高程数据,对所述建筑数据进行预处理得到第一建筑数据;
10.根据所述第一高程数据建立三维地形模型;
11.根据所述第一建筑数据建立建筑模型;
12.利用rhino软件合并所述三维地形模型和所述建筑模型,得到三维地形建筑模型。
13.可选地,所述对所述高程数据进行预处理得到第一高程数据,具体包括:
14.对所述高程数据依次进行坐标转换、数据筛选以及无效数据剔除操作,得到第一高程数据。
15.可选地,所述对所述建筑数据进行预处理得到第一建筑数据,具体包括:
16.判断所述研究区域的建筑轮廓是否为封闭轮廓,得到第一判断结果;
17.当所述第一判断结果为所述研究区域的建筑轮廓是封闭轮廓时,对第一标定建筑
数据进行标记;所述第一标定建筑数据为第一标定建筑轮廓所对应的建筑数据;所述第一标定建筑轮廓为封闭的建筑轮廓;
18.当所述第一判断结果为所述研究区域的建筑轮廓不是封闭轮廓时,判断所述建筑轮廓对应的建筑是否为所述研究区域内待研究的建筑,得到第二判断结果;
19.当所述第二判断结果为所述建筑轮廓对应的建筑为所述研究区域内待研究的建筑时,对第二标定建筑数据进行标记;所述第二标定建筑数据为第二标定建筑轮廓所对应的建筑数据,所述第二标定建筑轮廓的轮廓未封闭且所述第二标定建筑轮廓对应的建筑为研究区域内待研究的建筑;
20.提取标记数据,得到第一建筑数据。
21.可选地,所述根据所述第一建筑数据建立建筑模型,具体包括:
22.将所述建筑轮廓拉伸至第一高度以得到柱体建筑轮廓;所述第一高度的值与所述建筑轮廓对应的所述建筑标高的值相同;
23.封闭所述柱体建筑轮廓的上表面和下表面,以得到建筑模型。
24.可选地,所述根据所述第一高程数据建立三维地形模型,具体包括:
25.根据所述第一高程数据建立高程点云;
26.对所述高程点云进行三角剖分生成面网格;
27.根据所述面网格获得三维地形模型。
28.可选地,所述利用rhino软件合并所述三维地形模型和所述建筑模型,得到三维地形建筑模型,具体包括:
29.在rhino软件中,将所述建筑模型投影至所述三维地形模型;
30.测量所述建筑模型的建筑点与所述三维地形模型的投影点的直线距离;所述投影点与所述建筑点相对应;
31.将所述建筑模型向所述三维地形模型移动所述直线距离,得到三维地形建筑模型。
32.可选地,所述建立三维地形与建筑模型的方法,还包括:
33.将所述三维地形建筑模型保存为stl文件,并对所述stl文件进行网格划分。
34.为实现上述目的,本发明还提供了如下方案:
35.一种建立三维地形与建筑模型的系统,包括:
36.数据获取模块,用于获取研究区域的高程数据和建筑数据;所述高程数据包括高程点的三维坐标;所述建筑数据包括建筑轮廓和建筑标高;
37.预处理模块,用于对所述高程数据进行预处理得到第一高程数据,对所述建筑数据进行预处理得到第一建筑数据;
38.三维地形模型建立模块,用于根据所述第一高程数据建立三维地形模型;
39.建筑模型建立模块,用于根据所述第一建筑数据建立建筑模型;
40.模型合并模块,用于利用rhino软件合并所述三维地形模型和所述建筑模型,得到三维地形建筑模型。
41.可选地,所述建立三维地形与建筑模型的系统,还包括:
42.保存划分模块,用于将所述三维地形建筑模型保存为stl文件,并对所述stl文件进行网格划分。
43.根据本发明提供的具体实施例,本发明公开了以下技术效果:
44.分别获取研究区域的高程数据和建筑数据,并分别进行预处理;根据预处理后的第一高程数据建立三维地形模型,根据预处理后的第一建筑数据建立建筑模型,然后在rhino软件中,对三维地形模型和建筑模型进行合并,以得到三维地形建筑模型,从而实现对大区域复杂地形的三维地形及建筑模型的快速建模,减小了工作量并节约了时间。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1为本发明建立三维地形与建筑模型的方法的流程示意图;
47.图2为本发明建立三维地形与建筑模型的系统的结构示意图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.本发明的目的是提供一种建立三维地形与建筑模型的方法及系统,具有方便、快捷与精确的特点,并减少工作量,提高建模的效率。
50.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
51.实施例一
52.如图1所示,本实施例一种建立三维地形与建筑模型的方法,包括:
53.步骤100,获取研究区域的高程数据和建筑数据;所述高程数据包括高程点的三维坐标;所述建筑数据包括建筑轮廓和建筑标高。所述高程数据从第三方(官方数据库)提供或者自定义数据中进行获取,一般获取的高程数据为大地坐标。所述建筑轮廓和建筑标高也从第三方(官方数据库)提供或者自定义数据中进行获取。
54.在本实施例中,从先进星载热发射和反射辐射仪全球数字高程模型aster gdem(advanced spaceborne thermal emission and reflection radiometer global digital elevationmodel)获取中国湖南省衡阳市某高校区域的高程数据,并获取该高校区域内的建筑轮廓及建筑标高。所获取的高程数据为大地坐标,因为大地坐标(geodetic coordinate)是大地测量中以参考椭球面为基准面的坐标,地面点p的位置用大地经度l、大地纬度b和大地高h表示。大地坐标多应用于大地测量学,测绘学等,不适用于地形建模,因此需要对大地坐标进行转化。
55.步骤200,对所述高程数据进行预处理得到第一高程数据,对所述建筑数据进行预处理得到第一建筑数据。
56.具体地,所述对所述高程数据进行预处理得到第一高程数据,具体包括:
57.对所述高程数据依次进行坐标转换、数据筛选以及无效数据剔除操作,得到第一高程数据。
58.(1)高程数据的坐标转换:将大地坐标转换为笛卡尔坐标。
59.在本实施例中,用excel软件加入公式进行笛卡尔坐标的转换,转换公式具体如下:
60.y=b
·
111000
[0061][0062]
其中,l表示大地经度,b表示大地纬度,x表示笛卡尔坐标的横坐标,y表示笛卡尔坐标的纵坐标。
[0063]
表1为大地坐标与转换后的笛卡尔坐标表
[0064]
lbhxyz112.578526.8966577.4267811144425.052985527.81777.42678112.578626.8966577.8963111144435.152985527.81777.89631112.578726.8966578.3658311144445.252985527.81778.36583112.578826.8966578.8353611144455.442985527.81778.83536112.578926.8966579.3048811144465.542985527.81779.30488112.57926.8966579.2495111144475.642985527.81779.24951112.579126.8966578.9058911144485.832985527.81778.90589112.579226.8966578.5622811144495.932985527.81778.56228112.579326.8966578.2186611144506.032985527.81778.21866
[0065]
其中,h表示大地高度,z表示笛卡尔坐标的纵坐标。
[0066]
待坐标转换完成后,再从excel中的后两列分别输入代码:
[0067]
1)="point"&a2&","&b2
[0068]
代码1)表示在autocad中创建点,其中a2表示横坐标,b2表示纵坐标。
[0069]
2)="

textj ml"&a2&","&b2&""&0.2&"0"&c2
[0070]
代码2)表示在autocad中创建文本,其中0.2表示字体高度,0表示旋转角度,c2表示竖坐标。
[0071]
表2表示代码1)中点的数据表
[0072]
xyz="point"&a2&","&b211144425.12985527.8277.426781point11144425.0512609,2985527.81711144435.12985527.8278.426781point11144435.1484923,2985527.81711144445.22985527.8279.426781point11144445.2457236,2985527.81711144455.42985527.8280.426781point11144455.4419475,2985527.81711144465.52985527.8281.426781point11144465.5391789,2985527.81711144475.62985527.8282.426781point11144475.6364103,2985527.81711144485.82985527.8283.426781point11144485.8326341,2985527.81711144495.92985527.8284.426781point11144495.9298655,2985527.817
111445062985527.8285.426781point11144506.0270969,2985527.817
[0073]
表3表示代码2)中点的数据表
[0074][0075][0076]
(2)对高程数据的数据筛选以及无效数据剔除
[0077]
在高程数据中,筛选和删除不合理的、或偏差较大的数据,以保证数据的准确和真实性。
[0078]
具体地,所述对所述建筑数据进行预处理得到第一建筑数据,具体包括:
[0079]
步骤21,判断所述研究区域的建筑轮廓是否为封闭轮廓,得到第一判断结果。
[0080]
步骤22,当所述第一判断结果为所述研究区域的建筑轮廓是封闭轮廓时,对第一标定建筑数据进行标记;所述第一标定建筑数据为第一标定建筑轮廓所对应的建筑数据;所述第一标定建筑轮廓为封闭的建筑轮廓。
[0081]
步骤23,当所述第一判断结果为所述研究区域的建筑轮廓不是封闭轮廓时,判断所述建筑轮廓对应的建筑是否为所述研究区域内待研究的建筑,得到第二判断结果。
[0082]
步骤24,当所述第二判断结果为所述建筑轮廓对应的建筑为所述研究区域内待研究的建筑时,对第二标定建筑数据进行标记;所述第二标定建筑数据为第二标定建筑轮廓所对应的建筑数据,所述第二标定建筑轮廓的轮廓未封闭且所述第二标定建筑轮廓对应的建筑为研究区域内待研究的建筑。
[0083]
步骤25,提取标记数据,得到第一建筑数据。
[0084]
在本实施例中,在rhino中输入selclosedcrv命令,以选取所有封闭的曲线,如果研究区域内待研究的建筑的建筑轮廓没有被选中,则需要对未封闭的建筑轮廓曲线进行检查和封闭。建筑轮廓必须是封闭的曲线,并删除其他无关的线段,保证建筑标高数据是在封闭曲线之内的。
[0085]
此外,在本实施例中,每个封闭的建筑轮廓只包含一个建筑标高数据,且建筑标高数据设置在建筑轮廓内部。
[0086]
最后,确定高程数据和建筑轮廓后,将上述二者保存为dwg文件,用rhino软件打开。
[0087]
步骤300,根据所述第一高程数据建立三维地形模型。
[0088]
步骤300具体包括:根据所述第一高程数据建立高程点云;对所述高程点云进行三角剖分生成面网格;根据所述面网格获得三维地形模型。
[0089]
在本实施例中,首先在网站www.food4rhino.com中找到horster插件并下载,加载到grasshopper中并编写电池组,电池组包括三维地形的建立和建筑模型的建立共两个部分,在本步骤中电池组进行三维地形模型的建立。horster插件的功能是提取文件里的文本内容,在本实例中的作用是读取步骤200中的excel文件中文本数据的位置和内容,文本数据包括地形的笛卡尔坐标的纵坐标数据。
[0090]
根据读取的高程数据的文本位置和文本内容建立高程点,然后根据delaunay三角剖分生成面网格,最后用帘曲面工具对面网格使用生成三维地形曲面,删除面网格,完成三维地形的建立。
[0091]
步骤400,根据所述第一建筑数据建立建筑模型。
[0092]
步骤400具体包括:
[0093]
步骤41,将所述建筑轮廓拉伸至第一高度以得到柱体建筑轮廓;所述第一高度的值与所述建筑轮廓对应的所述建筑标高的值相同。
[0094]
步骤42,封闭所述柱体建筑轮廓的上表面和下表面,以得到建筑模型。
[0095]
在本发明具体实施例中,在网站www.food4rhino.com中找到horster插件并下载,并将horster插件加载到grasshopper中并编写电池组,电池组包括三维地形的建立和建筑模型的建立共两个部分,在本步骤中电池组进行建筑模型的建立。horster插件读取文件中文本数据的位置和内容,文本数据包括建筑标高数据。
[0096]
首先horster插件读取建筑标高数据的文本位置和文本内容,读取建筑轮廓数据;按照所述建筑轮廓对应的建筑标高的大小,将各个建筑轮廓分别拉伸至第一高度(建筑标高),得到多个柱形建筑轮廓;再把拉伸后的柱形建筑轮廓的上表面和下表面通过grasshopper进行封闭,得到了建筑模型。
[0097]
步骤500,利用rhino软件合并所述三维地形模型和所述建筑模型,得到三维地形建筑模型。
[0098]
步骤500具体包括:
[0099]
步骤51,在rhino软件中,将所述建筑模型投影至所述三维地形模型。
[0100]
步骤52,测量所述建筑模型的建筑点与所述三维地形模型的投影点的直线距离;所述投影点与所述建筑点相对应。
[0101]
步骤53,将所述建筑模型向所述三维地形模型移动所述直线距离,得到三维地形建筑模型。
[0102]
本实施例中,由于三维地形模型和建筑模型均是在rhino软件建立的,具体地为:在rhino打开的文件经过电池组的运行处理后,得到了三维地形的网格模型和建筑模型的实体模型,因此,三维地形模型和建筑模型属于相同的坐标系。找出建筑模型的底面的某建筑点并正投影到三维地形模型的曲面上得到投影点,测量建筑点和投影点的直线距离,将建筑模型向地形方向移动上述直线距离,完成三维地形和建筑模型的合并。一般来说,建筑模型的底面的某建筑点选取建筑模型的底面的中心点。
[0103]
本实施例,在步骤500之后,还包括:将所述三维地形建筑模型保存为stl文件,并对所述stl文件进行网格划分。具体地,将三维地形与建筑模型保存为stl文件,用开源的计
算流体动力学软件openfoam中的snappyhexmesh对stl文件进行网格划分。
[0104]
实施例二
[0105]
如图2所示,本实施例提供一种建立三维地形与建筑模型的系统,包括:
[0106]
数据获取模块101,用于获取研究区域的高程数据和建筑数据;所述高程数据包括高程点的三维坐标;所述建筑数据包括建筑轮廓和建筑标高。
[0107]
预处理模块201,用于对所述高程数据进行预处理得到第一高程数据,对所述建筑数据进行预处理得到第一建筑数据。
[0108]
所述预处理模块201包括高程数据预处理模块和建筑数据预处理模块。
[0109]
其中,建筑数据预处理模块包括:
[0110]
第一判断子模块,用于判断所述研究区域的建筑轮廓是否为封闭轮廓,得到第一判断结果。
[0111]
第一标记子模块,用于当所述第一判断结果为所述研究区域的建筑轮廓是封闭轮廓时,对第一标定建筑数据进行标记;所述第一标定建筑数据为第一标定建筑轮廓所对应的建筑数据;所述第一标定建筑轮廓为封闭的建筑轮廓。
[0112]
第二判断子模块,用于当所述第一判断结果为所述研究区域的建筑轮廓不是封闭轮廓时,判断所述建筑轮廓对应的建筑是否为所述研究区域内待研究的建筑,得到第二判断结果。
[0113]
第二标记子模块,用于当所述第二判断结果为所述建筑轮廓对应的建筑为所述研究区域内待研究的建筑时,对第二标定建筑数据进行标记;所述第二标定建筑数据为第二标定建筑轮廓所对应的建筑数据,所述第二标定建筑轮廓的轮廓未封闭且所述第二标定建筑轮廓对应的建筑为研究区域内待研究的建筑。
[0114]
建筑数据获取子模块,用于提取标记数据,得到第一建筑数据。
[0115]
三维地形模型建立模块301,用于根据所述第一高程数据建立三维地形模型。
[0116]
建筑模型建立模块401,用于根据所述第一建筑数据建立建筑模型。
[0117]
所述建筑模型建立模块401,包括:
[0118]
拉伸子模块,用于将所述建筑轮廓拉伸至第一高度以得到柱体建筑轮廓;所述第一高度的值与所述建筑轮廓对应的所述建筑标高的值相同;
[0119]
封闭合并子模块,用于封闭所述柱体建筑轮廓的上表面和下表面,并将处于同一位置的所述柱体建筑轮廓进行合并处理以得到建筑模型。
[0120]
模型合并模块501,用于利用rhino软件合并所述三维地形模型和所述建筑模型,得到三维地形建筑模型。
[0121]
本实施例建立三维地形与建筑模型的系统,还包括保存划分模块,保存划分模块用于将所述三维地形建筑模型保存为stl文件,并对所述stl文件进行网格划分。
[0122]
本发明通过rhino软件和grasshopper平台,建立三维地形模型和建筑模型,并在rhino软件中对三维地形模型和建筑模型进行合并,得到三维地形建筑模型。其中,将获得三维地形数据存储于文件中,将获得的建筑数据存储于文件中,根据加载到grasshopper中的插件horster快速读取文件中的文本数据的位置和内容,以实现对三维地形数据和建筑数据的快速提取;继而,在grasshopper平台编写电池组,电池组根据三维地形数据建立三维地形模型,根据建筑数据建立建筑模型,由于二者处于同一软件,以及同一坐标系,因此
能够通过投影或者移动实现快速合并,以简化建模的流程,减少工作量并节约时间。
[0123]
相对于现有技术,本发明还具有以下优点:
[0124]
(1)本发明对大量的高程数据点进行数据筛选,剔除无效和异常数据,保留有效数据并进行三维地形的建模。
[0125]
(2)本发明利用大量的建筑轮廓和建筑标高进行建筑模型构建,筛选出不符合要求的建筑,保留所需的建筑模型。
[0126]
(3)本发明通过对复杂地形和建筑模型的沟通建模,可以提高数值模拟、测绘规划等工作的效率,简化建模流程,减少工作量并节约时间。
[0127]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0128]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1