在上次發(fā)布的文章中,只給出了矩陣索引的原理,并沒有說明相應的操作注意事項。為了使新用戶更容易理解創(chuàng)建索引操作,這次重新發(fā)布并補充說明矩陣索引的操作設置。
TransCAD的數據庫自帶ID字段是自動管理地理要素的需要,這樣可以減少用戶編輯的工作量,實現自動管理(例如EMME軟件,添加一個路段,用戶需要先添加兩個節(jié)點FromNode和ToNode,然后再添加路段)。
舉個例子,在路網維護中,ID編號1-10的路段,后來你刪除了ID=5的路段,新增的路段ID就是11,不會是5。如果用戶希望重新編號,只要自己添加一個字段,編碼后導出新的地理文件的ID字段選擇為你自己定義的字段即可。
由于地理文件的ID字段是自動生成的,基于以上特點,為了方便管理,一般用戶會自己進行自定義編碼(添加字段編碼即可),例如對交通小區(qū)的編碼。為了提高計算效率和將模型計算結果和GIS數據關聯,TransCAD的交通分配等使用數據庫自動的ID字段值,因此,用戶需要做一個“索引”,即把自己的編碼和數據庫的ID對應起來。
EMME,VISUM或者CUBE,一般會把形心連線和形心點,作為單獨的管理對象,甚至在界面里看起來是不同的圖層。根據交通分配網絡算法等原理,實際上形心連線和形心點,是和路網、公交超級網絡都是放在一起參與運算的,是一張網中的輔助link和node的特殊情況。
例如一個形心點連接了2個以上的形心連線,TransCAD就可以設置是否允許穿越形心(其他軟件一般是不允許穿越)。如在EMME軟件中,建立交通模型數據庫時,會讓你定義有多少交通小區(qū),如果定義1000個,可以只使用900個形心(當然矩陣都是1000*1000,有點浪費存儲空間,emme4以后的矩陣也采取了壓縮技術,會好一點),一般把節(jié)點1-1000的號碼留給形心。
如果后面超過1000個小區(qū)了,那可能需要重新定義他的bank(數據庫)了。TransCAD的處理方法是,不管用戶的節(jié)點自動編碼多大和多亂,用戶需要做一個自定義交通小區(qū)編碼和形心節(jié)點ID的對應表(通過地理分析運算很快就完成,具體的做法是:在節(jié)點數據表選擇要處理的形心記錄到選擇集,右擊交通小區(qū)號碼字段,Fill填充,用TAG方法,然后選擇交通小區(qū)圖層里定義的編碼字段即可),這樣做的好處是,隨時可以把哪些點當做形心,或者哪些路段當做形心連線,不事先約定交通小區(qū)數。
例如,高速公路網的運行OD數據,相關聯的出入口OD的形心單獨設置,和通常意義的交通小區(qū)形心不同,可以在“一張網”中同時方便地管理。一個精細的全市交通模型,有時候針對局部區(qū)域的分析,其他區(qū)域可以用大區(qū)或者中區(qū)的形心連線和形心點臨時代替,以減少不關心區(qū)域的分配計算量。當然,局部的交通區(qū)域分析需要細化交通分區(qū),用戶也可以隨心所欲地切分交通小區(qū)并添加形心。
具體地說,自己編號的交通小區(qū)是101--105(ZONE_ID字段,可以通過交通小區(qū)圖層地理分析計算自動得到,前面已經講述),對應的形心在路網上的節(jié)點編號是90001-90005(ID字段)。
矩陣索引的另外一個作用是,使用不同對應的編號、字符等顯示矩陣,例如可以是地鐵站名稱顯示票價矩陣,也可以索引為站點編號,或者其他的定義編號,這和矩陣標簽功能類似。
以上矩陣索引相關內容,在TransModeler中同理。
為了便于用戶操作,這里再對創(chuàng)建矩陣索引的界面設置做點說明。
(1)TransCAD的一個矩陣文件里面可以有很多個矩陣,但他們的有一些相同的基本信息,例如矩陣索引。因此建立矩陣索引是針對一個矩陣文件的所有矩陣的。
(2)矩陣索引有時候需要將矩陣編號從交通小區(qū)編碼(TAZ或ZONE_ID)轉為節(jié)點編碼(ID),有時候也需要將矩陣編號反過來從節(jié)點編碼(ID)轉到交通小區(qū)編碼(TAZ或ZONE_ID)。前者主要是指按照交通分區(qū)計算得到矩陣,需要在網絡中轉為節(jié)點ID編碼進行交通分配,公交分配等。
后者主要是指網絡中得到的成本Skim矩陣,如OD對的時間,距離等矩陣,需要轉換為交通小區(qū)編碼進行方式劃分計算等。
TIP1:通常情況。一般來說,矩陣索引的數據表可以采用網絡的節(jié)點圖層(Nodes、Endpoits等),節(jié)點的數量往往多余矩陣的維度,因此節(jié)點圖層會有一個選擇集(例如形心集合Centroids),選擇相應數量的節(jié)點和矩陣維度對應。
TIP2:從交通小區(qū)編碼(TAZ或ZONE_ID)轉為節(jié)點編碼(ID)。索引取名為TAZ2ID。矩陣現有基本索引中的Field要選擇交通小區(qū)編碼,本例中對話框上部的Field選為TAZ。索引后的編碼,要選路網節(jié)點圖層的編碼,本例中對話框下部的Field選為ID。新的索引中,集合Selection選擇節(jié)點圖層中預先設置的形心集合Centroids。
TIP3:從節(jié)點編碼(ID)轉到交通小區(qū)編碼(TAZ或ZONE_ID)。索引取名為ID2TAZ。矩陣現有基本索引中的Field要選擇節(jié)點編碼,本例中對話框上部(現有矩陣索引的編碼)的Field選為ID。索引后的編碼,要選交通小區(qū)的編碼,本例中對話框下部(新矩陣索引的編碼)的Field選為TAZ。新的索引中,集合Selection仍然選擇節(jié)點圖層中預先設置的形心集合Centroids。
TIP4:索引后的矩陣維度變小。一般情況下,節(jié)點圖層選擇集(例如形心集合Centroids)要素的數量和矩陣維度對應。特殊情況下,也可以只選擇一部分矩陣要素在索引轉換后顯示。例如,全市交通模型中有市內的交通小區(qū)形心點2000個,對外交通道口特殊形心50個。
如果矩陣是2050*2050,但索引得到的只要2000*2000的矩陣。譬如方式選擇時,希望道路網絡2050*2050Skim矩陣轉為市內交通小區(qū)編碼,即TIP3的情況(這里只是打個比方,當然Skim矩陣的時候可以只選2000個市內小區(qū))。這時,對話框下部Selection集合中只選擇了2000個市內交通小區(qū)形心,索引后得到的矩陣就會變成2000*2000。
TIP5:索引后的矩陣維度變大。有些情況下,用戶對話框上部選擇的編碼字段的所有值,沒有被矩陣現有索引的編號全部包含。簡單點說,就是節(jié)點圖層的形心數量大于矩陣維度,或者說有些要索引的原始ID,在矩陣中是沒有的。
例如全市矩陣是基于全市網絡節(jié)點ID編號得到的OD,現在有一個子區(qū)域的矩陣,矩陣編號值僅僅包含全市網絡的一部分ID,想更新一下這部分數據,但不想單獨再選擇一次子區(qū)域矩陣的形心(或者把小矩陣索引為和大矩陣一致便于操作),就要先把子區(qū)域矩陣索引修改一致后進行更新,用戶實際上也只是需要使用矩陣的一部分。
這時,對話框上部需要勾選“Allow IDs not in Matrix”,否則會提示出錯。彈出界面提示用戶:
這些算是高級應用了,初學者即使沒碰到這種應用情況,也會接收到類似的界面錯誤彈出,感到力不從心。主要原因還是沒搞清對話框上部是矩陣當前索引的情況設置,下部是矩陣新的索引情況設置,并需要在節(jié)點集合中選擇合適數量的要素。常見的錯誤就是TIP2和TIP3的界面設置搞反了,或者形心集合沒選對。
TIP6:行列數不同的矩陣索引。TransCAD的矩陣不一定需要N*N的方陣,可以是M*N,例如停車換乘(P+R)矩陣。這時矩陣的行和列要分別建立索引,即用戶界面的User for分別選擇Rows和Columns,二不是選Both。
來源:TransCAD和TransModeler交通軟件
編輯:jq
-
CAD
+關注
關注
17文章
1092瀏覽量
72497
原文標題:深入理解TransCAD矩陣索引轉換和操作
文章出處:【微信號:simulink123,微信公眾號:MatlabSimulixnk】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論