v6.0.0 #1909
emmambd
announced in
Announcements
v6.0.0
#1909
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Highlights
Partial validation support for Flex
GTFS Flex is a proposal that ensures riders can discover demand responsive services and how to book them. Flex was officially adopted into GTFS this March. With this validator release, we offer partial validation support for feeds that include Flex data. This includes:
No more false positives! Before, feeds with Flex features would trigger certain notices when the data was actually valid, such as
missing_required_field
for a missingstop_id
instop_times.txt
whenlocation_group_id
orlocation_id
was provided. Now, any error or warning generated for your Flex feed is legitimate and should be fixed.Validation for booking_rules.txt. 10 new validation notices have been added to check data from
booking_rules.txt
Validation for polygons in locations.geojson. Checks that each polygon in
locations.geojson
conforms to the OpenGIS Simple Features Specification, section 6.1.11, as required by GTFS.We'll continue to add more Flex validation rules in future releases. You can see the full list of validation rules here.
Notice changes
missing_required_file
:feed_info.txt
is now conditionally required whentranslations.txt
exists. Clarification adopted in Update requirement for feed_info.txt google/transit#460.missing_required_field
fortransfers.txt
:from_stop_id
andto_stop_id
are no longer required for atransfer_type
of4
or5
. Clarification adopted in [Clarification] from/to_stop_id & from/to_trip_id description in transfers.txt google/transit#455.foreign_key_violation
: Now checks ifnetwork_id
exists infare_leg_rules.txt
but not inroutes.txt
ORnetworks.txt
. Before, there was a bug that meantnetwork_id
had to be included in bothroutes.txt
ANDnetworks.txt
.missing_timepoint_value
: Modified to clarify that timepoint values should be set explicitly to0
or1
, not empty. Clarification adopted into GTFS in Clarify intended use for timepoint in stop_times.txt google/transit#474. 🟡missing_recommended_column
was also removed as a result of this clarification.Flex notice changes
missing_required_file
:stops.txt
is now conditionally required. Iflocations.geojson
is not present,stops.txt
is required.missing_required_field
:stop_id
is conditionally required instop_times.txt
, in cases where the record does not includelocation_id
orlocation_group_id
.missing_trip_edge
: Only checks stop times records if they do not includestart_pickup_dropoff_window
orend_pickup_drop_off_window
.decreasing_or_equal_stop_time_distance
: Skips stop times records with alocation_id
orlocation_group_id
instead of astop_id
. Cases whereshape_dist_traveled
is provided with alocation_id
orlocation_group_id
are triggered in the new 🔴forbidden_shape_dist_traveled
error.stop_without_stop_time
: Skips stops that are a part of a location group referenced instop_times.txt
.stop_too_far_from_shape
: Only checks stop times records with astop_id
.New notices
bidirectional_exit_gate
: Triggered when exit gates (pathway_mode=7 inpathways.txt
) are bidirectional.invalid_character
: Triggered when text contains invalid characters, such as the replacement character ("�"). Check that text was properly encoded in UTF-8 as required by GTFS.single_shape_point
: Triggered when a shape inshapes.txt
only includes one shape point.Flex new notices
forbidden_shape_dist_traveled
: Triggered whenshape_dist_traveled
is provided with alocation_id
orlocation_group_id
instop_times.txt
.forbidden_geography_id
: Triggered when astop_times.txt
includes more than one geography id. Only one ofstop_id
,location_group_id
orlocation_id
can be defined for a given entry.locations.geojson notices
malformed_json
: Triggered whenlocations.geojson
is malformed.invalid_geometry
: Triggered when polygon inlocations.geojson
is unparsable or invalid. Each polygon must be valid by the definition of the OpenGIS Simple Features Specification, section 6.1.11.missing_required_element
: Triggered when an element that's required in the geoJSON file is missing.unsupported_geo_json_type
: Triggered when geoJSON type is a value other than"FeatureCollection"
.unsupported_feature_type
: Triggered when feature type is a value other than"Feature"
.unsupported_geometry_type
: Triggered when the geometry type is a value other than"Polygon"
or"MultiPolygon"
.booking_rules.txt notices
forbidden_prior_day_booking_field_value
: Triggered when a forbidden field value is present for a prior-day booking rule.forbidden_prior_notice_start_day
:prior_notice_start_day
value is forbidden whenprior_notice_duration_max
is set.forbidden_prior_notice_start_time
:prior_notice_start_time
value is forbidden when prior_notice_start_day value is not setforbidden_real_time_booking_field_value
: A forbidden field value is present for a real-time booking rule.forbidden_same_day_booking_field_value
: A forbidden field value is present for a same-day booking rule.invalid_prior_notice_duration_min
: Theprior_notice_duration_max
field value needs to be greater or equal to theprior_notice_duration_min
field value.missing_prior_notice_duration_min
:prior_notice_duration_min
value is required for same day booking_typemissing_prior_day_booking_field_value
:prior_notice_last_day
andprior_notice_last_time values
are required for prior day booking_type.missing_prior_notice_start_time
:prior_notice_start_time
value is required whenprior_notice_start_day
value is setprior_notice_last_day_after_start_day
:prior_notice_last_day
should not be greater than theprior_notice_start_day
.Impacts on existing data
You can find the impact of this release on all existing datasets we have in the Mobility Database in this spreadsheet.
Other notable improvements
New Contributors
PR List
missing_trip_edge
for flex feed by @cka-y in feat: updatemissing_trip_edge
for flex feed #1843forbidden_real_time_booking_field_value
validation notice by @cka-y in feat: flex -forbidden_real_time_booking_field_value
validation notice #1845forbidden_same_day_booking_field_value
notice by @cka-y in feat: flex - addedforbidden_same_day_booking_field_value
notice #1847forbidden_prior_day_booking_field_value
,invalid_prior_notice_duration_min
andforbidden_prior_notice_start_day
notices by @cka-y in feat: addedforbidden_prior_day_booking_field_value
,invalid_prior_notice_duration_min
andforbidden_prior_notice_start_day
notices #1860Predefined Routes with Deviation
trigger + test by @cka-y in fix:Predefined Routes with Deviation
trigger + test #1862stops.txt
to be conditionally required by @cka-y in feat: modifystops.txt
to be conditionally required #1868locations.geojson
file parsing and geometry validation by @cka-y in feat:locations.geojson
file parsing and geometry validation #1879Full Changelog: v5.0.1...v6.0.0
This discussion was created from the release v6.0.0.
Beta Was this translation helpful? Give feedback.
All reactions