一个Python工具,用于将transchange数据转换为GTFS。

transx2gtfs的Python项目详细描述


transx2gtfs公司

PyPI versionbuild statusCoverage StatusDOIGitter

transx2gtfs是一个用于从TransXchange-格式转换公共交通数据的库 (英国的数据标准)转换为广泛使用的GTFS-格式,可以与 各种路由引擎,如OpenTripPlanner。在

注意!在

此软件包仍处于测试阶段,因此使用它的风险自负。 如果你发现问题,你可以 通过raising an issue帮助解决这些问题。在

特点

  • 读取transexchange xml文件并将其转换为包含所有必要信息的GTFS提要 根据通用运输Feed规范。在
  • 在不同的transchange模式(tflschema和txc2.1)下工作和测试
  • 将多个transchange文件合并到一个GTFS提要(如果存在于同一个文件夹中)。在
  • 查找并读取ZipFiles、嵌套ZipFiles和未打包目录中的所有XML文件。在
  • 使用多处理来并行化转换过程。在
  • 解析银行假日(从gov.uk)影响transchange提要的给定时间范围内的传输操作,这些时间段被写入日历_日期.txt. 在
  • 从NaPTAN网站自动读取和更新停车信息。在

为什么还有另一个转换器?在

有许多用不同编程语言编写的GTFS转换器的transchange。 然而,在测试了其中的许多之后,很难找到一个能够:

  1. 一般工作(无特殊修改)
  2. 根据GTFS规范解析来自transexchange的所有重要信息。在
  3. 使用不同的TransExchange架构版本
  4. 保养得好
  5. 易于在所有操作系统中使用
  6. 包括适当的测试(对维护至关重要)。在

因此,编写这个Python包的目的是满足上述需求。 虽然它不是最快的库(用Python编写),但是多处理可以带来一些提升 如果有一台多核电脑。在

安装

该软件包在PyPi上提供,您可以使用以下工具进行安装:

$ pip install transx2gtfs

这个库可以使用python3.6、3.7和3.8版本进行测试。在

如果您不知道如何安装Python,可以看一下示例these materials。在

要求

transx2gtfs具有以下依赖项(针对python3.6、3.7和3.8可用的最新版本进行了测试):

  • 解开
  • 熊猫
  • pyproj公司

基本用途

安装库后,可以按以下方式使用它:

>>>importtransx2gtfs>>>data_dir_for_transxchange_files="data/my_transxchange_files">>>output_path="data/my_converted_gtfs.zip">>>transx2gtfs.convert(data_dir_for_transxchange_files,output_path)

有几个参数可以调整:

^{pr2}$

输出

在成功地将transchange转换为GTFS之后,您可以开始 使用您喜爱的路由引擎(如OpenTripPlanner)进行多模式路由:

OTP_example_in_London

引文

如果您将此工具用于研究目的,我们鼓励您引用这项工作:

开发商

  • 伦敦大学学院Henrikki Tenkanen

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储