干货分享丨 数据可视化专题:地形生成及高程分析

Posted 风景园林杂志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货分享丨 数据可视化专题:地形生成及高程分析相关的知识,希望对你有一定的参考价值。




在这里首先感谢各位小主的关注和爱戴,

兰亭君有礼了~


干货分享(三)丨 数据可视化专题:地形生成及高程分析


— 某日 —


兰亭君: 唉?你在干啥?好多高程点... (+﹏+)~

同学甲:我在给每个点输入z值呢,嘤嘤嘤...坑爹的甲方居然给我的现状cad总图里高程点都是平的..平的..平的..画圈圈画圈圈...

兰亭君:……(๑°⌓°๑)


从今天开始兰亭君准备同步开启一个新的专题——数据可视化专题。今天第一篇比较基础和简单,教教大家如何利用高程数据生成我们需要的地形模型和高程分析图。现在市面上已有很多相应的教程和文章,但大多授人以鱼而不教人原理。所以在强迫症病情影响下 (ー̀дー́),兰亭君准备总结了一份比较全面的教程,给各位小主一解千愁。

然后麻麻就再也不用担心我们的地形分析啦~


同学甲:什么!你怎么不早点教教我!

干货分享(三)丨 数据可视化专题:地形生成及高程分析干货分享(三)丨 数据可视化专题:地形生成及高程分析



◆  地形生成 及 高程分析  



在建筑、景观设计过程中,小伙伴们拿到的第一手资料之一便是场地的现状测绘图纸,林林总总的奇葩问题总是困扰着设计师。首当其冲的问题当然就是地形资料的整理、建模以及设计前期的地形现状分析。然而拿到测绘图的小伙伴们总是会崩溃如斯:什么?!只有高程点怎么画等高线出来?...只有高程数字,居然高程点木有z值!!...只有等高线,怎么才能做出完美地形出来?!!...卒...~~(>_<)~~


今天兰亭君就来给大家总结一下比较全面的地形建模及分析方式。


干货分享(三)丨 数据可视化专题:地形生成及高程分析



思路概述:


Step 1:

先得到具有 z 值的高程点

高程点! 高程点!...

重要的方式说三遍!!


Step 2

直接生成地形模型!!

* 但不够完美或圆滑,

心急的小伙伴到此出门右拐,

赶紧回家建模。

强迫症患者继续阅读!!


Step 3:

优化地形,

 Step 2 的模型转化为结构线均匀的曲面

或 直接生成 uv方向上均布的高程点!!


干货分享(三)丨 数据可视化专题:地形生成及高程分析


Step 4

生成相应的等高线  mesh地形

以便进行高程分析。



干货分享(三)丨 数据可视化专题:地形生成及高程分析



01


当我们刚拿到现状cad总图的时候,

一般会遇到以下三种情况:


①具有 z 值的高程点图块;

②没有 z 值的高程点及标高;

③具有 z 值的等高线。


如何整理得出比较靠谱的高程点,

我们需要分以上三种情况进行操作。



① 具有 z 值的高程点图块:

干货分享(三)丨 数据可视化专题:地形生成及高程分析
遇到这种情况是最幸福的事情,

我们只需要得到每个圆形图块的中心点即可。


将模型整理干净,

把高程点图块及标高数字放在同一图层,

并保证其他物件隐藏或图层关闭状态。

通过 SelBlockInstance 命令选取模型中所有图块。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

炸开 / Explode 图块,获得圆形曲线。

通过 选取曲线 / SelCrv 命令选取模型中所有圆,

在 Grasshopper 中拾取模型空间所有被炸开的曲线。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


使用 Deconstruct Arc 运算器 获得所有圆的圆心。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


选中目标图层,

bake!!

见证奇迹的时刻!!

干货分享(三)丨 数据可视化专题:地形生成及高程分析



 没有 z 值的高程点标高:

干货分享(三)丨 数据可视化专题:地形生成及高程分析


这里最麻烦的就是所有高程点没有z值,

兰亭君曾真实见过小伙伴们在cad中

把所有点的z值属性一个一个输入标高数值...

几千个点呢  TAT

花了两天时间输入大半的小伙伴表示:

内心很崩溃 (o_ _)ノ


这里就需要借助我们强大的grasshopper

来实现数字内容转换为坐标z值并拔高高程点,

用到的运算器来自于常见的 Human 插件。

