TMC/TMC Import Germany

From OpenStreetMap Wiki
< TMC
Jump to navigation Jump to search

What are TMC location-codes

TMC is a (commonly) public electronic notification-system for obstructions to traffic. It is usually transmitted in a sub-carrier of conventional radio programs via RDS. Many consumer GPS-devices are able to receive it.

It is used in all of Europe and started to be used in the USA and some parts of Asia.

Its messages contain:

  • an identifier of the radio-station including a country-ID
  • an event-code given in an ISO-standard
  • a location-code to be deciphered using a location-table specific for a country and operator (usually only 1 operator per country)

The location-codes are given in a LocationCodeList (LCL). This list of codes enables everyone who is using OpenStreetMap to use the TMC-service without obtaining and understanding the local LCL. In addition, the locations in it and their relation to each other are also of interest to check the completeness of a countries road-network and add missing, important POIs.

See the section about classes and subclasses to get an idea of what may be included in the LCL of a country.

The import

For Germany, we have been allowed to:

  • tag existing objects in OSM with their TMC location-codes taken from the German LocationCodeList of the TMC -system.
  • use the Streets and POIs in the LCL to check our map for completeness.

A tool exists to read the LCL and convert it into OSM data. It generates nodes for Points, ways for Segments and relations for Roads and Areas.
Loading that data and the existing OSM data as 2 separate layers in JOSM is a good way to compare a small region and thus test a more advances tool for the import or to import a region by hand that is too complex for an automatic import.

Location-Codes are assigned to:

  • Points
    • a point in the LCL may be 2 or more points in OSM. e.g. a motorway-exit is one point in LCL but 2 nodes in OSM (one for each direction)
  • Segments
    • may be one or more ways in OSM. May also be both ways of a dual carriageway (but messages only apply to one of the directions).
  • Roads
    • Made up of Segments
  • Areas

Data contained in the LCL:

  • motorways (Autobahnen)
  • state streets (Bundesstrassen)
  • fuel stations
  • countries
  • states
  • regions
  • border-crossings
  • street names of very important streets
  • ...

Status


Older status

  • There is a tool to read the LCL and convert it into an OSM-map for easy manipulation and visualisation with the tools we have.
  • Marcus is currently writing a proof of concept for using the tagging-schema below with a simple TMC-client (Status: getting first locations from OSM using the schema below works).
  • Marcus is currently writing the first code for an automatic tools for importing Points, Segments and Ways (no Areas yet).
  • The tools and procedures developed shall be usable by other European countries to import their LCL as well.

Sven Anders has setup an very helpful tool to locate non tagged TMC code

  • Here OSM TMC in Deutschland you will find TMC Points as an Overlay to OSM charts.
  • OSM Validator let you went thru the hierachy of the TMC Values. It's easy to follow the links to OSM Browser, OSM Chart, JOSM and the above mentioned TMC Chart contained within the pages.

WORK TO BE DONE

We need manual help in adding the right tags to the right objects and sometimes to create these missing roads, areas and points in the first place.

Areas

Please go

  • HERE (Explanation what to do. German translation exists) or direct to
  • HERE (LocationCode 1 - 3600),
  • HERE (LocationCode 21300 - 40100),
  • HERE (LocationCode 41400 - 59400) and
  • HERE (Areas that are not administrative).

There is lots of work to be done and we need YOUR help.

NOTE: A TMC area mostly exist only for these areas which are touched by an "Autobahn" or a "Bundesstraße"!

Roads

Please go HERE

What we could do automatically has been done.
There is lots of work to be done and we need YOUR help.

Segments

Please go HERE

There is lots of work to be done and we need YOUR help.

Points

Please go HERE

There is lots of work to be done and we need YOUR help.

Correspondence

redirected DE:Kommunikation/BASt


Glossar

names used in this page:

  • Node - a Node in OpenStreetMap
  • Way - a Way in OpenStreetMap
  • Point - a Point in the TMC LocationCodeList
  • Segment - a Segment in the TMC LocationCodeList (not a segment in OSM)
  • Road - a Road in the TMC LocationCodeList (not a way in OSM)

Tagging Schema

This schema represents all we can extract from the LocationCodeList. Not all of this may be permitted to be imported in the case of all countries or TMC-operators. However to establish only one tagging-schema for this it was tried to come up with a complete set of tags.

See:


TMC:Point

Points in TMC-LocationCodes are single locations in space. They may have a name and meaning for themselves.

Points may have at most one predecessor-point and at most one successor-point, forming a double linked list.

This chaining must be kept in the import as it is referenced in TMC-messages that specify locations using a Point, a direction (forward/reverse) and a number of steps. The given location may be the LocationCode of a Point to traverse the linked list of Points, a Segment to traverse the linked list of Segments. Roads and Areas have no such linking.

