Sometimes we have a day where we run our regular trips but change the
start or end time. For example, we will shut down regular service
early on Christmas Eve. We will run our regular service later than
usual on New Year's Eve.
These 2 exceptions do not seem worth creating entirely new trips,
frequencies, and stop_times.
One idea would be for calendar_dates exception type 1 (add a service)
to use start_time and end_time fields to indicate when the added
service starts or ends. Null means to use the normal time, of course.
Or for exception type 2 (delete a service), remove trips before the
start time and after the end time. (Meaning of nulls is a bit
trickier
since NULL, NULL means to remove the trip entirely.)
Almost all of our trips use frequencies.txt, so we only define the
stop_times once for each trip. The actual start and end times come
from frequencies.txt. Just overriding those times on a given date
would help a lot.
Happy Holidays ;-) and thanks to Google Transit for the great trip
planning service.
Keith @ Guelph
Not trying to pick on you Keith, but I've seen this a lot on this group, and it concerns me. In general, I think we need to really ponder the cost vs benefit when considering things that complicate the spec. The more convoluted the GTFS specification gets, the higher the barrier for implementation for consumers, and the less likely they will use it. It also means that (for me, for example), there are some agencies that I think twice about picking-up because I'd have to rework significant parts of code to support them.
Ex: I think having both calendar and calendar_dates was a mistake. (This is essentially the same information specified two completely different ways).
Since I am working on an embedded device, I've had to write code that is very good at finding patterns in trips/times/etc and optimizing them out -- my TriMet data set is 1MB uncompressed (it is ~77MB in uncompressed GTFS text form) -- but my application is not so good at understanding odd GTFS peculiarities.
So to sum up: I prefer a simple GTFS that is easy to use, but may be somewhat redundant; rather than a precise but very complicated standard.
- Max
* PS - I think the bar is much lower for things like "does this stop have a bench or a shelter." The bar should be high for things like "what days does the bus/train run," "where does it go," "what time will it arrive", etc.
I realize this is a little old, but nobody else responded - so I will:
Why not create a service id that means "runs every single day" for your loop trip. Then on a weekday you have two active service IDs - the "weekday" service ID, and the "everyday" service Id. Then you only put the trip/stop_times in once, rather than the 7 times you mentioned.
TriMet does this -- today (Tue), for example, there are 5 active service IDs (weekdays, weekdays except friday, everyday, etc).
- Max
I think the quick answer to your suggestion is that it would be
unachieveable within the original transit system scheduling program(s)
used by transit systems. Building a transit database from scratch,
it'd be easy enough to designate certain trips as "everyday" and
others as only "weekday", etc. But following a typical path of
exporting data from an established scheduling program into the GTFS
spec, there is no straight path from A to B... and arriving at B (your
idea) would take a significant amount of post-processing.
I guess my impression is that scheduling programs are presently a
model of a whole built as parts, rather than the parts forming a
whole. I'd interpret what Dave originally outlined as a paradigm
shift to some extent, using parts to create a whole picture (i.e.
individual trips assigned to one or more services) - contrary to an
approach of starting with a (whole) service defintion and populating
each such service with its own trips (parts).
-Tim Sobota
> > For more options, visit this group athttp://groups.google.com/group/gtfs-changes?hl=en.- Hide quoted text -