不用编程,不用编程,不用编程...

曾经的我们装着 Human

却傻傻浪费了多少青春

不知道还能干这事 ...


拾取图块并转换点的操作同 ①。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

在 Grasshopper 中将拾取并转化的数值

赋予每个对应高程点的z值,

 将高程点沿z轴移动相应的距离。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

bake!! 干货分享(三)丨 数据可视化专题:地形生成及高程分析



 具有 z 值的等高线:

干货分享(三)丨 数据可视化专题:地形生成及高程分析

一般为已有等高线,

需要建立地形曲面模型的情况。

或者是拿到一手破碎的等高线的情况... (ー̀дー́)

干货分享(三)丨 数据可视化专题:地形生成及高程分析


建模原理为:

按距离等分等高线

得到相应的高程点。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

当然,这里并不是按距离直接等分。

而是先测量每根等高线的长度 L,

再除以等分距离 a,

得到每根曲线分段数目 x = L / a,

最终等分等高线得到高程点。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

至此,我们通过三种方法分别处理了

不同情况的cad原始文件。

最终得到 step1 所需的结果:

—— 具有z值的高程点 ——



02


获取 step1中的高程点后,

我们需要建立下一步的:

地形曲面(surface) or 地形网格(mesh)。


① 直接获得地形曲面(surface):

我们可以运用嵌面 / Patch 命令。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


在输入参数的时候尽量使其 uv 结构线足够密集

才能保证生成的地形曲面更贴近先前的高程点

但是!但是!!这么做会非常卡顿...

uv 数值设置的越大,虽然生成的面越精确,

但电脑计算的时间就越长...

如果软件崩溃兰亭君只能默默地为你祝福了。

干货分享(三)丨 数据可视化专题:地形生成及高程分析干货分享(三)丨 数据可视化专题:地形生成及高程分析


最终通过切割 / Split 命令,

得到我们范围内需要的地形曲面。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


此方法适合初学者建立简单地形模型,

但不具有太高学习价值,

建议小伙伴们继续向下阅读。


② 获得地形网格(mesh):

无论是速度还是精度会比方法 ① 靠谱很多,

也是最常用的高程点建地形的方式。


在这里我们会需要用到

Grasshopper 的 Delaunay Mesh运算器,

操作简单便捷,直接拾取高程点。

干货分享(三)丨 数据可视化专题:地形生成及高程分析

bake!!

见证奇迹的时刻

干货分享(三)丨 数据可视化专题:地形生成及高程分析


再来一张等高线建地形最终的mesh网格。

干货分享(三)丨 数据可视化专题:地形生成及高程分析
是不是很有SU沙盒的 feel~


到这里心急的小伙伴们可以回家建模啦~

但是这一步得到的模型并不甚完美,

比如:

干货分享(三)丨 数据可视化专题:地形生成及高程分析
边缘地区会有很多褶皱拉伸夸张的三角面。


再比如:

干货分享(三)丨 数据可视化专题:地形生成及高程分析
抖抖抖抖....


所以患有强迫症的小伙伴们,

请继续阅读 (ノ*・ω・)ノ



03


重新整理地形。

目的就是把结构线混乱的曲面或者网格

整理为uv分布完美的曲面地形。


这一步我们有三种达成目标的方式

 布帘点 / DrapePt;

 布帘曲面 / Drape;

 重建结构线并放样。

其中①②方法类似,③较为复杂。


① 通过 布帘点 / DrapePt 命令

得到分布有序的uv点阵:

干货分享(三)丨 数据可视化专题:地形生成及高程分析


在命令栏中有两种控制点密度的方式供我们选择:


干货分享(三)丨 数据可视化专题:地形生成及高程分析

通过点之间的距离来建立点阵。


干货分享(三)丨 数据可视化专题:地形生成及高程分析

通过uv数目来建立点阵。


干货分享(三)丨 数据可视化专题:地形生成及高程分析


得到如此完美的高程点阵。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


干货分享(三)丨 数据可视化专题:地形生成及高程分析


最终,运用 Grasshopper 的

Surface From Points 命令,

得到我们所需的完美地形曲面。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


或者运用 Mesh From Points 命令

得到完美的地形网格。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


或者...

干货分享(三)丨 数据可视化专题:地形生成及高程分析

干货分享(三)丨 数据可视化专题:地形生成及高程分析


