Real-time traffic data

The state of traffic on the network can be monitored via different sensors:

With fixed sensors, a number of count locations are defined and associated to a street link of the reference network. These count locations provide vehicle count data that can be further processed and aggregated.

With floating sensors, the floating car data provides traffic state information on any links traveled by the moving vehicle.

All measurements are stored as traffic states geolocated on the road network graph.

Traffic states are characterized by several attributes:

Attribute Type

Traffic states characteristic values

Should be always necessary to have both flow and speed values for each data point. At least one of these attributes are mandatory:

  • Observed flow
  • Observed speed

Network Location

List of directional elements (links) of the graph affected by the traffic state. At least one directional link is mandatory. These attributes are mandatory:

  • Link ID
  • From node ID

Traffic state validity

The time period during which a given state is valid. These attributes are necessary:

  • Validity start timestamp (date and time)
  • Validity end timestamp (date and time)

Source or provider identification

A unique reference to the measurement source.

Measure of reliability

A quality parameter indicating the level of confidence of the measured values.

The main tables of the layer are:

Table Type

CLOC

Contains the count locations of the street network. Count locations are identified by CLOC.IDNO. Count locations determine the location associated with each traffic count, described by a point (geometry attribute CLOC.RPNT) on a street link (geometry attribute CLOC.RSHP). Any number of count locations can be associated to street links, using the attributes CLOC.STRT and CLOC.FSND.

VCNT

Contains vehicle counts obtained from the count locations. Each vehicle count is associated to a count location (VCNT.CLOC). The time interval of each data point is defined between:

  • The end time of the previous detection (most recent VCNT.INST of the same detector.
  • The end time of the current detection (VCNT.INST ).

Vehicle counts may be a combination of:

  • Average speeds (VCNT.SPED).

  • Vehicle flows (VCNT.FLOW).

  • Density (VCNT.DENS).

All readings may be differentiated by transport system (VCNT.TSYS).

TSTA

Contains the traffic states revealed on the street network. Each traffic state is associated to a directional street link (pair of STRT and FSND). The time interval of each traffic state is defined between:

  • The initial timestamp (TSTA.FTIM).

  • The final timestamp (TSTA.LTIM).

Traffic states may be a combination of:

  • Average speeds (TSTA.SPED).

  • Vehicle flows (TEST.FLOW).

  • Density (TSTA.DENS).

They may be differentiated by transport system (TSTA.TSYS).

TSTA_BASE

Contains the historical traffic states revealed on the street network.

TSTA_RLTM

Contains the real-time traffic states revealed on the street network.

TRAFFICSTATE

 

TRAFFICSTATE_RLTM

 

TRAFFICSTATE_*

 

TRAFFICSTATE_*_RLTM

TRAFFICSTATE and TRAFFICSTATE_RLTM are used as templates for creating similar tables for each traffic state data provider.

The names of the created tables must be:

  • TRAFFICSTATE_* containing all data.

  • TRAFFICSTATE_*_RLTM used to store the most updated traffic state data (as a buffer storing the last minutes).

...where *must be replaced with the identifier of the traffic state data provider.

EXAMPLE:

  • trafficstate_tomtom

  • trafficstate_tomtom_rltm

If there are N providers, we have N pairs of tables TRAFFICSTATE_* and TRAFFICSTATE_*_RLTM.

Both sets of tables can be used by the Harmonizer module to fuse all data coming from all providers. The results of this fusion are written in TSTA and TSTA_RLTM.

Example

CREATE TABLE trafficstate_* (
 CHECK ( source = ’*’)
) INHERITS (trafficstate);
CREATE INDEX ON trafficstate_* USING hash (source);
CREATE INDEX ON trafficstate_* USING hash (cloc);
CREATE INDEX ON trafficstate_* USING btree (strt, fsnd);

CREATE TABLE trafficstate_*_rltm ( 
  CHECK ( source = ’*’)
) INHERITS (trafficstate_rltm);
CREATE INDEX ON trafficstate_*_rltm USING hash (source);
CREATE INDEX ON trafficstate_*_rltm USING hash (cloc);
CREATE INDEX ON trafficstate_*_rltm USING btree (strt, fsnd);
CREATE INDEX ON trafficstate_*_rltm USING btree (ldat, fdat);
CREATE INDEX ON trafficstate_*_rltm USING btree (strt_shap);