diff --git a/Creating_a_WZDx_Feed.md b/Creating_a_WZDx_Feed.md index 01596b04..60cfdda3 100644 --- a/Creating_a_WZDx_Feed.md +++ b/Creating_a_WZDx_Feed.md @@ -33,7 +33,7 @@ The following business rules help assure a standardized and interpretable use of 3. The preferred [GeoJSON Geometry](https://tools.ietf.org/html/rfc7946#page-7) for a [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) is `LineString`, which allows indicating the full path of the road event. In cases where only the beginning and ending coordinates are available, the `MultiPoint` can be used. 4. A cascading multi-lane closure should consider the speed of vehicles traveling through the work zone. If the distance between lane closures is short enough that time in a to-be-closed lane is not significant, which is common, the to-be-closed lane should be represented as closed to avoid traffic delays and potential crashes. 5. A detour must be represented with a [RoadEvent](/spec-content/objects/RoadEvent.md) of type (i.e. with `event_type` of) `detour` and its containing [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) should have a `geometry` of `type` `LineString` to represent the full detour route. The detour road event should be connected to the work zone road event using the `relationship` property on the detour road event. -6. If the `lanes` property on the [RoadEvent](/spec-content/objects/RoadEvent.md) object is provided, it must include one entry for every lane in the road event. Providing lane information for only some of the lanes in a road event is not allowed. +6. If the `lanes` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md), [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md), or [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) is provided, it must include one entry for every lane in the road event. Providing lane information for only some of the lanes in a road event is not allowed. ## Data Validation @@ -46,9 +46,9 @@ The WZDx Specification defines a JSON schema for each feed (WZDx v2.0 and later) - [WZDx v4.0 RoadRestrictionFeed](/schemas/4.0/RoadRestrictionFeed.json) #### Previous Versions -- [WZDx v2.0 WZDxFeed](/schemas/wzdx_v2.0_feed.json) -- [WZDx v3.0 WZDxFeed](/schemas/wzdx_v3.0_feed.json) -- [WZDx v3.1 WZDxFeed](/schemas/wzdx_v3.1_feed.json) +- [WZDx v2.0 WZDxFeed](/schemas/2.0/WZDxFeed.json) +- [WZDx v3.0 WZDxFeed](/schemas/3.0/WZDxFeed.json) +- [WZDx v3.1 WZDxFeed](/schemas/3.1/WZDxFeed.json) ### Self-Validation Checklist For a list of steps to take to make sure your data feed conforms to the specification and is ready to publish, follow the [Self-Validation Checklist](/documents/WZDx_Data_Feed_Self-Validation_Checklist.docx). diff --git a/README.md b/README.md index 2e3c7ec1..f0d2b758 100644 --- a/README.md +++ b/README.md @@ -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 v3.1 (Apr 2021)] + - [Release v4.0 (Dec 2021)](#wzdx-v40-december-2021) - [Getting Started](#getting-started) - [JSON Schemas](#json-schemas) - [Contributions](#contributions) @@ -37,8 +37,8 @@ The WZDx Specification repository contains several files and subdirectories. 1. [documents](/documents): supplementary PDF and Word documents such as the WZDx Early Adopter's Guide and WZDx Data Feed Self Validation Checklist. 2. [examples](/examples): example GeoJSON documents from WZDx data feeds. [examples/README.md](/examples/README.md) describes the content of this directory in detail. 3. [images](/images): the images that are referenced by other Markdown files in the repository. -4. [spec-content](/spec-content): details the data content of the WZDx specification, including objects, property names and types, and enumerated types. [spec-content/README.md](/spec-content/README.md) describes the content of this directory in detail. -5. [schemas](/schemas): contains [JSON Schema](https://json-schema.org/)s for each of the feeds defined by WZDx for feed validation. +4. [schemas](/schemas): contains [JSON Schema](https://json-schema.org/)s for each of the feeds defined by WZDx for feed validation. +5. [spec-content](/spec-content): details the data content of the WZDx specification, including objects, property names and types, and enumerated types. [spec-content/README.md](/spec-content/README.md) describes the content of this directory in detail. ### Files 1. [Creating_a_WZDx_Feed.md](/Creating_a_WZDx_Feed.md): information to assist in creating a WZDx data feed, such as the feed format, business rules, and validation tools. @@ -83,33 +83,41 @@ Contact Information: [avdx@dot.gov](mailto:avdx@dot.gov?subject=Submission%20of% ## Release Notes -### Release v3.1 (April 2021) -Following the major v3.0 release, the changes for the v3.1 release were developed with the goal enhancing and cleaning up the spec without making major changes or breaking backwards compatibility. Thus, in v3.1 many enumerated type values or object properties were deprecated rather than removed. Most if not all of these deprecated values will be removed in the next major release. - -This repository was also renamed from `jpo-wzdx` to `wzdx` on 2021-04-05. All links pointing to `jpo-wzdx` will automatically redirect to the new URL. - -#### Features -* Add `local-access-only` restriction -* Add `license` property to the `RoadEventFeedInfo` object - -#### Refactoring -* Refactor `LaneType` enumerated type to deprecate values that can be determined from other properties of the Lane object, such as `order`, `status`, and `lane_restrictions` -* Add value `alternating-flow` to `LaneStatus` enumerated type and deprecate `alternating-one-way` -* Add `road_names` property to the `RoadEvent` object and deprecate `road_name` and `road_number` -* Deprecate the `total_num_lanes` property on the `RoadEvent` object as the `RoadEvent`'s `lanes` array can be used to determine the number of lanes - -#### Fixes -* Add optional `bbox` property to allow providing a [GeoJSON Bounding Box](https://tools.ietf.org/html/rfc7946#section-5) for the `WZDxFeed` and `RoadEventFeature` objects -* Add an `id` property to the `RoadEventFeature` object for providing the a road event's identifier to better follow [GeoJSON ID recommendations](https://tools.ietf.org/html/rfc7946#section-3.2) +### WZDx v4.0 (December 2021) +WZDx version 4.0 implements clean up and small additions in functionality to the WZDx feed and adds definitions for two new feeds, the [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md) and [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md). Until version 4.0, the WZDx specification defined only one feed, the [WZDxFeed](/spec-content/objects/WZDxFeed.md). + +*For detailed release information, see [RELEASES.md](/RELEASES.md)* + +## Features +- Add values to the [VehicleImpact](/spec-content/enumerated-types/VehicleImpact.md) enumerated type. +- Allow restrictions with a value and unit to be provided at the road event level. +- Add values to the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type. +- Define a new data feed, the [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md), to enable providing a feed of restrictions on roadways, such as bridge clearances. +- Define a new data feed, the [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md), to enable equipment vendors and manufacturers to provide high-level information about deployed field devices in work zones. +- Rename the `workers_present` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) object to `worker_presence`; change the type from "boolean" to a new [WorkerPresence](/spec-content/objects/WorkerPresence.md) object which enables providing more nuanced information about worker presence in work zones. + +## Refactoring +- Separate the v3.1 RoadEvent object into [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) (details that are shared by all specific types of road events) and specific types of road events ([WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md), [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md), and [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md)) which each contain the `RoadEventCoreDetails` via a `core_details` property; update the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) `properties` property to be one of the specific road events types. +- Move the `location_method` property from the [FeedDataSource](/spec-content/objects/FeedDataSource.md) object to the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) object. +- Change the `reduced_speed_limit` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) to `reduced_speed_limit_kph`; change its type from "integer" to "number" and clarify that the value should be in kilometers per hour. +- Deprecate the `lane_number` property on the [Lane](/spec-content/objects/Lane.md) object. +- Deprecate the `lrs_type` and `lrs_url` properties on the [FeedDataSource](/spec-content/objects/FeedDataSource.md) object. +- Remove the deprecated value `alternating-one-way` from the [LaneStatus](/spec-content/enumerated-types/LaneStatus.md) enumerated type. +- Remove all deprecated properties from the road event (RoadEvent in previous versions; [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) and [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) in 4.0). +- Require the `road_names` property on the [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md). +- Require the `id` property on the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md). +- Refine the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type. +- Deprecate the `location_verify_method` property on the [FeedDataSource](/spec-content/objects/FeedDataSource.md). +- Update the [SpatialVerification](/spec-content/enumerated-types/SpatialVerification.md) enumerated type value descriptions to clarify that verified work zone locations should use a GPS enabled device. ## Getting Started -The WZDWG welcomes feedback and comments on the WZDx 3.1 Specification. Comments can be made by posting a GitHub [Issues](https://github.com/usdot-jpo-ode/wzdx/issues) or [Discussions](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.0 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) +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](/create-feed/README.md#collaborate-via-github). -3. Use [Specification Content](/spec-content) page to understand the data components of the specification. -4. [Create your own feed](/create-feed) using example feeds and follow the business rules. +3. Read [Creating a WZDx feed](/Creating_a_WZDx_Feed.md) which contains information about creating a WZDx data feed, such as the feed format, business rules, and validation tools. +4. Use the [Specification Content](/spec-content) page to understand the data components of the specification. 5. Validate your feed output using the respective [JSON Schema](#json-schemas). 6. Publish your feed and tell us about it via avdx@dot.gov. @@ -122,9 +130,9 @@ The WZDx Specification defines a JSON schema for each feed within the [schemas]( - [WZDx v4.0 RoadRestrictionFeed](/schemas/4.0/RoadRestrictionFeed.json) ### Previous Version -- [WZDx v2.0 WZDxFeed](/schemas/wzdx_v2.0_feed.json) -- [WZDx v3.0 WZDxFeed](/schemas/wzdx_v3.0_feed.json) -- [WZDx v3.1 WZDxFeed](/schemas/wzdx_v3.1_feed.json) +- [WZDx v2.0 WZDxFeed](/schemas/2.0/WZDxFeed.json) +- [WZDx v3.0 WZDxFeed](/schemas/3.0/WZDxFeed.json) +- [WZDx v3.1 WZDxFeed](/schemas/3.1/WZDxFeed.json) ## Contributions diff --git a/RELEASES.md b/RELEASES.md index 676a9506..5a5d1434 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,82 @@ +# WZDx Specification v4.0 +Released December 2021 + +WZDx version 4.0 implements clean up and small additions in functionality to the WZDx feed and adds definitions for two new feeds, the [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md) and [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md). Until version 4.0, the WZDx specification defined only one feed, the [WZDxFeed](/spec-content/objects/WZDxFeed.md). + +## Features +- Add the following values to the [VehicleImpact](/spec-content/enumerated-types/VehicleImpact.md) enumerated type: + - `some-lanes-closed-merge-left` + - `some-lanes-closed-merge-right` + - `all-lanes-open-shift-left` + - `all-lanes-open-shift-right` + - `some-lanes-closed-split` + - `flagging` + - `temporary-traffic-signal` +- Allow restrictions with a value and unit to be provided at the road event level; specifically: + - Rename the LaneRestrictionUnit enumerated type to [UnitOfMeasurement](/spec-content/enumerated-types/UnitOfMeasurement.md). + - Rename the RoadRestriction enumerated type to [RestrictionType](/spec-content/enumerated-types/RestrictionType.md). + - Rename the LaneRestriction object to [Restriction](/spec-content/objects/Restriction.md) and remove the `lane_restriction_` prefix from its properties. + - Rename the [Restriction](/spec-content/objects/Restriction.md) object `units` property to `unit`. +- Add values `parking` and `median` to the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type. +- Define a new data feed, the [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md) and [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) to enable providing a feed of restrictions on roadways, such as bridge clearances. +- Define a new data feed, the [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md), to enable equipment vendors and manufacturers to provide high-level information about deployed field devices in work zones. A `SwzDeviceFeed` contains a new feature type, the [FieldDeviceFeature](/spec-content/objects/FieldDeviceFeature.md), which contains information about a specific type of field device. The following field devices are defined in WZDx v4.0: + - `ArrowBoard`: An electronic, connected arrow board which can display an arrow pattern to direct traffic. + - `Camera`: A camera device deployed in the field, capable of capturing still images. + - `DynamicMessageSign`: An electronic traffic sign deployed on the roadway, used to provide information to travelers. + - `FlashingBeacon`: A flashing beacon light of any form (e.g. trailer-mounted, vehicle), used to indicate something or capture driver attention. + - `HybridSign`: A hybrid sign that contains static text (e.g. on an aluminum sign) along with a single electronic message display, used to provide information to travelers. + - `LocationMarker`: Describes any GPS-enabled ITS device that is placed at a point on a roadway to dynamically know the location of something (often the beginning or end of a work zone). + - `TrafficSensor`: A traffic sensor deployed on a roadway which captures traffic metrics (e.g. speed, volume, occupancy) over a collection interval. +- Rename the `workers_present` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) object to `worker_presence`; change the type from "boolean" to a new [WorkerPresence](/spec-content/objects/WorkerPresence.md) object which enables providing more nuanced information about worker presence in work zones. + +## Refactoring +- Separate the v3.1 RoadEvent object into [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) (details that are shared by all specific types of road events) and specific types of road events ([WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md), [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md), and [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md)) which each contain the `RoadEventCoreDetails` via a `core_details` property; update the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) `properties` property to be one of the specific road events types. +- Move the `location_method` property from the [FeedDataSource](/spec-content/objects/FeedDataSource.md) object to the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) object. +- Change the `reduced_speed_limit` property on the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) to `reduced_speed_limit_kph`; change its type from "integer" to "number" and clarify that the value should be in kilometers per hour. +- Deprecate the `lane_number` property on the [Lane](/spec-content/objects/Lane.md) object. +- Deprecate the `lrs_type` and `lrs_url` properties on the [FeedDataSource](/spec-content/objects/FeedDataSource.md) object. +- Remove the deprecated value `alternating-one-way` from the [LaneStatus](/spec-content/enumerated-types/LaneStatus.md) enumerated type. +- Remove the following deprecated properties from the road event (RoadEvent in previous versions; [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) and [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) in 4.0): + - `road_event_id` + - `road_number` + - `road_name` + - `total_num_lanes` +- Remove the following deprecated values from the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type: + - `left-lane` + - `right-lane` + - `middle-lane` + - `center-lane` + - `right-shoulder` + - `left-shoulder` + - `right-second-exit-ramp` + - `left-second-exit-ramp` + - `right-entrance-exit-ramp` + - `left-entrance-exit-ramp` + - `hov-lane` + - `alternating-flow-lane` + - `reversible-lane` + - `right-entrance-lane` + - `left-entrance-lane` + - `left-entrance-ramp` + - `right-merging-lane` + - `left-merging-lane` + - `right-second-entrance-ramp` + - `left-second-entrance-ramp` +- Require the `road_names` property on the [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md). +- Require the `id` property on the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md). +- Refine the [LaneType](/spec-content/enumerated-types/LaneType.md) enumerated type; specifically: + - Rename `lane` to `general`. + - Remove `right-turning-lane` and `left-turning-lane`. + - Remove `right-exit-lane` and `left-exit-lane`. + - Add `exit-lane`. + - Remove `right-exit-ramp` and `left-exit-ramp`. + - Add `exit-ramp`. + - Remove `right-entrance-ramp` and `left-exit-ramp`. + - Add `entrance-ramp`. + - Add `entrance-lane`. +- Deprecate the `location_verify_method` property on the [FeedDataSource](/spec-content/objects/FeedDataSource.md). +- Update the [SpatialVerification](/spec-content/enumerated-types/SpatialVerification.md) enumerated type value descriptions to clarify that verified work zone locations should use a GPS enabled device. + # WZDx Specification v3.1 Released April 2021 diff --git a/examples/README.md b/examples/README.md index 4c162c4b..78ec4e1b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,7 +2,7 @@ This directory contains example GeoJSON documents from WZDx data feeds. The examples cover a range of common scenarios. There are examples for the `WZDxFeed`, `RoadRestrictionFeed`, and `SwzDeviceFeed`, contained within the respective subdirectories. ## WZDxFeed Examples -The following `WZDxFeed` examples represent a variety of common scenarios when creating road events. Most of the examples are modeled after work zone scenarios used in [previous WZDx discussion](https://github.com/usdot-jpo-ode/jpo-wzdx/discussions/131). Optional fields are not included in all examples but represented at least once across the various examples. Each scenario is provided as a single GeoJSON file which may contain multiple work zones documenting differences in representing road events at varying levels of complexity. All example scenarios are provided for the `LineString` geometry type. as well as one `MultiPoint` geometry type for scenario 1. +The following `WZDxFeed` examples represent a variety of common scenarios when creating road events. Most of the examples are modeled after work zone scenarios used in [previous WZDx discussion](https://github.com/usdot-jpo-ode/jpo-wzdx/discussions/131). Optional fields are not included in all examples but represented at least once across the various examples. Each scenario is provided as a single GeoJSON file which may contain multiple work zones documenting differences in representing road events at varying levels of complexity. All example scenarios are provided for the `LineString` geometry type as well as one `MultiPoint` geometry type for scenario 1. Below is a summary of each of the example WZDx feeds and detailed differences for each of the road events: @@ -53,13 +53,13 @@ The [local access only example](/examples/WZDxFeed/local_access_only_bidirection The following example `SwzDeviceFeed`s are provided: 1. [Arrow Board "ok" Example](/examples/SwzDeviceFeed/arrow_board_ok_example.geojson): A simple feed that includes a single arrow board with an `ok` status and several optional properties provided. -2. [Camera "error" Example](/examples/SwzDeviceFeed/camera_error_example): A simple feed that includes a single camera with an `error` status, no image data, associated `status_messages`, and a few optional properties provided. +2. [Camera "error" Example](/examples/SwzDeviceFeed/camera_error_example.geojson): A simple feed that includes a single camera with an `error` status, no image data, associated `status_messages`, and a few optional properties provided. ## RoadRestrictionFeed Examples The following example `RoadrestrictionFeed`s are provided: ### 1. Bridge Height Restriction -The [Bridge Height Restriction Example](/examples/RoadRestrictionFeed/bridge_restriction_linestring_example.geojson) shows the use of a [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) to define a bridge clearance on a roadway. +The [Bridge Height Restriction Example](/examples/RoadRestrictionFeed/bridge_height_restriction_linestring_example.geojson) shows the use of a [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) to define a bridge clearance on a roadway. - Defines three bridge height restrictions. - Two restrictions (`id`s: `Bridge2`, `Bridge3`) are defined using only the required core details and basic event-level information. diff --git a/examples/WZDxFeed/scenario3_shoulder_bidrectional_linestring_example.geojson b/examples/WZDxFeed/scenario3_shoulder_bidirectional_linestring_example.geojson similarity index 100% rename from examples/WZDxFeed/scenario3_shoulder_bidrectional_linestring_example.geojson rename to examples/WZDxFeed/scenario3_shoulder_bidirectional_linestring_example.geojson diff --git a/schemas/wzdx_v2.0_feed.json b/schemas/2.0/WZDxFeed.json similarity index 99% rename from schemas/wzdx_v2.0_feed.json rename to schemas/2.0/WZDxFeed.json index 08ce7176..bd627244 100644 --- a/schemas/wzdx_v2.0_feed.json +++ b/schemas/2.0/WZDxFeed.json @@ -1,5 +1,5 @@ { - "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/wzdx_v2.0_feed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/2.0/WZDxFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v2.0 Feed", "description": "The GeoJSON output of a WZDx v2.0 data feed", diff --git a/schemas/wzdx_v3.0_feed.json b/schemas/3.0/WZDxFeed.json similarity index 99% rename from schemas/wzdx_v3.0_feed.json rename to schemas/3.0/WZDxFeed.json index 9c8ab968..e6b9fd5c 100644 --- a/schemas/wzdx_v3.0_feed.json +++ b/schemas/3.0/WZDxFeed.json @@ -1,5 +1,5 @@ { - "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/wzdx_v3.0_feed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/3.0/WZDxFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v3.0 Feed", "description": "The GeoJSON output of a WZDx v3.0 data feed", diff --git a/schemas/wzdx_v3.1_feed.json b/schemas/3.1/WZDxFeed.json similarity index 99% rename from schemas/wzdx_v3.1_feed.json rename to schemas/3.1/WZDxFeed.json index 502b9a3c..612e6d4d 100644 --- a/schemas/wzdx_v3.1_feed.json +++ b/schemas/3.1/WZDxFeed.json @@ -1,6 +1,6 @@ { - "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/wzdx_v3.1_feed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/3.1/WZDxFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v3.1 Feed", "description": "The GeoJSON output of a WZDx v3.1 data feed", diff --git a/schemas/4.0/BoundingBox.json b/schemas/4.0/BoundingBox.json index ec2e0372..e35ed926 100644 --- a/schemas/4.0/BoundingBox.json +++ b/schemas/4.0/BoundingBox.json @@ -1,5 +1,5 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "GeoJSON Bounding Box", "description": "Information on the coordinate range for a Geometry, Feature, or FeatureCollection", diff --git a/schemas/4.0/FeedInfo.json b/schemas/4.0/FeedInfo.json index f874b4ed..ae3e6eeb 100644 --- a/schemas/4.0/FeedInfo.json +++ b/schemas/4.0/FeedInfo.json @@ -1,5 +1,5 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/FeedInfo.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/FeedInfo.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx Feed Information", "description": "Describes WZDx feed header information such as metadata, contact information, and data sources", diff --git a/schemas/4.0/RoadEventFeature.json b/schemas/4.0/RoadEventFeature.json index 00b96e24..d17a7670 100644 --- a/schemas/4.0/RoadEventFeature.json +++ b/schemas/4.0/RoadEventFeature.json @@ -1,6 +1,6 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/RoadEventFeature.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/RoadEventFeature.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Road Event Feature (GeoJSON Feature)", "description": "The container object for a specific WZDx road event; an instance of a GeoJSON Feature", @@ -45,7 +45,7 @@ ] }, "bbox": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": ["id","type","properties","geometry"], @@ -462,14 +462,14 @@ "type": "object", "properties": { "are_workers_present": { - "description": "Whether workers are present in the work zone event area, following the definition provided in the ‘worker_presence_definition’ property on the RoadEventDataSource object", + "description": "Whether workers are present in the work zone event area, following the definition provided in the ‘definition’ property on the WorkerPresence object", "type": "boolean" }, "method": { "$ref": "#/definitions/WorkerPresenceMethod" }, "worker_presence_last_confirmed_date": { - "description": "Datetime at which the presence of workers was last confirmed using the 'source'", + "description": "The UTC date and time at which the presence of workers was last confirmed", "type": "string", "format": "date-time" }, diff --git a/schemas/4.0/RoadRestrictionFeed.json b/schemas/4.0/RoadRestrictionFeed.json index 2f1edcf8..a01b98d5 100644 --- a/schemas/4.0/RoadRestrictionFeed.json +++ b/schemas/4.0/RoadRestrictionFeed.json @@ -1,12 +1,12 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/RoadRestrictionFeed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/RoadRestrictionFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v4.0 Road Restriction Feed", "description": "The GeoJSON output of a WZDx road restriction data feed (v4.0)", "type": "object", "properties": { "feed_info": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/FeedInfo.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/FeedInfo.json" }, "type": { "description": "The GeoJSON type", @@ -38,13 +38,13 @@ "required": ["properties"] }, { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/RoadEventFeature.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/RoadEventFeature.json" } ] } }, "bbox": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": [ diff --git a/schemas/4.0/SwzDeviceFeed.json b/schemas/4.0/SwzDeviceFeed.json index d53766a5..86e07084 100644 --- a/schemas/4.0/SwzDeviceFeed.json +++ b/schemas/4.0/SwzDeviceFeed.json @@ -1,12 +1,12 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/SwzDeviceFeed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/SwzDeviceFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v4.0 SwzDeviceFeed", "description": "The GeoJSON output of a WZDx smart work zone device data feed (v4.0)", "type": "object", "properties": { "feed_info": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/FeedInfo.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/FeedInfo.json" }, "type": { "description": "The GeoJSON type", @@ -20,7 +20,7 @@ } }, "bbox": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": ["feed_info", "type", "features"], @@ -78,7 +78,7 @@ ] }, "bbox": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": ["id","type","properties","geometry"] diff --git a/schemas/4.0/WZDxFeed.json b/schemas/4.0/WZDxFeed.json index 9b8e00a2..bdd2c8ad 100644 --- a/schemas/4.0/WZDxFeed.json +++ b/schemas/4.0/WZDxFeed.json @@ -1,12 +1,12 @@ { - "$id": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/WZDxFeed.json", + "$id": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/WZDxFeed.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "WZDx v4.0 WZDxFeed", "description": "The GeoJSON output of a WZDx feed data feed (v4.0)", "type": "object", "properties": { "road_event_feed_info": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/FeedInfo.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/FeedInfo.json" }, "type": { "description": "The GeoJSON type", @@ -36,13 +36,13 @@ "required": ["properties"] }, { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/RoadEventFeature.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/RoadEventFeature.json" } ] } }, "bbox": { - "$ref": "https://raw.githubusercontent.com/DeraldDudley/wzdx/RestrictionEvent/schemas/4.0/BoundingBox.json" + "$ref": "https://raw.githubusercontent.com/usdot-jpo-ode/wzdx/main/schemas/4.0/BoundingBox.json" } }, "required": ["road_event_feed_info", "type", "features"] diff --git a/spec-content/README.md b/spec-content/README.md index f6e7d085..30052341 100644 --- a/spec-content/README.md +++ b/spec-content/README.md @@ -46,8 +46,7 @@ Object | Description [Restriction](/spec-content/objects/Restriction.md) | A restriction on a road event or lane, including type and value. [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) | Describes a section of roadway and the limitations of how that section can be used. [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) | The core details of an event occurring on a roadway (i.e. a road event) that is shared by all types of road events. -[RoadEventDataSource](/spec-content/objects/RoadEventDataSource.md) | Information about a specific data source used to build a work zone data feed. -[RoadEventFeature](/spec-content/objects/RoadEventFeature.md) | The GeoJSON `Feature` container object for a WZDx `RoadEvent`. +[RoadEventFeature](/spec-content/objects/RoadEventFeature.md) | The GeoJSON `Feature` container object for a WZDx road event. [TypeOfWork](/spec-content/objects/TypeOfWork.md) | A description of the type of work being done in a road event and an indication of if that work will result in an architectural change to the roadway. [WorkerPresence](/spec-content/objects/WorkerPresence.md) | Information about the presence of workers in the road event area. [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) | A work zone road event including where, when, and what activities are taking place within a work zone on a roadway. @@ -65,10 +64,10 @@ Object | Description [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) | The core details—both configuration and current state—of a field device that are shared by all types of field devices. [HybridSign](/spec-content/objects/HybridSign.md) | A hybrid sign that contains static text (e.g. on an alumium sign) along with a single electronic message display, used to provide information to travelers. [LocationMarker](/spec-content/objects/LocationMarker.md) | Describes any GPS-enabled ITS device that is placed at a point on a roadway to dynamically know the location of something (often the beginning or end of a work zone). -[MarkedLocation](/spec-contentobjects/MarkedLocation.md) | Describes a specific location where a [LocationMarker](/spec-content/objects/LocationMarker.md) is placed, such as the start or end of a work zone road event. +[MarkedLocation](/spec-content/objects/MarkedLocation.md) | Describes a specific location where a [LocationMarker](/spec-content/objects/LocationMarker.md) is placed, such as the start or end of a work zone road event. [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md) | The root (highest-level) object of smart work zone device feed GeoJSON document. [TrafficSensor](/spec-content/objects/TrafficSensor.md) | A traffic sensor deployed on a roadway which captures traffic metrics (e.g. speed, volume, occupancy) over a collection interval. -[TrafficSensorLaneData](/spec-content/objects/TrafficSensorLaneData.md) | Data for a single lane within a [RoadEvent](/spec-content/objects/RoadEvent.md) measured by a [TrafficSensor](/spec-content/objects/TrafficSensor.md) deployed on the roadway. +[TrafficSensorLaneData](/spec-content/objects/TrafficSensorLaneData.md) | Data for a single lane within a road event (e.g. [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)) measured by a [TrafficSensor](/spec-content/objects/TrafficSensor.md) deployed on the roadway. ### Object Diagrams The object diagrams below depict the relationship between the data objects for each WZDx feed. @@ -110,7 +109,7 @@ Enumerated Type | Description [TimeVerification](/spec-content/enumerated-types/TimeVerification.md) | A measure of how accurate a date-time is. [UnitOfMeasurement](/spec-content/enumerated-types/UnitOfMeasurement.md) | Unit of measurement (e.g. "pounds", "centimeters"). [VehicleImpact](/spec-content/enumerated-types/VehicleImpact.md) | The impact to vehicular lanes along a single road in a single direction. -[WorkerPresenceConfidence](/spec-content/enumerated-types/WorkerPresenceConfidence.md) | High-level description of the feed publisher's confidence in worker presence +[WorkerPresenceConfidence](/spec-content/enumerated-types/WorkerPresenceConfidence.md) | High-level description of the feed publisher's confidence in worker presence. [WorkerPresenceDefinition](/spec-content/enumerated-types/WorkerPresenceDefinition.md) | Method of knowing the presence of workers in the road event area. [WorkerPresenceMethod](/spec-content/enumerated-types/WorkerPresenceMethod.md) | Methods for how worker presence in a work zone event area is determined. [WorkTypeName](/spec-content/enumerated-types/WorkTypeName.md) | A high-level text description of the type of work being done in a road event. diff --git a/spec-content/enumerated-types/SpatialVerification.md b/spec-content/enumerated-types/SpatialVerification.md index e39214eb..02a2763a 100644 --- a/spec-content/enumerated-types/SpatialVerification.md +++ b/spec-content/enumerated-types/SpatialVerification.md @@ -5,7 +5,7 @@ An indication of how a geographical coordinate was defined. Value | Description --- | --- `estimated` | Estimated location for the work zone road event geometry. An estimated measurement is based on an approximation of the reported location of a work zone. Approximations of the location can include but are not limited to a point relative to a posted mile maker or cross street, selecting a point on a map, or locations based on project plans. -`verified` | Verified locations for the work zone road event geometry representing the actual extents of the work zone. A verified measurement is based on actual reported data from a GPS equipped device showing the measured location of the work zone. Ths actual location is measured using a GPS device that provides the verified location of the identified location. +`verified` | Verified locations for the work zone road event geometry representing the actual extents of the work zone. A verified measurement is based on actual reported data from a GPS equipped device showing the measured location of the work zone. ## Used By Property | Object diff --git a/spec-content/enumerated-types/WorkerPresenceDefinition.md b/spec-content/enumerated-types/WorkerPresenceDefinition.md index d2935916..f44a0bfb 100644 --- a/spec-content/enumerated-types/WorkerPresenceDefinition.md +++ b/spec-content/enumerated-types/WorkerPresenceDefinition.md @@ -15,4 +15,4 @@ Value | Description ## Used By Property | Object --- | --- -`worker_presence_definition` | [RoadEventDataSource](/spec-content/objects/RoadEventDataSource.md) +`definition` | [WorkerPresence](/spec-content/objects/WorkerPresence.md) diff --git a/spec-content/enumerated-types/WorkerPresenceMethod.md b/spec-content/enumerated-types/WorkerPresenceMethod.md index 67e8f5b7..28932deb 100644 --- a/spec-content/enumerated-types/WorkerPresenceMethod.md +++ b/spec-content/enumerated-types/WorkerPresenceMethod.md @@ -6,7 +6,7 @@ Value | Description --- | --- `camera-monitoring` | Cameras in the work zone event area show workers are present. `arrow-board-present` | A GPS-enabled arrow board is located in the work zone event area and broadcasting its location, implying that workers are present. -`cones-present` | GPS-enabled cones are located in the road event event area, implying that workers are present. +`cones-present` | GPS-enabled cones are located in the road event area, implying that workers are present. `maintenance-vehicle-present` | A GPS-enabled maintenance vehicle is located in the road event area, implying that workers are present. `wearables-present` | Workers wearing wearable detection equipment are present in the work zone. `mobile-device-present` | Workers with GPS-enabled mobile device tracking are present in the work zone. @@ -17,4 +17,4 @@ Value | Description ## Used By Property | Object --- | --- -`source` | [WorkerPresence](/spec-content/objects/WorkerPresence.md) +`method` | [WorkerPresence](/spec-content/objects/WorkerPresence.md) diff --git a/spec-content/objects/FeedDataSource.md b/spec-content/objects/FeedDataSource.md index 8e8fd28e..41568452 100644 --- a/spec-content/objects/FeedDataSource.md +++ b/spec-content/objects/FeedDataSource.md @@ -4,7 +4,7 @@ The `FeedDataSource` object describes information about a specific data source u ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- -`data_source_id` | String | Unique identifier for the data source organization providing work zone data. | Required | Linked to a road event by the `data_source_id` property on the road event's [core details](/spec-content/objects/RoadEventCoreDetails.md) or or a field device by the `data_source_id` property on the device's [core details](/spec-content/objects/FieldDeviceCoreDetails.md). +`data_source_id` | String | Unique identifier for the data source organization providing work zone data. | Required | Linked to a road event by the `data_source_id` property on the road event's [core details](/spec-content/objects/RoadEventCoreDetails.md) or a field device by the `data_source_id` property on the device's [core details](/spec-content/objects/FieldDeviceCoreDetails.md). `organization_name` | String | The name of the organization for the authoritative source of the work zone data. | Required | Example: County DOT `update_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC date and time when the data source was last updated. | Optional | All date-time formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Example: `2016-11-03T19:37:00Z` `update_frequency` | Integer | The frequency in seconds at which the data source is updated. | Optional | diff --git a/spec-content/objects/FieldDeviceFeature.md b/spec-content/objects/FieldDeviceFeature.md index 590c5995..5f715f64 100644 --- a/spec-content/objects/FieldDeviceFeature.md +++ b/spec-content/objects/FieldDeviceFeature.md @@ -1,5 +1,5 @@ # FieldDeviceFeature Object -The `FieldDeviceFeature` object is a [GeoJSON Feature](https://tools.ietf.org/html/rfc7946#section-3.2) representing a deployed field device. This object contains the specific details of the field device, similar to how the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) object in a WZDx Feed contains the RoadEvent object via the `properties` property. +The `FieldDeviceFeature` object is a [GeoJSON Feature](https://tools.ietf.org/html/rfc7946#section-3.2) representing a deployed field device. This object contains the specific details of the field device, similar to how the [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) object in a WZDx Feed contains the road event object ([WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md), [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md), or [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md)) via the `properties` property. Currently, only point devices are supported. @@ -15,4 +15,4 @@ Name | Type | Description | Conformance | Notes ## Used By Property | Object --- | --- -`features` | [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md) \ No newline at end of file +`features` | [SwzDeviceFeed](/spec-content/objects/SwzDeviceFeed.md) diff --git a/spec-content/objects/LocationMarker.md b/spec-content/objects/LocationMarker.md index a7733934..df0d8090 100644 --- a/spec-content/objects/LocationMarker.md +++ b/spec-content/objects/LocationMarker.md @@ -1,5 +1,5 @@ # LocationMarker Object -The `LocationMarker` object describes any GPS-enabled ITS device that is placed at a point on a roadway to dynamically know the location of something (often the beginning or end of a work zone). The `LocationMarker` contains a list of one or more [MarkedLocation](/spec-content/objects/MarkedLocation.md) objects which indicate the type of location (such as the start or end) and optionally the ID of a [RoadEvent](/spec-content/objects/RoadEvent.md) that the location is associated with. +The `LocationMarker` object describes any GPS-enabled ITS device that is placed at a point on a roadway to dynamically know the location of something (often the beginning or end of a work zone). The `LocationMarker` contains a list of one or more [MarkedLocation](/spec-content/objects/MarkedLocation.md) objects which indicate the type of location (such as the start or end) and optionally the ID of a [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) that the location is associated with. The `LocationMarker` is a type of field device; it has a `core_details` property which contains the [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) and exists within a [FieldDeviceFeature](/spec-content/objects/FieldDeviceFeature.md). diff --git a/spec-content/objects/RestrictionRoadEvent.md b/spec-content/objects/RestrictionRoadEvent.md index 43f6ba05..cccb2b1c 100644 --- a/spec-content/objects/RestrictionRoadEvent.md +++ b/spec-content/objects/RestrictionRoadEvent.md @@ -10,7 +10,7 @@ Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- `core_details` | [RoadEventCoreDetails](/spec-content/objects/RoadEventCoreDetails.md) | Describes the basic characterisitics of a Road Event. | Required | `restrictions` | Array; [[Restriction](/spec-content/objects/Restriction.md)] | A list of zero or more road restrictions that apply to the roadway segment described by this road event. | Conditional: required if `lanes` property is not provided. | Restrictions can also be provided on an individual lane. -`lanes` | Array; \[[Lane](/spec-content/objects/Lane.md)\] | A list of individual lanes within a road event (roadway segment) | Conditional: required if `restrictions` property is not provided. | +`lanes` | Array; \[[Lane](/spec-content/objects/Lane.md)\] | A list of individual lanes within a road event (roadway segment). | Conditional: required if `restrictions` property is not provided. | ## Used By Property | Object diff --git a/spec-content/objects/RoadEvent.md b/spec-content/objects/RoadEvent.md deleted file mode 100644 index 9cf2a545..00000000 --- a/spec-content/objects/RoadEvent.md +++ /dev/null @@ -1,39 +0,0 @@ -# RoadEvent Object -The `RoadEvent` object contains information that describes where, when, and what activity is taking place along a road segment. This specification currently accommodates `work-zone` and `detour` type road events, specified by the road event's `event_type` property (see [EventType](/spec-content/enumerated-types/EventType.md])). - -## Properties -Name | Type | Description | Conformance | Notes ---- | --- | --- | --- | --- -`event_type` | [EventType](/spec-content/enumerated-types/EventType.md) | The type/classification of road event. | Required | -`data_source_id` | String | Identifies the data source from which the road event originates. | Required | The value must match to the `data_source_id` property of a [FeedDataSource](/spec-content/objects/FeedDataSource.md) included within the same WZDx GeoJSON document. -`start_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC time and date when the event begins. | Required | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Example: `2016-11-03T19:37:00Z`. -`end_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC time and date when the event ends. | Required | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Example: `2016-11-03T19:37:00Z`. -`start_date_accuracy` | [TimeVerification](/spec-content/enumerated-types/TimeVerification.md) | A measure of how accurate the start Date Time is. | Required | -`end_date_accuracy` | [TimeVerification](/spec-content/enumerated-types/TimeVerification.md) | A measure of how accurate the end Date Time is. | Required | -`beginning_accuracy` | [SpatialVerification](/spec-content/enumerated-types/SpatialVerification.md) | Indicates how the beginning coordinate was defined. | Required | -`ending_accuracy` | [SpatialVerification](/spec-content/enumerated-types/SpatialVerification.md) | Indicates how the ending coordinate was defined. | Required | -`road_names` | Array; [String] | A list of publicly known names of the road on which the event occurs. This may include the road number designated by a jurisdiction such as a county, state or interstate (e.g. I-5, VT 133). | Required | -`direction` | [Direction](/spec-content/enumerated-types/Direction.md) | The digitization direction of the road that is impacted by the event. This value is based on the standard naming for US roadways and indicates the direction of the traffic flow regardless of the real heading angle. | Required | Example `northbound` (for I-5 North) -`vehicle_impact` | [VehicleImpact](/spec-content/enumerated-types/VehicleImpact.md) | The impact to vehicular lanes along a single road in a single direction. | Required | -`relationship` | [Relationship](/spec-content/objects/Relationship.md) | Identifies both sequential and hierarchical relationships between the road events and other entities. For example, a relationship can be used to link multiple road events to a common 'parent', such as a project or phase, or identify a sequence of road events | Optional | -`lanes` | Array; \[[Lane](/spec-content/objects/Lane.md)\] | A list of individual lanes within a road event (roadway segment) | Optional | -`beginning_cross_street` | String | Name or number of the nearest cross street along the roadway where the event begins. | Optional | -`ending_cross_street` | String | Name or number of the nearest cross street along the roadway where the event ends. | Optional | -`beginning_milepost` | Number | The linear distance measured against a milepost marker along a roadway where the event begins. | Optional | A milepost or mile marker is a surveyed distance posted along a roadway measuring the length (in miles or tenth of a mile) from the south west to the north east. These markers are typically notated on State and local government digital road networks. -`ending_milepost` | Number | The linear distance measured against a milepost marker along a roadway where the event ends. | Optional | A milepost or mile marker is a surveyed distance posted along a roadway measuring the length (in miles or tenth of a mile) from the south west to the north east. These markers are typically notated on State and local government digital road networks. -`event_status` | [EventStatus](/spec-content/enumerated-types/EventStatus.md) | The status of the event. | Optional | -`types_of_work` | Array; \[[TypeOfWork](/spec-content/objects/TypeOfWork.md)\] | A list of the types of work being done in a road event and an indiciation of if each type results in an architectural change to the roadway. | Optional | -`worker_presence` | [WorkerPresence](/spec-content/objects/WorkerPresence.md) | Information about whether workers are present in the road event area. | Optional | -`reduced_speed_limit_kph` | Integer | The reduced speed limit posted within the road event, in kilometers per hour. This property only needs to be supplied if the speed limit within the road event is lower than the posted speed limit of the roadway. | Optional | -`restrictions` | Array; [[Restriction](/spec-content/objects/Restriction.md)] | A list of zero or more road restrictions that apply to the roadway segment described by this road event. | Optional | Restrictions can also be provided on an individual lane. -`description` | String | Short free text description of work zone. | Optional | This will be populated with formal phrases in a later WZDx version -`creation_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC time and date when the activity or event was created. | Optional | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Example: `2016-11-03T19:37:00Z`. -`update_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC time and date when the activity or event was updated. | Optional | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Example: `2016-11-03T19:37:00Z`. - -## Used By -Property | Object ---- | --- -`properties` | [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) - -## Important Notes -The value of the `RoadEvent`'s `data_source_id` property MUST match the value of the `data_source_id` property of a [FeedDataSource](/spec-content/objects/FeedDataSource.md) that is included in the same WZDx GeoJSON document. diff --git a/spec-content/objects/RoadEventCoreDetails.md b/spec-content/objects/RoadEventCoreDetails.md index 578e0100..25536ff4 100644 --- a/spec-content/objects/RoadEventCoreDetails.md +++ b/spec-content/objects/RoadEventCoreDetails.md @@ -1,11 +1,11 @@ # RoadEventCoreDetails Object -The `RoadEventCoreDetails` object represents the core details of an event occurring on a roadway (i.e. a "road event") that is shared by all types of road events, such as work zones (see [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)) and detours (see [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md)). The `RoadEventCoreDetails` cannot exist directly in a data feed and on it's own does not represent a road event. It is used as the value of `core_details` property on every specific type of road event, each which is represented by its own object. +The `RoadEventCoreDetails` object represents the core details of an event occurring on a roadway (i.e. a "road event") that is shared by all types of road events, such as work zones (see [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)), detours (see [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md)), and road restrictions (see [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md)). The `RoadEventCoreDetails` cannot exist directly in a data feed and on its own does not represent a road event. It is used as the value of `core_details` property on every specific type of road event, each of which is represented by its own object. ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- `event_type` | [EventType](/spec-content/enumerated-types/EventType.md) | The type/classification of road event. | Required | -`data_source_id` | String | Identifies the data source from which the road event originates. | Required | The value must match to the `data_source_id` property of a [RoadEventDataSource](/spec-content/objects/RoadEventDataSource.md) included within the same WZDx GeoJSON document. +`data_source_id` | String | Identifies the data source from which the road event originates. | Required | The value must match to the `data_source_id` property of a [FeedDataSource](/spec-content/objects/FeedDataSource.md) included within the same WZDx GeoJSON document. `road_names` | Array; [String] | A list of publicly known names of the road on which the event occurs. This may include the road number designated by a jurisdiction such as a county, state or interstate (e.g. I-5, VT 133). | Required | `direction` | [Direction](/spec-content/enumerated-types/Direction.md) | The digitization direction of the road that is impacted by the event. This value is based on the standard naming for US roadways and indicates the direction of the traffic flow regardless of the real heading angle. | Required | Example `northbound` (for I-5 North) `relationship` | [Relationship](/spec-content/objects/Relationship.md) | Identifies both sequential and hierarchical relationships between the road events and other entities. For example, a relationship can be used to link multiple road events to a common 'parent', such as a project or phase, or identify a sequence of road events | Optional | @@ -18,8 +18,7 @@ Property | Object --- | --- `core_details` | [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md) `core_details` | [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) +`core_details` | [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md) ## Important Notes -The value of the `RoadEventCoreDetails`'s `data_source_id` property MUST match the value of the `data_source_id` property of a [RoadEventDataSource](/spec-content/objects/RoadEventDataSource.md) that is included in the same WZDx GeoJSON document. - - +The value of the `RoadEventCoreDetails`'s `data_source_id` property MUST match the value of the `data_source_id` property of a [FeedDataSource](/spec-content/objects/FeedDataSource.md) that is included in the same WZDx GeoJSON document. diff --git a/spec-content/objects/RoadEventFeature.md b/spec-content/objects/RoadEventFeature.md index c016535d..d024296e 100644 --- a/spec-content/objects/RoadEventFeature.md +++ b/spec-content/objects/RoadEventFeature.md @@ -1,5 +1,5 @@ # RoadEventFeature Object (GeoJSON Feature) -The `RoadEventFeature` object is the container object for a WZDx [RoadEvent](/spec-content/objects/RoadEvent.md). The `RoadEventFeature` object is an instance of a [GeoJSON Feature](https://tools.ietf.org/html/rfc7946#section-3.2). +The `RoadEventFeature` object is the container object for a WZDx road event ([WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md), [DetourRoadEvent](/spec-content/objects/DetourRoadEvent.md), or [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md). The `RoadEventFeature` object is an instance of a [GeoJSON Feature](https://tools.ietf.org/html/rfc7946#section-3.2). ## Properties Name | Type | Description | Conformance | Notes @@ -14,4 +14,4 @@ Name | Type | Description | Conformance | Notes Property | Object --- | --- `features` | [WZDx Feed](/spec-content/objects/WZDxFeed.md) -`features` | [RoadRestrictionFeed](spec-content/objects/RoadRestrictionFeed.md) +`features` | [RoadRestrictionFeed](/spec-content/objects/RoadRestrictionFeed.md) diff --git a/spec-content/objects/RoadRestrictionFeed.md b/spec-content/objects/RoadRestrictionFeed.md index 0905b0e0..c5d7e1b8 100644 --- a/spec-content/objects/RoadRestrictionFeed.md +++ b/spec-content/objects/RoadRestrictionFeed.md @@ -1,10 +1,12 @@ # RoadRestrictionFeed Object (GeoJSON FeatureCollection) The `RoadRestrictionFeed` object is the root (highest level) object of a WZDx road restriction feed. There is one `RoadRestrictionFeed` object per road restriction feed GeoJSON document. The `RoadRestrictionFeed` is a [GeoJSON FeatureCollection](https://tools.ietf.org/html/rfc7946#section-3.3). +The `RoadRestrictionFeed` contains information about sections of roadways that have restrictions. Restriction types described by this specification are listed in the [RestrictionType](/spec-content/enumerated-types/RestrictionType.md) enumerated type. + ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- -`feed_info` | [RoadEventFeedInfo](/spec-content/objects/RoadEventFeedInfo.md) | Information about the WZDx road restriction feed. | Required | This is a WZDx-specific [foreign member](https://tools.ietf.org/html/rfc7946#section-6.1) and is not part of the GeoJSON specification. +`feed_info` | [FeedInfo](/spec-content/objects/FeedInfo.md) | Information about the WZDx road restriction feed. | Required | This is a WZDx-specific [foreign member](https://tools.ietf.org/html/rfc7946#section-6.1) and is not part of the GeoJSON specification. `type` | String; `"FeatureCollection"` | The GeoJSON object type. For WZDx, this must be the string `FeatureCollection`. | Required | This is a GeoJSON property. `features` | Array; \[[RoadEventFeature](/spec-content/objects/RoadEventFeature.md)\] | An array of GeoJSON [Feature](https://tools.ietf.org/html/rfc7946#section-3.2) objects which represent WZDx road events. | Required | `bbox` | GeoJSON [Bounding Box](https://tools.ietf.org/html/rfc7946#section-5) | Information on the coordinate range for all RoadEventFeatures in the WZDx feed. Must be an array of length 2*n where n is the number of dimensions represented in the contained geometries, 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 geometries. | Optional | This is a GeoJSON property. diff --git a/spec-content/objects/SwzDeviceFeed.md b/spec-content/objects/SwzDeviceFeed.md index 33387384..f62618c6 100644 --- a/spec-content/objects/SwzDeviceFeed.md +++ b/spec-content/objects/SwzDeviceFeed.md @@ -1,6 +1,8 @@ # SwzDeviceFeed Object (GeoJSON FeatureCollection) The `SwzDeviceFeed` object is the root (highest level) object of a smart work zone device feed. There is one `SwzDeviceFeed` object per feed GeoJSON document. The `SwzDeviceFeed` is a [GeoJSON FeatureCollection](https://tools.ietf.org/html/rfc7946#section-3.3) object. +The `SwzDeviceFeed` contains information (location, status, live data) about field devices deployed on the roadway in work zones. + ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- diff --git a/spec-content/objects/TrafficSensor.md b/spec-content/objects/TrafficSensor.md index 95b88854..82897a4e 100644 --- a/spec-content/objects/TrafficSensor.md +++ b/spec-content/objects/TrafficSensor.md @@ -1,5 +1,5 @@ # TrafficSensor Object -The `TrafficSensor` object describes a traffic sensor deployed on a roadway which captures traffic metrics (e.g. speed, volume, occupancy) over a collection interval. The `TrafficSensor` can describe lane-level traffic data if available and if associated with a [RoadEvent](/spec-content/objects/RoadEvent.md). +The `TrafficSensor` object describes a traffic sensor deployed on a roadway which captures traffic metrics (e.g. speed, volume, occupancy) over a collection interval. The `TrafficSensor` can describe lane-level traffic data if available and if associated with a road event ([WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md) or [RestrictionRoadEvent](/spec-content/objects/RestrictionRoadEvent.md)). The `TrafficSensor` is a type of field device; it has a `core_details` property which contains the [FieldDeviceCoreDetails](/spec-content/objects/FieldDeviceCoreDetails.md) and exists within a [FieldDeviceFeature](/spec-content/objects/FieldDeviceFeature.md). diff --git a/spec-content/objects/TrafficSensorLaneData.md b/spec-content/objects/TrafficSensorLaneData.md index 96516334..58a4942e 100644 --- a/spec-content/objects/TrafficSensorLaneData.md +++ b/spec-content/objects/TrafficSensorLaneData.md @@ -1,13 +1,13 @@ # TrafficSensorLaneData Object -The TrafficSensorLaneData object describes data for a single lane within a [RoadEvent](/spec-content/objects/RoadEvent.md) measured by a [TrafficSensor](/spec-content/objects/TrafficSensor.md) deployed on the roadway. +The `TrafficSensorLaneData` object describes data for a single lane within a road event (e.g. [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)) measured by a [TrafficSensor](/spec-content/objects/TrafficSensor.md) deployed on the roadway. -Note this structure allows a single TrafficSensor to provide data across lanes on multiple road events. It does not allow for lane data to be provided when a road event is not known. +Note this structure allows a single [TrafficSensor](/spec-content/objects/TrafficSensor.md) to provide data across lanes on multiple road events. It does not allow for lane data to be provided when a road event is not known. ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- `road_event_id` | String | The ID of a [RoadEventFeature](/spec-content/objects/RoadEventFeature.md) which the measured lane occurs in. | Required | -`lane_order` | Positive Integer | The lane's position in sequence within the road event (specified by `road_event_id`). The value of this property corresponds to the associated [RoadEvent](/spec-content/objects/RoadEvent.md)'s [Lane](/spec-content/objects/Lane.md)'s `order` property. | Required | +`lane_order` | Positive Integer | The lane's position in sequence within the road event (specified by `road_event_id`). The value of this property corresponds to the associated road event's [Lane](/spec-content/objects/Lane.md)'s `order` property. | Required | `average_speed_kph` | Integer (>= 0) | The average speed of traffic in the lane over the collection interval (in kilometers per hour). | Optional | `volume_vph` | Integer (>= 0) | The rate of vehicles passing by the sensor in the lane during the collection interval (in vehicles per hour). | Optional | `occupancy_percent` | Integer (>= 0) | The percent of time the lane monitored by the sensor was occupied by a vehicle over the collection interval. | Optional | diff --git a/spec-content/objects/WZDxFeed.md b/spec-content/objects/WZDxFeed.md index 7b61071e..7b06cb37 100644 --- a/spec-content/objects/WZDxFeed.md +++ b/spec-content/objects/WZDxFeed.md @@ -1,6 +1,8 @@ # WZDxFeed Object (GeoJSON FeatureCollection) The `WZDxFeed` object is the root (highest level) object of a WZDx feed. There is one WZDx feed object per WZDx GeoJSON document. The `WZDxFeed` is an instance of a [GeoJSON FeatureCollection](https://tools.ietf.org/html/rfc7946#section-3.3) object. +The `WZDxFeed` contains high-level information about events ocurring on roadways (called "road events"), primarily work zones, that impact the characteristics of the roadway and involve a change from the default state (such as a lane closure). The `WZDxFeed` is the original work zone data exchange feed. + ## Properties Name | Type | Description | Conformance | Notes --- | --- | --- | --- | --- diff --git a/spec-content/objects/WorkZoneRoadEvent.md b/spec-content/objects/WorkZoneRoadEvent.md index c7caecdc..6584765d 100644 --- a/spec-content/objects/WorkZoneRoadEvent.md +++ b/spec-content/objects/WorkZoneRoadEvent.md @@ -15,7 +15,7 @@ Name | Type | Description | Conformance | Notes `ending_accuracy` | [SpatialVerification](/spec-content/enumerated-types/SpatialVerification.md) | Indicates how the ending coordinate was defined. | Required | `location_method` | [LocationMethod](/spec-content/enumerated-types/LocationMethod.md) | The typical method used to locate the beginning and end of a work zone impact area. | Required | `vehicle_impact` | [VehicleImpact](/spec-content/enumerated-types/VehicleImpact.md) | The impact to vehicular lanes along a single road in a single direction. | Required | -`lanes` | Array; \[[Lane](/spec-content/objects/Lane.md)\] | A list of individual lanes within a road event (roadway segment) | Optional | +`lanes` | Array; \[[Lane](/spec-content/objects/Lane.md)\] | A list of individual lanes within a road event (roadway segment). | Optional | `beginning_cross_street` | String | Name or number of the nearest cross street along the roadway where the event begins. | Optional | `ending_cross_street` | String | Name or number of the nearest cross street along the roadway where the event ends. | Optional | `beginning_milepost` | Number | The linear distance measured against a milepost marker along a roadway where the event begins. | Optional | A milepost or mile marker is a surveyed distance posted along a roadway measuring the length (in miles or tenth of a mile) from the south west to the north east. These markers are typically notated on State and local government digital road networks. diff --git a/spec-content/objects/WorkerPresence.md b/spec-content/objects/WorkerPresence.md index 9b183e41..06dfa791 100644 --- a/spec-content/objects/WorkerPresence.md +++ b/spec-content/objects/WorkerPresence.md @@ -1,5 +1,5 @@ -# Worker Presence Object -The `WorkerPresence` object contains information on the presence of workers in the `RoadEvent`'s area. +# WorkerPresence Object +The `WorkerPresence` object contains information on the presence of workers in the [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)'s area. ## Properties Name | Type | Description | Conformance | Notes @@ -7,10 +7,10 @@ Name | Type | Description | Conformance | Notes `are_workers_present` | Boolean | Whether workers are present in the work zone event area. This value should be set in accordance with the definition provided in the `definition` property if it is provided. | Required | `definition` | Array; \[[WorkerPresenceDefinition](/spec-content/enumerated-types/WorkerPresenceDefinition.md)\] | A list of situations in which workers are considered to be present in the jurisdiction of the data provider. | Optional `method` | [WorkerPresenceMethod](/spec-content/enumerated-types/WorkerPresenceMethod.md) | Describes the method for how worker presence in a work zone event area is determined. | Optional | -`worker_presence_last_confirmed_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | Date and time at which the presence of workers was last confirmed. | Optional | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). +`worker_presence_last_confirmed_date` | String; [date-time](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.1) | The UTC date and time at which the presence of workers was last confirmed. | Optional | All datetime formats shall follow [RFC 3339 Section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). `confidence` | [WorkerPresenceConfidence](/spec-content/enumerated-types/WorkerPresenceConfidence.md) | The data producer’s confidence in the value of `are_workers_present`. | Optional | ## Used By Property | Object --- | --- -`worker_presence` | [RoadEvent](/spec-content/objects/RoadEvent.md) +`worker_presence` | [WorkZoneRoadEvent](/spec-content/objects/WorkZoneRoadEvent.md)