Skip to content

Commit

Permalink
Merge pull request #6 from usdot-jpo-ode/release/v4.2
Browse files Browse the repository at this point in the history
Update Examples to 4.2
  • Loading branch information
sknick-iastate committed Dec 13, 2022
2 parents d16e754 + 5f5e912 commit dd4402c
Show file tree
Hide file tree
Showing 34 changed files with 1,633 additions and 126 deletions.
66 changes: 6 additions & 60 deletions Creating_a_WZDx_Feed.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,63 +38,7 @@ The following business rules help assure a standardized and interpretable use of

## Update Guide

There are no required changes to update a feed from WZDx v4.0 to v4.1. All properties and enumerations in WZDx v4.0 are still valid in WZDx v4.1, though some have been deprecated in favor of new properties and values. To prepare for the next major release, in which many deprecated values may be removed, feed producers should take the following steps:

### Work Zone Feed
#### Feed information
- Replace the `road_event_feed_info` property on the [WorkZoneFeed](/spec-content/objects/WorkZoneFeed.md) object with a property named `feed_info`. The content of the property remains the same (a [FeedInfo](/spec-content/objects/FeedInfo.md) object).

|Situation | WZDx v4.0 | Recommended WZDx v4.1 |
|--|--|--|
| "State DOT" is providing a WZDx feed| <pre>{<br> "road_event_feed_info": { <br> "publisher": "State DOT",<br>... </pre> | <pre>{<br> "feed_info": { <br> "publisher": "State DOT",<br>... </pre> |

#### Identifers
- Use a Universally Unique Identifer (UUID) for the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) `id` property. If semantic IDs were being used, use the new `name` property on the [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) to provide a human-friendly name.
- Use a UUID for the [FeedDataSource](/spec-content/objects/FeedDataSource.md) `id` property.

#### Position verification
- Use the new `is_start_position_verified` and `is_end_position_verified` boolean properties on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) instead of `beginning_accuracy` and `ending_accuracy` to indiciate if the start and end positions are verified. `true` corresponds to "verified" and `false` corresponds to "estimated".

|Situation| WZDx v4.0 | Recommended WZDx v4.1 |
|--|--|--|
|Both points are estimated| <pre>...<br>"beginning_accuracy": "estimated"<br>"ending_accuracy": "estimated"<br>... </pre> | <pre>...<br>"is_start_position_verified": false<br>"is_end_position_verified": false<br>... </pre> |
|Both points are verified| <pre>...<br>"beginning_accuracy": "verified"<br>"ending_accuracy": "verified"<br>...</pre> | <pre>...<br>"is_start_position_verified": true<br>"is_end_position_verified": true<br>...</pre> |

#### Start date, end date, and event status
- Use the new `is_start_date_verified` and `is_end_date_verified` boolean properties on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) instead of the `start_date_accuracy` and `end_date_accuracy` properties to indiciate if the start and end date and times are verified. `true` corresponds to "verified" and `false` corresponds to "estimated".
- Do not use the `event_status` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) object. Data consumers should determine whether an event is active based on the road event `start_date`, `end_date`, `is_start_date_verified` and `is_end_date_verified`.

|Situation| WZDx v4.0 | Recommended WZDx v4.1 |
|--|--|--|
|Start date is confirmed| <pre>...<br>"start_date_accuracy": "verified"<br>"ending_accuracy": "estimated"<br>... </pre> | <pre>...<br>"is_start_date_verified": true<br>"is_end_date_verified": false<br>... </pre> |
|Both dates are confirmed| <pre>...<br>"start_date_accuracy": "verified"<br>"ending_accuracy": "verified"<br>... </pre> | <pre>...<br>"is_start_date_verified": true<br>"is_end_date_verified": true<br>...</pre> |

#### Lane types
- Replace any instance of [LaneType](/spec-content/enumerated-types/LaneType.md) `center-left-turn-lane` with the new `two-way-center-turn-lane` value.

