connection-scan-algorithm
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Connection Scan Algorithm

Travis npm David

Implementation of the Connection Scan Algorithm in TypeScript.

Additional features not in the paper implementation:

  • Various fixes in order to improve the quality of results.
  • Calendars are checked to ensure services are running on the specified day
  • The origin and destination may be a set of stops
  • Interchange time at each station is applied
  • Pickup / set down marker of stop times are obeyed
  • Multi-criteria journey filtering
  • Transfers (footpaths) can be used

Usage

It will work with any well formed GTFS data set.

Node +11 is required for all examples.

npm install --save connection-scan-algorithm

Depart After Query

Find the first results that depart after a specific time

const {GtfsLoader, JourneyFactory, ConnectionScanAlgorithm, ScanResultsFactory, TimeParser, MultipleCriteriaFilter, DepartAfterQuery} = require("connection-scan-algorithm");
 
const gtfsLoader = new GtfsLoader(new TimeParser());
const gtfs = await gtfsLoader.load(fs.createReadStream("gtfs.zip"));
const csa = new ConnectionScanAlgorithm(gtfs.connections, gtfs.transfers, new ScanResultsFactory(gtfs.interchange));
const query = new DepartAfterQuery(csa, new JourneyFactory(), [new MultipleCriteriaFilter()]);
const results = query.plan(["TBW"], ["NRW"], new Date(), 9 * 3600);

TODO

  • Short circuit connection scan once all destinations found
  • Fake trip ID for transfers to (removes branch)
  • Only scan transfers for stops once (avoid re-scan when time is improved)

Contributing

Issues and PRs are very welcome. To get the project set up run:

git clone git@github.com:planarnetwork/connection-scan-algorithm
npm install --dev
npm test

If you would like to send a pull request please write your contribution in TypeScript and if possible, add a test.

License

This software is licensed under GNU GPLv3.

/connection-scan-algorithm/

    Package Sidebar

    Install

    npm i connection-scan-algorithm

    Weekly Downloads

    9

    Version

    1.1.0

    License

    GPL-3.0

    Unpacked Size

    61.7 kB

    Total Files

    49

    Last publish

    Collaborators

    • linusnorton