线路数据库

线路数据库这个功能有些特殊性。逻辑上,这个功能属于超越单张运行图级别的数据管理功能,应属于路网管理模块。但事实上,本系统从最早的发行版本就开始提供线路数据库功能(彼时还没有路网管理模块),时至今日仍然直接集成在pyETRC主程序中。另一方面,此功能确实是路网管理模块的重要组成部分。考虑到这些,这篇文档列入pyETRC主程序文档,但单独列成一个页面,即使在主程序中,这个功能并不显得如此重要。

2.3.0版本,线路数据库功能曾经历彻底的重构。虽然到目前为止(3.1.2版本)旧版功能仍然保留在系统中,但已经不推荐使用。本文档仅介绍新版。

简介

线路数据库是将国铁一部分线路的数据预先做成pyETRC支持的格式,保存在特定文件中,需要时直接导入的功能。线路数据库的功能为线路数据的复用,减少重复工作提供了一些方便。

线路数据库支持的数据与主程序中支持的线路数据完全一致,即

  • 站名、里程、等级、营业站等基本数据,在线路编辑面板中编辑的数据。

  • 标尺数据,在标尺编辑面板中编辑的数据。

  • 天窗数据,在天窗编辑面板中编辑的数据。

线路数据库中可以对线路数据做新增、删除、(批量)导入、导出等基本操作。

各条线路是按树状结构组织的。确切来说,线路数据库中可以有原则上任意多层的分类,每个分类下可以有其他分类或具体的线路。在预置的线路数据库中,数据按路局组织。

?> 原则上,所有线路名称和分类名称不能重复,否则将产生未定义行为。

启动

线路数据库有三种启动方式。

  • 从pyETRC主程序中启动。通过工具栏线路->数据库(大图标),或菜单栏数据->线路数据库,或快捷键Ctrl+H可以打开。

  • 从线路数据库入口独立运行本模块。源代码用户,运行根目录下的LineDB.py;egg版用户,运行run-线路数据库.cmd文件。

  • 从路网管理模块进入。详见路网管理模块文档。

操作手册

我们以pyETRC主程序启动的为例说明。其实各种启动方式的效果基本一样。主界面如下图所示。

linedb1

左侧展示的是数据库中线路的列表。中间一列是各种操作按钮。右侧是当前选中线路的基础信息,这个面板与主程序中线路基础数据中介绍的面板完全一样。

线路列表中的显示分为分类线路两种情况。对于线路,显示线路里程、起点、终点、贡献者、版本等信息;对于分类,显示该分类下的线路数量(在里程一列)。线路列表支持右键菜单,相应功能都能被中间的按钮实现。

右上侧是当前线路数据库文件。可以通过选择文件来切换到其他的数据库。设为默认文件仅对pyETRC主程序启动时有效,此操作将使得下一次从pyETRC主程序启动线路数据库时,直接打开当前的数据库文件。

为了叙述方便,我们定义当前分类的概念:是指当前左侧列表中,选中的一项

  • 若是分类,则是这个分类;

  • 若是线路,则是这条线路所述的(最近一层)分类。

定义当前线路的概念:是指当前右侧基础数据中显示的线路。

下面逐个介绍中间一列的操作按钮。

  • 添加线路将在当前分类下添加新的空白线路。

  • 添加子类将在当前分类下添加新的、空白的子分类。

  • 添加平行类将在当前分类的上层分类下,添加新的空白分类。也就是说,新添加的分类和当前分类是平行(同等级)的。

  • 删除选定将删除当前选定的线路,或者当前选定的分类及其下所有线路

  • 移动选定将弹出对话框,把当前选定的线路或者分类移动到指定的分类下。

    !> 不要试图将分类移动到具有父子关系的分类下。否则将产生未定义行为。

  • 标尺显示当前线路的标尺数据。

  • 天窗显示当前线路的天窗数据。

  • 导入文件选择一个pyETRC运行图文件,将其线路数据导入到当前分类下。

  • 批量导入选择一组pyETRC运行图文件,将其线路数据全部导入到当前分类下(批量建立线路数据)。

  • 合并数据选择另一个线路数据库文件(*.pyetlib),将其全部(不与本数据库名称冲突的)数据导入到当前分类下。

  • 导出数据在当前选中的是一个分类时,导出这个分类对应的子数据库(*.pyetlib格式);在当前选中的是一条线路时,导出该线路的运行图文件(*.pyetgr格式,车次数据为空)。

  • 导出到运行图仅在从pyETRC主程序启动时有效。相当于旧版的导入线路数据Ctrl+K)功能。选择当前线路的部分或全部车站,导出到当前主程序的运行图文件中。

    !> 主程序当前打开的运行图文件的原有线路数据将被覆盖。

  • 保存将当前线路数据库保存到右上角指定的文件中。

  • 批量模式决定是否允许多选。当启用时,右键菜单仅对选中的最后一个项目生效。

预制数据

本系统预制了一套线路数据库,依赖文件为linesNew.pyetlib,但目前为止,预制数据库是很不完善的。基于开源精神,我们鼓励用户提供线路数据,共同完善线路数据库。提供线路数据的用户,可在右下角的注释中签名,以及备注有关信息。

由于历史版本原因,本系统不同版本中的线路数据精度、数据内容有所不同。因此,建议(非强制)用户在线路名称中,以下列后缀做标记:

  • F表示里程数据支持到1位小数。F是浮点数(floating point number)的缩写。

  • F3表示里程数据精确到3位小数。三位小数里程自2.3.1 R33版本开始支持。

  • D表示提供对里程数据,即提供双向里程数据。D3表示提供双向里程数据,且数据精确到三位小数。双向里程数据自2.4.0-R36版本开始支持。由于双向里程数据功能是在三位小数支持后才提供的,所以一般标注D的也可以隐含D3,可省略3