UC 12: Road works warning
Operation use case
In this use case, warnings are made for static roadworks that cause disruption to traffic. The road is partially or completely closed. Fixed location, so not including the crash absorber accompanied mobile road works.

The warning message is issued for upstream traffic, and is present during the duration of the roadworks.
Road users will get a warning message for upcoming roadworks. Determination if an alternative route to be taken, and which one, is not part of this use case and up the road user (and possible navigationsystem). The eventual speed limitation in the relevance zone is included in the message if it is known at the source.
Operational Road Environment
- Territory: Flanders
- Border passing cases: Road works usually stop around the border, if they continue, these will often be 2 separate sites
- Road class: all roads
- Time restrictions: none
- Weather restrictions: none
- Special restrictions: none
Data sources
- the DATEX II feed of the Flemish Traffic Centre (VVC): covering the road network of then Flemish regional road authorities. From this feed, the planned mobile road works zones are filtered out. Information on mobile roadworks is covered in Mobildata in use case 6 – active service vehicle location: crash absorbers, mowers, …
- GIPOD: the Generic Information Platform Public Domain: covering the road network of local road authorities. This database contains the longer term planning of all activities causing hindrance to the public domain. Local Road authorities and all active in the public domain are obliged to enter their planned activities in this database. Some of these (many) plannings are entered precise and accurate, others are less precise. Criteria were defined to filter out events/roadworks without impact on traffic, and also filter out insufficiently precisely timed events. This to avoid an overload of false positive roadworks notifications.
- Event Sourcing from RUF: new reports of road works by connected road users.
MI & Historical archive
DENM information
- Default time to live 24 hours: If the roadwork is over a longer period, the detectionTime and referenceTime values are adjusted to the new value (detectionTime + duration) and the DENM is updated. Only in the first instance of the roadworks DENM, the detectionTime and referenceTime can therefor be different, in all updated DENM's they are the same.
- Lat/Long position of event: The position of the reference point can be updated if a better data source is available, or RUF information is indicating.
- Awareness zone(s) defined, upstream the lat/long position
- History (relevance) zone(s) are optional, depending on quality of source information. The history zone is representative for the length of the roadworks area along the route. (The definition of history zone is the route that the perceptive vehicle has laid down.)
- Speed limit of actual road works zone can be included. !: gradual speed limit reductions before the road works zone is not available in the DENM message. Only the speed for the history zone is provided.
Cause and subcause codes are:
| Causecode | Description | Subcausecode | Desctiption |
|---|---|---|---|
| 3 | roadworks | 0 | details unavailable |
| 1 | major roadworks, road closure | ||
| 2, 3 | not used | ||
| 4 | short-Term Stationary Roadworks, Lane closure | ||
| 5, 6 | not used |
MI Headers
Capability descriptor:
{
"messageType": "DENM",
"originatingCountry": "BE",
"protocolVersion": "DENM:1.3.1",
"publisherId": "BE00004",
"publicationId": "BE00004:DENM_ROADWORKS_01",
"custom-mobilidata-publisherType": "PIP",
"custom-mobilidata-dtapEnvironment": "production",
"custom-mobilidata-useCase": [12, 25],
"quadTree": [
]
}
Historical archive
As well the original messages as the RUF messages ar stored in the historial database.
RUF and sourcing
RUF messages with reference to the actionID in the originating DENM message will be aggregated and anomynously sent to AWV in order to correct the source data if possible. See RUF page in Messages section.
Risk and remarks
/
Alert cancelling
Alerts are kept alive as long as they are available at the source for DATEX and GIPOD.
Alerts generated by RUF/Event sourcing by road users have a time to live of 24 hours. Every upvoting/confirming resets the 24-hour timer to restart the 24h count-down.
Message example
UC 12 Message Example
- AMQP Header
- ASN.1
- JSON
{
"shardId": "1",
"latitude": "51.035872",
"quadTree": ",120202122031210330,1202021220312,",
"causeCode": "3",
"longitude": "3.106774",
"shardCount": "1",
"messageType": "DENM",
"publisherId": "BE00004",
"subCauseCode": "0",
"publicationId": "BE00004:DENM_ROADWORKS_02",
"baselineVersion": "2.1.0",
"protocolVersion": "DENM:1.3.1",
"originatingCountry": "BE",
"custom-mobilidata-useCase": ",12,",
"custom-mobilidata-timestamp": "1737369958958",
"custom-mobilidata-alertCCodes": "702,401",
"custom-mobilidata-publisherType": "PIP",
"custom-mobilidata-baselineVersion": "1.0.0",
"custom-mobilidata-dtapEnvironment": "production"
}
010100000001c100000000cbf7935692e2b5a4d5a4b8ad6d4105dc06d23e05cffffffe11dbba1fa8c00010030001f84d7b27f1ce02949fd8d3fffeffffe39c415df0798639c415a107b1e39c4153f07de639c3f7690969e39c4157afebfe39c41564febfe39c40da8ff24639c41fdefe07639c41fdefe01e39c41fdefe06e39c41fdefe02639c41fdefe06e39c30ffffbffff8e710577c1e618e71056841ec78e71054fc1f798e70fdda425a78e70f8e8c07698e70f767c08bf8e70f76cc08bd8e70f768408a98e70f768408bf8e70f767c08bf8e70f76cc08a98e70b3fffeffffe39c415df0798639c415a107b1e39c4153f07de639c40628f2d1639c3f060f442e39c3ec64f4f1e39c3f290f3b1e39c3fd6af28b639c3f752f330639c3ee30f479e39c30ffffbffff8e710577c1e618e71056841ec78e71054fc1f798e70fdda425a78e710031433dd8e70ffbf433dd8e70fed8c33798e70fd89c31738e70fd3a430fb8e70ff5ac338d8e710261431af8e70b3fffeffffe39c415df0798639c415a107b1e39c4153f07de639c3eabef821639c3ea5cf84de39c3ea1ef867639c3f09af64fe39c3edccf933e39c3eddf0568e39c4121efa96e39c20ffffbffff8e710577c1e618e71056841ec78e71054fc1f798e70fdda425a78e71055ebfaff8e7105593faff8e70faa6404ff8e7083fffeffffe39c415df0798639c415a107b1e39c4153f07de639c3f7690969e39c4157afebfe39c41564febfe39c40da8ff24639c0
{
"Header": {
"ProtocolVersion": 1,
"MessageID": 1,
"StationID": 1
},
"Denm": {
"Management": {
"ActionID": {
"OriginatingStationID": 1,
"SequenceNumber": 38895
},
"DetectionTime": 664454763949,
"ReferenceTime": 664454763949,
"Termination": null,
"EventPosition": {
"Latitude": 510358720,
"Longitude": 31067740,
"PositionConfidenceEllipse": {
"SemiMajorConfidence": 4095,
"SemiMajorOrientation": 3601,
"SemiMinorConfidence": 4095
},
"Altitude": {
"AltitudeValue": 800001,
"AltitudeConfidence": 15
}
},
"RelevanceDistance": null,
"RelevanceTrafficDirection": null,
"ValidityDuration": 86400,
"TransmissionInterval": 1,
"StationType": 0
},
"Situation": {
"InformationQuality": 0,
"EventType": {
"CauseCodeType": 3,
"SubCauseCodeType": 0
},
"LinkedCause": null,
"EventHistory": [
{
"EventPosition": {
"DeltaLatitude": -1970,
"DeltaLongitude": -4960,
"DeltaAltitude": 12800
},
"EventDeltaTime": 1,
"InformationQuality": 0
}
]
},
"Location": {
"EventSpeed": null,
"EventPositionHeading": {
"HeadingValue": 2377,
"HeadingConfidence": 127
},
"Traces": [
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1099,
"DeltaLongitude": 4820,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2750,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2739,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 1749,
"DeltaLongitude": -439,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4080,
"DeltaLongitude": -1009,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4080,
"DeltaLongitude": -1020,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4080,
"DeltaLongitude": -1010,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4080,
"DeltaLongitude": -1019,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4080,
"DeltaLongitude": -1010,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1099,
"DeltaLongitude": 4820,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -3630,
"DeltaLongitude": 949,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4400,
"DeltaLongitude": 1120,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4390,
"DeltaLongitude": 1119,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4399,
"DeltaLongitude": 1109,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4399,
"DeltaLongitude": 1120,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4400,
"DeltaLongitude": 1120,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -4390,
"DeltaLongitude": 1109,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 789,
"DeltaLongitude": -6749,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1999,
"DeltaLongitude": -6010,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2509,
"DeltaLongitude": -5660,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1719,
"DeltaLongitude": -6300,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -330,
"DeltaLongitude": -6889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1110,
"DeltaLongitude": -6559,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2279,
"DeltaLongitude": -5900,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1099,
"DeltaLongitude": 4820,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 99,
"DeltaLongitude": 6639,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -129,
"DeltaLongitude": 6639,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -590,
"DeltaLongitude": 6589,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1260,
"DeltaLongitude": 6330,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1419,
"DeltaLongitude": 6270,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -330,
"DeltaLongitude": 6599,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 1219,
"DeltaLongitude": 6360,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2720,
"DeltaLongitude": -4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2769,
"DeltaLongitude": -3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2800,
"DeltaLongitude": -3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1970,
"DeltaLongitude": -4960,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2329,
"DeltaLongitude": -3480,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2320,
"DeltaLongitude": 2770,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2320,
"DeltaLongitude": -2770,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1099,
"DeltaLongitude": 4820,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2750,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2739,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -2739,
"DeltaLongitude": 640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
],
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2800,
"DeltaLongitude": 3889,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2769,
"DeltaLongitude": 3940,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2720,
"DeltaLongitude": 4029,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": -1099,
"DeltaLongitude": 4820,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2750,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 2739,
"DeltaLongitude": -640,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 1749,
"DeltaLongitude": -439,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
]
],
"RoadType": null
},
"Alacarte": null
}
}