diff --git a/README.md b/README.md index 3b8b5689..6981fe7d 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,6 @@ A third directory, [`images`](/images) contains images that are referenced throu - [**Enumerated Types**](/spec-content/enumerated-types) - [Event Status](/spec-content/enumerated-types/event_status.md) - [Geometry Type](/spec-content/enumerated-types/geometry_type.md) - - [Lane Edge Reference](/spec-content/enumerated-types/lane_edge_reference.md) - [Lane Status](/spec-content/enumerated-types/lane_status.md) - [Road Restriction](/spec-content/enumerated-types/road_restriction.md) - [Spatial Verification](/spec-content/enumerated-types/spatial_verification.md) diff --git a/create-feed/examples/linestring_example.geojson b/create-feed/examples/linestring_example.geojson index 0b0ba87c..2ee88c19 100644 --- a/create-feed/examples/linestring_example.geojson +++ b/create-feed/examples/linestring_example.geojson @@ -42,11 +42,11 @@ ], "lanes": [ { - "lane_edge_reference": "left", + "order": 1, "lane_number": 1, - "lane_status": "open", - "lane_type": "left-lane", - "lane_restrictions": [ + "status": "open", + "type": "left-lane", + "restrictions": [ { "restriction_type": "reduced-width", "restriction_value": 10, @@ -55,16 +55,16 @@ ] }, { - "lane_edge_reference": "left", + "order": 2, "lane_number": 2, - "lane_status": "closed", - "lane_type": "middle-lane" + "status": "closed", + "type": "middle-lane" }, { - "lane_edge_reference": "left", + "order": 3, "lane_number": 3, - "lane_status": "closed", - "lane_type": "right-lane" + "status": "closed", + "type": "right-lane" } ] }, @@ -270,21 +270,21 @@ ], "lanes": [ { - "lane_edge_reference": "left", + "order": 1, "lane_number": 1, - "lane_status": "open", - "lane_type": "left-lane", - "lane_restrictions": [ + "status": "open", + "type": "left-lane", + "restrictions": [ { "restriction_type": "no-trucks" } ] }, { - "lane_edge_reference": "left", + "order": 2, "lane_number": 2, - "lane_status": "open", - "lane_type": "right-lane" + "status": "open", + "type": "right-lane" } ] }, diff --git a/create-feed/examples/multipoint_example.geojson b/create-feed/examples/multipoint_example.geojson index 6c3804d2..7fe436bf 100644 --- a/create-feed/examples/multipoint_example.geojson +++ b/create-feed/examples/multipoint_example.geojson @@ -42,11 +42,11 @@ ], "lanes": [ { - "lane_edge_reference": "left", + "order": 1, "lane_number": 1, - "lane_status": "open", - "lane_type": "left-lane", - "lane_restrictions": [ + "status": "open", + "type": "left-lane", + "restrictions": [ { "restriction_type": "reduced-width", "restriction_value": 10, @@ -55,16 +55,16 @@ ] }, { - "lane_edge_reference": "left", + "order": 2, "lane_number": 2, - "lane_status": "closed", - "lane_type": "middle-lane" + "status": "closed", + "type": "middle-lane" }, { - "lane_edge_reference": "left", + "order": 3, "lane_number": 3, - "lane_status": "closed", - "lane_type": "right-lane" + "status": "closed", + "type": "right-lane" } ] }, @@ -118,21 +118,21 @@ ], "lanes": [ { - "lane_edge_reference": "left", + "order": 1, "lane_number": 1, - "lane_status": "open", - "lane_type": "left-lane", - "lane_restrictions": [ + "status": "open", + "type": "left-lane", + "restrictions": [ { "restriction_type": "no-trucks" } ] }, { - "lane_edge_reference": "left", + "order": 2, "lane_number": 2, - "lane_status": "open", - "lane_type": "right-lane" + "status": "open", + "type": "right-lane" } ] }, diff --git a/create-feed/schemas/wzdx_v3.0_feed.json b/create-feed/schemas/wzdx_v3.0_feed.json index d5647933..b46cd75c 100644 --- a/create-feed/schemas/wzdx_v3.0_feed.json +++ b/create-feed/schemas/wzdx_v3.0_feed.json @@ -220,21 +220,23 @@ "description": "An individual lane within a road event", "type": "object", "properties": { - "lane_status": { + "order": { + "description": "The position (index) of the lane in sequence on the roadway, where '1' represents the left-most lane", + "type": "integer", + "minimum": 1 + }, + "status": { "$ref": "#/definitions/lane_status" }, - "lane_type": { + "type": { "$ref": "#/definitions/lane_type" }, "lane_number": { - "description": "The number (index) assigned to the lane (not including shoulders)", + "description": "The number assigned to the lane to help identify its position. Flexible, but usually used for regular, driveable lanes", "type": "integer", - "minimum": 0 - }, - "lane_edge_reference": { - "$ref": "#/definitions/lane_edge_reference" + "minimum": 1 }, - "lane_restrictions": { + "restrictions": { "description": "A list of restrictions specific to the lane", "type": "array", "items": { @@ -242,10 +244,7 @@ } } }, - "required": ["lane_status", "lane_type"], - "dependencies": { - "lane_number": ["lane_edge_reference"] - } + "required": ["status", "type", "order"] }, "lane_restriction": { "title": "Lane Restriction", @@ -326,11 +325,6 @@ "roadway-creation" ] }, - "lane_edge_reference": { - "title": "Lane Edge Reference Enumerated Type", - "description": "The roadside edge from which lane numbers are assigned", - "enum": ["left", "right"] - }, "lane_status": { "title": "Lane Status Enumerated Type", "description": "The status of the lane for the traveling public", @@ -340,15 +334,11 @@ "title": "Lane Type Enumerated Type", "description": "An indication of the type of lane or shoulder", "enum": [ - "all", "left-lane", "right-lane", - "left-2-lanes", - "right-2-lanes", - "left-3-lanes", - "right-3-lanes", "middle-lane", - "middle-two-lanes", + "center-lane", + "lane", "right-turning-lane", "left-turning-lane", "right-exit-lane", @@ -365,12 +355,13 @@ "left-second-entrance-ramp", "sidewalk", "bike-lane", - "none", - "unknown", "alternating-flow-lane", - "outside", - "inside", - "both" + "right-shoulder", + "left-shoulder", + "shoulder", + "hov-lane", + "reversible-lane", + "center-left-turn-lane" ] }, "lane_restriction_unit": { diff --git a/images/road_event_erd.png b/images/road_event_erd.png index 2829096d..d7bcf8ff 100644 Binary files a/images/road_event_erd.png and b/images/road_event_erd.png differ diff --git a/spec-content/README.md b/spec-content/README.md index 5a940cf2..0ad32fb9 100644 --- a/spec-content/README.md +++ b/spec-content/README.md @@ -51,7 +51,6 @@ This section provides a list of all enumerated types uses in the WZDx specificat - [Event Status](/spec-content/enumerated-types/event_status.md) - [Geometry Type](/spec-content/enumerated-types/geometry_type.md) -- [Lane Edge Reference](/spec-content/enumerated-types/lane_edge_reference.md) - [Lane Status](/spec-content/enumerated-types/lane_status.md) - [Lane Restriction Unit](/spec-content/enumerated-types/lane_restriction_unit.md) - [Road Restriction](/spec-content/enumerated-types/road_restriction.md) @@ -78,8 +77,7 @@ Field Name | Table | Enumerated Type | Notes `vehicle_impact` | [road_events](/spec-content/data-tables/road_events.md) | [Vehicle Impact](/spec-content/enumerated-types/vehicle_impact.md) | Enumeration created in WZDx v2.0 `restrictions` | [road_events](/spec-content/data-tables/road_events.md) | [Road Restriction](/spec-content/enumerated-types/road_restriction.md) | Enumeration created in WZDx v1.0 `type_name` | [types_of_work](/spec-content/data-tables/types_of_work.md) | [Work Type Name](/spec-content/enumerated-types/work_type_name.md) | Enumeration created in WZDx v2.0 -`lane_edge_reference` | [lanes](/spec-content/data-tables/lanes.md) | [Lane Edge Reference](/spec-content/enumerated-types/lane_edge_reference.md) | Enumeration created in WZDx v2.0 -`lane_status` | [lanes](/spec-content/data-tables/lanes.md) | [Lane Status](/spec-content/enumerated-types/lane_status.md) | Enumeration created in WZDx v2.0 -`lane_type` | [lanes](/spec-content/data-tables/lanes.md) | [Lane Type](/spec-content/enumerated-types/derived-from-its-standards/lane_type.md) | Enumeration adapted from TMDD LaneRoadway +`status` | [lanes](/spec-content/data-tables/lanes.md) | [Lane Status](/spec-content/enumerated-types/lane_status.md) | Enumeration created in WZDx v2.0 +`type` | [lanes](/spec-content/data-tables/lanes.md) | [Lane Type](/spec-content/enumerated-types/derived-from-its-standards/lane_type.md) | Enumeration adapted from TMDD LaneRoadway, updated in WZDx v3.0 `restriction_type` | [lane_restrictions](/spec-content/data-tables/lane_restrictions.md) | [Road Restriction](/spec-content/enumerated-types/road_restriction.md) | Individual lane restrictions | Enumeration created in WZDx v1.0 `restriction_units` | [lane_restrictions](/spec-content/data-tables/lane_restrictions.md) | [Lane Restriction Unit](/spec-content/enumerated-types/lane_restriction_unit.md) | This is an intial list, created in WZDx v2.0, and is not intended to be complete. More values will be added as needed. diff --git a/spec-content/data-tables/lanes.md b/spec-content/data-tables/lanes.md index c32c6e0f..03a65657 100644 --- a/spec-content/data-tables/lanes.md +++ b/spec-content/data-tables/lanes.md @@ -1,18 +1,18 @@ # lanes **Optional** -This table identifies and describes individual lanes within a road event. +This table identifies and describes individual lanes within a road event. Each entry in this table represents a single lane. This table is related to the [road_events](/spec-content/data-tables/road_events.md) table by the foreign key road_event_id. For every record in the road_event table there may exist one or more record(s) in the lanes table. This table is related to the [lane_restrictions](/spec-content/data-tables/lane_restrictions.md) table. For each record in the lanes table there may exist one or more records in the lane_restrictions table. The lane_id field acts as the foreign key in the lanes table. ## Lanes Table Structure -Data Name|Data Type|Description|Conformance|Notes --|-|-|-|-| -lane_id|ID|Identifies the lane_info record|Required|Primary key -[road_event_id](/data-tables/road_events.md)|ID|Identifies the road event to which a lane information is related.|Required|Foreign key -lane_edge_reference|Enumeration; Text|The roadside edge from which lanes are assigned numbers.|Conditional: required if lane_number is not null|Counting begins from the edge of the improved surface. See [Lane Edge Reference Enumerated Type](/spec-content/enumerated-types/lane_edge_reference.md) -lane_number|Non-negative Integer|The number assigned to a lane (not including shoulders)|Optional|Assigned by counting from right or left edge of the improved surface. Counting begins from the edge indicated in the lane_edge_reference field. Useful for text to voice translation. -lane_status|Enumeration; Text|Status of the lane for the traveling public|Required|Allowed values: open, closed, shift-left, shift-right, merge-right, merge-left, alternating-one-way. See [Lane Status Enumerated Type](/spec-content/enumerated-types/lane_status.md) -lane_type|Enumeration; Text|An indication of the type of lane or shoulder|Required|See [Lane Type Enumerated Type](/spec-content/enumerated-types/derived-from-its-standards/lane_type.md) +Data Name | Data Type | Description | Conformance | Notes +--- | --- | --- | --- | --- +lane_id | ID | Identifies the lane_info record | Required | Primary key +[road_event_id](/spec-content/data-tables/road_events.md) | ID | Identifies the road event to which a lane information is related. | Required | Foreign key +order | Positive Integer | The position of a lane in sequence on the roadway. This value is used as an index to indicate the order of all WZDx lanes provided for a road event. | Required | A value of `1` must represent the **left-most** lane and an increase in 1 must represent moving a single lane over from the **left**. +type | Enumeration; Text | An indication of the type of lane or shoulder | Required | See [Lane Type Enumerated Type](/spec-content/enumerated-types/derived-from-its-standards/lane_type.md) +status | Enumeration; Text | Status of the lane for the traveling public | Required | See [Lane Status Enumerated Type](/spec-content/enumerated-types/lane_status.md) +lane_number | Positive Integer | The number assigned to the lane to help identify its position. Flexible, but usually used for regular, driveable lanes. | Optional | Assigned by counting from the **left** edge of the improved surface. Useful for text to voice translation. diff --git a/spec-content/enumerated-types/derived-from-its-standards/lane_type.md b/spec-content/enumerated-types/derived-from-its-standards/lane_type.md index 594b1aac..6b4ce8d9 100644 --- a/spec-content/enumerated-types/derived-from-its-standards/lane_type.md +++ b/spec-content/enumerated-types/derived-from-its-standards/lane_type.md @@ -1,88 +1,77 @@ # Lane Type -*Note:* LaneRoadway is imported into TMDD from SAE 2540 (ITIS Standard) +*Note:* The LaneRoadway enumeration is imported into TMDD from SAE 2540 (ITIS Standard) ## Enumeration -TMDD LaneRoadway Enumeration | Lane Type Enumeration | Description +WZDx Lane Type | TMDD LaneRoadway Enumeration Value | Description --- | --- | --- -**all-roadways (8192)** | all | Indicates that road all lanes are open or
closed; if all lanes are closed then road is
effectively closed -**through-lanes (8193)** | | Not used -**left-lane (8194)** | left-lane | The left most lane (inside lane) -**right-lane (8195)** | right-lane | The right most lane (outside lane) -| | left-2-lanes | the two most left lanes -| | left-3-lanes | The three most left lanes -| | right-2-lanes | The two most right lanes -| | right-3-lanes | The three most right lanes -**center-lane (8196)** | | Not used -**middle-lanes (8197)** | middle-lane | The center most lane where are a total of
an odd number of lanes -**middle-two-lanes (8198)** | middle-two-lanes | The center most lanes where are a total
of an even number of lanes -**right-turning-lanes (8199)** | right-turning-lane | A right lane where right turns are permissible -**left-turning-lanes (8200)** | left-turning-lane | A left lane where left turns are permissible -**upper-deck-lanes (8201)** | | Note used -**lower-deck-lanes (8202)** | | Note used -**reversible-lanes (8203)** | | Note used -**right-exit-lanes (8204)** | right-exit-lane | The right lane where the lane provides an
egress with a ramp -**left-exit-lanes (8205)** | left-exit-lane | The left lane where the lanes where the
lane provides an egress with a ramp -**right-merging-lanes (8206)** | right-merging-lane | The right lane where the lane ends with a
gradual merge with the second most lane -**left-merging-lanes (8207)** | left-merging-lane | The left lane where the lanes ends by a
gradual merge with the second most left
lane -**right-exit-ramp (8208)** | right-exit-ramp | The (first) exit ramp with an egress on the
right in the direction of flow at an
interchange -**right-second-exit-ramp (8209)** | right-second-exit-ramp | The second exit ramp with an egress on
the right in the direction of flow at an
interchange -**right-entrance-ramp (8210)** | right-entrance-ramp | The (first) entrance ramp with an ingress
on the right in the direction of flow at an
interchange -**right-second-entrance-ramp (8211)** | right-second-entrance-ramp | The second entrance ramp with an
ingress on the right in the direction of flow
at an interchange -**left-exit_ramp (8212)** | left-exit-ramp | The (first) exit ramp with an egress on the
left in the direction of flow at an
interchange -**left-second-exit-ramp (8213)** | left-second-exit-ramp | The second exit ramp with an egress on
the left in the direction of flow at an
interchange -**left-entrance-ramp (8214)** | left-entrance-ramp | The (first) entrance ramp with an ingress
on the left in the direction of flow at an
interchange -**left-second-entrance-ramp (8215)** | left-second-entrance-ramp | The second entrance ramp with an
ingress on the left in the direction of flow
at an interchange -**escape-ramp (8216)** | | Not used -**hard-shoulder (8217)** | | Not used -**soft-shoulder (8218)** | | Not used -**right-shoulder (8219)** | | Not used -**left-shoulder (8220)** | | Not used -**median (8221)** | | Not used -**sidewalk (8222)** | sidewalk | The sidewalk or pedestrian way -**highways (8223)** | | Not used -**right-hand-parallel-lanes (8224)** | | Not used -**left-hand-parallel-lanes (8225)** | | Not used -**connecting-lanes (8226)** | | Not used -**express-lanes (8227)** | | Not used -**local-lanes (8228)** | | Not used -**toll-lanes (8229)** | | Not used -**electronic-toll-lanes (8230)** | | Note used -**toll-plaza (8231)** | | Not used -**inspection-lane (8232)** | | Not used -**hov-lanes (8233)** | | Not used -**bus-lanes (8234)** | | Not used -**carpool-lanes (8235)** | | Not used -**truck-lanes (8236)** | | Not used -**emergency-lanes (8237)** | | Not used -**passing-lanes (8238)** | | Not used -**climbing-lanes (8239)** | | Not used -**slow-lane (8240)** | | Not used -**service-road (8240)** | | Not used -**service-road (8241)** | | Not used -**cycle-lane (8242)** | | Not used -**tracks (8243)** | | Not used -**bridge (8244)** | | Not used -**overpass (8245)** | | Not used -**elevated-lanes (8246)** | | Not used -**underpass (8247)** | | Not used -**tunnel (8248)** | | Not used -**all-exit-lanes (8249)** | | Not used -**all-entry-lanes (8250)** | | Not used -**either-shoulder (8251)** | | Not used -**shoulder-work (8252)** | | Not used -| | bike-lane | Bike lane -| | none | No lanes (open or closed) -| | unknown | Unknown which lane is referenced -| | alternating-flow-lane | Signal or flagger controls lanes flow -**right-shoulder (8219)** | outside | The outer lane or the right most lane -**left-shoulder (8220)** | inside | The inner lane or the left most lane -| | both | Both inside and outside shoulders -| | none | Not needed if field is optional; this is the default
value -| | unknown | Unknown if shoulder is open, closed or not existing +**left-lane** | left-lane (8194) | The left most lane +**right-lane** | right-lane (8195) | right-lane | The right most lane +**middle-lane** | middle-lanes (8197) | A lane that is not the rightmost or leftmost lane +**center-lane** | center-lane (8196) | The center-most lane when the total number of lanes is odd +**lane** | | Generic lane type, intended to be used for regular, driveable lanes where `left-lane`, `right-lane`, and `middle-lane` are unsuitable (e.g. single-lane roadway) +**right-turning-lane** | right-turning-lanes (8199) | A right lane where right turns are permissible +**left-turning-lane** | left-turning-lanes (8200) | A left lane where left turns are permissible +**right-exit-lane** | right-exit-lanes (8204) | The right lane where the lane provides an egress with a ramp +**left-exit-lane** | left-exit-lanes (8205) | The left lane where the lanes where the lane provides an egress with a ramp +**right-merging-lane** | right-merging-lanes (8206) | The right lane where the lane ends with a gradual merge with the second most lane +**left-merging-lane** | left-merging-lanes (8207) | The left lane where the lanes ends by a gradual merge with the second most left lane +**right-exit-ramp** | right-exit-ramp (8208) | The (first) exit ramp with an egress on the right in the direction of flow at an interchange +**right-second-exit-ramp** | right-second-exit-ramp (8209) | The second exit ramp with an egress on the right in the direction of flow at an interchange +**right-entrance-ramp** | right-entrance-ramp (8210) | The (first) entrance ramp with an ingress on the right in the direction of flow at an interchange +**right-second-entrance-ramp** | right-second-entrance-ramp (8211) | The second entrance ramp with an ingress on the right in the direction of flow at an interchange +**left-exit-ramp** | left-exit_ramp (8212) | The (first) exit ramp with an egress on the left in the direction of flow at an interchange +**left-second-exit-ramp** | left-second-exit-ramp (8213) | The second exit ramp with an egress on the left in the direction of flow at an interchange +**left-entrance-ramp** | left-entrance-ramp (8214) | The (first) entrance ramp with an ingress on the left in the direction of flow at an interchange +**left-second-entrance-ramp** | left-second-entrance-ramp (8215) | The second entrance ramp with an ingress on the left in the direction of flow at an interchange +**sidewalk** | sidewalk (8222) | The sidewalk or pedestrian way +**bike-lane** | cycle-lane (8242) | Bike lane +**shoulder** | | Generic shoulder; useful when the shoulder is neither left nor right (e.g. between HOV Lane and main roadway). It can also be used in place of `left-shoulder` or `right-shoulder`. +**right-shoulder** | right-shoulder (8219) | The outer shoulder or the right most shoulder +**left-shoulder** | left-shoulder (8220) | The inner shoulder or the left most shoulder +**hov-lane** | hov-lanes (8233) | A high-occupancy vehicle lane +**alternating-flow-lane** | | Signal or flagger controls lanes flow +**center-left-turn-lane** | | A lane in the center of a bidirectional roadway in which traffic from both directions pulls to make a left turn +**reversible-lane** | | A lane in which traffic may travel in either direction, depending on certain conditions such as time of day + +The following values from the TMDD LaneRoadway Enumeration are not used in the WZDx specification: + +``` +through-lanes (8193) +upper-deck-lanes (8201) +lower-deck-lanes (8202) +reversible-lanes (8203) +escape-ramp (8216) +hard-shoulder (8217) +soft-shoulder (8218) +median (8221) +right-hand-parallel-lanes (8224) +left-hand-parallel-lanes (8225) +connecting-lanes (8226) +express-lanes (8227) +local-lanes (8228) +toll-lanes (8229) +electronic-toll-lanes (8230) +toll-plaza (8231) +inspection-lane (8232) +bus-lanes (8234) +carpool-lanes (8235) +truck-lanes (8236) +emergency-lanes (8237) +passing-lanes (8238) +climbing-lanes (8239) +slow-lane (8240) +service-road (8241) +tracks (8243) +bridge (8244) +overpass (8245) +elevated-lanes (8246) +underpass (8247) +tunnel (8248) +``` ## Used By The **Lane Type** enumeration is used by the following fields Field Name | Data Table --- | --- -lane_type | [lanes](/spec-content/data-tables/lanes.md) \ No newline at end of file +type | [lanes](/spec-content/data-tables/lanes.md) diff --git a/spec-content/enumerated-types/lane_edge_reference.md b/spec-content/enumerated-types/lane_edge_reference.md deleted file mode 100644 index aaa761ba..00000000 --- a/spec-content/enumerated-types/lane_edge_reference.md +++ /dev/null @@ -1,14 +0,0 @@ -# Lane Edge Reference - -## Enumeration -Type | Description ---- | --- -**left** | Lane are assigned numbers from the left side of the road. -**right** | Lane are assigned numbers from the right side of the road. - -## Used By -The **Lane Edge Reference** enumeration is used by the following fields - -Field Name | Data Table ---- | --- -lane_edge_reference | [lanes](/spec-content/data-tables/lanes.md) diff --git a/spec-content/enumerated-types/lane_status.md b/spec-content/enumerated-types/lane_status.md index ae982d6b..adcc8a82 100644 --- a/spec-content/enumerated-types/lane_status.md +++ b/spec-content/enumerated-types/lane_status.md @@ -17,4 +17,4 @@ The **Road Restriction** enumeration is used by the following fields Field Name | Data Table --- | --- -lane_status | [lanes](/spec-content/data-tables/lanes.md) +status | [lanes](/spec-content/data-tables/lanes.md)