【visum工作笔记】之六
反正也不加班,所以就把能想到的尽量记下,顺便温习一下。今天准备再画路网时,突然感觉很陌生,还是没有解决如何将dwg的图转成SHP的,这样就能导入到visum了。
不过我想到自己曾经将dwg格式的图当做backgroud导入到ver中,但是今天试了下没有成功,我怀疑是110中没有识别dwg中带有的geograph的信息,所有尝试使用了下130,结果成功了,这是第二是问题,为何不能导入背景了呢?
这是问题,我尚未解决,先放一边。还是谈谈原来的那个macro编程吧。
在模型中我们通常会用到PUT分配,而visum提供了一种capacity restraint的分配方法。
Sub SetTimeProfileTimePenalty()Dim Cap As LongDim Sat As DoubleDim Vol As DoubleDim Time1 As DoubleDim TPenalty As DoubleDim OldTPenalty As DoubleCapFactor = ...PassImp = 0For Each tp In TProfiles.GetAllCap = tp.attvalue(CapAttribute & "(AP)") * CapFactorSet Items = tp.TimeProfileItemsFor Each tpi In Items.GetAllVol = tpi.attvalue("VOL(AP)")Time1 = tpi.attvalue("POSTRUNTIME") / 60If Cap = 0 ThenSat = 0TPenalty = 1ElseSat = Vol / CapTPenalty = 1 + CR_A * Sat ^ CR_BEnd IfOldTPenalty = tpi.attvalue("ADDVAL") / 100PassImp = PassImp + Time1 * TPenalty * VolTPenalty = OldTPenalty * (1 - SmoothFactor) + TPenalty * SmoothFactortpi.attvalue("ADDVAL") = Round(100 * TPenalty, 0)Next tpiNext tpEnd Sub
注:在每个TimeProfileItem的addvalue属性储存一个初始的TimePenalty。别急这只是给予每个 time profile items定义了一个属性,而如何让分配中体现这个参数,需要在procedure中的parameter设置impedence,在in-vehicle time 参数中引用上述的addValue,因为前面我们用的是100,所以此处再乘以0.01。目的是将这个factor控制在0~1之间。
在14号那天,我详细参看了COM documentation 得到了许多有用的method。下面列举一些向PY接口提供的Helpers Module中常用的方法
1. GetMulti( Visum.Net.Nodes,"No")
此方法的argument是container和attribute,返回的是list
2. SetMulti(Visum.Net.Nodes,"No",[1,2,3])
此方法的argument是container,attribute 和list, 无返回值。与上面的方法组成经典的get set 语句,用于获取和设置某个元素的参数列表。
3. GetODMatrix(Visum,"TTC","C") or GetODMatrix(Visum,3)
此方法为获取ODmatrix 或者可以将OD改成Skim。前一个argument为Code和segment ,后一个则是No也就是matrix的编号。
4. SetODMatix(Visum,which, values,additive*)
此方法为设置ODmatrix,其中which是指定编号,values是指matrix中的值,而additive是optional的,是添加的意思,默认为False。
5. CreateVisum()
此方法为建立visum对象,用于调用
6.CreateObject("Excel.Application")
创建excel应用对象,这样就能使用excel中的各项内容了
7. SkimLookup(Visum,"TTC","C")
用于返回对应矩阵的No。 可以由此结合上一章所说的GetmatrixNumber(Code)方法
8. AttributeExists(Visum,Net.Zones,"Test")
返回bool值,判断container中是否有对应的attributes
06.13&06.14
【visum工作笔记】之六相关推荐
- 【visum工作笔记】之十 —— import EMME2 地图
十月假期比较懒所以都没记下什么心得,主要是工作太单一,不是翻译就是查资料,感觉自己一直在做打杂的活.最近在看福尔摩斯探案集,明白了观看和观察的区别,我们更多的是无意的一瞥却从来不去对一些东西深究.就像 ...
- 【visum工作笔记】之一
其实通过Manual就完全可以掌握visum的操作方法,此文只是作为一位新手开始学习和开发的过程中,遇到的一系列问题和答案,仅供参考. 1.如何开启一次建模? 如果已经有了.ver的文件,那是最好了. ...
- 【visum工作笔记之十二——交通分布】
直到十一月的最后一天才想到要为最近的工作总结下,前端时间总是加班,都没什么心思反省,看来吾日三省吾身很难达到啊. 因为项目中要预测某条通道上的量,希望有一个大致的分布,所以还是需要在原有visum中间 ...
- 【visum工作笔记】之二
双休日其实有很多时间,但是笔记就在那里不会跑掉,所以不急. 终于轮到visum培训的那段时间了,在此之前我只是参照着manual自己摸索,培训的话能积累很多快速解决问题的方法. 1. visum中有哪 ...
- 【visum工作笔记】之五
一本笔记竟然只有截取到那么一些有用的内容,可想而知我的笔记有多少废话啊.不过多说废话的人比较快乐! 在进入第三个月的时候,我已经开始慢慢接触到visum的接口了,可以说是飞速的掉进了一个很深的坑. 1 ...
- 【visum工作笔记】之八
基于上节提到的关于不同版本之间visum的不同特性,其中很多都是新功能的增加,界面的优化以及原本bug的修复.而其中COM一个很明显的,而又常用的东西改变了,导致我花了很长时间才解决了这个问题. 1. ...
- 【Visum工作笔记之十三——GPA】
如果说除了方便之外还需要说一个喜欢visum的理由那就是它强大的图形表现技能.当然这方便GIS做的也很好,但是比较难掌握,功能强大的背后是复杂的使用.而visum的GPA却带给我们很多的方便. 因为根 ...
- 【visum工作笔记】之三
其实一直想静下心来好好的总结一下visum的COM.其实从run script 程序中就可以看出visum目前只适用两种语言的接口: 一个是VBA ,另一个就是Python. 读取和编写这两种语言的s ...
- 【visum工作笔记】之十一 —— Import EMME/2 QA
上一章讲到将emme2格式的信息导入到visum中,实际证明在导入的过程中能碰到很多意想不到的问题.虽然解决问题的过程很痛苦,但是回头看来其实都是一些我们思路上的局限. 1. 如何解决modes.in ...
最新文章
- 移动端自动化测试 Appium 框架之数据驱动
- 在echarts中自定义提示框内容
- Pixhawk-姿态解算-互补滤波
- mac终端一次命令在多个虚拟机执行_Windows给力!可以扔掉Linux虚拟机了!
- form、document.all[].value的数字处理
- JAVA 实现 JWT
- IntelliJ IDEA for Mac在MacOS模式下的搜索/查询/查找快捷键(Search Shortcut)
- oracle之trunc(sysdate)
- 正则表达式符号解释1
- 【入门】Spring-Boot项目配置Mysql数据库
- 使用wampserver部署的织梦站点无法登录后台
- 推荐 7 个超棒的监控工具
- 韩国大面积断网事情,可能遭受了DDoS攻击,网友:真的是黑客攻击吗?
- 三星s4i9500+android4.2.2基带,【教程扫盲】S4该如何选择基带和底包[转自机锋]
- python判断给定的手机号是否存在
- office 2010-初次接触
- python实现遗传算法实例_遗传算法求解旅行商问题
- 什么是端口映射?内网端口映射工具推荐
- 实训十七:交换机单端口环路检测配置
- Arch Linux 安装后无法联网的问题