【引言】
Map系列:相信大家无论是专业作业抑或竞赛时候都离不开去获取地图信息和场地地形、场地建筑等等,这个系列从#地图信息#获取、#地形处理#建模、#地形数据##可视化分析#三部分向大家分享几种方法。
建筑曲奇注:关于地图底图获取,之前我也有写过一篇文章教程 https://archcookie.com/3196.html
Elk2 – OSM开源地图数据获取场地信息
➤ 成果预览
➤ 工具
⑴ OSM数据获取: http://www.openstreetmap.org
⑵ SRTM数据获取:https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
⑶ Rhino + Grasshopper + Elk2
➤ 步骤
⑴ 进入 Openstreetmap 完成一个场地的#OSM#数据的下载:
输入需要的场地名字进行搜索,找到位置后在右边编辑栏点击 导出-手动选择区域 进行框选场地区域,然后点击导出获取需要的场地数据。(如果场地过大导出失败的话,可以选择左侧的 Overpass API 进行导出)
⑵ 打开 Rhino 和 Grasshopper ,使用 File path 导入 OSM 文件,结合 ELk2 的 Location 和 OSMData 运算器,通过右键点击 OSMData 运算器选择不同的类型,使用 Polyline 链接成线,就可以获取所有建筑的投影轮廓线、#道路#、#水系#等矢量数据;在 Rhino 建好对应图层,然后依次 Bake 到对应图层即可。
(城市CAD矢量数据 get:导出dwg到Ai即可绘制前期场地分析图)
⑶ 然后创建三维的建筑模型——如果OSM数据包含场地建筑高度全部信息,可直接右击 building 的 OSMData 运算器 – Create 3D BUuildings 生成三维建筑模型。
⑷ 而往往 OSM数据 所包含的建筑高度信息并不全,这时候需要手动去拾取原有高度信息并调整。
首先使用 Panel 连接 K端 可以看到在很多的数据分支里面都具有 Height:xxx 这类项,那么需要提取出对应的文本并筛选出高度信息,然后作为挤出高度对轮廓线进行沿 Z 轴方向的挤出,即可得到三维建筑模型。
使用 Match Text,连接K值,在 R 端输入需要匹配的文字格式,即height:,即可生成一系列的布尔值(高度信息的那一项会显示为True,其余信息显示为False);使用 Dispatch 以此为依据进行高度数据的分流,即可得到需要获取的高度数据;之后使用 Text split,进行数字和字符串的分离(文本格式为 Height:数字,则使用 : 作为分隔符)
接下来解决第二个问题:有部分建筑并没有高度信息,可以看到较多显示为 Null 的数据,即为空值。那么利用 Replace Nulls 赋予一个范围内的随机值作为其高度,然后挤出-加盖即可。(如果挤出没明显变化,即是比例不当,适当放大倍数即可)
➤ 完整再看一遍~
Elk – SRTM数据获取地形信息
➤ 成果预览
➤ 步骤
⑴ 在前面介绍的方法里获取OSM数据,导入到 Location 即可得到场地位置的经纬值。原理就是将 SRTM 反馈的高程信息与 OSM数据 对应的坐标范围一一对应起来,比如这块白云山局部的经纬值是N23 E113。
⑵ 进入NASA数据库下载 SRTM 数据:https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
这里 SRTM3 代表的含义就是精度为3米,中国属于亚欧板块 Eurasia ,在里面选择对应的经纬度区间。以白云山局部为例,那找到N23E113,下载即可。
⑶ 然后导入刚下载到的 hgt 文件,接入 SRTMTopo 运算器即可得到地形点或者线矢量数据,然后通过点成面或线成面即可完成地形建立。接下来制作地形路网和等高线契合来做模型或者分析图 则可以用project简单命令将线投影到面上,同样导入AI 3D版本的地形分析图也就出来。
➤ 完整再看一遍~
➤ 那么大家也来尝试一下吧,世界那么大,爬个模型来看看~
原文版权声明:©原创作品,若您要转载内容,请联系我们,并注明原作者出处。
转载版权声明:本文已获原作者授权转载,如需转载请联系原作者,禁止以建筑曲奇编辑版本转载
评论1