#amtrak #convert #data #valid #vehicle #information #gtfs-rt

amtrak-gtfs-rt

将 Amtrak Track-A-Train 转换为有效的 GTFS-rt 车辆和行程信息

22 个版本

0.3.0 2024 年 8 月 11 日
0.2.6 2024 年 5 月 14 日
0.2.1 2024 年 4 月 8 日
0.2.0 2024 年 3 月 27 日
0.1.12 2023 年 12 月 30 日

#15#vehicle

Download history • Rust 包仓库 68/week @ 2024-05-02 • Rust 包仓库 656/week @ 2024-05-09 • Rust 包仓库 113/week @ 2024-05-16 • Rust 包仓库 37/week @ 2024-05-23 • Rust 包仓库 49/week @ 2024-05-30 • Rust 包仓库 73/week @ 2024-06-06 • Rust 包仓库 25/week @ 2024-06-13 • Rust 包仓库 15/week @ 2024-06-20 • Rust 包仓库 15/week @ 2024-06-27 • Rust 包仓库 31/week @ 2024-07-04 • Rust 包仓库 79/week @ 2024-07-11 • Rust 包仓库 55/week @ 2024-07-18 • Rust 包仓库 35/week @ 2024-07-25 • Rust 包仓库 82/week @ 2024-08-01 • Rust 包仓库 140/week @ 2024-08-08 • Rust 包仓库 61/week @ 2024-08-15 • Rust 包仓库

每月 328 次下载
用于 3 个 crate (2 直接)

AGPL-3.0

45KB
636 代码行

amtrak-gtfs-rt

解密 Amtrak 的 GTFS-RT

必须将有效的 Amtrak GTFS 结构传递给函数才能工作。

以下是某些工作代码的示例!请注意,应使用 prost 版本 0.11,因为 gtfs-rt 还未使用 0.12

extern crate amtrak_gtfs_rt;

use prost::Message;
use gtfs_structures::Gtfs;

#[tokio::main]
async fn main() {
    let gtfs = Gtfs::from_url_async("https://content.amtrak.com/content/gtfs/GTFS.zip")
    .await
    .unwrap();

    let client = reqwest::Client::new();
    loop {
        let amtrak_gtfs_rt = amtrak_gtfs_rt::fetch_amtrak_gtfs_rt(&gtfs, &client).await.unwrap();

        //extract the binary data
        let vehicle_data = amtrak_gtfs_rt.vehicle_positions.encode_to_vec();
        let trip_data = amtrak_gtfs_rt.trip_updates.encode_to_vec();

        std::thread::sleep(std::time::Duration::from_millis(500));
    }
}

此软件包解密 Amtrak track-a-train json 数据,并在 GTFS 调度中进行行程信息查找,以将每辆车与它的 route_id 和 trip_id 匹配。

欢迎 Pull requests!

Capital Corridor 异常

请注意,大都市交通委员会还在其自己的源中发布 Capital Corridor。 https://511.org/open-data/transit 将 Capital Corridor 作为 "CC" 提供。此数据更新得更频繁(且位置和时间更接近),并显示机车编号。因此,您可能希望从该源中删除 Capital Corridor。因此,我们包含了一个函数 filter_capital_corridor(),该函数接受任何 gtfs_rt::FeedMessage 并删除 CC 车辆和行程。

依赖项

~18–32MB
~516K SLoC