For TMC-Points we can tag OSM-nodes as: If the Point has a name, then the node must have this name=* or loc_name=* or ref=* or loc_ref=*.

If a node has multiple location-codes and directions due to being an intersection, you may use a relation tagged type=TMC for each additional one. (This is done to remove the need to search for multiple tag-value -pairs and associate the direction.)

Way or Node Tag Value Discussion
relation type TMC (special case of multiple tmc-codes on one node)
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:LocationCode LCL The location-code of this Point
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:Direction "positive" or "negative" Optional. If dual carriageway and thus different nodes represent this TMC-Point per direction, use this.
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:NextLocationCode LCL Next LocationCode along the linked list of Points
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:PrevLocationCode LCL Previous LocationCode along the linked list of Points
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:LCLversion VERSION Optional but recommended. If this element is contained in multiple versions of the same table, the latest version is used.
node

(way if roundabout), relation

TMC:cid_CID:tabcd_TABCD:Class Point Optional but recommended.

Example:

TMC:cid_58:tabcd_1:LocationCode=1234
TMC:cid_58:tabcd_1:Direction=positive
TMC:cid_58:tabcd_1:NextLocationCode=5431
TMC:cid_58:tabcd_1:LCLVersion=8
TMC:cid_58:tabcd_1:Class=Point

TMC:Segment

Segments in TMC-LocationCodes are an ordered list of at least 2 nodes. Segments do not need to reference all Points of the segment directly but may use the existing chaining of the Points and specify only start, end and some intermediate Points. In OSM however we like them to contain all ways from start to end via all intermediate nodes.

Like Points they may have at most one predecessor and at most one successor in a double linked list.

If an OSM way does not start or end at the node that is the TMC-Point, it needs to be split in OSM. This ensures that it is easy to highlight an affected road correctly e.g. in a website. (The easier it is, the more it will be done and thus the more will OpenStreetMap profit from the exposure. TMC is hard ato understand as it is.)

For TMC-Segments we add all OSM-Ways from the Start-Point of the segment, in order to each of the intermediate Points of the Segment to the end-point of the Segment to a relation tagged type=TMC.
If the Segment has a name, then the ways and relation shall have this name=* or loc_name=*. If the Segment has a number (e.g. "B308"), then the ways shall have this ref=* or loc_ref=*.

Relation Tag Value Discussion
relation type TMC
relation TMC:cid_CID:tabcd_TABCD:LocationCode LCL The location-code of this Segment
relation TMC:cid_CID:tabcd=TABCD:NextLocationCode LCL Next LocationCode along the linked list of Segments
relation TMC:cid_CID:tabcd_TABCD:PrevLocationCode LCL Previous LocationCode along the linked list of Segments
relation TMC:cid_CID:tabcd_TABCD:LCLversion VERSION Optional but recommed. If this element is contained in multiple versions of the same table, the latest version is used.
relation TMC:cid_CID:tabcd_TABCD:Class Segment Optional but recommed.
relation TMC:cid_CID:tabcd_TABCD:Direction "positive" of "negative" Optional. If dual carriageway and thus different sets of ways represent this TMC-Segment per direction, use this.

TMC:Road

Roads in TMC-LocationCodes are groupings of segments. Like Segments and Points they may have at most one predecessor and at most one successor in a double linked list.

For TMC-Roads we use a new relation:

Relation Tag Value Explanation
relation type route
relation route road
relation TMC:cid_CID:tabcd_TABCD:LocationCode LCL The location-code of this Road
relation TMC:cid_CID:tabcd_TABCD:LCLversion VERSION Optional but recommed. If this element is contained in multiple versions of the same table, the latest version is used.
relation TMC:cid_CID:tabcd_TABCD:Class Road Optional but recommed.
relation TMC:CountryID CID Optional but recommed.
relation TMC:TableID TABCD Optional but recommed.
Way or Node Role Recurrence? Discussion
relation TMC:Segment many the ordered(API0.6) list of ways making up each segment in the order of these segments.

TMC:Area

Areas in TMC-Locationscodes are not chained and can thus be handled by tagging an existing area or creating a new one (if the area does not yet exist).

TMC knows multiple types of areas. Not all of them are political. There are also metereological areas that may be affected by a weather-phenomenon, tourist-areas, car-parks, general traffic-areas like crossings of many roads, lakes or large metropolitan areas spanning multiple cities.

TMC-areas are handled much like segments:

Way or Node Tag Value Discussion
way TMC:cid_CID:tabcd_TABCD:Class Area Optional but recommed.
way TMC:cid_CID:tabcd_TABCD:LCLversion VERSION Optional but recommed. If this element is contained in multiple versions of the same table, the latest version is used.
way TMC:cid_CID:tabcd_TABCD:LocationCode LCL The location-code of this Area

automatic import

moved here


Links