usdot-jpo-ode / wzdx

The Work Zone Data Exchange (WZDx) Specification aims to make harmonized work zone data provided by infrastructure owners and operators (IOOs) available for third party use, making travel on public roads safer and more efficient through ubiquitous access to data on work zone activity.
Creative Commons Zero v1.0 Universal
89 stars 62 forks source link

Refactor how road event positional accuracy is described #233

Closed j-d-b closed 1 year ago

j-d-b commented 2 years ago

This issue is related to #201, #213, and #232.

Background

Currently, the properties for describing positional accuracy of a road event—that is, the "accuracy" of coordinates of a RoadEventFeature's geometry—occur directly on the WorkZoneRoadEvent (the only type of road event where they are currently used). There are two properties related to positional accuracy, beginning_accuracy and ending_accuracy, but could be more in the future to allow representing the accuracy of intermediate points (see #232) or the measured accuracy of the coordinates as a distance (see #201).

Since these properties are defined only on the WorkZoneRoadEvent, if there was desire to add them to another type of road event, such as the DetourRoadEvent, they would have to be duplicated there—any changes in the future would have to be made in two places, which is error prone and inelegant.

Proposal

All properties related to positional (or "spatial") accuracy could occur on a new PositionalAccuracy object. The PositionalAccuracy object would be used by the WorkZoneRoadEvent and in the future any other objects that need to describe positional accuracy. In addition, expansions to what positional accuracy defines can be represented would be added to this object.

PositionalAccuracy Object

The PositionalAccuracy object describes the accuracy of geographical coordinates.

Properties

Name Type Description Conformance Notes
beginning_accuracy SpatialVerification Indicates how the beginning coordinate was defined. Required
ending_accuracy SpatialVerification Indicates how the ending coordinate was defined. Required

Used By

Property Object
positional_accuracy WorkZoneRoadEvent

Note that the above implementation just moves the beginning_accuracy and ending_accuracy properties to the PositionalAccuracy object. However, i think it would be cleaner to also implement the approach in #213

j-d-b commented 2 years ago

Deferred as there needs to be more discussion regarding other verification/accuracy properties that would be beneficial to make it worthwhile to create a separate object.

j-d-b commented 1 year ago

Closing until more descriptive location accuracy is desired.