0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TransCAD模型一键运行工具介绍

TransCAD和TransModeler交通软件 来源:TransCAD和TransModeler交通软件 作者:TransCAD和TransModel 2022-04-02 14:22 次阅读

TransCAD软件具备友好的用户界面。然而复杂的模型,通常有很多参数,输入输出数据需要在用户界面设置。例如遇到不同的方案评价、或者模型输入变化要重新运算,如果都去设置对话框的各种参数和操作界面,显然是非常费时费力的。本文介绍如何记录这些设置,并实现一键自动运行模型

很多初级入门的用户,可能忽略了软件的模型设置保存工具模型批处理工具模型设置保存工具主要是针对经常需要的单个模型步骤,用户可以保存相应的设置,以便下次运行直接应用设置。模型批处理工具则包括单个模型步骤或者多个模型步骤的宏录制(类型Excel的操作宏录制),当然也包括一些数据的运算操作的录制,如果结合TransCAD的模型流程图工具,功能将十分强大。有关模型流程图工具的信息,请查阅:TransCAD自动建立模型流程图和界面的方法。下面对这两个工具的应用举例说明:

1、模型设置保存工具

模型设置保存工具主要是针对经常需要的单个模型步骤,用户可以保存相应的设置,以便下次运行直接应用设置。譬如用户对自己的交通分配模型的参数进行设置后,希望把这些参数设置都保存下来,以便下次快捷使用。

Step1:打开TransCAD软件,在菜单“文件——打开工作区”,选择打开教程文件的交通分配工作区Traffic Assign.wrk(通常位于目录C:UsersAdministratorDocumentsCaliperTransCAD 9.0TutorialTraffic Assign.wrk,老的软件版本,可在安装程序文件夹的Tutorial下找到)。

Step2:在菜单“规划模型——静态交通分配——交通分配…”打开交通分配对话框。

7e18c7ce-b241-11ec-aa7f-dac502259ad0.png

7e379b4a-b241-11ec-aa7f-dac502259ad0.png

Step3:在交通分配对话框中修改自己需要的模型参数,这里用户可以做任何参数和输入数据的修改,包括“选项”对话框的各种设置。为了举例,我们修改BPR延误函数的Beta参数值由4改为4.5,迭代次数由500改为300。

7e4db7e0-b241-11ec-aa7f-dac502259ad0.png

Step4:在交通分配对话框中单击“设置”按钮,弹出设置对话框。

7e70968e-b241-11ec-aa7f-dac502259ad0.png

Step5:在设置对话框单击按钮,输入设置的名称和描述,单击保存。设置对话框就会显示一条设置记录。当然针对不同的模型项目参数设置,用户可以保存不同的设置记录,可以按照名称、日期进行排序,以便快捷调用。

7e8307ce-b241-11ec-aa7f-dac502259ad0.png

7e9762c8-b241-11ec-aa7f-dac502259ad0.png

Step6:下次运算交通分配,若要调用这个参数设置,只要在交通分配对话框单击“设置”按钮,弹出设置对话框,单击一条设置记录,然后单击“加载”后,交通分配界面就自动应用了所有参数设置。单击交通分配对话框的“确认”按钮,交通分配程序就开始运行了。如果用户要在此设置基础上做别的修改,则是加载后到交通分配对话框进行修改后再保存即可。

2、TransCAD保存模型设置信息

如果要查看设置信息,先选中一条设置记录,然后在设置对话框单击按钮,便可以弹出设置信息的GISDK宏代码对话框:

7eadf83a-b241-11ec-aa7f-dac502259ad0.png

模型设置的GISDK宏代码对话框代码可以复制出来,也是比较容易阅读的,如果用户使用微软的Visual Studio Code代码编辑器,并安装GISDK插件,就可以看到如下代码形式:

