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

Add Flex example page #301

Merged
merged 13 commits into from
Apr 10, 2024
Merged

Add Flex example page #301

merged 13 commits into from
Apr 10, 2024

Conversation

tzujenchanmbd
Copy link
Contributor

@tzujenchanmbd tzujenchanmbd commented Feb 3, 2024

The current Flex spec proposal contains some aspects that are difficult to fully explain in text. Also, we prefer not to overload the spec with numerous data examples (tables), which could make it difficult to read. Therefore, we have added this data examples page. Some descriptions in the spec will directly link to the corresponding examples on this page.

The Flex specification proposal is about to enter the voting stage. If the vote passes successfully, we plan to release this page after the vote as a reference information for the spec.

This PR represents the initial release of the content, and we plan to continue improving the content and layout in the future. Please review this PR and feel free to share any questions/suggestions/thoughts here.

@tzujenchanmbd tzujenchanmbd marked this pull request as draft February 3, 2024 00:49
### Define stop_times
- For fixed stops, define fields such as `arrival_time`, `departure_time`, and `stop_id` in a manner similar to normal bus routes.
- Between fixed stops, define the zones where deviation is allowed.
- `pickup_type = 1` and `drop_off_type = 3` indicates that pre-booking is required for boarding in the deviation zone, and riders must coordinate with the driver for alighting in the zone.
Copy link

@westontrillium westontrillium Feb 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this example service, deviated pickup is actually not allowed (pickup_type = 1). Riders who are already on board the vehicle may coordinate with the driver for a deviated drop-off only (drop_off_type = 3).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @westontrillium! We've updated the text to reflect this and provided additional clarification on the service characteristics for this example.

- Fixed table formatting.
- Modified text to reflect proper description of pickup_type=1 in Deviated route example.
- Added section to navigation in mkdocs.yml
Copy link
Contributor

@Sergiodero Sergiodero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed the content and made some adjustments, overall it looks good to me! changes made in the last commit are as follow:

  • Added section to the navigation menu in mkdocs.yml,
  • Fixed table and bullet point formatting,
  • Made corrections to text for Deviated route section based on @westontrillium feedback.

@isabelle-dr do you mind taking one final look at the changes?

Thanks!

@tzujenchanmbd tzujenchanmbd marked this pull request as ready for review February 13, 2024 15:51
mkdocs.yml Outdated
@@ -558,6 +558,7 @@ nav:
- Translations: schedule/examples/translations.md
- Feed information: schedule/examples/feed-info.md
- Dataset attributions: schedule/examples/attributions.md
- Flex: schedule/examples/flex.md
Copy link
Contributor

@isabelle-dr isabelle-dr Feb 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'd rename this to Demand responsive services, I think it's more widely understood.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated title in page and in navigation panel

Copy link
Contributor

@isabelle-dr isabelle-dr Apr 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Would it be worth it to also rename flex.md itself to demand-responsive.md?


### Define zones (GeoJSON location)

Using locations.geojson to define zones for deviated route. Typically, deviations are limited to keep the service on schedule. Therefore, as the vehicle travels, the deviation area between each fixed stop may vary accordingly. The area for route deviation may look like the image below:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When merged, add the link to the file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added link

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't seem to render properly on markdown 🤔.
Screenshot 2024-04-05 at 1 39 47 PM

We're still missing links in a few other places where locations.geojson is referenced, and one place where booking_rules.txt is referenced.


### Define trips

Since this type of service still involves a series of fixed stops and a fixed schedule, defining trips is similar to normal fixed-route bus services. It requires defining trips for each service throughout the day.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion to increase clarify:

It requires defining the trips served by each route throughout all relevant service periods.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated text

Copy link
Contributor

@isabelle-dr isabelle-dr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this @tzujenchanmbd, @westontrillium and @Sergiodero!

I left a variety of minor comments, overall this looks very good.
I suggest we merge this in gtfs.org when the PR is merged on google/transit.

@Sergiodero
Copy link
Contributor

Hi there! @isabelle-dr's comments have been addresses with the latest commit, @tzujenchanmbd could you do a final review?


<hr>

Flex is a GTFS extension project which was adopted officially into the GTFS specification in March 2024, its aims to facilitate discoverability of Demand Responsive Transportation Services.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: suggestion to link "demand responsive" and "GTFS Flex" together a little more clearly.

Demand-responsive services can be modeled in GTFS using the GTFS Flex spec extension, which was adopted in March 2024.


## On-demand services across multiple zones

Some demand-responsive services operate across multiple distinct zones, where riders can book pickups at any location A within one area and drop-offs at any location within another area. For example, [Minnesota River Valley Transit](https://www.saintpetermn.gov/330/Dial-a-Ride) offers on-demand services between Saint Peter and Kasota cities:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: do we need the "A"?

Copy link
Contributor

@isabelle-dr isabelle-dr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Minor final comments & we're good to merge 🚀. Thank you to everyone who participated in drafting this page!

@isabelle-dr
Copy link
Contributor

This might be for another PR, but https://gtfs.org/extensions/flex/ is one of the top 5 pages visited on gtfs.org.
Now that it has been adopted, it would be nice to either:

  • add a mention that it has been adopted, reference the new data example page
  • have a plan to archive it, maybe by reallocating its content to other places on the site (GTFS features and/or add more this example page?)

- 6:15 AM – 5:45 PM (New Ulm zone only)
- Sunday: 8:00 AM - Noon (New Ulm zone only)

The New Ulm city zone is contained within the Brown County zone. To avoid the ["zone overlap constraint"](/schedule/examples/flex/#zone-overlap-constraint) issue, Heartland Express can be defined with four trips:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This gives a 404; I think the appropriate way to refer to something in the same page is to use (#zone-overlap-constraint)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated! the previous link was working for me when I displayed the changes locally but change it to the suggested link, it should be ok now!

Fix zone overlap constrain link
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants