[转]基于WorldWind平台的建筑信息模型在GIS中的应用
1 引言
随着BIM(Building Information Modeling)的不断发展,建筑信息建模的理念贯穿着建筑、结构、施工、运行维护以及拆迁再规划的整个建筑的生命周期,这种理念不仅使得各个阶段的信息得以共享,同时也绑定了各个专业的协同工作,使得各个专业不再是一个相对独立的个体。但是BIM所阐述的理念覆盖的范围仅仅是独立的建筑个体,对于在BIM的整个流程中对于同周围环境的相互影响有着很大的局限性。
地理信息系统(Geographic Information System,GIS),在维基百科中的解释为,它是一门综合性学科,它结合了地理学与地图学,已经广泛的应用在不同的领域,是用于输入、存储、查询、分析和显示地理数据的计算机系统。但是自从BIM的提出,地理信息系统把数字化的建筑信息融入进来已经是不可避免。在BIM整个流程中的规划、施工、运行及维护和拆迁再规划的过程都需要考虑周围的环境,这就需要数字城市的辅助;在地理信息系统发展过程中,仅建筑外轮廓已经不再满足我们越来越多的需求,为建筑增加血肉才能让数字城市、数字地球有了灵魂。
地理信息只是一堆数字纪录,需要有合适的软件去把它表示出来,与此同时,地理信息数据库的建立,亦有赖合适软件的帮助来把地理数据信息化。目前阅览GIS资料的工具有 GoogleEarth或微软的VirtualEarth等系统。开源的工具有GRASS、gvSIG、WorldWind等。本文中我们以开源的WorldWind工具来研究GIS与BIM的结合应用。
2 WorldWind二次开发平台
2.1 WorldWind简介
WorldWind,中文译为世界风,是NASA(美国宇航局)发布的一个开放源代码的地理科普软件,它是一个可视化地球仪,将NASA、USGS以及其他WMS服务商提供的图形通过一个三维的地球模型展现,如“Figure1 WorldWind主界面”所示。
与GoogleEarth相比,WorldWind是一个开源的系统,开发者可以根据需求进行更大程度的二次开发,这也是WorldWind优于GoogleEarth的主要方面,同时作为和美国FBI齐名的NASA旗下产品,拥有正统的美国宇航局的血统,它的地位也是可见一斑。
NASA在2004发布了首个WorldWind的免费开源的版本,目前WorldWind有两个版本:C#版本和Java版本。早期的WorldWind是基于。NET框架的,它仅在微软平台中运行,近期NASA发布了Java版本,支持跨多个平台。不同于。NET版本的是,Java版本是一个完全面向开发人员的版本,在它的SDK开发包中增加了许多开发范例,可供开发者参考。最新的Java版本(1.5)发布于2013年1月。
Figure1WorldWind主界面
|
2.2 WorldWind二次开发
◆插件机制
插件机制支持多种语言的插件形式,并有较高的运行效率。添加插件有两种方式来进行:
Ⅰ外部插件
在WorldWind安装文件下的Plugins文件夹中直接添加插件源文件或者编译好的程序集,此种方式为WorldWind二次开发的常规方式。
Ⅱ内部插件
由于WorldWind为开源的项目,因此在WorldWind项目中添加插件文件代码,在项目生成时直接编译到程序集中。
◆运行机制
主程序调用PluginCompiler来搜索\Plugins目录及其子目录,将插件文件(包含。cs, .vb, .js, .dll格式)读入内存,如果需要编译则进行编译,然后查找已编译的程序集。在运行过程中可以用插件管理器来管理插件。
◆插件代码的书写格式
Ⅰ插件信息头
在源文件开头以上书写插件信息,这些信息可以被PluginInfo类读取。信息头是可选的,同时信息头的格式可以自定义。
Ⅱ源文件
包含插件加在类(PluginLoader)和应用类(功能实现类)。
3 数字化建筑信息模型
3.1 IFC
作为BIM的数字化表现形式以及行业标准,IFC(Industry FoundationClasses)用数字化、面向对象的方式描述了在整个规划、建筑设计、结构设计、施工、运维以及拆迁流程中的数据存储以及数据交换的方式。
IFC中组成建筑模型的主要实体对象有IfcSite, IfcBuilding, IfcBuildingStorey, IfcColumn, IfcBeam,IfcSlab, IfcWall,其相互关系如“Figure2 IFC模型中主要实体关系”所示。
Figure2IFC模型中主要实体关系
|
3.2 数字化建筑信息模型与数字城市
数字地球是美国副总统戈尔于1998年1月31日在加利福尼亚科学中心所做的“数字地球—认识21世纪我们这颗星球”的演讲中首次提出来的,其可以用一个公式进行简单的加以概括:数字地球=全球网络+数字化+虚拟现实。
城市作为数字地球的基本单元,城市数字化的普及是通往数字地球的必由之路。而建筑作为数字城市中的重要组成部分,数字化建筑成为数字城市的核心之一。
在IFC描述的建筑信息模型中,已经为数字化建筑融入数字城市做好了接口,在IFC模型的IfcSite对象中有描述当前Site所在的地球坐标系下的经纬度,该对象中有这样三个属性来描述坐标信息:
RefLatitude – 地理坐标中的纬度
RelLongitude – 地理坐标中的经度
RefElevation – 相对于海平面的高度
4 建筑信息模型在WorldWind二次开发平台上的应用
4.1 数字建筑与WorldWind平台的结合
Ⅰ 核心机制
WorldWind三维浏览引擎主要是通过加载高程数据和纹理贴图的方式来实现地形的起伏变化,它虽然可以通过某种方式加载建筑模型,但是也仅仅是加载了其外轮廓,要想在建筑内部漫游,需要应用到另外一个平台– 三维建筑漫游系统,这就需要两个平台间的无缝衔接。
平台的无缝衔接就是把三维建筑漫游系统作为WorldWind的一个独立的启动项或者插件,在建筑放大到某一比例时自动进入到三维建筑漫游系统中,而不会让用户感觉到平台的切换,这样就实现了建筑在宏观和微观下的交换显示。
Ⅱ平台数据交流
两平台间的数据交流基于地理空间位置的共享,也就是在三维建筑漫游系统中的任何一个位置都可以在WorldWind平台找到与某一地理空间位置对应的位置。基于此位置在三维建筑漫游系统中可以获取WorldWind平台中当前位置的日照、水平距离、海拔、气候、地震信息等数据。
4.2 在WorldWind平台中的应用
以WorldWind平台为基础的二次开发,不仅可以应用到建筑规划中,还可以体现它在运营维护阶段的价值,同时也可以应用到结构设计、施工以及拆迁阶段。
|
4.2.1 光照分析(光污染)
某一地理空间位置的光照分析除了太阳光照射、物体遮挡、大气折射等因素之外,还有一个因素,那就是物体的反射(建筑物的反射)。
假设某一学校周围要建几栋玻璃幕墙的高楼,要量化这几栋楼的反射光对教学楼内部和操场上的光照,分析建筑物建成之后对学校的光污染是否超标,就必须要模拟建筑物建成之后的光照分析。
通过在WorldWind平台导入规划中的建筑,增加各建筑物中的反射材料(玻璃幕墙),通过计算建筑物玻璃幕墙反射之后对学校的光污染增量,判断光污染是否超标,如果超标,此时需要选择新的玻璃幕墙的材质,降低其反射率,减少到达学校周围的反射光。
Figure 3 WorldWind平台24小时内的光照分时效果
4.2.2 噪声污染
人们对噪声污染最敏感的地区有学校、居民区、办公区以及医院,以这些地方为中心辐射一定的范围,对于道路、车站、机场以及娱乐场所的规划要有一定的限制。
如果在某一居民区周围规划一条道路,在规划时需要考虑如何优化到可以把对居民区的噪声污染降到最低,此时可以在距离规划道路最近的居民楼中的几个采样位置分析道路上行车的噪声给当前位置带来的噪声增量。
声音的传播的主要因素有距离、空气阻力、空间上物体遮挡(建筑物、绿化带隔离等)等,根据这些因素计算某一距离外到达居民楼内所采样的几个位置的噪声量化指标,分析是否超标。
4.2.3 反恐
对于逃窜在城市中的恐怖分子或者闹市区的恐怖挟持,快速定位恐怖分子的位置和控制恐怖分子的活动范围,迅速隔离、制服恐怖分子,是保证人员安全和降低损失的有效途径。对于建筑林立的城市,如何实现快速机动,这就需要数字城市的支持。
以发生在某一大楼中的恐怖劫持为例,狙击手需要对这栋大楼进行监视,并在危机时刻击毙恐怖分子,他需要确认的是:在周围哪个建筑中的哪个位置距离最近、视线最好、狙击影响因素最少(风速、光影响)。
扩展之后的WorldWind平台中可以精确获取建筑与建筑之间某一位置的距离,同时可以通过实时更新WorldWind平台中当前区域的环境、气候等,就可以实现在短时间内分析出最优狙击位置,因此可以快速、准确的控制整个局面。
|
[转]基于WorldWind平台的建筑信息模型在GIS中的应用的更多相关文章
- 广联达 BIM5D 云平台---《建筑信息模型标准》解读
广联达 BIM5D 云平台: 1.用户管理: https://account.glodon.com/info 2.模型使用: http://bim5d-hunan.glodon.com/api/v ...
- 基于深度学习的建筑能耗预测01——Anaconda3-4.4.0+Tensorflow1.7+Python3.6+Pycharm安装
基于深度学习的建筑能耗预测-2021WS-02W 一,安装python及其环境的设置 (写python代码前,在电脑上安装相关必备的软件的过程称为环境搭建) · 完全可以先安装anaconda(会自带 ...
- 基于java平台的常用资源整理
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序
1.字节顺序 字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端.大端两种字节顺序.小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处:大端字节序是高字节数据存 ...
- 基于Linux平台的libpcap源码分析和优化
目录 1..... libpcap简介... 1 2..... libpcap捕包过程... 2 2.1 数据包基本捕包流程... 2 2.2 libpcap捕包过程... ...
- 这里整理了基于java平台的常用资源
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...
- 基于android平台的斗地主AI
本软件是基于android平台的斗地主AI,我们在源代码的基础之上,旨在改进AI的算法,使玩家具有更丰富的体验感,让NPC可以更为智能. (一)玩法解析: (1)发牌和叫牌:一副扑克54张,先为每个人 ...
- 一个基于.NET平台的自动化/压力测试系统设计简述
AutoTest系统设计概述 AutoTest是一个基于.NET平台实现的自动化/压力测试的系统,可独立运行于windows平台下,支持分布式部署,不需要其他配置或编译器的支持.(本质是一个基于协议的 ...
随机推荐
- MDI-设置子窗体只能弹出一个--单例模式
不足之处,欢迎指正! 什么是MDI..我表示不知道的呢. MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Wi ...
- SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心
目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...
- mysql-配置主从数据库,实现读写分离
主从分离的原则:所有的写操作在主数据库中进行,因为主从分离的原理是涉及到同步数据,那就可能会出现延迟或者其他问题,就可能会出现脏数据. 所以,在从库中进行的读操作也必须是有一定容忍性的数据,例如日志等 ...
- font-size 基准
浏览器的缺省字体为16px: 你可以先将基准字体大小设置为10px; body { font-size: 62.5%; } 然后统一使用 em作为单位 div { font-size: 2.4em; ...
- ERP与电子商务的集成
目前现状: 一般来说,企业中存在三种流:物资流.资金流和信息流,其中,信息流不是孤立存在的,它与物资流和资金流密切相关,反映了物资和资金流动前.流动中和流动后的状况. 电子商务与ERP被分裂开来,没有 ...
- 【阿里云产品公测】性能测试服务PTS的初步尝试
性能测试服务PTS,对于像我这样对测试毫无概念的新手来说,这服务真的太好了,使用简单,官方教程又明细,连我这样的新手一看都明白了怎样使用. _%GGl$kH 下面是我来简单尝试一下,更多功 ...
- 【Python】list和tuple 区别比较
列表 List classmates = ['Michael', 'Bob', 'Tracy'] 元组 Tuple tuple一旦初始化就不能修改,比如同样是列出同学的名字: >>> ...
- FiddLer模拟post不成功的解决办法
开始用fiddler抓app包,后来想模拟一下post请求,发现一直接受不到,wtf? 默认的header是类似这样的 User-Agent: Fiddler Host: localhost Cont ...
- 封装一个MPermissionsActivity的思路和步骤
http://blog.csdn.net/longkehuawei/article/details/53202804 第一步:检测所有的权限是否都已授权 /** * 检测所有的权限是否都已授权 * * ...
- Installing TensorFlow on Ubuntu
1.安装方法有4种,官方推荐是第一种. virtualenv(官方推荐) "native" pip Docker Anaconda 2.基于virtualenv的 ...