Opts = null Opts.Input.Database= {"Endpoints", "Base Year Network"} // 输入的路网和街道图层名称 Opts.Input.Network = "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\Tutorial\Plan_Net.net"// 输入的交通网络文件 Opts.Input.[ODMatrix Currency] = {"C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\Tutorial\Plan_OD.mtx", "Total(7-9)", "Rows", "Cols"} //输入的OD矩阵文件、矩阵核和矩阵索引 Opts.Field.[VDF Fld Names] = {"[Freeflow Time]", "[AB_AMCapacity/ BA_AMCapacity]", "Alpha", "Beta", "None"} //延误函数对应的输入字段名称 Opts.Global.[Load Method] = "CUE" // 表示共轭FW算法 Opts.Global.[Loading Multiplier] = 1// 加载用于分配OD的倍数因子 Opts.Global.[N Conjugate] = 2 // 共轭梯度算法的共轭数 Opts.Global.Convergence = 0.0001 // 收敛的相对间隙值设置 Opts.Global.Iterations = 300 // 分配迭代数 Opts.Global.[Force Threads] = 12 // 多线程计算使用的CPU线程数目 Opts.Global.[VDF DLL] = "bpr.vdf" // 选择了BPR延误函数 Opts.Global.[VDF Defaults] = {, , 0.15, 4.5, 0}//BPR延误函数的默认参数,软件默认Beta4,本次改为4.5 Opts.Flag.[Do Emission] = 0 // 是否计算尾气排放,0表示否,下同 Opts.Flag.[Do Theme] = 0 // 是否生成流量大小专题和饱和度专题 Opts.Flag.[Do Skipping] = 0 // 是否忽略流量小的OD Opts.Flag.[Do Flow Saving] = 0 // 是否将分配流量保存到路段图层的字段 Opts.Flag.[Do Warm Start] = 0 // 是否热启动 Opts.Flag.[Do Turn Movement] = 0 // 是否报告交叉口转向流量 Opts.Local.[Do Critical] = 0 // 是否进行关键路段/选择路段流量分析 Opts.Local.[Do Tabulation] = 0 // 是否报告制表 Opts.Local.[Do Dynamic Skimming] = 0// 是否动态特征提取 Opts.Local.[Do Iteration Log] = 1 // 是否生成迭代日志 Opts.Local.[Do VMT/VHT Report] = 0 // 是否报告车英里,车小时

上面的GISDK代码对熟悉的编程的人来说非常容易阅读。不过即使用户没有学过GISDK编程,只要英语还可以,也能对里面的参数内容理解十之八九。为了使初级用户能够了解其含义,我们对其用“\”后面的文字进行了注释。因此,如果您需要修改什么参数,不一定要到对话框中修改,直接修改GISDK代码也可以。下面介绍如何录制GISDK代码并一键运行模型:

3、模型批处理工具

Step1:打开TransCAD软件,在菜单“文件——打开工作区”,选择打开教程文件的交通分配工作区Traffic Assign.wrk(同上)。

Step2:在菜单“规划模型——批处理编辑”打开批处理模式工具箱。

7ec54986-b241-11ec-aa7f-dac502259ad0.png

7ef4b810-b241-11ec-aa7f-dac502259ad0.png

Step3:单击批处理工具箱的录制(圆点)按钮,准备录制操作的GISDK宏代码。下来菜单默认为No Run:表示录制过程不运行模型,Dry Run:表示录制过程会得到必要的输出表但不实际运行模型(形式上的输出,表的内容是空的,在多个步骤录制时可以作为下一步骤的输入),Full Run:表示录制过程完整运行模型。

7f0d407e-b241-11ec-aa7f-dac502259ad0.png 

Step4:在菜单“规划模型——静态交通分配——交通分配…”打开交通分配对话框。此时,对话框中的“确认”按钮变成“队列”按钮,按下后表示记录了相应的计算程序。

Step5:在交通分配对话框中修改自己需要的模型参数。修改BPR延误函数的Beta参数值由4改为4.5,迭代次数由500改为300;单击“选项”按钮进入选项对话框,勾选“创建专题”,单击确认返回交通分配对话框。

7f231d40-b241-11ec-aa7f-dac502259ad0.png

7f39efa2-b241-11ec-aa7f-dac502259ad0.png

Step6:在交通分配对话框单击“队列”按钮,弹出输出文件设置对话框,选择要保存分配结果的文件夹,并单击“确认”。这里包含一个流量文件和迭代日志文件:

7f554ba8-b241-11ec-aa7f-dac502259ad0.png

Step7:上述步骤单击确认后,您会发现软件好像什么也没做。但实际上,软件已经记录了交通分配的所有参数设置操作过程。单击批处理工具箱的停止录制(方框)按钮,会询问是否保存批处理内容,单击“是”,选择文件夹输入文件名“test”保存批处理文件。

7f6b5268-b241-11ec-aa7f-dac502259ad0.png

