Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTFS-Flex [Voting ver.] #433

Merged
merged 14 commits into from
Mar 19, 2024
Merged

Conversation

tzujenchanmbd
Copy link
Collaborator

Context

This PR is the "voting version" of PR#388, with changes that align completely with the changes up to PR#388. The only difference is that this PR is based on the current spec, while PR#388 is based on the spec from July last year.

The Flex specification proposal is about to enter the voting stage. Due to numerous spec changes since last July, PR#388 has many conflicts with the current spec. To avoid unexpected changes to the current spec during conflict resolution, we have decided to open a new PR.

After this PR is opened, all potential future changes will occur here, and PR#388 will not have any updates. PR#388 will be temporarily kept for contextual reference and will be closed afterward. For details on all previous discussions, please refer to PR#388 and the working group meeting notes.

Additionally, we have created a data example page in the MobilityData/gtfs.org repo to help better understand this proposal. We plan to publish these data examples on gtfs.org once this proposal pass the vote. Some descriptions in this spec proposal will directly link to this data example page on gtfs.org.

Below is an overview of this GTFS-Flex proposal:


The changes in this PR are:

  • Modify file:
    • Modify stop_times.txt to clarify elements of the current specification necessary to inform data consumers of how to interpret the added and extended files and fields.
    • Modify stops.stop_id to ensure unique ID across all stops.stop_id, locations.geojson id, and location_group_id values.
  • Extend file:
    • Extend stop_times.txt with location_group_id and location_id to allow trips referencing location group and/or GeoJSON location in dedicated fields.
    • Extend stop_times.txt with start_pickup_drop_off_window and end_pickup_drop_off_window to define the time that demand responsive transportation service becomes available/ends in a GeoJSON location, location group, or stop.
    • Extend stop_times.txt with pickup_booking_rule_id and drop_off_booking_rule_id to define links to booking rules.
  • Add new file:
    • location_groups.txt & location_group_stops.txt to allow grouping of stops which allow predetermined groups of these features to be specified on individual rows of stop_times.txt.
    • locations.geojson, to define zones (Polygon or Multipolygon) where riders can request either pickup or drop off.
    • booking_rules.txt, to define the booking rules that provide riders information about how to request service.

Please help review this PR. Support resources from first adopters for voting will be released later.

@tzujenchanmbd tzujenchanmbd added GTFS Schedule Issues and Pull Requests that focus on GTFS Schedule Extension: GTFS-Flex Issues and Pull Requests that focus on GTFS-Flex Extension Status: Testing Pull Requests that are currently being implemented and tested by producers and consumers Change: Addition New function proposed to the specification. labels Feb 13, 2024
@tzujenchanmbd
Copy link
Collaborator Author

tzujenchanmbd commented Mar 4, 2024

Hello everyone,

Support resources from first adopters are ready.

Please refer to this adoption tracker for the fields adopted by each organization.

As per the GTFS Amendment process, the requirements to open a vote are met. We are opening a vote for adding GTFS-Flex.

Voting ends on 2024-03-18 at 23:59:59 UTC.


Trillium's example datasets for Brown County and Otter Express in Minnesota, US:
https://data.trilliumtransit.com/gtfs/browncounty-mn-us/browncounty-mn-us--flex-v2.zip
https://data.trilliumtransit.com/gtfs/otterexpress-mn-us/otterexpress-mn-us--flex-v2.zip

Transit App's implementation:

  • Service options:
  • Deviated route:
  • On-demand service with zone:

It is possible to reproduce more examples in the regions directly on Transit App.


Trillium's example dataset for Island Transit in Washington, US:
https://data.trilliumtransit.com/gtfs/islandtransit-wa-us/islandtransit-wa-us--flex-v2-TEST.zip

Open Trip Planner's implementation:

@tzujenchanmbd tzujenchanmbd added Status: Voting Pull Requests where the advocate has called for a vote as described in the changes.md and removed Status: Testing Pull Requests that are currently being implemented and tested by producers and consumers labels Mar 4, 2024
@leonardehrenfried
Copy link
Contributor

leonardehrenfried commented Mar 4, 2024

