软件小讲堂 | DEM数据与场地三维地形获取(1)
Hello~小伙伴们,又到了每周一次的软件小讲堂啦。
对于建筑,景观和城市设计专业的学生而言,场地三维地形的创建是设计过程中不可忽略的重要环节,无论是依据地形进行建筑的布置还是根据坡度选择不同的景观方案我们都离不开真实的三维场地。
虽然借助elk或者cadmapper这样一些网站我们可以获取大量诸如建筑道路水系之类的场地信息,但是这些方法对于三维地形的创建效果却大多不能满足我们的需求,并且在非大城市区域存在着大量信息丢失的情况。
对于大城市我们可以通过cadmapper获取场地信息,但精度略差
因此在本次系列教程中,我会向大家介绍两种借助DEM数据获取三维地形的方法。今天我们要学习的是如何借助谷歌地球来创建三维的真实场地。
PART 1
信息获取
要完成这样一个操作,大家首先需要安装一个Google Earth的较早版本(比如7.12版本),其次我们还需要一个叫做getools小软件的辅助.
以管理员身份运行getools,在工具中选择打开/获取谷歌地球。
之后就会在getools中看到一个和google earth完全相同的工作界面,大家可以在这选择任何你想获取的场地。比如我们选择云南地区的一个山地。
在这大家需要注意一点就是我们要保证视线方向是垂直往下的,按住鼠标中键往上移动即可。
当然考虑到计算精度,我们把镜头稍微拉近一些。
在工具中选择获取dem数据,XY方向比例控制采点的精度,数值越小采样点密度越大,最终生成的地形精度会越高但是计算时间也会随之增加。在这我们就使用默认的15%。
点击启动,getools就可以进行点的采样。经过一段时间的等待,点击保存数据,我们就完成了初步场地信息的获取。
在记事本中观察生成的txt数据,我们会发现这里面实际上就是每个测试点所对应的经纬度和高程。
但是如果我们想在Rhino中直接生成对应的场地地形,大家就会遇到一个很麻烦的事情,坐标转化。
PART 2
坐标转化
因为经纬度对应的球体坐标(地球为一个球形),而Rhino建模环境中我们使用的都是XYZ这样一个平面坐标。因此我们在创建地形之前必须先完成这样一个地理经纬坐标转化为平面xy坐标的坐标转化过程。
在这里我们可以使用一个小程序:高斯投影正算,这个程序可以自动的将地理坐标转化为平面坐标。
不过在这我们需要观察下这个程序的输入端为序号,纬度和经度,而我们之前直接生成的数据为经度,纬度,和高程。
因此我们需要用excel打开之前获取的txt文本,进行一个数据位置的变化(经纬度对调),并删除高程信息。
不过打开我们发现当前这三个信息是位于一列的,这样不方面我们后续的操作,因此选中一列,使用数据分列,选择分割符号,逗号。这样数据就会变成三列。
给A前面添加一列序列号。
将经纬度交换位置,之后将高程删除,保存为txt。
回到记事本中,使用编辑中的替换,将数据直接的大空格替换为逗号。
替换结果如下。现在数据的格式就完全符合坐标转化工具的要求了。
回到坐标转化工具,点击导入,选择刚刚生成的txt。在这我们还需要设置一下中央子午线的度数,这个我们可以根据经度坐标来设置,对于当前经度我们可以将其设置为99度。
点击转化我们就可以获取坐标转化之后的数据,选择导出就可以将这些数据重新保存为txt文本。
之后我们又要重复一下之前的操作,进入excel,将数据分列,调转经纬度对于XY数据的列(一般我们习惯将经度对应的平面坐标设为X维度对应的平面坐标设为Y),删除序列号的那一列并把之前删除的高程坐标进行补齐。
将修改后的数据保存为txt文本,再次使用替换,将空格替换为逗号,到此为止我们就完成了整个数据的坐标转化。
PART 3
场地建模
完成坐标转化之后,其实后续的场地建模就非常简单了,打开grasshopper。使用导入坐标将之前设置好的txt文本导入进gh,转化为三维的点。之后连接到Delaunay Mesh获取三维场地。
之后我们还可以使用之前提过的BISON运算器对于地形进行一定的标注处理。比如使用contour运算器生成地形的等高线。
或者使用Bison中各种各样的分析工具进行场地的分析,从而辅助我们后续的设计。
那么这样我们就完成了一个从谷歌地球到Rhino三维地形的创建。今天的教程也就到此为止了。下期我们将学习一个更为简便的创建三维地形的方法。