外部数据交互
本章将说明qETRC的各种数据导入和导出支持,相关文件的支持,以及和部分相关软件的交互支持情况及其限制。本章的重点在于全局性的数据导入导出;部分其他具体数据的导入导出(例如,交路图等)可参阅相应章节中的介绍。
文件格式说明
本部分介绍qETRC软件所用的各种文件格式和相关的操作方法。
运行图文件
运行图文件是软件中主要的数据操作对象,工具栏 开始 下的 新建 打开 保存 等操作都是针对运行图文件的。qETRC运行图文件的默认扩展名为 *.pyetgr ,这实际上是一种具有特定结构的JSON (JavaScript Object Notation) 文件,采用UTF-8编码。运行图文件主要线路、列车、标尺、天窗、交路、运行图显示设置、运行图页面几个部分。
线路数据库文件
线路数据库文件的默认扩展名为 *.pyetlib ,也是一种JSON文件。主要在线路数据库 (参见 路网管理模块 )功能中查看和操作。线路数据库文件是一组线路的分层次组合结构,其中描述每条线路的数据结构与运行图文件中相应部分相同。
列车数据库文件
列车数据库文件默认扩展名为 *.pyetdb ,它的格式实际上与运行图文件基本相同,绝大多数情况下可以互换。只是为了区分不同的使用场景,才分出两种不同的扩展名。
配置文件
配置文件 config.json ,保存在软件运行目录下。当用户调整了软件级默认的类型规则或类型设置(参见 列车类型系统 ),或软件级默认的运行图显示配置(参见 运行图显示设置 )时,会生成这个文件,保存用户配置的信息。如果删除这个文件,则这些配置会丢失,重新采用系统内置(程序中硬编码的)空白设置。
配置文件 system.json ,软件每次运行时生成,保存在软件运行目录下。主要包括打开文件的历史记录和一些全局配置(例如是否使用WPS风格的Ribbon控件,表格默认行高等)。
与pyETRC的交互
qETRC作为pyETRC的重构版软件,尽最大可能地支持与pyETRC的数据无损交互。现阶段pyETRC与qETRC的默认运行图文件扩展名皆为 *.pyetgr ,可以直接互相打开,使用正常的打开、保存等操作流程即可。
使用qETRC打开pyETRC保存的运行图文件,原则上不会有数据损失。两软件不一样的细节配置会自动转换。但在显示设置等方面,由于逻辑上的一些变更,在配置比较复杂的文件中仍然可能出现非预期的结果。如果遇到此类问题,可以随运行图文件反馈。
使用pyETRC直接打开qETRC保存的运行图文件,可能会丢失一些qETRC特有的数据。最明显的可能是多线路运行图。由于pyETRC不支持多线路,这种情况下只能识别运行图文件中的第一条线路,且无法识别运行图页面的设置。
警告
由于扩展名相同,pyETRC并不限制将改动直接保存到qETRC所创建的文件中。这意味着,如果打开的是qETRC的多线路运行图文件,直接保存将丢失这部分信息,且没有任何提示。请注意数据安全!
为了解决多线路运行图与pyETRC(以及ETRC)交互的问题,qETRC设计了 导出单线路运行图 功能。功能位于工具栏 开始 | 导出为.. 。
选择要导出的线路,同时可以选择是否只选择与该线路有关的车次导出,然后可以导出ETRC或pyETRC文件。这里导出的pyETRC文件,只包含所选的线路,而不包含其他的线路。
对于一些较为简单的数据,例如列车时刻表数据、或不涉及多线路情况下的线路数据,可以使用pyETRC的 data 部分API进行外部编程。
与ETRC的交互
qETRC支持读写ETRC的 trc 格式运行图,但由于软件功能差异较大,可能会造成一定的数据损失;特别是qETRC保存到 trc 文件的数据损失可能较大。因此qETRC不允许直接保存 trc 文件,而提供了导出到 trc 的功能。
使用qETRC打开ETRC文件,只需要在 打开 功能中直接选择要打开的ETRC文件即可。注意此时相当于创建了新的运行图文件;不能直接保存到原始 trc 文件,而只能另存为 pyetgr 文件。这个过程可能损失的数据包括但不限于:
运行图显示设置,包括横纵轴比例,运行图开始时刻等。
ETRC中的接续线路等信息。
ETRC的多线路支持。qETRC的多线路支持与ETRC采取不同的机制,无法正确识别ETRC中设置的多线路。
通过上节所示的 导出单线路运行图 功能,可以导出 *.trc 格式的运行图文件。此过程通常会造成显著的数据损失,包括但不限于:
qETRC的多线路信息以及运行图页面信息丢失;这里只能导出(由用户指定的)一条线路。
天窗数据:ETRC只支持一套天窗数据,所以qETRC中只有第一套天窗数据可以导出,第二套数据无法导出。
标尺数据:ETRC不支持手动设置标尺,因此标尺数据无法导出。
数据精度:ETRC的线路里程只能精确到整数,列车时刻只精确到分钟,故线路里程标的小数、列车时刻的秒数将丢失。特别的,列车时刻的秒数实际上是导出到
trc文件中的,但ETRC不会读取。车底交路:一般可以正常读取,但需注意ETRC中以下划线
_分隔交路名和序号,故如果交路名中包含类似符号,可能造成歧义。且ETRC支持交路的最大长度为20。列车类型和运行线设置:ETRC不支持手动指定列车类型,因此如果有手动设置的列车类型将无法导出;由于图形库不同,运行线设置不一定能正确交互。
运行图显示设置,包括显示比例等,无法导出。
警告
再次提醒,先打开 trc 文件再导出 trc 文件的过程可能造成显著的数据丢失,请保存好原始文件,不要轻易覆盖。
导出图片
qETRC支持将运行图导出为矢量PDF或者像素PNG格式的图片。导出图片总是以运行图页面为单位;运行图页面当前的显示状况将被 原样 导出到图片。功能位于工具栏上下文菜单 运行图(5) | 导出 。
备注
如果当前运行图页面上存在不显示或者选中的列车运行线,导出的图片中,相应的运行线仍然不显示或者选中。
运行图标题默认提取当前运行图页面名称并后缀 运行图 ;运行图备注将显示在图片最下方,默认提取当前运行图页面的备注。点击 输出PDF 或者 输出PNG 可以导出对应的格式。
备注
虽然这里的标题和备注默认提取运行图页面的相关信息,但也可以手动修改;修改的信息 不会 保存到运行图页面中。如需修改运行图页面的相关信息,请参见 运行图页面 。
备注
导出PDF矢量运行图需要 QtPrintSupport 模块的支持。如果程序的构建平台无此模块提供,则无法导出PDF格式。