gtfsmerge merges multiple GTFS zip files into a single zip.
Please note that zip/unzip and node 11.x or above are required.
gtfsmerge is a CLI tool that can be installed via NPM:
sudo apt-get install nodejs zip
npm install -g gtfsmerge
It can be run by specifying the input and output files as CLI arguments:
gtfsmerge input1.zip input2.zip output.zip
You can specify the distance (in kilometers) that should be used add transfers for nearby stops:
gtfsmerge --transfer-distance=2 input1.zip input2.zip output.zip
Stops with the same ID in different files are assumed to be the same stop but it is possible to add a prefix if this is not the case:
gtfsmerge --stop-prefix=input1_stop input1.zip modified-input1.zip
gtfsmerge modified-input1.zip input2.zip output.zip
Routes can be removed based on their type:
gtfsmerge --remove-route-types=0,1,4 input1.zip input2.zip output.zip
Issues and PRs are very welcome. To get the project set up run
git clone git@github.com:planarnetwork/gtfsmerge
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.
This software is licensed under GNU GPLv3.