python画建筑分析图_教你用GH绘制酷炫的流线分析图
重要聲明:這篇教程純粹為繪圖方法的介紹,其中的“人流數(shù)據(jù)”為YY而來的偽數(shù)據(jù),沒有真實(shí)性及可參考性,不可以作為科研方法!請(qǐng)相關(guān)課題的研究者使用合理的、正確的、實(shí)際的方法采集并分析數(shù)據(jù),以免出現(xiàn)數(shù)據(jù)造假或研究成果不可靠的局面!
歡迎各位大神能夠?yàn)榇蠹艺故緮?shù)據(jù)收集及處理的正確方法^3^,筆者才疏學(xué)淺,先為大家擼上繪圖方法:
先上最終效果
人流數(shù)據(jù)上面說過了,是YY而來,通過gh進(jìn)行組織和處理。
我選擇了地理信息完備的Manhattan地區(qū)作為案例,使用rhino+grasshopper+ai+ps完成繪圖,步驟簡(jiǎn)介如下:
1.取得地理信息
首先要獲得某一地區(qū)的城市路網(wǎng),我首先登陸了OpenStreetMap,搜尋我想要的地區(qū)路網(wǎng),然而網(wǎng)速感人,高墻感人,基本下載不下來,我只能來到另外一個(gè)網(wǎng)站下載了New York地區(qū)的osm完整文件。
下載下來的osm.bz2文件由于是整個(gè)New York地區(qū)的,解壓開后容量高達(dá)3GB,我們只需要Manhattan地區(qū)的,因此需要使用一個(gè)操作界面極不友善的小插件osmconvert來將osm根據(jù)需求范圍的經(jīng)緯度切割至合理大小。
2.地理信息導(dǎo)入Rhino+Grasshopper
由于不會(huì)使用GIS類地理信息軟件,所以我選擇使用Grasshopper中的Elk插件來讀取osm文件中的地理信息,讀取進(jìn)來的數(shù)據(jù)是點(diǎn)云,我選擇出主要的路網(wǎng)點(diǎn)云,并將它們連接成線。
3.模擬數(shù)據(jù)
我在城市區(qū)域內(nèi)隨機(jī)生成一些點(diǎn)代表人流起點(diǎn),又在另外一些地方生成隨機(jī)點(diǎn)代表人流終點(diǎn),讓他們一一對(duì)應(yīng),由于人們傾向于選擇近便的路抵達(dá)目的地,所以我求得了起點(diǎn)和終點(diǎn)經(jīng)過整個(gè)地圖的最短路徑,是不是有點(diǎn)兒像地圖導(dǎo)航。這一步驟說起來容易做起來非常復(fù)雜,我越過了無數(shù)個(gè)坑才成功。舉一例來說,elk導(dǎo)入進(jìn)來的路是連續(xù)的、不相交的,這種路網(wǎng)是無法求得最短路徑的,我需要先讓他們交點(diǎn)打斷,而用gh自身的邏輯對(duì)地圖交點(diǎn)打斷,對(duì)于少量線段可行,對(duì)于地圖數(shù)據(jù)如此龐大的信息量,gh的運(yùn)算法則和邏輯效率低下甚至容易造成崩潰,我又自己寫了python代碼來將他們互相打斷。其他的不說了,說多了都是淚。。。
4.模擬隨機(jī)感
由于人們的行進(jìn)路線并不都是是沿著大馬路的中線,所以我對(duì)模擬出的人流線進(jìn)行一定量的偏移,讓他們產(chǎn)生人們行走時(shí)略有偏差的效果。我在這里只加入了簡(jiǎn)單的偏移,還可以通過連電池模擬出“抄近路”、“走回頭路”、“繞遠(yuǎn)路”等更加真實(shí)復(fù)雜的特殊情況。
5.導(dǎo)出流線并處理
選中模擬出的流線,烘焙到rhino中,選中烘焙出來的流線,將他們導(dǎo)出為.ai文件,在AI中的處理相當(dāng)簡(jiǎn)單,選中所有的流線,調(diào)整顏色和粗細(xì),降低透明度,混合模式改為差值或正片疊底均可。最后,將文件導(dǎo)出成背景透明的png。
6.獲得底圖
還需要能夠展示街道和地形的底圖。我在mapbox上自己定制了顯示風(fēng)格,取得了manhattan地區(qū)的底圖,mapbox實(shí)際上使用的也是osm數(shù)據(jù)文件,只不過通過定制顯示風(fēng)格渲染出你所需要的地圖圖底,這比自己用osm文件畫快多了,由于使用了幾乎一樣的數(shù)據(jù)來源,我們的流線圖和這張底圖應(yīng)該是可以完美對(duì)位的。底圖制作的具體教程可以參考這一篇答案,感謝作者:
如何做高大上的城市肌理分析圖? - Adobe Photoshop
7.最終處理
在ps中將地圖底圖和背景透明的流線png對(duì)好位,這張圖就完成了
希望能給大家提供思路~歡迎大神斧正~希望能給大家提供思路~歡迎大神斧正~
總結(jié)
以上是生活随笔為你收集整理的python画建筑分析图_教你用GH绘制酷炫的流线分析图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SqlServer图形数据库初体验
- 下一篇: python的除法_python中的除法