A Java framework for GTFS validation and statistics.
The Google TransitFeed-based validator is written in Python, and is quite slow on large feeds. I also find the code rather hard to understand. While it supports extensions, few have extended it.
This validator uses the Onebusaway-GTFS library, written in Java and is far faster at processing large feeds.
This project originated at Conveyal. This fork includes a number of updates and improvements, namely:
- Requiring Java 8
- Updated dependencies to currently supported versions
- Minor bug fixes and light refactoring
- More testing
- Continuous Integration via Travis, and
- A number of additional validations
There are then multiple options for use:
-
Use the JAR provided in the releases.
java -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.
============== ValidatorMain
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