I may have a time zone advantage but I'm pleased to be the first to say

+1 OpenTripPlanner

@westontrillium
Copy link
Contributor

+1 from Trillium

Thank you to all our partners who have worked with us over the years on implementing this powerful extension, and thank you to everyone's contributions in getting Flex where it is today. What an odyssey!

@tsherlockcraig
Copy link

+1 from WSDOT!

@frapeti
Copy link

frapeti commented Mar 4, 2024

+1 from Ualabee!

@evansiroky
Copy link
Contributor

+1 Caltrans. We're excited for this to finally come to a vote!

@e-lo
Copy link

e-lo commented Mar 4, 2024

+1 UrbanLabs. 🎉 So excited to see this important extension get to this stage.

@ElliottMcfadden
Copy link

+1 Minnesota Department of Transportation. We are happy to have been part of this process.

@davidr1234
Copy link

+1 SBB SKI+

@klement-MENTZ
Copy link

+1 MENTZ GmbH

@rbarcham
Copy link

rbarcham commented Mar 7, 2024

+1 from Cambridge Systematics, very excited to move this along!

@drewda
Copy link

drewda commented Mar 7, 2024

+1 from Interline

@uwtcat
Copy link

uwtcat commented Mar 11, 2024

+1 from Taskar Center for Accessible Technology, UW

@jon-campbell-ibigroup
Copy link

+1 from Arcadis (fka IBI Group)

@nlee-septa
Copy link

+1 from SEPTA

@SeanKCFH
Copy link

+1 from King County

@tzujenchanmbd
Copy link
Collaborator Author

tzujenchanmbd commented Mar 19, 2024

The vote passed on 2024-03-18 at 23:59:59 UTC.

18 votes in favour and no votes against.

The votes came from:
OpenTripPlanner (@leonardehrenfried)
Trillium (@westontrillium)
WSDOT (@tsherlockcraig)
Ualabee (@frapeti)
Caltrans (@evansiroky)
UrbanLabs LLC (@e-lo)
Minnesota Department of Transportation (@ElliottMcfadden)
SBB SKI+ (@davidr1234)
MENTZ GmbH (@klement-MENTZ)
Gaussian Solutions (@sureshgaussian)
LA Metro (@matikin9)
Transit (@gcamp)
Cambridge Systematics (@rbarcham)
Interline (@drewda)
Taskar Center for Accessible Technology, University of Washington (@uwtcat)
Arcadis (@jon-campbell-ibigroup)
SEPTA (@nlee-septa)
King County (@SeanKCFH)

Thanks to everyone who contributed and voted!

