列车时刻表调整
在qETRC通常处理的运行图规模上,数据量最大的就是列车时刻表数据。如果以文本形式打开 pyetgr 文件并比较各部分的内容多少,就可以很直观地确认这一点。但我们指出,列车在各站的时刻数据之间是存在强耦合的。举例来说,如果延长列车在某车站的停车时长,则其后续车站的时刻很可能需要做相应的延后。利用这些耦合关系,在对时刻之间的关系做一定的假定之后,就可以减少大量的重复操作。
区间运行线平移
此功能将列车时刻表中某一段(或整个时刻表)提前或者推迟一段时间。此功能通常用于列车运行线的整体平移,或者调整一个站的停站时刻后,将后序(前序)所有车站时刻相应调整一定时间,以保持区间运行速度基本不变。此功能位于:
运行图页面 |
右键菜单 | 时刻平移 |
工具栏上下文菜单 |
列车编辑(7) | 时刻平移 |
在表格中选择要调整的车站范围,设置调整方向和时长,然后点击 确定 执行操作。
其中 边界条件 选项指出调整的范围是否要包含首站的到达时刻和末站的出发时刻。这两个选项一般对于调整部分时刻表的情况有用。举例来说,如果调整某站的停车时长并修改后续时刻表,则该站的到达时刻不需要调整,可取消勾选 首站到达时刻 。
此功能是pyETRC中最早实现的微调功能之一。qETRC中其功能基本不变,但重新设计了界面。
时刻表修正
- 起始版本:
V1.0.0
- 最新修订:
V1.1.10
- pyETRC对应:
时刻表修正
- 工具栏:
列车编辑(7) | 时刻修正
在一些情况下,运行图所用的时刻数据由外部程序转换而得到,由于程序的原因,难免出现时刻表顺序错误、到发站时刻颠倒等问题。当然,有时手工输入也会产生这些问题。为此,设计了这个时刻表修正功能。此功能主要针对转换程序中常见的到发时刻颠倒、车站顺序错误的问题设计。
例如,在上图所示的例子中,K4571次的时刻表中, 骑龙 站本应在 玉峰 站之后,但由于时刻表顺序错误,造成了运行图铺画的明显异常。表中 大英 站显示当前时刻表的 骑龙 至 大英 区间运行时间达到1405分,是显然的异常情况,以红色背景提示。使用时刻表修正功能,可勾选 骑龙 站前的复选框,将其下移至合适位置,再点击 确定 即可生效。
对话框中, 上移 下移 将所选的车站 分别 (不论选择是否连续)向上移动一位; 置顶 或 置底 将所选的所有车站按其在原来表中的顺序依次移动到时刻表最前或最后; 交换到发 将所选的各个车站的到达时刻和出发时刻交换; 区间反排 将所选第一个站至最后一站(都包括)范围内的 全部 车站顺序反排。在表中任意选择一部分单元格,点击 批选 可以将选择范围所涉及的行全部勾选或取消勾选。
虽然本功能主要是为调整车站顺序或到发时刻颠倒等错误而设计的,但为了方便性和灵活性,仍然提供对列车时刻表进行完整编辑的功能,通过勾选 启用全部编辑 选项可以开启此功能。注意此功能暂不支持增删车站,只能调整车站信息和顺序。
在V1.1.9版本中新增了 自动更正(测试) 功能。此功能根据内置的算法,自动检查和修正时刻表中可能存在的问题。此功能同时提供批量版本,参见 批量操作 。在1.1.10版本中,修正了算法中的部分已知错误。
重要
自动时刻表更正算法未经充分测试,不能保证准确性甚至 安全性 。强烈建议在使用前做好数据保存和备份。
时刻表微调
- 起始版本:
V1.0.0
- pyETRC对应功能:
交互式时刻表微调
- 工具栏:
列车 | 速览时刻
- 快捷键:
Ctrl + I
qETRC的 速览时刻 功能合并了pyETRC中的当前列车时刻表和交互式时刻表微调两个功能,采用相似的格式展示时刻信息。勾选 编辑 选项可以打开编辑功能。
启用编辑后,点击到发时刻所在的单元格修改时刻。 时刻修改立即生效并铺画在图上 。
备注
修订时刻的操作支持撤销/重做。在撤销/重做时,针对同一个车站、同一个时刻(到达或出发)的连续调整被视为同一个操作,一次性全部撤销或重做。
时刻插值
- 起始版本:
V1.0.0
- pyETRC对应功能:
通过时刻推定
- 工具栏:
列车(3) | 时刻插值
qETRC的一部分功能设计逻辑是基于完整或接近完整的列车时刻表数据的。例如根据跨越站数量管理运行线,计算列车在线路上的运行里程等。在一些情况下,已知数据包含 所有 停车站的时刻,但不包含通过站的时刻,此时可以考虑使用此功能推定通过站的时刻。
通过时刻推定的依据是标尺数据。用户可以选择一套标尺数据,对选中的一组车次进行推定。推定时,程序将认为 所有要推定时刻的无数据车站都是通过 ,对每两个有停靠数据的站间,先按照标尺扣去起停附加时分(如果有),再将剩下的区间运行时长,按照各个小区间的 通通时分 比例,分配到各个小区间,从而确定各个区间通过站点的通过时刻。
备注
此功能的实质是数值分析中的插值问题,其算法类似分段线性插值,但比一般的分段线性插值更为复杂,因为考虑到了起停附加时分的问题。
重要
qETRC的时刻插值是针对每一段 运行线 进行的。这就是说,只有图上画出的运行线中,被跨越的车站时刻才会被计算。执行本功能之前,应将 最大跨越站数 设置为一个合适的值,以使得所希望插值的车站所在运行线都被画出,而不是被跳过。参见 列车与运行线 。
下图所示为时刻插值功能第一页。
首先选择线路和标尺,然后在表中选择要执行推定的列车。表中列出的铺画里程表示目前该车次所有运行线里程之和;铺画里程为0的车次当前没有有效的运行线,显然插值操作对其不产生效果。这些车次可能是与本线无关的车次,或因最大跨越站数设置不合适而没有绘出运行线。
外插选项 提供两个选项,可指定将所有运行线推定到本线的起点(终点)。如果不勾选,则时刻插值仅仅在运行线内进行;若勾选推定到本线起点(终点),则尝试将运行线推至本线的起点(终点)。
备注
在已有的运行线内确定通过站时刻,类似于数值分析中的“内插”,即所插点两侧都有已知点。而将运行线推至起点或终点的操作,则是数值分析理论中的“外插”操作。显然外插的精度通常是低于内插的。这里进行外插时,是直接按照标尺计算时刻的。
时刻粒度 选项设置是否要对所得时刻进行进一步的修约。qETRC支持的最小时刻粒度是1秒;默认时刻粒度1秒也就是不做额外的修约。由于列车已有时刻有时和标尺对的不是那么准确,会有一定误差,导致有时插值得到的时刻会有尾数,例如“03秒”之类的。有的场景下时刻表可能没有这样的尾数,都是整10秒、30秒或者整分钟的,此时可以利用此选项作相应的修约。
点击下一步后进入确认页面,如下图所示。
表中列出所选车次运行情况与标尺的相对误差,每行的背景色深浅表明误差的相对大小。如果误差较大,则表明列车可能不是按此标尺运行的,或者中间存在停点,此时如果继续执行插值,可能造成较大的偏差。可以返回上一步调整设置和执行插值的列车范围。点击完成,执行插值操作,修改所选列车的时刻表,并重新铺画运行图。
此功能插值时添加的车站,其备注栏会标注 推定 。用户可自行修改备注内容。
备注
与pyETRC不同,时刻插值的操作 不会 删除列车时刻表中的非本线站点时刻。 这是得益于qETRC新设计的列车-线路车站匹配数据结构的支持。
删除所有推定结果
- 起始版本:
V1.0.0
- pyETRC对应功能:
撤销所有推定结果
- 工具栏:
列车(3) | 时刻插值 下菜单 | 删除所有推定结果
此功能将列车时刻表中 所有 备注为 推定 的车站删除,而不追究其是否真的由时刻推定功能给出。如果用户手动将某车站备注填为 推定 ,则该车站也会被删除。
备注
与pyETRC不同,qETRC中的推定和撤销推定结果的操作都是支持撤销的。在可能的情况下,我们建议用户优先考虑使用普通的撤销功能,而不是这里的撤销所有推定结果功能。
其他列车数据修订
批量操作
- 起始版本:
V1.1.7
- 最后修订:
V1.2.6
- 工具栏:
列车(3) | 批量操作 菜单
- 停靠面板:
列车管理面板 | 批量 菜单
工具栏列车页面以及列车管理停靠面板中都有批量操作的菜单,如图所示
这些批量操作旨在一次性对一组列车执行相同的操作,以减少重复的操作。列车管理页面中的批量操作,是针对列车管理页面中选中的一组车次进行的操作;工具栏中的批量操作,则是直接针对所有列车的操作。两边的功能有一定重叠,下面一并介绍。
列车类型操作
始发终到站操作
这一组功能按照一定的规则,批量修改列车始发终到站。由于数据源错误或不准确等原因,始发终到站有时会存在偏差,导致qETRC无法准确判断列车的始发终到情况的,使得运行图上标签、计算区间运行时分等场景出现偏差。为此,针对一些常见情况,提供以下功能。
按时刻表重设始发终到。此功能将所选列车的始发站设为时刻表首站,终到站设为时刻表末站。原先设置的始发站、终到站将被覆盖。自动始发终到站适配。此功能适用于站名存在域解析符的情况(参见 站名匹配规则 )。具体来说,若列车时刻表的第一站(最后一站)满足以下条件,则将始发站(终到站)设置为时刻表第一站(最后一站):时刻表的第一站(最后一站)铺画在运行图上;
时刻表中第一站(最后一站)的站名以当前设置的始发站(终到站)站名开头,并以“场”字结尾;
始发(终到)站及时刻表第一站(最后一站)站名均不包含域解析符
::。
自动始发终到站适配(放宽)。此功能与上一功能类似,但取消其中的第1个条件,即不再要求第一站(最后一站)铺画在运行图上。此功能自V1.0.1版本开始提供。
例如,若某车次时刻表首站为 成都东达成场 ,而当前设置的始发站为 成都东 ,若使用 自动始发终到站适配(放宽) 功能,则可以将始发站修改为 成都东达成场 。
备注
上例也可以通过使用域解析符实现。若将时刻表首站设置为 成都东::达成场 ,根据域解析符匹配规则,同样可以匹配为始发站。
列车车站信息操作
以下功能是对列车时刻表中的车站数据进行调整,或者相关的功能。
自动设置营业站。重新设置所有列车时刻表中的营业信息(参见 列车时刻表基本编辑 )。设置规则为, 运行图上铺画车站中, 同时满足 以下两个条件的车站将设置为营业,否则设置为不营业:自动更正时刻表(测试)。采用内置算法,对列车时刻表中可能存在的顺序错误等错误进行更正。参见 时刻修正 。此功能自1.1.9版本开始提供,并在1.1.10版本修订部分错误。
重要
由于列车时刻表数据的复杂性,此功能不能保证正确处理所有情况,甚至不能保证极端情况下的安全性。建议在使用前做好数据保存。
以下两个功能针对未铺画的车站或车次。此处的铺画,是指时刻表中的车站对应到线路中的一个车站,也即在运行图中形成一个有效的数据点。参见 列车与运行线 。
删除未铺画车站。删除列车时刻表中没有铺画的车站信息。原则上这些车站信息不在运行图上产生有效数据点,故此操作不会引起运行图图形变化。空白车次不会被自动删除。此功能自V1.2.6版本起提供。删除未铺画车次。删除时刻表中 所有 车站皆没有铺画的列车。原则上这些列车也不会在运行图上产生有效的数据,此操作不会引起运行图图形变化。空白车次也包括在内。此功能自V1.2.6版本起提供。删除空白车窗。此处空白车次是指时刻表内没有任何车站信息的车次。显然,先使用删除未铺画车站,再使用删除未铺画车次,其效果等价于使用此功能。此功能自V1.2.6版本起提供。
批量导出数据
以下功能提供对一组列车导出指定的数据。所有数据将被依次汇总在 一个 csv 文件中,单个车次的数据连续排列。