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

    浏览量

    19231
  • 模型
    +关注

    关注

    1

    文章

    3652

    浏览量

    51723

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    碳足迹算不清?全链路能源系统,一键生成碳排报告

    在 “双碳” 目标推进下,碳足迹核算已成为企业高质量发展必经之路。全链路能源系统凭借 “数据自动采集、核算精准智能、报告一键生成” 的核心优势,让碳核算从 “耗时费力的难题” 变为 “高效便捷的工具”,既为合规经营护航,也为节能降碳提供数据支撑。
    的头像 发表于 11-19 09:45 134次阅读
    碳足迹算不清?全链路能源系统,<b class='flag-5'>一键</b>生成碳排报告

    HarmonyOS应用一键置灰指南

    一键置灰通常应用于如下场景 1. 重大悼念活动: 在国家发生重大灾难、事故或举行悼念日等特殊时期,为了表达对逝者的尊重和哀悼,许多 APP 会将界面置灰。例如,在些地震、空难等灾难事件发生后,以及
    的头像 发表于 06-27 00:08 393次阅读

    怎么把UI设计稿转为代码?在线UI设计工具一键生成!

    近日,华为开发者大会2025(HDC)在东莞松山湖正式拉开帷幕,这场备受瞩目的盛会为全球科技行业带来了诸多惊喜。其中,Pixso团队发布的全新设计稿一键转代码功能,成为了本次大会的大亮点。这项创新
    的头像 发表于 06-25 12:04 770次阅读
    怎么把UI设计稿转为代码?在线UI设计<b class='flag-5'>工具</b><b class='flag-5'>一键</b>生成!

    一键尺寸测量仪在医疗领域的应用具体是什么?

    一键尺寸测量仪作为种先进的测量工具,凭借其高精度、快速批量测量以及自动化与智能化的特点,正逐渐成为五金行业不可或缺的精密测量新利器。
    的头像 发表于 05-27 15:12 583次阅读
    <b class='flag-5'>一键</b>尺寸测量仪在医疗领域的应用具体是什么?

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机智云实现一键
    的头像 发表于 05-24 11:04 1582次阅读
    ESP8266烧录与机智云<b class='flag-5'>一键</b>配网教程

    U盘一键制作

    在电脑维修中启动盘很重要,靠谱的u盘一键启动制作方法
    发表于 05-06 16:10 44次下载

    Profinet邂逅ModbusRTU:印刷厂有网关“一键打通”通信链路

    Profinet邂逅ModbusRTU:印刷厂有网关“一键打通”通信链路
    的头像 发表于 04-08 17:11 441次阅读
    Profinet邂逅ModbusRTU:印刷厂有网关“<b class='flag-5'>一键</b>打通”通信链路

    三一挖掘机一键启动开关易坏的原因及更换注意事项

    关:安装完成后,先不要急于启动车辆,而是先测试新开关是否正常工作,确保切正常后再启动车辆。结论三一挖掘机的一键启动开关虽然设计精良,但在实际使用中仍可能出现易坏的问题。更换移动管家一键启动开关时,需要注意安全、使用适当的
    发表于 03-12 09:29

    两轮车PKE无钥匙进入PKG一键启动系统设计

    两轮车无钥匙进入PKE 一键启动系统PKG
    的头像 发表于 03-04 10:20 829次阅读
    两轮车PKE无钥匙进入PKG<b class='flag-5'>一键</b>启动系统设计

    LoRa无线一键报警安防建设方案

    SOS紧急呼叫按钮具有紧急情况下一键报警的功能,可与报警主机配合使用,支持标准LoRaWAN协议。lora紧急按钮具有紧急情况下一键报警功能,可与报警主机配合使用,支持标准LoRaWAN协议。如遇
    的头像 发表于 02-28 14:41 1033次阅读
    LoRa无线<b class='flag-5'>一键</b>报警安防建设方案

    开关柜一键顺控在一键停电、一键送电中的作用

    蜀瑞创新为大家科普,开关柜一键顺控技术在一键停电和一键送电中发挥了快速响应、减少人为错误、提高安全性、简化操作流程、降低操作风险、提高送电成功率等综合优势,对于提升电力系统的运行效率、
    的头像 发表于 02-27 09:13 1274次阅读

    如何保障10KV开关柜的一键顺控技术的安全性?

    通过上述综合性的安全措施,蜀瑞创新开关柜一键顺控方案可以显著提升10KV开关柜一键顺控技术的安全水平,确保其在实际应用中的稳定性和可靠性。同时,随着技术的发展,还需要不断评估和改进现有的安全措施,以应对新的挑战。
    的头像 发表于 01-16 09:09 881次阅读
    如何保障10KV开关柜的<b class='flag-5'>一键</b>顺控技术的安全性?

    Todoist一键时间跟踪

    行的 Web 应用程序进行一键式时间跟踪 开始跟踪 现在登录您的Todoist账户并开始追踪 如何在 Todoi
    的头像 发表于 01-03 11:08 767次阅读
    Todoist<b class='flag-5'>一键</b>时间跟踪

    开关柜一键顺控如何防止开关柜电气误操作事故

    开关柜一键顺控技术通过自动化、智能化的方式提高了电力系统的运行效率、安全性和可靠性,是防止开关柜电气误操作事故的有效手段之。同时,为确保电力系统的安全运行,还需要结合其他多种措施,如
    的头像 发表于 12-31 13:43 989次阅读
    开关柜<b class='flag-5'>一键</b>顺控如何防止开关柜电气误操作事故

    石油行业中,开关柜一键顺控的作用

    蜀瑞创新为大家科普:在石油行业中,开关柜的一键顺控技术可以显著提高操作的安全性、效率和可靠性。一键顺控指的是通过个简单的操作指令(如按下按钮或点击屏幕上的图标),自动执行系列预定义
    的头像 发表于 12-26 09:37 975次阅读
    石油行业中,开关柜<b class='flag-5'>一键</b>顺控的作用