重要声明:这篇教程纯粹为绘图方法的介绍,其中的“人流数据”为YY而来的伪数据,没有真实性及可参考性,不可以作为科研方法!请相关课题的研究者使用合理的、正确的、实际的方法采集并分析数据,以免出现数据造假或研究成果不可靠的局面!
欢迎各位大神能够为大家展示数据收集及处理的正确方法^3^,笔者才疏学浅,先为大家撸上绘图方法:
先上最终效果
人流数据上面说过了,是YY而来,通过gh进行组织和处理。
我选择了地理信息完备的Manhattan地区作为案例,使用rhino+grasshopper+ai+ps完成绘图,步骤简介如下:
1.取得地理信息
首先要获得某一地区的城市路网,我首先登陆了OpenStreetMap,搜寻我想要的地区路网,然而网速感人,高墙感人,基本下载不下来,我只能来到另外一个网站下载了New York地区的osm完整文件。
下载下来的osm.bz2文件由于是整个New York地区的,解压开后容量高达3GB,我们只需要Manhattan地区的,因此需要使用一个操作界面极不友善的小插件osmconvert来将osm根据需求范围的经纬度切割至合理大小。
2.地理信息导入Rhino+Grasshopper
由于不会使用GIS类地理信息软件,所以我选择使用Grasshopper中的Elk插件来读取osm文件中的地理信息,读取进来的数据是点云,我选择出主要的路网点云,并将它们连接成线。
3.模拟数据
我在城市区域内随机生成一些点代表人流起点,又在另外一些地方生成随机点代表人流终点,让他们一一对应,由于人们倾向于选择近便的路抵达目的地,所以我求得了起点和终点经过整个地图的最短路径,是不是有点儿像地图导航。这一步骤说起来容易做起来非常复杂,我越过了无数个坑才成功。举一例来说,elk导入进来的路是连续的、不相交的,这种路网是无法求得最短路径的,我需要先让他们交点打断,而用gh自身的逻辑对地图交点打断,对于少量线段可行,对于地图数据如此庞大的信息量,gh的运算法则和逻辑效率低下甚至容易造成崩溃,我又自己写了python代码来将他们互相打断。其他的不说了,说多了都是泪。。。
4.模拟随机感
由于人们的行进路线并不都是是沿着大马路的中线,所以我对模拟出的人流线进行一定量的偏移,让他们产生人们行走时略有偏差的效果。我在这里只加入了简单的偏移,还可以通过连电池模拟出“抄近路”、“走回头路”、“绕远路”等更加真实复杂的特殊情况。
5.导出流线并处理
选中模拟出的流线,烘焙到rhino中,选中烘焙出来的流线,将他们导出为.ai文件,在AI中的处理相当简单,选中所有的流线,调整颜色和粗细,降低透明度,混合模式改为差值或正片叠底均可。最后,将文件导出成背景透明的png。
6.获得底图
还需要能够展示街道和地形的底图。我在mapbox上自己定制了显示风格,取得了manhattan地区的底图,mapbox实际上使用的也是osm数据文件,只不过通过定制显示风格渲染出你所需要的地图图底,这比自己用osm文件画快多了,由于使用了几乎一样的数据来源,我们的流线图和这张底图应该是可以完美对位的。底图制作的具体教程可以参考这一篇答案,感谢作者:
如何做高大上的城市肌理分析图? - Adobe Photoshop
7.最终处理
在ps中将地图底图和背景透明的流线png对好位,这张图就完成了
希望能给大家提供思路~欢迎大神斧正~希望能给大家提供思路~欢迎大神斧正~
©版权声明
本文来自 知乎 禁止以建筑学院编辑版本转载,如有转载请联系原作者,长期接受各类作品、资讯投稿。