|Situation| WZDx v4.0 | Recommended WZDx v4.1 |
|--|--|--|
|Center two-way turn lane is closed. | <pre>...<br>"order": 1<br>"type": "center-left-turn-lane"<br>"status": "closed"<br>... </pre> | <pre>...<br>"order": 1<br>"type": "two-way-center-turn-lane"<br>"status": "closed"<br>... </pre> |

#### Relationships
- Use the new `related_road_events` property on the [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) to allow explicitly defining relationships/connections between road events instead of the `relationship` property.
- Instead of supplying a list of road event IDs associated with each type of relationship (first, next, parent, child), use a [RelatedRoadEvent](/spec-content/objects/RelatedRoadEvent.md) object for each related road event and use the [RelatedRoadEventType](/spec-content/enumerated-types/RelatedRoadEventType.md) to indicate the type of relationship.
- Instead of using the `parents` array to identify a project that a road event is a part of, use a specific RelatedRoadEventType like `related-detour` and `related-work-zone` to identify each related event on roads in the nearby area.
- Instead of using the `next` and `first` array to indicate road events the next road event on the roadway, use the `next-in-sequence` and `first-in-sequence` RelatedRoadEventType.
- Instead of using the `next` and `first` arrays to indicate a recurring work zone, use the `first-occurrence` and `next-occurrence` RelatedRoadEventType.

|Situation| WZDx v4.0 | Recommended WZDx v4.1 |
|--|--|--|
| The road event (`65772-2`) is part of a larger project with three road events in sequence (`65773-1`, `65773-2`, and `65773-3`) going eastbound, and `65773-WB` going westbound. | <pre>...<br>"relationship": {<br> "parents": ["65773"],<br> "first": ["65773-1"],<br> "next": ["65773-3"]<br>},<br>... </pre> | <pre>...<br>"related_road_events": [<br> {<br> "type": "first-in-sequence",<br> "id": "65773-1"<br> },<br> {<br> "type": "next-in-sequence",<br> "id": "65773-3"<br> }<br><br> {<br> "type": "related-work-zone",<br> "id": "65773-WB"<br> }],<br>... </pre> |
| The work zone road event has an associated detour (`67890-detour`). | <pre>...<br>"relationship": {<br> "children": ["67890-detour"]<br>}<br>...</pre> | <pre>...<br>"related_road_events": [<br> {<br> "type": "related-detour",<br> "id": "67890-detour"<br> }<br>]<br>...</pre> |
| The work zone road event (`PLK0102016-Day2`)is part of a recurring series. | <pre>...<br>"relationship": {<br> "parents": ["Project PLK01012016"]<br>}<br>...</pre> | <pre>...<br>"related_road_events": [<br> {<br> "type": "first-occurrence",<br> "id": "PLK01012016-Day1"<br> }<br> {<br> "type": "next-occurrence",<br> "id": "PLK01012016-Day3"<br> }<br>]<br>...</pre> |

### Device Feed
#### Arrow boards that are moving
- Use the new `is_moving` on the [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) instead of the `is_moving` property on the [ArrowBoard](/spec-content/objects/ArrowBoard.md).

#### Traffic Signals
- To represent a temporary traffic signal, use the new [TrafficSignal](/spec-content/objects/TrafficSignal.md) object instead of a [LocationMarker](/spec-content/objects/LocationMarker.md) that marks a `temporary-traffic-signal` (see [MarkedLocationType](/spec-content/enumerated-types/MarkedLocationType.md)).
<TODO>

## Data Security Best Practices
This is a working list of best practices for standing up a WZDx data feed assembled by the WZDx Technical Assistance Co-chairs. Please note that this list is not all encompassing; DOTs should consult with security experts for help with securing infrastructure components. **Please note that these are best practices only; not requirements.**
Expand All @@ -121,11 +65,13 @@ DOTs should consider the sources that are being used to build the WZDx feeds and
### JSON Schemas
The WZDx Specification defines a JSON schema for each feed (WZDx v2.0 and later) within the [schemas](/schemas) directory. The repository contains schemas for the following feeds:

