随着技术发展,跨界融合已经不是新鲜事物,近两年BIM、PIM+GIS一张图的提出,给行业注入了一股清流。

为GIS行业发展带来了新的契机,同时也带来了一些新的挑战。面对挑战,本文将剖析BIM、PIM+GIS应用过程中遇到的难点以及应对方法。

首先我们要分析BIM与GIS的各自特点;

1).BIM、PIM注重微观、注重细节,GIS偏向宏观,

  以一栋楼为例,BIM数据的模型数量(个体)可达到100万个对象数量【对象的概念:每一个对象是一个独立的个体,具有可编辑、可以测量、有独立属性】

以一个工厂为例,一个发电厂的模型数量可达到500万个对象。

.BIM、PIM坐标系独立(无地理信息属性)

3. BIM、PIM数据侧重管理,可溯源。

4BIM、PIM可测量,对精度要求高。

5.BIM、PIM的技术特点:参数化,轻量化,可编辑。

结合以上特点,把BIM、PIM接入到GIS中要解决的如下问题:

1.坐标转换、数据精度问题

无论是BIM、PIM、GIS都需要解决这样这个问题,尤其是将数据送到显卡进行绘制,很多显卡对双精度(double)支持不好,计算性能价差,移动端的显卡

设计上就不支持双精度计算。

GIS          :因为坐标较大,单浮点已经无能为力,只能采用双浮点计算(double),在传递给显卡前需要消除大坐标 【传统解决大坐标办法】

BIM、PIM:未引入GIS前,因为坐标范围较小,基本上用单精度进行绘制不会出现失真的情况。

引入GIS后,因为增加了地理位置属性,坐标与GIS坐标一致,变大,单精度已经无法满足需求,当然也可以采用【传统解决大坐标办法】。

                    带来的问题:绘制的对象数有限,当对象数量超多10万个【传统解决大坐标办法】显得无能为力。

2.数据量问题

  上文中提到,一般的BIM、PIM模型对象数量是极大的,对象数是百万级别的,而且特别的集中,这给CPU、GPU带来了新的挑战。

当然,这个难不倒攻城狮们,传统的解决办法:

1. 降低对象数量,很多模型100万个对象的模型被处理成只有不到10000个对象,这样大大的

降低了CPU的管理成本,可以实时的采用CPU裁剪,然后在将数据送到显卡执行。然而这种办法一直都有一个缺点:模型的颗粒度降低了,

无法满足更低级别的管理。

2. 按需加载,这种办法降低了加载模型的数量,把模型按照功能组排序分组,只展示特定的功能组数据。这种办法,用户只能看到部分模型。

3. 动态裁剪,采用LOD算法,这种算法比前面两种都要优秀,可以很大程度提升系统的吞吐量,一般优秀的系统可以支撑100万个对象实时展示。

遇到大体量的模型也无能为力了。

综上所述,不管采用什么样的技术方案-数据量停留在“百万对象”数据量的级别上,但现在数字化大趋势下,全网一张图的提出,数据远超过“百万级别”

笔者接触过的数据量,最大单体BIM数据量达到600万级别。

3.模型格式问题

 BIM、PIM模型多数是参数化的,参数化的优势,可测量,可计算,可复用

传统模型的概念已经不能满足BIM的应用【模型是由三维点线面组成的方式】,这种模式下计算分析是不准确的。

例如:当我们需要计算两个管道之间的最小表面距离,采用传统的三角形mesh方法得出的结果是偏大的,如下图所示:

无论如何对管道表面进行三角细化,都只能是近似模拟,无法精确的计算表面积最短距离。这就是参数化模型的一个突出的优点

我们用表面光滑的圆柱-标识该模型是参数化的,用以区分。

计算体积,质心,物理模拟仿真等参数化的模型计算更加的科学准确。

4. 轻度编辑能力

目前国产化BIM+GIS将精力主要集中在表现上,画质上而忽略了核心应用,笔者对轻度编辑做如下定义(游戏中的场景编辑能力):

1). 修改调整模型的材质属性;

2). 修改模型的位置属性,6自由度信息即旋转、缩放、平移;

3). 修改模型的附加属性,工程应用中极具价值的要素;

4). 模型的合并;

5). 动画制作;

6). 场景编辑控制.

综上所属,在BIM、PIM+GIS结合上,技术上难以解决的两个问题:

1.大坐标的计算精度问题  

  后续笔者将总结现有的解决大坐标的方法,并说明其优点与缺点

       提出新的更高性能的解决大坐标的方法。

2.参数化计算问题

后续专题论述

3.轻度编辑

后续专题论述

      

