planarnetwork / gtfsmerge

Merge GTFS datasets
25 stars 4 forks source link
data gtfs gtfs-feed transport

gtfsmerge

Travis npm David

gtfsmerge merges multiple GTFS zip files into a single zip.

Installation

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

Usage

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

Contributing

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.

License

This software is licensed under GNU GPLv3.