A Java framework for GTFS validation and statistics.
How is this different than the Google-supported validator?
The Google TransitFeed-based validator is written in Python, and is quite slow on large feeds.
This validator uses the Onebusaway-GTFS library, written in Java and is far faster at processing large feeds.
Snapshots are available here
Using this framework
There are then multiple options for use:
Use the pre-built snapshot JAR.
java -server -Xmx4g -Xms3g -jar gtfs-validator.jar yourGtfs.zip
Import the services provided and build your own validation.
Use the gtfs-validator-json and gtfs-validator-webapp according to the directions in those folders.
The ValidatorMain class logs a number of common GTFS errors to Standard Out on the console when run as a JAR. This includes:
- Problems with route names
- Bad shape coordinates
- Unused stops
- Duplicate stops
- Missing stop coordinates
- Missing stop times for trips
- Stop times out of sequence
- Duplicated trips (same times)
- Overlapping trips when block_id is present
- Missing shapes and shape coordinates
- “Reversed” shapes with directions that do not agree with stop times.
- Exhaustively going through the calendar and printing active service IDs and number of trips for that day.
- Dates with no active service