
交通分布和出行模式划分函数
2018年1月:Margarida Delgado解释了交通分布和出行模式划分步骤现在如何分成两个独立的过程,以便在选择模型时有更大的灵活性,并在每个步骤中给予你更多的控制。
2015年1月
想象一下,你已经运行了一个动态仿真(中观、微观或混合),为你提供准确的公共交通车辆行驶时间,其中考虑到了拥堵、专用车道、信号灯和公共交通优先算法。 在宏观的公共交通分配中,利用这些信息对站与站之间的旅行时间进行更准确的估计不是很好吗?
多亏了Aimsun提供的综合建模环境,这才得以实现。 你只需编写一个公共交通延迟函数,从动态仿真产生的时间序列中读取公交车行驶时间。
公共交通分配
例子:
costCol = None def pdf( context, line, ptsection ): global costCol if costCol == None: model = ptsection.getModel() vehicleType = model.getType("GKVehicle") vehicleId = model.getCatalog().findByName("Bus", vehicleType).getId() costCol = model.getColumn("DYNAMIC::SRC_GKSection_travelTime_%i" % vehicleId) res = 0.0 fromStop = ptsection.getMaster().getOrigin() if fromStop != None: sectionLength = fromSection.length2D() fromSection = fromStop.getSection() fromFraction = (sectionLength - fromStop.getPosition()) / sectionLength else: fromSection = None toStop = ptsection.getMaster().getDestination() if toStop != None: toSection = toStop.getSection() toFraction = toStop.getPosition() / toSection.length2D() else: toSection = None for section in ptsection.getMaster().getRoute(): fraction = 1.0 if fromSection != None and section.getId() == fromSection.getId(): fraction = fromFraction elif toSection != None and section.getId() == toSection.getId(): fraction = toFraction ts = section.getDataValueTS(costCol) if ts != None: res += ts.getAggregatedValue()/60 * fraction if res == 0.0: print "No dynamic cost for PT Section %i" % ptsection.getId() res = 60.0 * ptsection.getDistance()/1000.0 / 20.0 #km/h return res
该函数从路段中读取公交车辆类型的最后一次仿真行驶时间,由于公交分配的成本是针对公交路段表示的,即针对站与站之间的区段,它把站与站之间的所有路段加起来,根据站点的位置,计算出第一和最后一个部分路段。
这种方法的一个重要应用是估计对公共交通系统的运行变化对交通分布和出行模式划分的影响,例如沿走廊引入信号优先和专用车道。
2018年1月:Margarida Delgado解释了交通分布和出行模式划分步骤现在如何分成两个独立的过程,以便在选择模型时有更大的灵活性,并在每个步骤中给予你更多的控制。
2019年2月:Mohammad Saifuzzaman探讨了使用调整加权函数来改善GEH而不仅仅是R2。
分享