-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved content to Getting started section (#309)
* Squashed commit of the following: commit fe496d1 Author: isabelle-dr <[email protected]> Date: Tue Feb 6 14:29:31 2024 -0500 Removing translations (#306) * dummy commit * Remove translations part one * removing translations * Make changes based on review * Squashed commit of the following: commit 30ce1ef Author: Sergio Delgado Rodriguez <[email protected]> Date: Tue Feb 6 15:46:57 2024 -0500 new_GTFS.org_structure (#307) Adding new files for new GTFS architecture. This change does not remove the old files. commit fe496d1 Author: isabelle-dr <[email protected]> Date: Tue Feb 6 14:29:31 2024 -0500 Removing translations (#306) * dummy commit * Remove translations part one * removing translations * Make changes based on review * Moved content to Getting started section * Added examples page to Getting started * Update publishing page in Getting started
- Loading branch information
Showing
7 changed files
with
382 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# GTFS Schedule Validator | ||
|
||
This free and open-source canonical GTFS Schedule validator is maintained by [MobilityData](https://mobilitydata.org) with the help of the GTFS community. Use it to evaluate your dataset against the official [GTFS Reference](reference.md) and [Best Practices](best-practices.md). It provides an easy-to-use validation report in an HTML format that can be opened in the browser and shared with other parties. | ||
|
||
<!-- <img class="center" src="../../assets/validator_animation.gif" width="150"> --> | ||
<br> | ||
|
||
**Current version: 4.2** [(see the release notes)](https://github.com/MobilityData/gtfs-validator/releases/latest) | ||
|
||
<hr> | ||
|
||
## Usage | ||
|
||
<div class="usage"> | ||
<div class="usage-list"> | ||
<ol> | ||
<li>Go to <a href="https://gtfs-validator.mobilitydata.org/">gtfs-validator.mobilitydata.org</a>. </li> | ||
<li>Load your GTFS dataset: you can select or drag & drop a ZIP file, or copy/paste a URL.</li> | ||
<li>When the validation is finished, an option to open the report will be provided.</li> | ||
<li>You will see if the validator found issues with the data, and links to our documentation for how to fix them. The URL of the validation report will work for 30 days and can be shared with others.</li> | ||
</ol> | ||
</div> | ||
<div class="usage-video"> | ||
<video class="center" width="560" height="315" controls> | ||
<source src="../../assets/validator_demo_large.mp4" type="video/mp4"> | ||
</video> | ||
</div> | ||
</div> | ||
|
||
## Use This Validator as Part of Your Data Pipeline | ||
|
||
To see more instructions on how to use this tool in your data pipeline, please visit the [GitHub repository](https://github.com/MobilityData/gtfs-validator). | ||
|
||
## Community | ||
|
||
This project is a community effort, and anyone interested in this project can join the community, participate in decision-making and help advance it in different ways. There are many different ways to contribute: sharing your idea for a new feature, reporting a problem, improving the documentation, teaching others how to use it, etc. | ||
|
||
👀 [See who is using this validator](https://github.com/MobilityData/gtfs-validator/wiki/Organizations-using-this-GTFS-Validator). | ||
💬 Help us improve this tool by [sharing your feedback](https://forms.gle/bWrXGDCUqrGfRYCs8). | ||
🤝 Interested in contributing to this project? Please visit the [GitHub repository](https://github.com/MobilityData/gtfs-validator) and read our [contribution guidelines](https://github.com/MobilityData/gtfs-validator/blob/master/docs/CONTRIBUTING.md). | ||
|
||
## What is High Quality GTFS? | ||
|
||
High quality GTFS is complete, accurate, and up-to-date. This means that it represents how services are currently operating and provides as much information as possible. | ||
For information on creating high quality data, see the [California Transit Data Guidelines](https://dot.ca.gov/cal-itp/california-transit-data-guidelines), the [GTFS Schedule Best Practices](https://gtfs.org/schedule/best-practices/) and the [GTFS Realtime Best Practices](https://gtfs.org/realtime/best-practices/). | ||
For evaluating the quality of a dataset, see [Validate](https://gtfs.org/schedule/validate/) page. | ||
|
||
### Complete Data | ||
|
||
Quality GTFS includes important service details such as holiday and summer schedule changes, accurate stop locations, and names for routes and headsigns that match other rider-facing materials. Even if an agency works with a vendor to produce GTFS, it’s ultimately up to the agency to ensure that the information presented in print, on board, and online is consistent. | ||
|
||
### Accurate Data | ||
|
||
Accurate data is essential for providing transit riders with a reliable and user-friendly transportation experience. Errors in the data can block a portion or the totality of a dataset from being used. | ||
|
||
### Up to Date | ||
|
||
Having out of date data is almost worse than no feed at all. It's not enough to simply publish information—it has to match what the rider sees and experiences. Some of the largest transit agencies update their GTFS weekly, or even daily, but most agencies will need to update their GTFS every few months, or a few times a year when service changes. This includes things like new routes or stops, timetable changes, or updates to fare structure. | ||
|
||
Many agencies hire a vendor to create and manage their GTFS for them. Some vendors may be proactive in asking about service changes, but it’s important that agencies communicate with vendors about upcoming service changes. It’s possible to publish GTFS with service changes in advance, making sure the transition goes smoothly for everyone—agencies, vendors, trip planners, and riders! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
# Example GTFS Feed | ||
|
||
This example GTFS feed shows comma-delimited data samples for each file in a transit feed. The sample data files shown here aren't all related to each other. You can also [download a complete GTFS feed](https://github.com/google/transit/blob/master/gtfs/spec/en/examples/sample-feed-1.zip?raw=true) in final form to work with as well, or browse the individual files of that same feed online [here](https://github.com/google/transit/tree/master/gtfs/spec/en/examples/sample-feed-1). | ||
|
||
## agency.txt | ||
|
||
``` | ||
agency_id,agency_name,agency_url,agency_timezone,agency_phone,agency_lang | ||
FunBus,The Fun Bus,https://www.thefunbus.org,America/Los_Angeles,(310) 555-0222,en | ||
``` | ||
|
||
``` | ||
agency_id,agency_name,agency_url,agency_timezone,agency_lang | ||
agency001,Transit Agency,https://www.transitcommuterbus.com/,PST,en | ||
[...] | ||
``` | ||
|
||
## stops.txt | ||
|
||
``` | ||
stop_id,level_id,stop_name,stop_lat,stop_lon,location_type,parent_station | ||
F12,,5 Av/53 St,40.760167,-73.975224,1, | ||
E1,L0,5 Av/53 St SW,40.760474,-73.976099,2,F12 | ||
E2,L0,5 Av/53 St NE,40.76035,-73.97546,2,F12 | ||
E3,L0,5 Av/53 St SE,40.760212,-73.975512,2,F12 | ||
E4,L0,Madison/53 St NE,40.759612,-73.973731,2,F12 | ||
E5,L0,Madison/53 St SE,40.759491,-73.973820,2,F12 | ||
N1,L1,,,40.760457,-73.975912,3,F12 | ||
N2,L1,,40.760531,-73.976111,3,F12 | ||
N3,L1,,40.759746,-73.974203,3,F12 | ||
N4,L1,,40.759679,-73.974064,3,F12 | ||
F12S,,5 Av/53 St,40.760167,-73.975224,0,F12 | ||
B1,L2,,40.759746,-73.974203,4,F12S | ||
B3,L2,,40.759828,-73.974442,4,F12S | ||
F12N,,5 Av/53 St,40.760167,-73.975224,0,F12 | ||
B2,L3,,40.760457,-73.975912,4,F12N | ||
B4,L3,,40.760375,-73.975729,4,F12N | ||
``` | ||
`location_type=` 0: platform; 1: station; 2: entrance/exit; 3: generic node; 4: boarding area. | ||
|
||
## routes.txt | ||
|
||
``` | ||
route_id,route_short_name,route_long_name,route_desc,route_type | ||
A,17,Mission,"The ""A"" route travels from lower Mission to Downtown.",3 | ||
``` | ||
|
||
## trips.txt | ||
|
||
``` | ||
route_id,service_id,trip_id,trip_headsign,block_id | ||
A,WE,AWE1,Downtown,1 | ||
A,WE,AWE2,Downtown,2 | ||
``` | ||
|
||
## stop_times.txt | ||
|
||
``` | ||
trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type | ||
AWE1,0:06:10,0:06:10,S1,1,0,0 | ||
AWE1,,,S2,2,1,3 | ||
AWE1,0:06:20,0:06:30,S3,3,0,0 | ||
AWE1,,,S5,4,0,0 | ||
AWE1,0:06:45,0:06:45,S6,5,0,0 | ||
AWD1,0:06:10,0:06:10,S1,1,0,0 | ||
AWD1,,,S2,2,0,0 | ||
AWD1,0:06:20,0:06:20,S3,3,0,0 | ||
AWD1,,,S4,4,0,0 | ||
AWD1,,,S5,5,0,0 | ||
AWD1,0:06:45,0:06:45,S6,6,0,0 | ||
``` | ||
|
||
## calendar.txt | ||
|
||
``` | ||
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date | ||
WE,0,0,0,0,0,1,1,20060701,20060731 | ||
WD,1,1,1,1,1,0,0,20060701,20060731 | ||
``` | ||
|
||
## calendar_dates.txt | ||
|
||
This example shows service exceptions for the Independence Day holiday in 2006. On Monday July 3, 2006, regular weekday service (`service_id=WD`) is interrupted (`exception_type=2`). Instead, weekend service (`service_id=WE`) runs on that date (`exception_type=1`). The same change applies on Tuesday July 4, as well. | ||
|
||
``` | ||
service_id,date,exception_type | ||
WD,20060703,2 | ||
WE,20060703,1 | ||
WD,20060704,2 | ||
WE,20060704,1 | ||
``` | ||
|
||
## fare_attributes.txt | ||
|
||
``` | ||
fare_id,price,currency_type,payment_method,transfers,transfer_duration | ||
1,0.00,USD,0,0,0 | ||
2,0.50,USD,0,0,0 | ||
3,1.50,USD,0,0,0 | ||
4,2.00,USD,0,0,0 | ||
5,2.50,USD,0,0,0 | ||
``` | ||
|
||
## fare_rules.txt | ||
|
||
``` | ||
fare_id,route_id,origin_id,destination_id,contains_id | ||
a,TSW,1,1, | ||
a,TSE,1,1, | ||
a,GRT,1,1, | ||
a,GRJ,1,1, | ||
a,SVJ,1,1, | ||
a,JSV,1,1, | ||
a,GRT,2,4, | ||
a,GRJ,4,2, | ||
b,GRT,3,3, | ||
c,GRT,,,6 | ||
``` | ||
|
||
## shapes.txt | ||
|
||
``` | ||
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled | ||
A_shp,37.61956,-122.48161,1,0 | ||
A_shp,37.64430,-122.41070,2,6.8310 | ||
A_shp,37.65863,-122.30839,3,15.8765 | ||
``` | ||
|
||
## frequencies.txt | ||
|
||
``` | ||
trip_id,start_time,end_time,headway_secs | ||
AWE1,05:30:00,06:30:00,300 | ||
AWE1,06:30:00,20:30:00,180 | ||
AWE1,20:30:00,28:00:00,420 | ||
``` | ||
|
||
## transfers.txt | ||
|
||
``` | ||
from_stop_id,to_stop_id,transfer_type,min_transfer_time | ||
S6,S7,2,300 | ||
S7,S6,3, | ||
S23,S7,1, | ||
``` | ||
|
||
## pathways.txt | ||
|
||
``` | ||
pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional | ||
E1N1,E1,N1,2,1 | ||
E2N1,E2,N1,2,1 | ||
E3N1,E3,N1,2,1 | ||
N1-N2,N1,N2,6,1 | ||
N2-N1,N2,N1,7,1 | ||
N2N3,N2,N3,2,1 | ||
N2-B1,N2,B1,4,0 | ||
B1-N2,B1,N2,4,0 | ||
B1B2,B1,B2,2,1 | ||
B1B3,B1,B3,1,1 | ||
B2B4,B2,B4,1,1 | ||
E4N3,E4,N3,2,1 | ||
E5N3,E5,N3,2,1 | ||
N3-N4,N3,N4,6,1 | ||
N4-N3,N4,N3,7,1 | ||
N4B3,N4,B3,2,1 | ||
N4-B3,N4,B3,4,0 | ||
B3-N4,B3,N4,4,0 | ||
B3B4,B3,B4,2,1 | ||
``` | ||
|
||
## levels.txt | ||
|
||
``` | ||
level_id,level_index,level_name,elevation | ||
L0,0,Street,0 | ||
L1,-1,Mezzanine,-6 | ||
L2,-2,Southbound,-18 | ||
L3,-3,Northbound,-24 | ||
``` | ||
|
||
## translations.txt | ||
|
||
``` | ||
table_name,field_name,language,translation,record_id | ||
stops,stop_name,en,Tokyo Station,stopid000001 | ||
stops,stop_name,fr,Gare de Tokyo,stopid000001 | ||
stops,stop_name,zh,東京站,stopid000001 | ||
``` | ||
|
||
## attributions.txt | ||
|
||
``` | ||
attribution_id,is_producer,is_operator,organization_name,agency_id | ||
attribution001,1,0,Transit Feed Solutions USA,agency001 | ||
attribution002,0,1,Transit Bus Operations USA ,agency001 | ||
[...] | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# How to create GTFS | ||
|
||
A GTFS feed, which contains static transit information, is composed of a number of text (.txt) files that are contained in a single ZIP file. Each file describes a particular aspect of transit information: stops, routes, trips, fares, etc. For more information about each file, consult the GTFS reference. | ||
|
||
In order to create a GTFS feed follow the steps below. | ||
|
||
1. Create all the required files described in the [GTFS Schedule](reference) reference. Create the optional files if their functionality is desired. | ||
1. Save all files in the .txt format. Field values should be comma delimited and each line should end with a line break. See the GTFS reference for detailed information on the file contents. | ||
1. Zip all the text files together. The zipped file comprises a version of the feed. | ||
1. Publish the feed by using one of the options below. |
Oops, something went wrong.