BIM,PIM接入GIS 需要解决的关键技术问题的更多相关文章

  1. GIS与FVCOM模型耦合的关键技术及解决思路

    1. FVCOM本身为Linux下的MPI程序,首先将其移植到Windows下,可以编译成控制台程序. 2. FVCOM的前处理由GIS完成剖分网格和初始设定等工作. 3. FVCOM的输出采用自定义 ...

  2. Windows平台下C++插件系统实现的几个关键技术问题及其解决思路

    根据我的实践,在Windows平台下设计并实现一个C++插件系统,需要解决几个关键技术问题.下面我谈谈需要解决的几个关键技术问题以及我想到的简单的解决思路.由于我主要专注于Windows平台C++程序 ...

  3. 5G关键技术评述

    业内重大事件: 张  平:无线通信领域专家,北京邮电大学教授,博士生导师,现任北京邮电大学无线新技术研究所(WTI)所长.泛网无线通信教育部重点实验室主任以及中德软件研究所副所长.张平教授是国家宽带无 ...

  4. 实时视频应用之QoS关键技术分析

    转自:http://www.aiweibang.com/m/detail/104476372.html?from=p 随着WebRTC标准的逐步推广,实时音视频通讯技术受到越来越多公司和技术人员的关注 ...

  5. 5G关键技术研究方向

    对于还没体验4G移动通信魅力的国内的移动通信用户而言,5G也许还是镜中花,雾中月:但对于科研界而言,5G研究已经启程,三星电子5月份宣布,率先开发出了首个基于5G核心技术的移动传输网络,实现每秒1Gb ...

  6. Android无埋点数据收集SDK关键技术

    前言 鉴于日益强烈的精细化运营需求,网易乐得从去年开始构建大数据平台,<<无埋点数据收集SDK>>因此立项,用于向大数据平台提供全量,完整,准确的客户端数据. << ...

  7. 小小知识点(二十七)20大5G关键技术

    5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(MEC). 1 网络功能虚拟 ...

  8. 在线公开课 | 5G时代的视频云服务关键技术与实践

    5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...

  9. Linux多核并行编程关键技术

    多核并行编程的背景 在摩尔定律失效之前,提升处理器性能通过主频提升.硬件超线程等技术就能满足应用需要.随着主频提升慢慢接近撞上光速这道墙,摩尔定律开始逐渐失效,多核集成为处理器性能提升的主流手段.现在 ...

随机推荐

  1. springboot添加操作

    更多精彩关注微信公众号 Mybaits技术连接数据库 resources #update tomcat port server.port=8888 #config datasource(mysql) ...

  2. Identity Server4 数据迁移、持久化

    add-migration InitialPersistedGrantDb -c PersistedGrantDbContext -o Migrations/IdentityServer/Persis ...

  3. 10.qml-组件、Loader、Component介绍

    1.组件介绍 一个组件通常由一个qml文件定义(单独文件定义组件), 实际也可以在qml里面通过Component对象来嵌入式定义组件 (4小节讲解). Component对象封装的内容默认不会显示, ...

  4. Unity API笔记

    1. 返回某范围的随机数 Random.Range method. static float Range(float min, float max); returns a float – return ...

  5. algorithm库介绍之---- stable_sort()方法 与 sort()方法 .

    文章转载自:http://www.cnblogs.com/ffhajbq/archive/2012/07/24/2607476.html 关于stable_sort()和sort()的区别: 你发现有 ...

  6. 如何理解PaaS平台,与SaaS、IaaS有什么区别?

    我们经常会看到SaaS.PaaS.IaaS,但总是会摸不着头脑,有的人甚至会以为是恐怖组织的代号.其实,无论是SaaS.PaaS还是IaaS,都代表的是某一种服务,比如SaaS的含义为"软件 ...

  7. Go - 开箱即用,WEB 界面一键安装,没有项目经验,可以拿这个练手

    安装界面 启动程序之后,会在浏览器中自动打开安装界面. 因为程序会使用到 Redis 和 MySQL,所以安装前请输入 Redis.MySQL 配置信息,点击初始化按钮,会将用到的数据表和默认数据进行 ...

  8. (五)Jira Api对接:修改任务状态

    项目迭代结束后我们需要把sprint下面的story.task任务状态修改到结束状态,如果手动修改会花费不少时间,本文就介绍如何通过jira api自动修改任务状态,提高工作效率. 一.查看任务工作流 ...

  9. MakeCode图形编程应用在micro:bit上的多工性能实测

    1. 简述 本文不涉及对测试中所用到的设备或软件的推广. micro:bit 是一款由英国广播电视公司(BBC)为青少年编程教育设计,并由微软,三星,ARM,英国兰卡斯特大学等合作伙伴共同完成开发的微 ...

  10. top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思

    Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 2018-08-26 分类:Linux 评论(0)   缙哥哥发现用了雅黑的探针,在 Linux 的 C ...