#### Current Version (4.1)
- [WZDx v4.1 Work Zone Feed](/schemas/4.1/WorkZoneFeed.json)
- [WZDx v4.1 Device Feed](/schemas/4.1/DeviceFeed.json)
#### Current Version (4.2)
- [WZDx v4.2 Work Zone Feed](/schemas/4.2/WorkZoneFeed.json)
- [WZDx v4.2 Device Feed](/schemas/4.2/DeviceFeed.json)

#### Previous Versions
- [WZDx v4.1 Work Zone Feed](/schemas/4.1/WorkZoneFeed.json)
- [WZDx v4.1 Device Feed](/schemas/4.1/DeviceFeed.json)
- [WZDx v4.0 WZDxFeed](/schemas/4.0/WZDxFeed.json)
- [WZDx v4.0 SwzDeviceFeed](/schemas/4.0/SwzDeviceFeed.json)
- [WZDx v4.0 RoadRestrictionFeed](/schemas/4.0/RoadRestrictionFeed.json)
Expand Down
51 changes: 11 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Specifically, WZDx defines the structure and content of several [GeoJSON](https:
- [Project Description](#project-description)
- [Contact Information](#contact-information)
- [Release Notes](#release-notes)
- [Release v4.1 (Sept 2022)](#wzdx-v41-september-2022)
- [Release v4.2 (Dec 2022)](#wzdx-v42-december-2022)
- [Getting Started](#getting-started)
- [JSON Schemas](#json-schemas)
- [Contributions](#contributions)
Expand Down Expand Up @@ -84,51 +84,20 @@ Contact Information: [avdx@dot.gov](mailto:avdx@dot.gov?subject=Submission%20of%

## Release Notes

### WZDx v4.1 (September 2022)
### WZDx v4.2 (December 2022)

#### New Functionality
- Add `is_moving` boolean property to the [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) to allow indicating if any field device is moving as part of a mobile operation.
- Add `road_direction` property to the [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) to allow providing the direction of the roadway that a field device is associated with.
- Recommend using Universally Unique Identifiers (UUID) for the `id` property of the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md), [FieldDeviceFeature](/spec-content/objects/FieldDeviceFeature.md), and [FeedDataSource](/spec-content/objects/FeedDataSource.md), noting that a UUID may be required in the next major release.
- Add `name` property to [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) to allow providing a human-friendly name for a road event.
- Add the following values to the [MarkedLocationType](/spec-content/enumerated-types/MarkedLocationType.md) enumerated type:
- `personal-device`
- `ramp-closure`
- `road-closure`
- `delineator`
- Add the following values to the [Direction](/spec-content/enumerated-types/Direction.md) enumerated type:
- `undefined`
- `unknown`
- Add `no-passing` to the [RestrictionType](/spec-content/enumerated-types/RestrictionType.md) enumerated type.
- Add a `sign_text` property to the [FlashingBeacon](/spec-content/objects/FlashingBeacon.md) object.
- Add a [TrafficSignal](/spec-content/objects/TrafficSignal.md) object to allow represent temporary traffic signals in a WZDx Device Feed.
- Add `two-way-center-turn-lane` to the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type to replace the existing `center-left-turn-lane` with a more generic value.
<TODO>

#### Refactoring
- Deprecate `is_moving` property on the [ArrowBoard](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/ArrowBoard.md); use the new `is_moving` on the [FieldDeviceCoreDetails](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/FieldDeviceCoreDetails.md) instead.
- Change the conformance of the `road_event_id` property on the [TrafficSensorLaneData](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/TrafficSensorLaneData.md) from "Required" to "Optional" to allow providing lane-level data without a defined road event.
- Deprecate the `road_event_feed_info` property on the [WorkZoneFeed](/https://github.com/usdot-jpo-ode/wzdx/blob/fixes/release-v4.1/spec-content/objects/WorkZoneFeed.md) object; use the new `feed_info` property instead.
- Add `is_start_position_verified` and `is_end_position_verified` boolean properties to the [WorkZoneRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/WorkZoneRoadEvent.md) to allow indiciating if the start and end positions are verified and clarify what verified means; these properties replace `beginning_accuracy` and `ending_accuracy`.
- Deprecate the `beginning_accuracy` and `ending_accuracy` properties on the [WorkZoneRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/WorkZoneRoadEvent.md) object; use the new `is_start_position_verified` and `is_end_position_verified` properties instead.
- Add `is_start_date_verified` and `is_end_date_verified` boolean properties to the [WorkZoneRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/WorkZoneRoadEvent.md) to allow indiciating if the start and end date and times are verified and clarify what verified means; these properties replace `start_date_accuracy` and `end_date_accuracy`.
- Deprecate the `start_date_accuracy` and `end_date_accuracy` properties on the [WorkZoneRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/WorkZoneRoadEvent.md) object; use the new `is_start_date_verified` and `is_end_date_verified` properties instead.
- Deprecate the `event_status` property on the [WorkZoneRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/WorkZoneRoadEvent.md) object.
- Change the conformance of the `road_names` property on the [FieldDeviceCoreDetails](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/FieldDeviceCoreDetails.md) from "Required" to "Optional".
- Deprecate the `traffic-signal` value in the [MarkedLocationType](/https://github.com/usdot-jpo-ode/wzdx/blob/fixes/release-v4.1/spec-content/enumerated-types/MarkedLocationType.md) enumerated type; use the new [TrafficSignal](/https://github.com/usdot-jpo-ode/wzdx/blob/fixes/release-v4.1/spec-content/objects/TrafficSignal.md) object instead.
- Deprecate the `center-left-turn-lane` value in the [LaneType](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/enumerated-types/LaneType.md) enumerated type; use the new `two-way-center-turn-lane` instead.
- Add a `related_road_events` property (and new supporting object [RelatedRoadEvent](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/RelatedRoadEvent.md) and enumerated type [RelatedRoadEventType](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/enumerated-types/RelatedRoadEventType.md)) to the [RoadEventCoreDetails](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/RoadEventCoreDetails.md) to allow explicitly defining relationships/connections between road events; this replaces the [Relationship](/https://github.com/usdot-jpo-ode/wzdx/blob/fixes/release-v4.1/spec-content/objects/Relationship.md) object concept.
- Deprecate the `relationship` property on the [RoadEventCoreDetails](https://github.com/usdot-jpo-ode/wzdx/blob/main/spec-content/objects/RoadEventCoreDetails.md); use the new `related_road_events` property instead.
<TODO>

#### Cleanup
- Change the type of the `average_speed_kph`, `volume_vph`, and `occupancy_percent` properties on the [TrafficSensor](/spec-content/objects/TrafficSensor.md) and [TrafficSensorLaneData](/spec-content/objects/TrafficSensorLaneData.md) object from "Integer" to "Number"
- Change the allowed minimum value for `average_speed_kph` on [TrafficSensorLaneData](/spec-content/objects/TrafficSensorLaneData.md) from `1` to `0`.
- Add a `feed_info` property to the [WorkZoneFeed](/spec-content/objects/WorkZoneFeed.md) object to replace the `road_event_feed_info`.
- Expand the description of the `update_date` property on the [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) and [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) to clarify what the value represents.
- Remove the [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md) (it moved to [usdot-jpo-ode/TDx](https://github.com/usdot-jpo-ode/TDx)).
<TODO>

## Getting Started

The WZDWG welcomes feedback and comments on the WZDx v4.1 Specification. Comments can be made by posting a GitHub [Issue](https://github.com/usdot-jpo-ode/wzdx/issues) or [Discussion](https://github.com/usdot-jpo-ode/wzdx/discussions), while suggested changes can be made using a [Pull Request](https://github.com/usdot-jpo-ode/wzdx/pulls).
The WZDWG welcomes feedback and comments on the WZDx v4.2 Specification. Comments can be made by posting a GitHub [Issue](https://github.com/usdot-jpo-ode/wzdx/issues) or [Discussion](https://github.com/usdot-jpo-ode/wzdx/discussions), while suggested changes can be made using a [Pull Request](https://github.com/usdot-jpo-ode/wzdx/pulls).

1. Read about WZDWG activities [Wiki](https://github.com/usdot-jpo-ode/wzdx/wiki) and the [WZDx Early Adopter's Guide](/documents/WZDx_Early_Adopters_Guide.pdf).
2. Learn about using GitHub as a [tool for collaboration and support](#contributions).
Expand All @@ -141,11 +110,13 @@ The WZDWG welcomes feedback and comments on the WZDx v4.1 Specification. Comment
## JSON Schemas
The WZDx Specification defines a JSON schema for each feed within the [schemas](/schemas) directory. Schemas can be used to validate a WZDx feed document for compliance to the specification. The repository contains schemas for the following feeds:

### Current Version (4.1)
- [WZDx v4.1 Work Zone Feed](/schemas/4.1/WorkZoneFeed.json)
- [WZDx v4.1 Device Feed](/schemas/4.1/SwzDeviceFeed.json)
### Current Version (4.2)
- [WZDx v4.2 Work Zone Feed](/schemas/4.2/WorkZoneFeed.json)
- [WZDx v4.2 Device Feed](/schemas/4.2/DeviceFeed.json)

### Previous Versions
- [WZDx v4.1 Work Zone Feed](/schemas/4.1/WorkZoneFeed.json)
- [WZDx v4.1 Device Feed](/schemas/4.1/DeviceFeed.json)
- [WZDx v4.0 WZDxFeed](/schemas/4.0/WZDxFeed.json)
- [WZDx v4.0 SwzDeviceFeed](/schemas/4.0/SwzDeviceFeed.json)
- [WZDx v4.0 RoadRestrictionFeed](/schemas/4.0/RoadRestrictionFeed.json)
Expand Down
2 changes: 1 addition & 1 deletion examples/DeviceFeed/arrow_board_ok_example.geojson
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"contact_name": "Robert Vendor",
"contact_email": "robert.vendor@testvendor.com",
"update_frequency": 60,
"version": "4.1",
"version": "4.2",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"data_sources": [
{
Expand Down
2 changes: 1 addition & 1 deletion examples/DeviceFeed/camera_error_example.geojson
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"contact_name": "Robert Vendor",
"contact_email": "robert.vendor@testvendor.com",
"update_frequency": 60,
"version": "4.1",
"version": "4.2",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"data_sources": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"contact_name": "Frederick Francis Feedmanager",
"contact_email": "fred.feedmanager@testdot.gov",
"update_frequency": 60,
"version": "4.1",
"version": "4.2",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"data_sources": [
{
Expand Down Expand Up @@ -38,8 +38,8 @@
},
"beginning_cross_street": "Aurora Avenue",
"ending_cross_street": "NW 46th Place",
"is_start_position_verified": "false",
"is_end_position_verified": "false",
"is_start_position_verified": false,
"is_end_position_verified": false,
"start_date": "2010-01-01T01:03:01Z",
"end_date": "2010-01-01T17:00:00Z",
"is_start_date_verified": false,
Expand Down Expand Up @@ -100,8 +100,8 @@
},
"beginning_cross_street": "NW 46th Place",
"ending_cross_street": "Aurora Avenue",
"is_start_position_verified": "true",
"is_end_position_verified": "false",
"is_start_position_verified": true,
"is_end_position_verified": false,
"start_date": "2010-01-01T01:03:01Z",
"end_date": "2010-01-01T17:00:00Z",
"location_method": "channel-device-method",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"contact_name": "Frederick Francis Feedmanager",
"contact_email": "fred.feedmanager@testdot.gov",
"update_frequency": 60,
"version": "4.1",
"version": "4.2",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"data_sources": [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"contact_name": "Frederick Francis Feedmanager",
"contact_email": "fred.feedmanager@testdot.gov",
"update_frequency": 60,
"version": "4.1",
"version": "4.2",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"data_sources": [
{
Expand Down
Loading

0 comments on commit dd4402c

Please sign in to comment.