UC 11: Traffic jam ahead warning
Operation use case
Purpose
Informing and warning road users about traffic jams and more
importantly, the traffic jam tail, which they are approaching on their
route.
Provided timely and adequate notifications, road users can anticipate
the traffic jam by reducing their speed in time and gradually and safely
reducing the traffic jam. In this way, incidents can be avoided and
general road safety improves.

Position of road users
Road users receive information about the location of the traffic jam on their route. Road users who come close to the traffic jam cake (and drive in the same direction of travel) will receive a notification so that they can adjust their driving behaviour. The location and distance to the traffic jam are shared with the road user.
UpstreamThe vehicle, upstream of the traffic jam (red vehicle in figure), receives a notification of traffic jams on its route and is informed about the location and distance to the traffic jam.
In traffic jamsThe traffic jams will be shown on the map (as a line string, the blue -awareness zone- and orange -history zone- line in the figure) so that the end user has an overview of the length of the traffic jam.
DownstreamThe road user (blue vehicle in lower right in figure) has already passed the traffic jam. No more reporting needs to be given.
Data sources
The main sources for these reports are:
- Be-Mobile traffic jam information
MI & Historical archive
DENM information
Based on the eventHistory trace and eventSpeed, the enduser client can calculate the duration of the delay.
Cause and sub cause codes are:
| Causecode | Description | Subcausecode | Description |
|---|---|---|---|
| 1 | trafficCondition | 0 | unavailable |
| 2 | Traffic jam slowly increasing | ||
| 3 | Traffic jam increasing | ||
| 4 | Traffic jam strongly increasing | ||
| 5 | Traffic stationary | ||
| 6 | Traffic jam slightly decreasing | ||
| 7 | Traffic jam decreasing | ||
| 8 | Traffic jam strongly decreasing |
MI headers
{
"messageType": "DENM",
"originatingCountry": "BE",
"protocolVersion": "DENM:1.3.1",
"publisherId": "BE00004",
"publicationId": "BE00004:DENM_TRAFFIC_JAMS_01",
"custom-mobilidata-publisherType": "PIP",
"custom-mobilidata-dtapEnvironment": "production",
"custom-mobilidata-useCase": [11],
"quadTree": [
]
}
Historical archive
As well the original messages as the RUF messages ar stored in the historial database.
Data Processing (PIP)
Create an event
The information from the above-mentioned sources is collected and validated in the PIP. Then, the "traffic jam warning" events are published on the MI as DENM messages.
Be-Mobile traffic jam informationThe Be-Mobile traffic jam information is the main source of notifications for this use case. Our traffic jam information is based on Floating Car Data from a representative fleet of cars and trucks, and works as follows:
- GPS positions map matching on a map
- Quality control at each individual GPS point: filtering out bad, irregular GPS data.
- Aggregate GPS positions over time per segment.
- Calculate travel times on the entire road network by segment, each segment is up to 50 meters long to deliver high degree of granularity.
- Detecting traffic jams: every 20 seconds an output is generated from all
segments where a traffic jam has been formed, adjacent segments are
connected into one traffic jam.
- The traffic jams and traffic jam messages are only generated on connecting roads (OSM classification: motorway, trunk, primary, secondary, tertiary), not on access roads (OSM classification: unknown, residential).
The Be-Mobile traffic jam information is used by the PIP to generate traffic jam notifications on the first segment (in the direction of travel) of each traffic jam. Every 20 seconds, the PIP processes the new list of traffic jam segments and creates new traffic jam tail notifications or updates existing traffic jam tail messages (DENM messages).
Follow-up and cancellation of the event
Every 20 seconds, the PIP processes a new update from traffic jam segments to traffic jam events. Existing traffic jams are updated, new events are created for new traffic jams and if traffic jams disappear, the events are immediately cancelled.
Quality Control
The traffic jam notifications from Be-Mobile are the result of an advanced algorithm with extensive quality control and validation.
In addition, the PIP will perform a quality check on the DENM messages, before publishing them on the MI, the following checks will be implemented:
- Technical validation
- Are the protocols respected? Incorrect messages are filtered out.
- Are all required fields filled in according to C-roads standard? Incomplete DENM messages are filtered out.
- Is the format correct? Messages in incorrect format will not be used.
- Isn't the message too old? Outdated messages are filtered out. Several checks are done in the PIP to check that a message sent to the MI is not outdated. For example, if a newer update is already in the PIP before the previous message has been sent to the MI (e.g. due to a delay in the PIP). It is not possible to put an exact time on 'outdated messages', as this time will be use case and source dependent.
RUF
RUF is not used in this use case.
RUF will rarely, if ever, achieve the same level of detail and reliability within a time span of 20 seconds as the traffic jam information based on FCD. RUF would only cause noise in addition to the accurate and frequency of traffic jam (tail) updates.
MI & Historical Archive
The following data streams run over the MI and are archived after conversion:
- DENM
-
DENM implementation such as use-case HLN-TJA (Traffic Jam Ahead) in C-ROADS 2.0
-
causeCode 1 (traffic condition)
- subCauseCode 0
-
-
Service Provider Implementation
N/A
Message example
UC 11 Message Example
- AMQP Header
- ASN.1
- JSON
{
"shardId": "1",
"latitude": "51.155076",
"quadTree": ",120202132001132311,1202021320011,1202021320013,",
"causeCode": "1",
"longitude": "4.382742",
"shardCount": "1",
"messageType": "DENM",
"publisherId": "BE00004",
"subCauseCode": "3",
"publicationId": "BE00004:DENM_TRAFFIC_JAMS_02",
"baselineVersion": "2.1.0",
"protocolVersion": "DENM:1.3.1",
"originatingCountry": "BE",
"custom-mobilidata-useCase": ",11,",
"custom-mobilidata-timestamp": "1737369968058",
"custom-mobilidata-alertCCodes": "72",
"custom-mobilidata-publisherType": "PIP",
"custom-mobilidata-baselineVersion": "1.0.0",
"custom-mobilidata-dtapEnvironment": "production"
}
010100000001c100000000a41a935692e72724d5a4b9c9cd4228e286de692dcffffffe11dbba1f012c0010010310768964fdf1ce00ed12c9fbe39c01da2593f7c73809dabf02cffffbffff8e71088d409738e71088dc09358e71088dc090f8e71088d409218e71088dc090f8e71088dc09878e710888409878e71088dc09998e71088d409878e710892c07f78e70
{
"Header": {
"ProtocolVersion": 1,
"MessageID": 1,
"StationID": 1
},
"Denm": {
"Management": {
"ActionID": {
"OriginatingStationID": 1,
"SequenceNumber": 18485
},
"DetectionTime": 664454773049,
"ReferenceTime": 664454773049,
"Termination": null,
"EventPosition": {
"Latitude": 511550760,
"Longitude": 43827420,
"PositionConfidenceEllipse": {
"SemiMajorConfidence": 4095,
"SemiMajorOrientation": 3601,
"SemiMinorConfidence": 4095
},
"Altitude": {
"AltitudeValue": 800001,
"AltitudeConfidence": 15
}
},
"RelevanceDistance": null,
"RelevanceTrafficDirection": null,
"ValidityDuration": 600,
"TransmissionInterval": 1,
"StationType": 0
},
"Situation": {
"InformationQuality": 0,
"EventType": {
"CauseCodeType": 1,
"SubCauseCodeType": 3
},
"LinkedCause": null,
"EventHistory": [
{
"EventPosition": {
"DeltaLatitude": -100726,
"DeltaLongitude": -27656,
"DeltaAltitude": 12800
},
"EventDeltaTime": 1,
"InformationQuality": 0
},
{
"EventPosition": {
"DeltaLatitude": -100726,
"DeltaLongitude": -27656,
"DeltaAltitude": 12800
},
"EventDeltaTime": 1,
"InformationQuality": 0
},
{
"EventPosition": {
"DeltaLatitude": -100726,
"DeltaLongitude": -27656,
"DeltaAltitude": 12800
},
"EventDeltaTime": 1,
"InformationQuality": 0
}
]
},
"Location": {
"EventSpeed": null,
"EventPositionHeading": {
"HeadingValue": 1898,
"HeadingConfidence": 127
},
"Traces": [
[
{
"PathPosition": {
"DeltaLatitude": 0,
"DeltaLongitude": 0,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4379,
"DeltaLongitude": 1210,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4380,
"DeltaLongitude": 1179,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4380,
"DeltaLongitude": 1160,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4379,
"DeltaLongitude": 1169,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4380,
"DeltaLongitude": 1160,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4380,
"DeltaLongitude": 1220,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4369,
"DeltaLongitude": 1220,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4380,
"DeltaLongitude": 1229,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4379,
"DeltaLongitude": 1220,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
},
{
"PathPosition": {
"DeltaLatitude": 4390,
"DeltaLongitude": 1020,
"DeltaAltitude": 12800
},
"PathDeltaTime": 1
}
]
],
"RoadType": null
},
"Alacarte": null
}
}