即之前的两篇Grasshopper分析图教程制图教室新年第一弹:酷炫动态人流疏散图和GH分析图小技巧(1):如何做出一张好看的气象分析图之后,今天LAC制图教室将继续带领大家进行GH分析图的学习。
那么本次课程我们主要来聊一下前一段时间在网络上非常火的城市人流分析图。
STEP1
图纸分析
对于任何分析图,我们在绘制之前首先都要明确图纸想要表达什么。上述几张图纸其实都选自国外21mapsthatshowhowpeoplerunindifferentcities这一套作品。每一张图中紫色的线其实都表现了大城市中人的日常活动流线。并且紫色线的深浅和粗细表示了每条路径人流的多与少,因此结合城市底图,可以让读者非常清楚的了解每个城市中人流的特点。这对于后续城市设计以及城市中建筑单体设计的选址和场地分析都有极大的指导作用。
比如下面这张图表示的就是德克萨斯州达拉斯的人流特点。通过图纸我们可以清楚看到达拉斯市的沿湖区域人流密度极大,并且具有明显的城市干道。因此如果我们要进行一个商业体的设计,从人流上看,湖边区域无疑是最优的选择范围。
当然,对于这样一张图纸的绘制,真正正确的方法必定是基于大量的真实人流数据的记录与分析,通过对于每个测试样本走过路径的统计,最终才可以得到这样一张人流分析图。但对于学生阶段的我们,这种需要大量数据记录与统计的方法肯定是无法使用的。因此这次教程我们将通过grasshopper进行虚拟的人流的模拟,来得到一张近似正确的人流分析图。在这可以非常明确的告诉大家,这种方法肯定是存在较大误差的,但和那种直接在PS中绘制城市人流的方法相比,还是相对比较科学并且高效很多的。
STEP2
GH人流模拟
在进行人流模拟之前,首先我们需要获取我们将要分析城市的基本路网。这里借助Elk插件和Openstreetmap。我们可以非常快速的获取我们需要城市的场地。具体操作大家可以参考LAC往期的文章SITEANALYSIS:从ELK到AI的工作流.
这里就不再赘述了。已小编所在的香港为例,在openstreetmap上选择上环-中环-湾仔这段,导出OSM数据。
在grasshopper中,通过filepath打开OSM文件,结合ELk的location和OSMData运算器,我们可以非常快的获取所需类型的位置点(这里因为分析人流需要路网,因此选择highway),通过prunetree清除数据量小于2的数据(构成线至少需要两个点),通过polyline就可以获取基本的城市路网了。
完成路网之后,我们就可以进行人流的模拟分析了。首先我们要确定所有人的出发点。因为这片区域北侧为维多利亚湾,很明显人不可能从海里面出发。所以第一步我们需要在Rhino中确定基本陆地的范围。通过polyline大致把陆地的范围圈出,通过curve抓到GH中。
之后我们可以借助boundarysurface生成面,运用populategeometry生成随机点来模拟人的出发点。
虽然这种方法,可以很快的模拟出随机出发点,但是它却有一个致命的缺陷,那就是实际情况下,对于任何城市而言,人的分布都不会是均匀的。CBD,大型娱乐场所,购物中心,他们的人群密度会远远大于其他区域。以这片区域为例,CentralTower,IFC,湾仔街市等地方的人群密度肯定会远远大于南侧middlelevel的居民区。因此我们要考虑对这种方法进行优化:通过人工选择一些人群较为密集的区域,布置较多的出发点。在这我们运用point选择几个点作为人群密集点(在大家自己的场地分析中,这一步的选择需要通过前期场地的调研得出)
之后为了取得离这些点近人多,离这些点远人少的效果,我们可以通过在一组同心圆上分布随机点,类似下图。
以选取点绘制同心圆。
但在这时我们还不能直接生成随机点,因为部分圆会伸入到海洋中,因为我们需要运用regionintersection求一下同心圆的我们之前绘制的陆地界线的交集。
之后通过一次pathmapper数据结构的调转
我们就可以可以生成随机点作为我们的人群出发点拉
之后我们运用相同的方法获取我们的人群目标点,遵循相同的原理,我们只要改变seed的数值就可以了。
然后我们就要获取人流路径,因为大部分人都倾向于到离自己最近的目标点,因此运用closepoint获取每个出发点对应最近的目标点
但这个时候如果我们直接连线,也是不符合实际情况的,因为有的时候人们附近的目标点并不一定可以满足人的需要,在特定情况下人们必须要去城市中离自己比较远的一些地方(比如小编住在龙华的港大第三村学生宿舍,日常吃饭我肯定会选择最近坚尼地城,但是购买家具的话我就必须要去铜锣湾的宜家了,因为坚尼地城并没有宜家)。因此我们使用jitter,来模拟这种局部情况。
这样我们就获得了最终的人流路径。但是新的问题出来了,目前的人流路径是从出发点到目标点的直线,实际情况下,人的流线是必须要遵守城市路网的变化,不可能是这样的直线。所以下一步,我们要运用shortestwalk插件,来获得符合路网的人流线(下载地址白癜风治疗要花多少钱白癜风治好