|
彈指一揮間,ArcGIS筆記已經(jīng)很久沒有更新了。這里先給大家道個(gè)歉,由于前段時(shí)間趕項(xiàng)目,加之錄python視頻,因此耽擱了很久。這里需要說明的是,我們公眾號(hào)會(huì)持續(xù)更新下去,希望大家多多支持。 我們知道,城市的中心一般是商業(yè)、商務(wù)高度發(fā)達(dá),公共服務(wù)較為集中的區(qū)域。從市中心外圍前往市中心享受各類公共服務(wù)是市民的重要權(quán)利之一。但受城市交通條件的影響,各區(qū)域前往市中心的交通狀況差異較大。有效識(shí)別各區(qū)域前往市中心的交通時(shí)間,一方面有助于我們認(rèn)識(shí)各區(qū)域交通狀況,從而有針對(duì)性的進(jìn)行區(qū)域交通條件改進(jìn);另一方面,有助于我們進(jìn)行用地優(yōu)化,從而實(shí)現(xiàn)交通與用地的協(xié)調(diào)。當(dāng)然,前往市中心休閑、購(gòu)物是我們年輕人最為重要的假日活動(dòng),在房?jī)r(jià)高漲的當(dāng)下,選擇交通條件優(yōu)越、房?jī)r(jià)相對(duì)較低的區(qū)域是我們擇居的原則之一,故研究城市中心交通時(shí)空圈也具有重要意義。本期應(yīng)網(wǎng)友要求,帶來城市中心交通時(shí)空圈的技術(shù)方法講解。 1案例選擇 本次案例城市選擇成都市。首先,成都是我的家鄉(xiāng),我對(duì)成都有著深厚的感情(要整就整成都);其次,成都中心城區(qū)受自然條件影響相對(duì)較少,不像南京有紫金山,武漢有東湖、長(zhǎng)江等自然條件的限制,網(wǎng)格之間可實(shí)現(xiàn)無差別的比較;最后,也是最為重要的,成都是環(huán)形放射網(wǎng)狀的路網(wǎng)格局,不同方位的交通狀況差異性并不十分明顯,并且市中心正好位于幾何中心,在交通條件差異不大的情況下,其交通通達(dá)績(jī)效究竟如何? 2方法步驟 第一步,我們需要獲取研究區(qū)域的范圍,以成都為例,我們獲取了中心城區(qū),包括天府新區(qū)的規(guī)劃范圍線。第二步,我們要將規(guī)劃范圍生成面,并生成網(wǎng)格(這里我們生成1000mX1000m的網(wǎng)格);第三步,我們要獲取各網(wǎng)格中心坐標(biāo)和市中心坐標(biāo)(市中心選擇天府廣場(chǎng)中心);第四步,運(yùn)用百度API獲取各網(wǎng)格中心坐標(biāo)至市中心坐標(biāo)的時(shí)間(http://lbsyun.baidu.com/index.php?title=webapi/direction-api,不再具體解釋,自己看參數(shù))。第五步,空間可視化后進(jìn)行相關(guān)分析,即可獲得城市中心交通時(shí)空圈。 3方法實(shí)施 在對(duì)方法進(jìn)行具體實(shí)施前,我想感謝網(wǎng)友web攻城獅之路。他編寫了Python代碼用于抓取路線時(shí)間,具體見http://blog.csdn.net/taijiedi13/article/details/51279959。我在其基礎(chǔ)上結(jié)合規(guī)劃師的思維邏輯對(duì)代碼進(jìn)行優(yōu)化。主要的優(yōu)化部分是運(yùn)用arcpy來實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)更新。我猜想該網(wǎng)友并不是城市規(guī)劃專業(yè)的,因此可能未接觸過面向ArcGIS的arcpy,具體代碼調(diào)整后面講具體方法時(shí)會(huì)提到。為了讓大家更清楚的了解流程方法,因此很多地方我是直接運(yùn)用ArcGIS來實(shí)現(xiàn),并未完全采用python。如果網(wǎng)友感興趣,可以自己編寫Python代碼,來實(shí)現(xiàn)全過程的自動(dòng)化。 第一步:獲取范圍。 這個(gè)不做過多介紹,你要研究,好歹有個(gè)基礎(chǔ)的CAD范圍線啊。別問我怎么找,發(fā)揮自己聰明頭腦。找不到,自己拿豆腐撞頭。 第二步:生成網(wǎng)格。 將線生成面后,對(duì)面進(jìn)行坐標(biāo)調(diào)整,調(diào)整為百度十進(jìn)制經(jīng)緯度坐標(biāo)系。由于我們的研究范圍大,因此位置大致準(zhǔn)就行。建議在百度地圖中找好參照點(diǎn)后,運(yùn)用空間校正來實(shí)現(xiàn)??臻g坐標(biāo)準(zhǔn)確后,用創(chuàng)建漁網(wǎng)工具來生成1000mX1000m的漁網(wǎng)。生成的文件有點(diǎn)與線兩個(gè)要素,并將線生成面。最終,我們有了網(wǎng)格中心點(diǎn)與網(wǎng)格面兩個(gè)我們需要的文件(圖1)。
第三步:獲取坐標(biāo)。 先講下獲取城市中心(天府廣場(chǎng))坐標(biāo)。運(yùn)用百度獲取坐標(biāo)系統(tǒng)工具(http://api.map.baidu.com/lbsapi/getpoint/index.html)可以輕松獲取(圖2)。
接下來,講下獲取各網(wǎng)格中心點(diǎn)的坐標(biāo)。打開點(diǎn)要素表,添加經(jīng)度、緯度、時(shí)間3個(gè)字段(圖3,時(shí)間字段為后續(xù)記錄時(shí)間),并用計(jì)算幾何命令分別計(jì)算中心點(diǎn)的坐標(biāo),計(jì)算是要選擇十進(jìn)制,X坐標(biāo)為經(jīng)度,Y坐標(biāo)為緯度(圖4)。 這樣,我們就獲取了起點(diǎn)(N各網(wǎng)格中心),終點(diǎn)(天府廣場(chǎng))的坐標(biāo)。
第四步:獲取時(shí)間 這一步驟為重點(diǎn)。在這個(gè)程序中獲取百度API的時(shí)間函數(shù)get_time()為直接來自網(wǎng)友web攻城獅之路,這些代碼我不做介紹,我只給大家講下我調(diào)整的代碼(圖5)。我將他的run()去掉,用數(shù)據(jù)訪問模塊的UpdateCursor來實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)更新。在網(wǎng)友web攻城獅之路的代碼中,需要將點(diǎn)坐標(biāo)統(tǒng)一封裝到excel文件中,然后再讀取每一個(gè)坐標(biāo),最終還要將獲取的時(shí)間再寫入excel文件。而且最終生成的時(shí)間數(shù)據(jù)還要導(dǎo)入ArcGIS進(jìn)行空間可視化。過程過于復(fù)雜,而且比較繁瑣,這一步驟完全可以運(yùn)用Arcpy中的UpdateCursor來高效實(shí)現(xiàn)。 圖5 考慮到百度起點(diǎn)坐標(biāo)的引用規(guī)則(緯度在前,經(jīng)度在后),我們用變量coord來存儲(chǔ)每一個(gè)坐標(biāo)數(shù)據(jù),并調(diào)用get_time()來獲取時(shí)間數(shù)據(jù)。由于獲取的時(shí)間為秒,而我最后想用分鐘來表示,所以代碼53將秒數(shù)據(jù)改為分鐘數(shù)據(jù)。在代碼測(cè)試過程中,我遇到了JSON數(shù)據(jù)報(bào)錯(cuò),這是由于百度JSON數(shù)據(jù)規(guī)范性所產(chǎn)生的。因此,我加入了try命令進(jìn)行錯(cuò)誤調(diào)試,如果出現(xiàn)錯(cuò)誤,則時(shí)間為0,便于我們后續(xù)檢查數(shù)據(jù)。最后,將獲取的時(shí)間數(shù)據(jù)寫入點(diǎn)文件。 第五步:空間可視化 用空間鏈接,可將點(diǎn)要素中的時(shí)間數(shù)據(jù)記錄入面要素中,并進(jìn)行空間可視化,實(shí)現(xiàn)城市中心交通時(shí)空圈圖的最終生成(圖6、圖7)。我獲取的時(shí)間是10月1日晚11時(shí),由于假期外出車輛較多,故總體交通條件較優(yōu)。大家可以測(cè)試下高峰時(shí)期,估計(jì)時(shí)間會(huì)有所增加。結(jié)論大家自己總結(jié)吧!
圖7 4總結(jié) 全代碼如下。
最后,我想說下,網(wǎng)絡(luò)上的數(shù)據(jù)實(shí)在是太豐富了,我們要善于去利用。時(shí)值國(guó)慶節(jié)期間,游山玩水期間發(fā)表此文,時(shí)間倉(cāng)促,未講清楚的地方請(qǐng)各位看官提出。 祝大家國(guó)慶快樂,吃好玩好! |
|
|