单击“保存”按钮后,Windows自带的笔记本程序会自动打开录制的源代码,不过看起来不大容易阅读。

7f9153be-b241-11ec-aa7f-dac502259ad0.png

我们推荐用微软的Visual Studio Code + GISDK插件来编辑代码。可以在菜单“编辑——首选项…”弹出对话框中的“日志”选项卡,将原代表编辑器改为微软的Visual Studio Code,例如:"C:UsersAdministratorAppDataLocalProgramsMicrosoft VSCodeCode.exe"。

7fa6c3fc-b241-11ec-aa7f-dac502259ad0.png

这样单击“保存”按钮后,自动用Visual Studio Code打开了录制的代码。

7fc4b43e-b241-11ec-aa7f-dac502259ad0.png

至此,交通分配的宏已经录制完毕,下面我们将运行交通分配程序:

Step8:使用菜单“文件——关闭工作区”关闭所有的文件。使用菜单“工具——GISDK应用程序编程——GISDK用户程序开发工具箱”打开GISDK工具箱:

7fdba234-b241-11ec-aa7f-dac502259ad0.png

Step9:选择第一个编译按钮7ff01840-b241-11ec-aa7f-dac502259ad0.png,选择test.rsc文件进行编译。

7fff7696-b241-11ec-aa7f-dac502259ad0.png

Step10:选择第二个测试按钮80178114-b241-11ec-aa7f-dac502259ad0.png,弹出测试对话框输入"BatchRun"。

8025f94c-b241-11ec-aa7f-dac502259ad0.png

Step11:单击“确认”按钮,软件开始运行交通分配。

803dc540-b241-11ec-aa7f-dac502259ad0.png

Step12:运行结束后,在输出文件夹(例子为:C:UsersAdministratorDocumentsCaliperTransCAD9.0)生成了流量和迭代日志两个文件:

806eaf02-b241-11ec-aa7f-dac502259ad0.png

至此,利用批处理工具运行交通分配程序完毕!

您可能要问,什么图也没看到啊。查看分配结果的一个方法是:打开交通分配工作区,然后打开分配结果LinkFlows.bin表,通过ID链接后绘制流量大小和饱和度专题图。另外,也可以是手动分配的时候勾选“选项”对话框的“创建专题”,可以自动创建专题图。

下面我们来测试一下增加OD流量,分配后打开专题地图的效果:

(1)我们按默认参数做一次手动交通分配,然后做设当地图优化设置后(例如隐藏节点图层,形心连线集合),保存地图MyTest.map到同一个目录。

8086a0b2-b241-11ec-aa7f-dac502259ad0.png

(2)在微软Visual Studio Code中把test.rsc文件做如下修改后保存:

[1]矩阵加载系数obj.DemandMultiplier = 1改为obj.DemandMultiplier= 1.2。

[2]在程序末尾ok = obj.Run()和return(ok)语句之间,添加打开地图和刷新地图两行代码:

ok= obj.Run()

OpenMap("C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\MyTest.map",)

RedrawMap()

return(ok)

(3)重复上述Step8-Step12的操作,运行完成后自动打开地图显示流量饱和度专题图。我们发现蓝色虚线方框的路段拥挤程度明显增加了。

80ba9aa2-b241-11ec-aa7f-dac502259ad0.png

可见,无论多少复杂的模型,只要上面录制一次宏,然后编译运行就一键完成了。如果修改一些代码,还可以进行打开地图,对比方案等各种操作。

有人会问,Step8-Step12虽然很简单,但也算不上“一键完成“吧?实际工作中,我们会把运行宏"BatchRun"(名字随便可以改)做到菜单中,或者做到流程图中,就真正做到一键运行模型了。

80dabbb6-b241-11ec-aa7f-dac502259ad0.png

下面是录制的GISDK代码,这些代码都是自动生成的,无需用户编写程序,除了自己添加了2行打开地图和刷新地图的代码(可以查看GISDK帮助)。注意这是最新TransCAD 9.0版本录制的宏,采用了面向对象的GISDK程序。这和老版本的软件录制的程序有所不同,和本文第一部分设置对话框获取设置代码的有些关键词名称也有所变化(老版本完全一致),但不影响对参数意思的理解。

Macro "Batch Run"

RunMacro("Traffic Assignment")

endMacro

Macro "Traffic Assignment"

onerrordo

ShowMessage(GetLastError())

return()

end

obj = CreateObject("Network.Assignment")