@tzujenchanmbd tzujenchanmbd removed the Status: Voting Pull Requests where the advocate has called for a vote as described in the changes.md label Mar 19, 2024
@tzujenchanmbd tzujenchanmbd merged commit 43d8bbc into google:master Mar 19, 2024
2 checks passed
@tzujenchanmbd tzujenchanmbd mentioned this pull request Mar 20, 2024
isabelle-dr added a commit to MobilityData/transit that referenced this pull request Apr 11, 2024
* Editorial changes to Reference.md (google#422)

* Add dataset publishing in index

* Fix link

* Clarify stop_timezone description

* Make references to other files consistent

* fix link in Dataset Publishing Guidelines

* Fix links

* fix(gtfs/spec/reference): remove extra backtick in`record_id` description (google#431)

* GTFS Trip-Modifications (google#403)

* Add Trip-Modification, make shape non-experimental

Fix typo

Add images

Update image width

Add newlines

Add newlines

Update images

Italic for image description

Update SLO

travel_time_to_stop is optional

Proto : all feild optional

Add references to GTFS-Static

* Create a page for TripModifications entities for consistency with TU and VP

* Clarify providing TUs for modified trips and ReplacementStop time interpolation

Less strong requirement to interpolate

* Fix first_stop_reference.png not having the right image + optimize image size.

* Fix optional/require for Stop message

* Clarify behaviour and linkage to TripUpdates

* Apply Modification clarification proposed changes

Co-authored-by: Paul Swartz <[email protected]>

* Use ModifiedTripSelector instead of concatenation of IDs

Update langage

Update namign

* Add details on behavior when  is provided

* Remove modifications_id

* Fix after comments from @bdferris-v2

* Add note about producer needed the two versions of trip updates

* Fix bad relationship mentionned, + force no other entity when using ModifiedTripSelector

* Changes after Jan 10 call

* Add experimental notices

* Remove mention of stop pattern

* Use stop selector instead of stop sequence only

* Update to end_stop_selector

* Update proto with start/end stop selector

* Add selected trips

* Update reference with SelectedTrips

* Update trip modif doc

* Add last_modified_time

* Add missing start_times in pb

* Fix typos, fix description of selected trips

* Fix typos

Co-authored-by: Nicholas Paun <[email protected]>

* Update reference for clarity

* Clarify and remove duplicated information

* Consistancy

* Revert correctly shape experimental

* Editorial, formatting clarifications

* Apply suggestions from @sam-hickey-ibigroup

Co-authored-by: Sam Hickey <[email protected]>

* Update documentation images with new fields, add source files

* Clarifies behavior of propagated_modification_delay when no stop_time is cancelled

* Remove extra word

* Sync .proto and reference files

---------

Co-authored-by: Nicholas Paun <[email protected]>
Co-authored-by: Paul Swartz <[email protected]>
Co-authored-by: Nicholas Paun <[email protected]>
Co-authored-by: Joshua Fabian <[email protected]>
Co-authored-by: Sam Hickey <[email protected]>

* GTFS-Flex [Voting ver.] (google#433)

* Add 3 "location" files and booking rules file

* Modify stops.stop_id

* Modify routes.continuous_pickup/drop_off

* Modify stop_times.arrival/departure_time

* Modify stop_times.stop_id

* Add stop_times.location_group_id & location_id

* Modify stop_times.stop_sequence

* Add stop_times.start/end_pickup_drop_off_window

* Modify pickup_type & drop_off_type

* Modify stop_times.continuous_pickup/drop_off

* Add pickup/drop_off_booking_rule_id

* Add "On-demand Service Routing Behavior"

* Modify conditions for start/end_pickup_drop_off_window

* Remove unnecessary table name & editorial changes

* [GTFS-Fares v2] Clarification: Fare product definition (google#426)

* Clarify fare product definition

* fare media clarification / remove desc in amount

Add explicit interaction w/ fare media,
Remove individual explanation in non-primary keys

* Editorial change

* Update gtfs/spec/en/reference.md

Co-authored-by: isabelle-dr <[email protected]>

* Update desc of fare_product_id

Co-authored-by: isabelle-dr <[email protected]>

* Editorial changes for fare_product_id

* change "segments" to "legs"

---------

Co-authored-by: isabelle-dr <[email protected]>

* Update CHANGES.md (google#440)

* Added data example page links in stop_times (google#443)

---------

Co-authored-by: Kayla Firestack <[email protected]>
Co-authored-by: Guillaume Campagna <[email protected]>
Co-authored-by: Nicholas Paun <[email protected]>
Co-authored-by: Paul Swartz <[email protected]>
Co-authored-by: Nicholas Paun <[email protected]>
Co-authored-by: Joshua Fabian <[email protected]>
Co-authored-by: Sam Hickey <[email protected]>
Co-authored-by: Tzu-Jen Chan <[email protected]>
@emmambd
Copy link
Collaborator

emmambd commented Apr 18, 2024

Thanks again to everyone who contributed in and voted for this 11 year effort!

MobilityData's put together a proposal for Flex validation rules to add to the Canonical GTFS Validator. We intend to start with modifying pre-existing rules and including those changes in the next release in June. For those interested, please share your feedback and insights.

@tzujenchanmbd
Copy link
Collaborator Author

The Canonical GTFS Validator v6.0.0 now offers partial validation support for feeds that include Flex data. For supported validation rules, please refer to the release page: https://github.com/MobilityData/gtfs-validator/releases/tag/v6.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Change: Addition New function proposed to the specification. Extension: GTFS-Flex Issues and Pull Requests that focus on GTFS-Flex Extension GTFS Schedule Issues and Pull Requests that focus on GTFS Schedule
Projects
None yet