Closed DeraldDudley closed 2 years ago
@DeraldDudley I'm not sure about splitting the components of the IncidentFeed between multiple PRs from an implementation point. If you do keep them separate, you should merge the commits from this branch into those so that the IncidentType enumerations are shown in context.
Also, for completeness this PR should add a new schema file for the IncidentFeed and add the IncidentRoadEvent to the RoadEventFeature schema. Let me know if you want any help making these changes - happy to assist as needed.
@DeraldDudley I'm not sure about splitting the components of the IncidentFeed between multiple PRs from an implementation point. If you do keep them separate, you should merge the commits from this branch into those so that the IncidentType enumerations are shown in context.
Also, for completeness this PR should add a new schema file for the IncidentFeed and add the IncidentRoadEvent to the RoadEventFeature schema. Let me know if you want any help making these changes - happy to assist as needed.
Happy to merge the incident type enumerations into this PR if it makes it easier. Didn't want the incidents feed to get rejected because people disagreed with some of the enumeration values.
The Road Incident Feed has moved to TDx
Summary
Add an Incident Road Feed
Motivation
Adding an incident Road Feed enables publishers to inform drivers about events that close or restricts the use of road segments. This is valuable because it reduces driver uncertainty and increases the probability of driver success. It also fulfills use cases identified by WZDx working group members and state transportation officials. These use cases include informing citizens about road closures after a hurricane and informing transportation management centers about road status during emergencies.
Adding incidents will bolster the specifications usefulness. A more useful specification is more likely to be implemented. More implementations inform more drivers about hazards to navigation. Better informed drivers avoid hazards resulting in safer, cleaner, and more efficient transportation.
IncidentRoadEvents vs WorkZoneRoadEvents
IncidentRoadEvents are very similar to WorkZoneRoadEvent. They are different in the following ways:
type_of_work
is dropped from the IncidentRoadEvent object.end_date
is optional in IncidentRoadEvent object.type_of_incident
is created for the IncidentRoadEvent object. Incident types are described using incident enumerations.Changes
RoadIncidentFeed Object (GeoJSON FeatureCollection)
The
RoadIncidentFeed
object is the root (highest level) object of a WZDx road incident feed. There is oneRoadIncidentFeed
object per road incident feed GeoJSON document. TheRoadIncidentFeed
is a GeoJSON FeatureCollection.The
RoadIncidentFeed
informs drivers about the location of roadway incidents. Incident types are described bytype_of_incident
enumerations.Properties
feed_info
type
"FeatureCollection"
FeatureCollection
.features
bbox
Used By
Road Restriction GeoJSON document (one
RoadIncidentFeed
object per file).RoadEventFeature Object (GeoJSON Feature)
The
RoadEventFeature
object is the container object for a WZDx road event (WorkZoneRoadEvent, DetourRoadEvent, RestrictionRoadEvent, RestrictionRoadEvent). TheRoadEventFeature
object is an instance of a GeoJSON Feature.Properties
id
type
"Feature"
Feature
.properties
geometry
type
of LineString or MultiPointtype
property MUST be LineString or MultiPoint.LineString
allows specifying the entire road event path and should be preferred.MultiPoint
should be used when only the start and end coordinates are known.bbox
2n
wheren
is the number of dimensions represented in thegeometry
property, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of thegeometry
.Used By
features
features
features
IncidentRoadEvent Object
The
IncidentRoadEvent
object locates and describes incidents or events that close or restrict the use of a road segment.The
IncidentRoadEvent
is a type of road event; it has acore_details
property which contains the RoadEventCoreDetails and exists within a RoadEventFeature.Properties
core_details
types_of_incident
start_date
2016-11-03T19:37:00Z
.end_date
2016-11-03T19:37:00Z
.is_start_date_verified
is_end_date_verified
is_start_position_verified
is_end_position_verified
location_method
vehicle_impact
lanes
beginning_cross_street
ending_cross_street
beginning_milepost
ending_milepost
worker_presence
reduced_speed_limit_kph
restrictions
Used By
properties
TypeOfIncident Object
The
TypeOfIncident
object describes an event that causees disruptions to expected operations.Properties
incident_type
Used By
incident_types
IncidentType Enumerated Type
Descriptions of the incidents causing disruptions to expected operations.
Values
Used By
incident_type
Added RoadIncidentFeed.json to Schemas
RoadIncidentFeed.json
{ "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.1/RoadIncidentFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v4.1 RoadIncidentFeed", "description": "The GeoJSON output of a Road Incident Feed data feed (v4.0)", "type": "object", "properties": { "road_event_feed_info": { "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.1/FeedInfo.json" }, "type": { "description": "The GeoJSON type", "enum": ["FeatureCollection"] }, "features": { "description": "An array of GeoJSON Feature objects which represent Incident road events", "type": "array", "items": { "allOf": [ { "properties": { "properties": { "properties": { "core_details": { "properties": { "event_type": { "enum": ["incident", "detour"] } }, "required": ["event_type"] } }, "required": ["core_details"] } }, "required": ["properties"] }, { "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/RoadEventFeature.json" } ] } }, "bbox": { "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": ["road_event_feed_info", "type", "features"]}