obj.LayerDB = "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\Tutorial\Plan_net.DBD"

obj.Network = "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\Tutorial\Plan_Net.net"

obj.ResetClasses()

obj.Method = "CUE"

obj.Iterations = 300

obj.Convergence = 0.0001

obj.DemandMatrix({MatrixFile: "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\Tutorial\Plan_OD.mtx", Matrix: "Total(7-9)", RowIndex: "Rows", ColumnIndex: "Cols"})

obj.AddClass({Demand: "Total(7-9)"})

obj.DelayFunction = {Function: "bpr.vdf", Fields: {"[FreeflowTime]", "[AB_AMCapacity / BA_AMCapacity]", "Alpha", "Beta", "None"},

Defaults:{null, null, 0.15, 4.5, 0}}

obj.DemandMultiplier = 1.2

obj.FlowTable = "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\LinkFlows.bin"

obj.IterationLog = "C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\IterationLog.bin"

ok = obj.Run()

OpenMap("C:\Users\Administrator\Documents\Caliper\TransCAD 9.0\MyTest.map",)

RedrawMap()

return(ok)

endmacro

4、结语

用户可以通过录制TransCAD的各种模型参数、输入输出数据设置,以及多个步骤的联合录制,完成一系列模型流程的一键运算。这在大型复杂模型,或者经常有多方案需要重复运行的模型中十分重要。即使是交通影响评价,有可能也要多次反复测试结果,或者说用户做好模板下次更换输入数据和参数就一键运行得到结果。当然结果的统计汇总分析、可视化等也可以再写点程序自动处理。但软件的模型模块都是可以通过代码录制完成,而不是用户自己编写。

因此,如果用户能够有一定的GISDK编程基础和模型流程图使用经验,那将大大提高工作效率。关于流程图的介绍,可以查阅:TransCAD自动建立模型流程图和界面的方法。后续,我们也将对流程图的具体使用,包括如何嵌入录制的模型程序进行介绍。

审核编辑 :李倩



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 流程图
    +关注

    关注

    2

    文章

    63

    浏览量

    18696
  • 模型
    +关注

    关注

    1

    文章

    3112

    浏览量

    48649

原文标题:TransCAD模型一键运行工具介绍

