Skip to content

planarnetwork/gtfsmerge

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

gtfsmerge

Travis npm David

gtfsmerge merges multiple GTFS zip files into a single zip.

  • Transfers are created for stops that are close to each other
  • Duplicate stops, agencies and routes are assumed to be the same stop and only output once.
  • Calendars, calendar dates, trips and stop times are re-indexed.
  • Identical calendars are merged into a single entry.
  • Any calendars or calendar dates in the past are removed along with their corresponding trips
  • Any calendar dates without a calendar are converted to a calendar
  • Any unused stops are removed
  • Routes can be removed based on their type (Bus, Rail, etc)
  • This tool does not currently process any of the fares files. Please raise an issue if you would like this feature.

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.

About

Merge GTFS datasets

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published