Connection Scan Algorithm
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 = ; const gtfsLoader = ;const gtfs = await gtfsLoader;const csa = gtfsconnections gtfstransfers gtfsinterchange;const query = csa ;const results = query;
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.