地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)

如果刚好你身处一个城市设计所,那经常做投标做的醉生梦死的你应该非常能理解这个从地形图转化到可视化三维模型的需求是有多少工作量吧?

为什么这样说呢?其实并不是过程中的技术含量有多少,而是因为这个过程要处理的数据量巨大,CAD的孱弱处理能力每每到这时候就展露无遗。就像我当年研一做汤山项目时曾错误地以为CAD能够直接打印一个合并后接近200mb的地形图文件,结果发现我光打开就花了半个钟啊

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(1)

!!只听到笔记本的风扇像拉着破车的老黄牛一样挣扎了半天,然后把我的CAD程序卡下线了.......奋战到凌晨还是只能放弃,最后手工分地块处理打印。

回归话题,跟以往的思路一样,遇到不会的问题就想办法拆解成以前遇到的问题,分而治之。那我们可以分成两步:一是环境要素的处理,像等高线、高程点、道路、水系这类;二是建筑要素的处理,就是把建筑轮廓线和层数进行关联,再想办法拉伸成有高度的体块。

01 如何处理环境要素?

这个就简单很多了。

基本上只要在百度上搜索过“CAD”“等高线”“地形”“湘源控规”这些关键词的,跳出来的前十条都会有介绍湘源控规、SU等转地形的教程。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(2)

不过这不是我们的重点,因为这些都属于数据量比较小的情况,数据量小的话用各种姿势最后都能处理出来,但我面对的是一个打开都费劲的地形图,所以pass掉。

这种大数据量 结构化的数据还是得用FME做预处理。

用FME inspector查看一下数据,发现图层数不多且基本都是标准化的测绘图图层,基本上都是拼音首字母的简写:DGX等高线、GCD高程点、DLSS道路设施、SXSS水系设施、GXYZ各类管线、JMD居民点、JMDOUT居民点建筑轮廓线,等等,遇到不懂的话百度之。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(3)

我们需要两类数据导入到GIS中进行下一步处理:

一是DGX等高线、GCD高程点,可以导到GIS生成TIN模型、再生成DEM就可以做山体阴影或者分层设色的渲染了;

二是DLSS道路设施、SXSS水系设施、GXYZ各类管线,这些只需要作为表达性要素即可。

那就用FME workbench简单建个模板分类导出成shp吧。

主要用tester转换器分层筛选下要导出哪个layer?是否需要要素本身具有elevation的属性?需要留意一下通过条件里是要选“or”还是“and”。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(4)

然后就获得了如下shp:

XZ-DGX(现状等高线)、XZ-GCD(现状高程点)

XZ-DLSS(现状道路设施)、XZ-SXSS(现状水系设施)、XZ-GXYZ(现状各类管线)

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(5)

在FME中利用RasterDEMGenerator模块可以很快生成能导入到GIS中的DEM地形栅格,这里为了减少运算数据量把像元大小设置成20m*20m,表示一个像素值代表现实中的400平米。

导入到ArcScene后,在图层属性中“基本高度”设置为“在自定义表面浮动”,就能显示成有高差起伏的地形图。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(6)

再按照需求设置渲染颜色。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(7)

加上现状道路设施。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(8)

加上现状管线和分层设色的等高线。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(9)

再利用之前教过的GlobalMapper一键生成的潜在汇水线分析,详见这篇:教程 | 甲方没有给地形图要怎么做汇水分析呢?这里我设置的阈值是5000,多试两次就能发现,stream cell count的阈值越大、留下的汇水线越粗、也就更大概率是主要河流的走向。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(10)

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(11)

好了,环境要素基本上差不多了,现在就差现状建筑。

02 如何处理建筑要素?

主要的思路就是先提取出地形图中的建筑层数标注,再赋值到建筑轮廓上,最后根据层数生成高度就好。

那就用FME搭建下吧。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(12)

用point on area overlayer点面叠加模块,实现层数标注赋值到建筑轮廓后,会发现CAD地形图到处的建筑层数标注很乱,包括“混5”、“砼6”、“破”等等情况,但我们只需要里面的层数信息,那就用string searcher模块先搜索提取出字段中仅包含正整数的层数。

这里用到正则表达式的写法:[1-9]\d*$,表示正整数。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(13)

测试一下,是可以正确提取出层数信息。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(14)

但还有些是“混”、“破”这些没有数值,实为1层的建筑怎么办呢?用string replacer模块,把剩下的仅有字符的要素替换为1就好。

此处正则写法是:[一-龥] ,当然也和字符的编码有关,具体可百度。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(15)

测试一下,也能正确识别。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(16)

好了,整理完建筑轮廓后,导入到ArcScene中,在图层属性-拉伸-表达式中输入“层数*3”得到建筑的高度,所有的建筑就都能正确显示高度啦。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(17)

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(18)

放大看一看。

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(19)

地图怎么建模做鸟瞰图(可视化有了地形图后怎样把建筑和环境建成三维模型呢)(20)

汇水线、管线走向、等高线、现状建筑都能很直观地识别出来,有其他限制性要素和规划用地属性也可以导进来,基本上能用作方案设计的基础底图了。

至于图纸美化,可以导出eps到PS中进一步处理,就不折腾GIS了。

03 总结

这样做有什么好处呢?

可能有人会说我用CAD分层打印 SU模型一样能做出类似的效果,何必折腾这么大一圈软件这么麻烦?

我认为除了能够处理更大数据量的优点外,其实可以通过这样的预处理生成一个可以不断完善叠加的项目现状数据库,统一的地理信息、无损的矢量格式、清晰可见的要素叠加,而且遇到新接手项目的同事还能很快上手了解整个场地的情况,近可深化方案、远可回归溯源,还要什么自行车?

更关键的是FME搭建的转换流可以保存为模板,复用到下一个项目中,以后只需要调调参数、拉拉模块就能很快生成现状限制性要素数据库了,长此以往逐渐完成经验上的积累,把自己的精力放到更有挑战性、更有价值和创造性的工作上去,多好。


欢迎关注公众号:平纸杂货铺

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页