Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor LaneType enumeration: remove or deprecate values that reference a side or position on the roadway #137

Closed
j-d-b opened this issue Oct 22, 2020 · 6 comments · Fixed by #147
Labels
Lanes This item relates to adding, removing, or refactoring how lanes are described

Comments

@j-d-b
Copy link
Collaborator

j-d-b commented Oct 22, 2020

This issue proposes examining and then refactoring the lane type enumeration to remove or deprecate values that reference a position on the road (left, right, middle, or center), when the location can be determined by the lane's order property.

Background

There was a large refactoring of the lane type enumeration and lane entity for the v3.0 release (see #94). The removal of lane types that reference a location on the road was discussed during the v3.0 cycle, but was deferred at the time. However, a few updates were made as a gateway to this change:

  • A required order property was added to the lane entity to indicate a lane's position in the sequence of lanes on the roadway
  • Generic lane and shoulder lane types were added

Thus (in v3.0) the location of a lane on the roadway is known from the order property—this property alone indicates if the lane is on the left, right, center, etc. The lane's type value (one of the lane type enumerated type values) does not need to include the location information. lane and shoulder were added already and can be used instead of left-lane, right-lane, middle-lane, center-lane and left-shoulder, right-shoulder respectively.

List of current (v3.0) lane types that reference a location

left-lane: The leftmost lane
right-lane: The rightmost lane
middle-lane: A lane that is not the rightmost or leftmost lane
center-lane: The center-most lane when the total number of lanes is odd
right-turning-lane: A right lane where right turns are permissible
left-turning-lane: A left lane where left turns are permissible
right-exit-lane: The right lane where the lane provides an egress with a ramp
left-exit-lane: The left lane where the lane provides an egress with a ramp
right-merging-lane: The right lane where the lane ends with a gradual merge with the second most lane
left-merging-lane: The left lane where the lanes ends by a gradual merge with the second most left lane
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: The second exit ramp with an egress on the right in the direction of flow at an interchange
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: The second entrance ramp with an ingress on the right in the direction of flow at an interchange
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: The second exit ramp with an egress on the left in the direction of flow at an interchange
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: The second entrance ramp with an ingress on the left in the direction of flow at an interchange
right-shoulder: The outer shoulder or the rightmost shoulder
left-shoulder: The inner shoulder or the leftmost shoulder

List of lane types that can be removed without losing information

left-lane: use lane instead
right-lane: use lane instead
middle-lane: use lane instead
center-lane: use lane instead

right-shoulder: use shoulder instead
left-shoulder: use shoulder instead

List of lane types that should remain (removing would lose functionality)

right-turning-lane: Indicates not only that it is a right lane, but that right lanes are allowed (not covered by order). Suggest updating the description to remove the qualification that it must also be a right lane
left-turning-lane: Indicates not only that it is a left lane, but that left turn are allowed (not covered by order). Suggest updating the description to remove the qualification that it must also be a left lane

Needs discussion/clarification on usage

right-exit-lane: The right lane where the lane provides an egress with a ramp
left-exit-lane: The left lane where the lane provides an egress with a ramp

Based on the descriptions above this should be able to be removed and replaced with a new exit-lane value, as the right and left don't indicate the direction of the exit lane, just it's position.

right-merging-lane: The right lane where the lane ends with a gradual merge with the second most lane
left-merging-lane: The left lane where the lanes ends by a gradual merge with the second most left lane

These are confusing as by description the left and right refer to the location not the direction of the merge. If the descriptions are accurate these can be replaced with a new merging-lane type. Alternatively they could stay and the description could change to indicate that the left and right refer to the direction of the merge, not the position of the lane (though that may be unnecessary as the merge direction may be obvious from the position).

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: The second exit ramp with an egress on the right in the direction of flow at an interchange
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: The second entrance ramp with an ingress on the right in the direction of flow at an interchange
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: The second exit ramp with an egress on the left in the direction of flow at an interchange
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: The second entrance ramp with an ingress on the left in the direction of flow at an interchange

I'm not sure what the first/second terminology refers to so these need more discussion.

@j-d-b
Copy link
Collaborator Author

j-d-b commented Oct 22, 2020

This would could resolve #5

Edit: but PR #147 does not

@j-d-b
Copy link
Collaborator Author

j-d-b commented Nov 20, 2020

Updated proposal summarized (based on discussion with co-chairs 2020-11-20):

1. Remove left-lane, right-lane, middle-lane, center-lane in place of lane (which is already in the spec)
2. Remove left-shoulder, right-shoulder in place of shoulder (which is already in the spec)
3. Remove right-turning-lane, left-turning-lane; add new types right-turn-only-lane and left-turn-only-lane with updated descriptions to clarify the lane's position can be anywhere and that the left and right refer to the direction of the turn
4. Remove right-exit-lane, left-exit-lane; add new type exit-only-lane with updated description to indicate its use for when the lane is only for exiting (no option to not exit), and can also be a ramp
5. Remove right-merging-lane, left-merging-lane; this can be specified by with the LaneStatus of a lane (merge-left or merge-right)
6. Remove right-exit-ramp, right-second-exit-ramp, left-exit-ramp, left-second-exit-ramp; this are encompassed by exit-only-lane adding in 4.
7. Remove right-entrance-ramp, right-second-entrance-ramp, left-entrance-ramp, left-second-entrance-ramp; add new type entrance-lane and update description to note it can be a lane or ramp

See updated proposal below.

@j-d-b j-d-b changed the title Refactor lane type enumeration: remove or deprecate values that reference a side or position on the roadway Refactor LaneType enumeration: remove or deprecate values that reference a side or position on the roadway Nov 23, 2020
@j-d-b
Copy link
Collaborator Author

j-d-b commented Dec 16, 2020

Updated proposal after November 2020 subgroup meeting, following co-chairs meeting, and further pondering:

  1. Deprecate left-lane, right-lane, middle-lane, center-lane and use lane (which is already in the spec) instead
  2. Deprecate left-shoulder, right-shoulder and use shoulder (which is already in the spec) instead
  3. Change description for right-turning-lane, left-turning-lane to clarify the lane's position can be anywhere (specified by order) and that the "left" and "right" only refer to the direction of the turn
  4. Change description for right-exit-lane, left-exit-lane to clarify the lane's position can be anywhere (specified by order) that the "left" and "right" only refer to the direction of the exit. Additionally, note this lane can be a "ramp".
  5. Deprecate right-exit-ramp, right-second-exit-ramp, left-exit-ramp, left-second-exit-ramp; these are encompassed by the changes in 4.
  6. Add new right-entrance-lane and left-entrance-lane types. Clarify in the to clarify the lane's position can be anywhere (specified by order) that the "left" and "right" only refer to the direction of ingress. Additionally, note this lane can be a "ramp"
  7. Deprecate right-entrance-ramp, right-second-entrance-ramp, left-entrance-ramp, left-second-entrance-ramp; these are encompassed by the changes in 6.
  8. Deprecate right-merging-lane, left-merging-lane; these can be specified by with the LaneStatus of a lane (merge-left or merge-right)

Though there is additional clarification that could be made regarding when to use each type as well as new lane types that could be added, this issue is meant to focus only on deprecating the values that can be represented by other fields in the spec, such as the order property or by the lane's status in the case of merging lanes.

@yc-uw
Copy link

yc-uw commented Dec 17, 2020

WI supports this change since it provides a simplified, well defined description of the lane impact in combination with the Order attribute. But we are also curious about the likelihood and the timeframe for its implementation in the standard, since we have an active project that would be impacted by the changes to the LaneType values.

@j-d-b
Copy link
Collaborator Author

j-d-b commented Dec 17, 2020

@yc-uw the implementation proposed in #147, for incorporation in the spring 2021 release, deprecates the old LaneType values but does not remove them. They will remain valid until at least the fall/winter 2021 release.

@j-d-b
Copy link
Collaborator Author

j-d-b commented Apr 14, 2021

Resolved in #147.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Lanes This item relates to adding, removing, or refactoring how lanes are described
Projects
None yet
2 participants