irail / stations
在您的PHP项目中使用比利时铁路的车站
Requires
- php: ^8.0
- ext-json: *
- cache/apc-adapter: ^1.0
- cache/apcu-adapter: ^1.0
- cache/array-adapter: ^1.0
- ml/json-ld: ^1.0
Requires (Dev)
- ext-zip: *
- phpunit/phpunit: ^9.6.16
- dev-master
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.9.7
- 1.9.6
- 1.9.5
- 1.9.4
- 1.9.3
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.20
- 1.6.19
- 1.6.18
- 1.6.17
- 1.6.16
- 1.6.15
- 1.6.14
- 1.6.13
- 1.6.12
- 1.6.11
- 1.6.10
- 1.6.9
- 1.6.8
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- v1.1.1
- v1.1.0
- dev-dependabot/npm_and_yarn/undici-5.28.4
- dev-feature/taf-tap-numbers
- dev-feature/improved-support-international-stations
This package is auto-updated.
Last update: 2024-08-24 10:47:42 UTC
README
我们试图使用CSV文件维护比利时所有车站的列表,以便每个人都可以在github上帮助维护。此外,我们还为您提供了PHP composer/packagist库,用于从车站名称到ID以及反之亦然的转换,并将CSV文件转换为JSON-LD以实现最大限度的语义互操作性。
我们收集的字段
stations.csv
此文件描述了比利时所有NMBS/SNCB车站。车站可以有多个站台(停靠点),这些站台在stops.csv
中描述。
URI
:这是可以找到更多关于此车站信息(例如实时发车时间)的URI(这已经包含NMBS/SNCB的ID)longitude
:车站的经度latitude
:车站的纬度name
:车站最中性的名称(例如,在瓦隆地区使用法语名称,在布鲁塞尔使用两种名称,在弗拉芒地区使用nl名称)alternative-fr
:如果有的话,法语替代名称alternative-nl
:如果有的话,荷兰语替代名称alternative-de
:如果有的话,德语替代名称alternative-en
:如果有的话,英语替代名称taf-tap-code
:TSI TAF/TAP编号,用于车站来源:Infrabel铁路网络操作点。telegraph-code
:比利时车站的缩写名称,由NMBS/SNCB内部使用。来源:Infrabel网络声明,附件D文件D06-RIEI-12_N_20230915.pdf。country-code
:车站所属国家的代码avg_stop_times
:每天在此车站停靠的平均车辆数量(计算字段)official_transfer_time
:根据官方来源(NMBS/SNCB),在此车站进行转乘所需的时间(计算字段)
stops.csv
此文件描述了比利时所有NMBS/SNCB停靠点。每个站台是一个单独的停靠地点。所有字段均使用gtfs_data_extractor.php
进行计算。
URI
:这是可以找到有关此停靠/站台的更多信息的URI(存在于父站点的URI中+ '#' +站台代码)parent_stop
:这是在stations.csv中定义的父停靠点的URIlongitude
:停靠点的经度latitude
:停靠点的纬度name
:停靠点名称alternative-fr
:如果有的话,法语替代名称alternative-nl
:如果有的话,荷兰语替代名称alternative-de
:如果有的话,德语替代名称alternative-en
:如果有的话,英语替代名称platform
:站台代码(也可以包含字母,因此不要将其视为数字!)
facilities.csv
此文件描述了NMBS/SNCB车站中可用的设施。所有字段均使用web_facilities_extractor.php
进行计算。
URI
:识别此车站的URI。name
:此车站的名称。street
:此车站地址的街道。zip
:此车站地址的邮政编码。city
:此车站地址的城市。ticket_vending_machine
:是否有售票机。注意:售票机可能位于建筑物内(并且在车站关闭时可能被锁定)。luggage_lockers
:是否有行李寄存处。free_parking
:是否有免费停车位。taxi
:是否有出租车/等待出租车停车位。bicycle_spots
: 停车区域是否提供自行车停车位。blue-bike
: 是否有蓝车(租赁自行车)。bus
: 在本站是否可以换乘公交线。tram
: 在本站是否可以换乘电车线。metro
: 在本站是否可以换乘地铁线。wheelchair_available
: 站点是否提供轮椅。ramp
: 站点是否为轮椅使用者提供登车斜坡。disabled_parking_spots
: 为残障旅客预留的停车位数量。elevated_platform
: 站点是否设有高站台。escalator_up
: 站点是否设有通往或离开站台的上行自动扶梯。escalator_down
: 站点是否设有通往或离开站台的下行自动扶梯。elevator_platform
: 站点是否设有通往站台电梯。audio_induction_loop
: 是否提供音频感应环路(荷兰语:Ringleiding)。sales_open_monday
-sales_open_sunday
: 在这个星期几,售票处开始营业的时间。sales_close_monday
-sales_close_sunday
: 在这个星期几,售票处结束营业的时间。
embarkment_statistics.csv
此文件描述了每天有多少人在指定站台上车。2023年10月统计数据,来源:belgiantrain.be, Cijfers opgestapte reizigers
URI
:识别此车站的URI。name
:此车站的名称。nmbs_short_name
: 站点的简称,用于原始数据源。用于验证和未来更新目的。average_weekday_embarkments
: 工作日的平均旅客上车人数。如果站点在工作日没有客流,则为空。average_saturday_embarkments
: 周六的平均旅客上车人数。如果站点在周六没有客流,则为空。average_sunday_embarkments
: 周日的平均旅客上车人数。如果站点在周日没有客流,则为空。
我们如何收集数据
此存储库包含两个PHP脚本,可以从中加载所有来自NMBS GTFS公共数据和NMBS网站的数据。这些脚本可用于从头生成所有CSV文件,并更新现有文件。
可以对stations.csv
进行手动更改和纠正。建议使用此存储库中的stations.csv
文件作为起点,而不是使用脚本生成此文件,因为存储库版本包括对站点名称和翻译的手动修复。
对stops.csv
或facilities.csv
的任何更改都将被脚本覆盖。 因此,任何仅用于更新/修改这些文件的拉取请求都不会被接受。
在运行gtfs_data_extractor工具时,会自动添加缺失的站点和stations.csv
中的缺失字段。
如何进行纠正
可以通过调整stations.csv
中的字段对名称、翻译和位置进行纠正。
- 名称或翻译永远不会被脚本覆盖。
facilities.csv
或stops.csv
中的名称是从stations.csv
中的名称派生的,这意味着您只需更新stations.csv
。- GTFS数据提取脚本会警告错误的位置,但不会对其进行纠正。
如果您想对facilities.csv
或stops.csv
进行纠正,不要修复文件,而是修复脚本,并让这些脚本运行以更新文件。
如果您只是想重用数据
通过HTTP的最新更新
如果您添加了正确的接受头,JSON-LD可在https://irail.be/stations/NMBS获取。例如,在命令行中使用curl,您将这样做
curl -H "accept: application/json" https://irail.be/stations/NMBS
如果您想更改此输出,请首先更改这里的CSV文件(我们喜欢pull requests)
在PHP项目中
使用composer(请注意,我们还需要在您的系统上安装nodejs才能使用链接数据接口)
composer require irail/stations
然后您可以在您的代码中使用车站,如下所示
use irail\stations\Stations; use irail\stations\StationsLd; // Using the strongly typed CSV parser: // getStations() returns a irail\stations\Station array $brusselsnorth = Stations::getStations("Brussels North")[0]; // getStationByID($id) returns a irail\stations\Station object with the station or null $ghentstpieters = Stations::getStationByID("http://irail.be/stations/NMBS/008892007"); // Using the linked-data interface // getStations() returns a json-ld document $brusselsnorth = StationsLd::getStations("Brussels North")->{"@graph"}[0]; // getStationByID($id) returns a simple object with the station or null $ghentstpieters = StationsLd::getStationByID("http://irail.be/stations/NMBS/008892007");
别忘了时不时地执行composer update
以更新数据
构建RDF或JSON-LD
使用脚本,此数据可以转换为JSON-LD。为了运行脚本,请运行此命令
第一次在您的终端中运行此命令(您的系统上需要安装nodejs)
npm install
或者使用npm包全局安装(当车站文件更新时,您需要再次运行此命令)
npm install -g irail-stations
从那时起,您始终可以运行
# using this repo ./bin/build.js # or with the global package: irail-stations
有关额外命令,请参阅
./bin/build.js --help
# or
irail-stations --help
我们目前支持输出格式 TRiG,N-Quads 和 JSON-LD(默认)
许可协议
CC0:此数据集属于公共领域。您可自由使用,不受任何限制。
如果您为此存储库做出贡献,则同意您的贡献将按照CC0开放数据许可协议进行许可。
我们非常感谢您回到这个存储库的链接,或提及iRail项目。