文章出处:【微信号:TransCADTransModeler,微信公众号:TransCAD和TransModeler交通软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人机界面在开关柜一键顺控中起到什么作用?

    人机界面在一键顺控系统中发挥着操作指令输入、状态显示与反馈、参数设置与配置以及提升操作便利性和安全性等重要作用。它是实现一键顺控功能不可或缺的关键组成部分。蜀瑞创新专注智能开关柜一键顺控
    的头像 发表于 11-05 10:02 44次阅读
    人机界面在开关柜<b class='flag-5'>一键</b>顺控中起到什么作用?

    10KV开关柜一键顺控和110KV变电站一键顺控哪些地方不同

    蜀瑞创新为大家科普:10KV开关柜一键顺控和110KV变电站一键顺控在多个方面存在不同,这些差异主要体现在应用范围、功能侧重、控制对象以及系统复杂性等方面。
    的头像 发表于 10-16 10:29 162次阅读
    10KV开关柜<b class='flag-5'>一键</b>顺控和110KV变电站<b class='flag-5'>一键</b>顺控哪些地方不同

    LoRa无线一键报警安防建设系统

    SOS紧急呼叫按钮具有紧急情况下一键报警的功能,可与报警主机配合使用,支持标准LoRaWAN协议。 lora紧急按钮具有紧急情况下一键报警功能,可与报警主机配合使用,支持标准LoRaWAN协议。如遇
    发表于 09-25 17:08

    配电室开关柜打造一键顺控系统的必要性?

    蜀瑞创新为大家科普:配电室开关柜实现“一键顺控”系统对于提升电力系统的运行效率、安全性以及自动化水平具有重要意义。
    的头像 发表于 09-14 10:39 150次阅读
    配电室开关柜打造<b class='flag-5'>一键</b>顺控系统的必要性?

    一键断电开关的种类有哪些

    一键断电开关的种类主要可以从其功能和实现方式上进行分类。以下是些常见的一键断电开关种类: 1. 继电器式一键断电开关 定义 :这种开关通过继电器或接触器控制电路的通断,实现
    的头像 发表于 09-13 16:45 598次阅读

    一键断电开关的安装方法是什么

    一键断电开关,也称为紧急断电开关或紧急停止开关,是种安全装置,用于在紧急情况下迅速切断电源,以防止事故或进步的损害。这种开关通常在工业设备、实验室、医疗设备等需要快速断电的场合中使用。 安装前
    的头像 发表于 09-13 16:33 563次阅读

    一键断电开关的控制原理是什么

    一键断电开关,也被称为紧急断电开关或紧急停止开关,是种安全装置,用于在紧急情况下迅速切断电源,以防止事故的发生或扩大。这种开关的设计和应用在工业、实验室、医疗设备以及任何需要快速断电的场合都
    的头像 发表于 09-13 16:28 617次阅读

    OOTDiffusion整合包一键AI换装, 免费生成高端服装模特照! 电商必备省钱工具

    保姆级OOTDiffusion换装教程,小白也能迅速上手 提供免费学习工具,学习期内无限制使用,24小时畅通服务; 工具简单,三步玩转AI换装,视频教程+1对1辅导; 一键启动,免安装绿色版
    的头像 发表于 08-09 20:06 396次阅读
    OOTDiffusion整合包<b class='flag-5'>一键</b>AI换装, 免费生成高端服装模特照! 电商必备省钱<b class='flag-5'>工具</b>!

    变电站一键顺控系统和开关柜一键顺控有区别吗?

    变电站一键顺控系统和开关柜一键顺控技术虽然都涉及到“一键顺控”的概念,但它们在应用范围和具体实现上有所不同,因此变电站一键顺控系统和开关柜一键
    的头像 发表于 07-31 13:34 391次阅读
    变电站<b class='flag-5'>一键</b>顺控系统和开关柜<b class='flag-5'>一键</b>顺控有区别吗?

    开关柜一键顺控的技术难点和优势、发展趋势?

    开关柜一键顺控技术的核心在于将复杂的人工操作流程转化为自动化、智能化的控制流程,蜀瑞开关柜一键顺控系统多年技术经验
    的头像 发表于 07-23 11:41 362次阅读

    智能开关柜能如何实现“可视化一键顺控”?

    智能开关柜能如何实现“可视化一键顺控”和“开关柜健康状态管理”?蜀瑞创新推出智能开关柜一键顺控测解决方案。建设主要包括柜内无线温度监测、断路器机械特性和电气特性监测、分合闸线圈/储能电机监测、电动机构设备等,并能通过装置实现开关柜基于AI识别的
    的头像 发表于 07-08 09:45 380次阅读
    智能开关柜能如何实现“可视化<b class='flag-5'>一键</b>顺控”?

    宝塔面板Docker一键安装:部署GPTAcademic,开发私有GPT学术优化工具

    人工智能的浪潮中,GPT模型因其强大的自然语言处理能力备受瞩目。然而,为了更好地应用于学术领域,许多人希望能部署自己私有的GPT学术优化工具。本文将详细介绍如何通过宝塔面板和Docker一键
    的头像 发表于 07-02 11:58 2395次阅读
    宝塔面板Docker<b class='flag-5'>一键</b>安装:部署GPTAcademic,开发私有GPT学术优化<b class='flag-5'>工具</b>

    智慧杆一键报警连入网关后无法对讲是什么原因?

    一键式对讲报警盒是智慧路灯杆上常见的挂载外设之,能够为公共安全提供即时支持,增强城市管理的智能化和应急反应能力。本篇就为大家简单介绍下在智慧路灯杆上部署
    的头像 发表于 03-28 17:25 354次阅读
    智慧杆<b class='flag-5'>一键</b>报警连入网关后无法对讲是什么原因?

    一键闪测仪使用时的注意事项有哪些?

    中图仪器VX系列一键闪测仪采用双远心高分辨率光学镜头,结合高精度图像分析算法,并融入一键闪测原理,可以对工件平面的点、线、圆等基本元素作精密测量,测量精度高,并且操作简单、性能优良稳定。
    的头像 发表于 12-13 09:28 782次阅读
    <b class='flag-5'>一键</b>闪测仪使用时的注意事项有哪些?

    一键动态切换IP脚本

    T*o*r*Proxy一键搭建动态代*理,通过利用T*o*r搭建Socks5代*理,最终实现动态切换IP的效果。
    的头像 发表于 12-08 10:25 996次阅读
    <b class='flag-5'>一键</b>动态切换IP脚本