在上次发布的文章中,只给出了矩阵索引的原理,并没有说明相应的操作注意事项。为了使新用户更容易理解创建索引操作,这次重新发布并补充说明矩阵索引的操作设置。
TransCAD的数据库自带ID字段是自动管理地理要素的需要,这样可以减少用户编辑的工作量,实现自动管理(例如EMME软件,添加一个路段,用户需要先添加两个节点FromNode和ToNode,然后再添加路段)。
举个例子,在路网维护中,ID编号1-10的路段,后来你删除了ID=5的路段,新增的路段ID就是11,不会是5。如果用户希望重新编号,只要自己添加一个字段,编码后导出新的地理文件的ID字段选择为你自己定义的字段即可。
由于地理文件的ID字段是自动生成的,基于以上特点,为了方便管理,一般用户会自己进行自定义编码(添加字段编码即可),例如对交通小区的编码。为了提高计算效率和将模型计算结果和GIS数据关联,TransCAD的交通分配等使用数据库自动的ID字段值,因此,用户需要做一个“索引”,即把自己的编码和数据库的ID对应起来。
EMME,VISUM或者CUBE,一般会把形心连线和形心点,作为单独的管理对象,甚至在界面里看起来是不同的图层。根据交通分配网络算法等原理,实际上形心连线和形心点,是和路网、公交超级网络都是放在一起参与运算的,是一张网中的辅助link和node的特殊情况。
例如一个形心点连接了2个以上的形心连线,TransCAD就可以设置是否允许穿越形心(其他软件一般是不允许穿越)。如在EMME软件中,建立交通模型数据库时,会让你定义有多少交通小区,如果定义1000个,可以只使用900个形心(当然矩阵都是1000*1000,有点浪费存储空间,emme4以后的矩阵也采取了压缩技术,会好一点),一般把节点1-1000的号码留给形心。
如果后面超过1000个小区了,那可能需要重新定义他的bank(数据库)了。TransCAD的处理方法是,不管用户的节点自动编码多大和多乱,用户需要做一个自定义交通小区编码和形心节点ID的对应表(通过地理分析运算很快就完成,具体的做法是:在节点数据表选择要处理的形心记录到选择集,右击交通小区号码字段,Fill填充,用TAG方法,然后选择交通小区图层里定义的编码字段即可),这样做的好处是,随时可以把哪些点当做形心,或者哪些路段当做形心连线,不事先约定交通小区数。
例如,高速公路网的运行OD数据,相关联的出入口OD的形心单独设置,和通常意义的交通小区形心不同,可以在“一张网”中同时方便地管理。一个精细的全市交通模型,有时候针对局部区域的分析,其他区域可以用大区或者中区的形心连线和形心点临时代替,以减少不关心区域的分配计算量。当然,局部的交通区域分析需要细化交通分区,用户也可以随心所欲地切分交通小区并添加形心。
具体地说,自己编号的交通小区是101--105(ZONE_ID字段,可以通过交通小区图层地理分析计算自动得到,前面已经讲述),对应的形心在路网上的节点编号是90001-90005(ID字段)。
矩阵索引的另外一个作用是,使用不同对应的编号、字符等显示矩阵,例如可以是地铁站名称显示票价矩阵,也可以索引为站点编号,或者其他的定义编号,这和矩阵标签功能类似。
以上矩阵索引相关内容,在TransModeler中同理。
为了便于用户操作,这里再对创建矩阵索引的界面设置做点说明。
(1)TransCAD的一个矩阵文件里面可以有很多个矩阵,但他们的有一些相同的基本信息,例如矩阵索引。因此建立矩阵索引是针对一个矩阵文件的所有矩阵的。
(2)矩阵索引有时候需要将矩阵编号从交通小区编码(TAZ或ZONE_ID)转为节点编码(ID),有时候也需要将矩阵编号反过来从节点编码(ID)转到交通小区编码(TAZ或ZONE_ID)。前者主要是指按照交通分区计算得到矩阵,需要在网络中转为节点ID编码进行交通分配,公交分配等。
后者主要是指网络中得到的成本Skim矩阵,如OD对的时间,距离等矩阵,需要转换为交通小区编码进行方式划分计算等。
TIP1:通常情况。一般来说,矩阵索引的数据表可以采用网络的节点图层(Nodes、Endpoits等),节点的数量往往多余矩阵的维度,因此节点图层会有一个选择集(例如形心集合Centroids),选择相应数量的节点和矩阵维度对应。
TIP2:从交通小区编码(TAZ或ZONE_ID)转为节点编码(ID)。索引取名为TAZ2ID。矩阵现有基本索引中的Field要选择交通小区编码,本例中对话框上部的Field选为TAZ。索引后的编码,要选路网节点图层的编码,本例中对话框下部的Field选为ID。新的索引中,集合Selection选择节点图层中预先设置的形心集合Centroids。
TIP3:从节点编码(ID)转到交通小区编码(TAZ或ZONE_ID)。索引取名为ID2TAZ。矩阵现有基本索引中的Field要选择节点编码,本例中对话框上部(现有矩阵索引的编码)的Field选为ID。索引后的编码,要选交通小区的编码,本例中对话框下部(新矩阵索引的编码)的Field选为TAZ。新的索引中,集合Selection仍然选择节点图层中预先设置的形心集合Centroids。
TIP4:索引后的矩阵维度变小。一般情况下,节点图层选择集(例如形心集合Centroids)要素的数量和矩阵维度对应。特殊情况下,也可以只选择一部分矩阵要素在索引转换后显示。例如,全市交通模型中有市内的交通小区形心点2000个,对外交通道口特殊形心50个。
如果矩阵是2050*2050,但索引得到的只要2000*2000的矩阵。譬如方式选择时,希望道路网络2050*2050Skim矩阵转为市内交通小区编码,即TIP3的情况(这里只是打个比方,当然Skim矩阵的时候可以只选2000个市内小区)。这时,对话框下部Selection集合中只选择了2000个市内交通小区形心,索引后得到的矩阵就会变成2000*2000。
TIP5:索引后的矩阵维度变大。有些情况下,用户对话框上部选择的编码字段的所有值,没有被矩阵现有索引的编号全部包含。简单点说,就是节点图层的形心数量大于矩阵维度,或者说有些要索引的原始ID,在矩阵中是没有的。
例如全市矩阵是基于全市网络节点ID编号得到的OD,现在有一个子区域的矩阵,矩阵编号值仅仅包含全市网络的一部分ID,想更新一下这部分数据,但不想单独再选择一次子区域矩阵的形心(或者把小矩阵索引为和大矩阵一致便于操作),就要先把子区域矩阵索引修改一致后进行更新,用户实际上也只是需要使用矩阵的一部分。
这时,对话框上部需要勾选“Allow IDs not in Matrix”,否则会提示出错。弹出界面提示用户:
这些算是高级应用了,初学者即使没碰到这种应用情况,也会接收到类似的界面错误弹出,感到力不从心。主要原因还是没搞清对话框上部是矩阵当前索引的情况设置,下部是矩阵新的索引情况设置,并需要在节点集合中选择合适数量的要素。常见的错误就是TIP2和TIP3的界面设置搞反了,或者形心集合没选对。
TIP6:行列数不同的矩阵索引。TransCAD的矩阵不一定需要N*N的方阵,可以是M*N,例如停车换乘(P+R)矩阵。这时矩阵的行和列要分别建立索引,即用户界面的User for分别选择Rows和Columns,二不是选Both。
来源:TransCAD和TransModeler交通软件
编辑:jq
-
CAD
+关注
关注
17文章
1070浏览量
72283
原文标题:深入理解TransCAD矩阵索引转换和操作
文章出处:【微信号:simulink123,微信公众号:MatlabSimulixnk】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论