② 通过 布帘曲面 / Drape 命令,

得到结构线均布的地形曲面:

操作同布帘点,记好伦家的图标按钮

干货分享(三)丨 数据可视化专题:地形生成及高程分析 干货分享(三)丨 数据可视化专题:地形生成及高程分析 干货分享(三)丨 数据可视化专题:地形生成及高程分析

很萌很形象有木有!!~

(,,•́.•̀,,) ~ 掀起你的盖头来 ~ (,,•́.•̀,,)

顾名思义,

它是用像布帘一样的曲面盖在物体上方,

最终形成重力影响下的布帘形态。

如果用在地形重建上是再合适不过的选择。

(在这里感谢曾经鹿神的提示)

干货分享(三)丨 数据可视化专题:地形生成及高程分析

干货分享(三)丨 数据可视化专题:地形生成及高程分析


一如布帘点般的奇迹时刻。 <( ̄ˇ ̄)/

最终得到的布帘曲面

可以说是完美贴合初步地形模型的。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


如果布帘重力方向歪了一点点... (ー̀дー́)

干货分享(三)丨 数据可视化专题:地形生成及高程分析


重建曲面结构线并放样:

建立曲面结构线需要用到

等距断面线 / Contour 命令,

不过这次不是沿着 z 值方向画等距断面线,

而是...

干货分享(三)丨 数据可视化专题:地形生成及高程分析


话说兰亭君曾经也干过

先画平面网格再投影到曲面上的萌事~

提起来都好羞涩呢 (,,•́.•̀,,)


得到初步的等距断面线后,

只需要根据实际情况重建曲线即可。

曲线的控制点数目由具体情况而定,

是否删除原曲线则看各人需求。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


最后一步,

全选,放样 / Loft。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


至此,三种重建地形曲面的方法全已完毕。

麻麻再也不用担心我的地形建模与修整啦~




04


等高线的建立:

干货分享(三)丨 数据可视化专题:地形生成及高程分析


也可以通过 Grasshopper 的 Contour(ex)(Contour)命令来实现。

干货分享(三)丨 数据可视化专题:地形生成及高程分析


不过兰亭君在这里建议小伙伴们

尽量不使用 Grasshopper 的布尔运算功能。

那是会相当卡顿滴~


最终,就可以得到我们真正所求的地形等高线啦

干货分享(三)丨 数据可视化专题:地形生成及高程分析干货分享(三)丨 数据可视化专题:地形生成及高程分析



干货分享(三)丨 数据可视化专题:地形生成及高程分析


兰亭小纪:


01  整理现状资料:

① 具有 z 值的高程点图块;

② 没有 z 值的高程点及标高值;

③ 具有 z 值的等高线。

 过一系列简单操作得到具有 z 值的高程点。


02  初步地形生成:

嵌面 / Patch;

Grasshopper : Delaunay Mesh。

通过 01 步骤得到的高程点,

① 可以得到比较完美圆滑的曲面;

② 可以得到较为准确的mesh三角面。

* 如果建模精度要求不高,到此结束。


03  模型整理重建:

布帘点 / DrapePt;

布帘曲面 / Drape;

重建结构线并放样。

▌对 02 步骤的模型进行手工优化,

得到结构线均布的完美曲面及对应 uv 点。

* 强迫症患者的救星!!

  

04  高程分析:

(1)生成等高线并着色;

(2)生成mesh地形并着色。

▌最终目标为 可根据高程进行着色的等高线或mesh地形。





看到这里,是不是觉得简直是神操作!

那么,怎么才能系统的学习,通往大神之路?


福利来啦!



为了快速提升我们的战斗力,迎接留学作品集提交迎接挤破头的招聘市场迎接各种加分竞赛,《风景园林》和专筑讲坛云集各路精英讲师,用9天时间,授课+嘉宾讲座+实地考察+作业交流,完美打造暑期工作坊,让你瞬间超越!






干货分享(三)丨 数据可视化专题:地形生成及高程分析



以上是关于干货分享丨 数据可视化专题:地形生成及高程分析的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS DEM数字高程模型数据的生成

ArcGIS DEM数字高程模型数据的生成

ArcMap 基于DEM的基础地形分析

ArcMap 基于DEM的基础地形分析

gis10.0 生成tin,怎样剔除异常高程值?

BIM入门实战Revit创建地形的几种方法及优缺点