This workbook is intended to use typical schedule data to generate GTFS records.
Sample data is supplied to help with the learning curve. You will need to replace all the data on most of the sheets t
Enter your schedule data in the the Schedules V3 sheet then use the Generate stop_times and trips macro
When you have generated the stop_times and trips records you can copy/paste to the ImportExport XLS tool.
You can use ImportMergeXLS feature of the ImportExport tool to transfer the generated data - only the matching sh
Macros:
Worksheets:
Notes
Schedules V3
stop_times
trips
local_routes (opt)
local_calendar (opt)
local_stops (opt)
timed_stops (report)
this sheet
User entered schedule data - Version 2 Format
generated data to be transferred to the GT feed spreadsheet, ImportExport XLS
generated data to be transferred to the GT feed spreadsheet, ImportExport XLS
User entered route data in GT format - should be an Identical copy of the main GT file - not n
User entered calendar data in GT format - should be an Identical copy of the main GT file - no
User entered stops data in GT format - should be an Identical copy of the main GT file - not ne
Generated schedule in typical layout for only the timed stops - not need to generate stop_time
Utility:
V3 Changes:
9/11/2015 Added timepoint to stop_times; added wheelchair & bikes to trips; (and added associated colu
9/11/2015 Generate stop_times sets the schedule timepoint flag = 1 if a time is present and a 0 is not alr
Genrate timed stops has option to alter the schedule timed_stop flag to be equal to the timepo
9/29/2015 Fixed timepoint logic. If flag is preset it is copied to stop_times. If missing, and time present, ti
9/30/2015 Fixed timed stops report minor issue
when a new route (schedule region) is begun New route e.g. Bus Route:R1a
R1a:R1a-T02 uses shape_id R1a and assigns 'R1a-T02' to the block_id for the trip
mportExport XLS
mportExport XLS
py of the main GT file - not need to generate stop_times and trips
l copy of the main GT file - not need to generate stop_times and trips
opy of the main GT file - not need to generate stop_times and trips, used for QA
ot need to generate stop_times and trips, very helpful to QA the schedules data
xport.xls file
ps (done automatically on each use of Generate stop_times and trips)
route_id
Routes
Route:route
prefix a loop to include stop 38 on Prado .road
.Bus
Shape
R2a includes
This first bus route is a bit confusing. R2 is a m
Copied to tripMust
records.
be inThe
firstmacro
column,
also
alluses
cells this
below
column
should
to be
define
blank
which
until you
direction_
.get
Shape
drops
the Prado Rd loop and adds stop 991R1 makes two loops through the Downtown Tra
.rows to evaluate
to theR2b
next Bus
Route
route_id
service_id
id
trip_headsign
stop_id
when a single shape was used that included th
The macro looks
Route
in each
prefxtime
is combined
bucket columns
with the(T01,
trip bucket
T02, etc.)
name
and
(row
creates
1) to
.each using one of the loops. Then a block_id w
stop_times records
build a by
trip_id
going down the rows until a blank is encounter in
.route_id then it moves to the next time bucket and repeats
Comment rows may follow as long as the cells in columns A and B are
.empty
on Prado .road
This first bus route is a bit confusing. R2 is a more typical route
shape_id:block_id
arrival_time
.You
can
First
use
and
different
last time
shapes
for trip
forare
differe
re
pickup_ drop_off timed_
wait_t
s stop 991R1 makes two loops through the Downtown Transit Center. Google Transit was having problems
.stops
stop_desc
stop_headsign
type
_type
stop
ime
when a single shape was used that included the two loops so the overall route was spit into two trips
block_id is optional
.Use * to create a stop_time rec
.each using one of the loops. Then a block_id was added to link the two loops
.Blank cells are ignored
shape_id:block_id
arrival_time
wheelcha
.You can
First
use
and
different
last time
shapes
for trip
forare
different
required,
tripsoptional on non-timed
ir_acces
bikes_a
.stops timepoint
sible
llowed
T01
block_id is optional
.Use * to create a stop_time record w/o arrival_time
.Blank cells are ignored
T02
T03
T04
T05
T06
T07
T08
T09
T10
T11
T12
T13
T14
T15
T16
T17
T18
T19
T20
T21
T22
T23
T24
T25
T26
T27
T28
T29
T30
T31
T32
T33
T34
T35
T36
T37
T38
T39
T40
T41
T42
T43
T44
T45
T46
T47
T48
T49
T50
T51
T52
T53
T54
T55
T56
T57
T58
T59
T60
T61
T62
T63
T64
T65
T66
T67
T68
T69
T70
T71
T72
T73
T74
T75
T76
T77
T78
T79
T80
T81
T82
T83
T84
T85
T86
T87
T88
T89
T90
T91
T92
T93
T94
T95
T96
T97
T98
T99
T100
T101
T102
T103
T104
T105
T106
T107
trip_id
arrival_time
departure_time
stop_id
stop_sequence
stop_headsign
pickup_type
drop_off_type
shape_dist_traveled
timepoint
route_id
service_id trip_id
trip_headsign direction_id
block_id
shape_id
wheelchair_accessible bikes_allowed
route_id
agency_id
route_short_name route_long_name
route_desc route_type
route_url
route_color
route_text_color
1
1
1
0
0
0
0
wednesdaythursday friday
1
1
1
1
1
1
0
0
0
0
0
0
0
0
saturday
1
1
0
1
0
0
0
sunday
0
1
0
1
1
1
0
0
0
0
0
1
0
1
start_date end_date
20000101 20100101
20000101 20100101
20000101 20100101
20000101 20100101
20000101 20100101
20000101 20100101
20000101 20100101
* notes
sample data
sample data
sample data
sample data
sample data
sample data
sample data
stop_id stop_code
stop_name
stop_desc
stop_lat
stop_lon
zone_id
stop_url
location_ty parent_statstop_timezwheelchair_boarding