Logo of 52°North

OSM2NetworkDataset Configuration

Besides the OSM file, a configuration file is read which specifies the conversion. This parameter file defines the behavior of a transport mode in a special country in the generated transportation network.

Currently there are the following parameter files for Germany:

The parameter file contains the following sections:

Section <transport_mode_hierarchy>

The transport mode hierarchy describes the relationship between the access restriction tags. The parameter <transport_mode_hierarchy> represents the path to the transport mode that the parameter file is created for. The last order element is the used transport mode of the network. The parameter is used in the algorithm to calculate the access restrictions of highways (feature class roads > field access) and barriers (feature class barriers > field access).

Parameter for motorcar:

        <transport_mode_hierarchy>
                <orderElement value="access"/>
                <orderElement value="vehicle"/>
                <orderElement value="motor_vehicle"/>
                <orderElement value="motorcar"/>
        </transport_mode_hierarchy>

Section <access_barrier_restrictions>

The parameter <access_barrier_restrictions> provides the default access restrictions for barriers. The barrier access restrictions are calcuated similarly to the highway access restrictions (see parameter <access_highway_restrictions>). See:

The list element key is a value of the OSM tag 'barrier'.

The list element value defines the default access value for this barrier, e.g. 'yes', 'no', 'permissive', 'destination', ...

Parameter for motorcar:

        <access_barrier_restrictions>
                <listElementString key="cattle_grid" value="yes"/>
                <listElementString key="bollard" value="no"/>
                <listElementString key="block" value="no"/>
                <listElementString key="stoneblocks" value="no"/>
                <listElementString key="yes" value="no"/>
                <listElementString key="fence" value="no"/>
                <listElementString key="bump_gate" value="yes"/>
                <listElementString key="chicane" value="yes"/>
                <listElementString key="wall" value="no"/>
                ...
                <!--hard-coded: <listElementString key="else" value="unknown"/>-->
        </access_barrier_restrictions>

Section <access_barrier_restrictions_interpretation>

The parameter <access_barrier_restrictions_interpretation> specifies how the access restriction values of barriers are interpreted. See:

The list element key is a value (e.g. 'yes', 'no', 'permissive', 'destination', ...) of the access OSM tags (e.g. 'access', 'motorcar', 'bicycle').

The list element value can only be 'yes' or 'no':

  • 'yes' indicates that this barrier is traversable. * 'no' indicates that this barrier is restricted.

Example:

  • Extract from OSM data:
                            <tag k="barrier" v="gate"/>
                            <tag k="access" v="private"/>
  • Extract from parameters:
                            <listElementNoYes key="private" value="no"/>
  • Result: This barrier ('gate') is restricted ('private' => 'no').

Parameter for motorcar:

        <access_barrier_restrictions_interpretation>
                <listElementNoYes key="no" value="no"/>
                <listElementNoYes key="destination" value="no"/>
                <listElementNoYes key="delivery" value="no"/>
                <listElementNoYes key="agricultural" value="no"/>
                <listElementNoYes key="forestry" value="no"/>
                <listElementNoYes key="private" value="no"/>
                <listElementNoYes key="yes" value="yes"/>
                <listElementNoYes key="unknown" value="no"/>
                <listElementNoYes key="designated" value="yes"/>
                <listElementNoYes key="official" value="yes"/>
                <listElementNoYes key="permissive" value="yes"/>
                ...
                <!--default: <listElementNoYes key="else" value="no"/>-->
        </access_barrier_restrictions_interpretation>

Section <slowDown_barrier_restrctions>

The parameter <slowDown_barrier_restrictions> specifies if a (traversable) barrier slows down the drive time.

The list element key is a value of the OSM tag 'barrier'.

The list element value can only be 'yes' or 'no'.

Parameter for motorcar:

        <slowDown_barrier_restrictions>
                <listElementNoYes key="cattle_grid" value="no"/>
                <listElementNoYes key="bollard" value="yes"/>
                <listElementNoYes key="block" value="yes"/>
                <listElementNoYes key="stoneblocks" value="yes"/>
                <listElementNoYes key="yes" value="yes"/>
                <listElementNoYes key="fence" value="yes"/>
                <listElementNoYes key="bump_gate" value="yes"/>
                <listElementNoYes key="chicane" value="yes"/>
                <listElementNoYes key="wall" value="yes"/>
                ...
                <!--hard-coded: <listElementNoYes key="else" value="yes"/>-->
        </slowDown_barrier_restrictions\>

If a route goes through a (traversable) barrier, then the delay (see parameter <driveTime_slowDown_delay> -> barrierDelayConstant) is added to the normal drive time. This parameter is used to fill the slowDown field of the feature class barriers.

Section <access_highway_restrictions>

The parameter <access_highway_restrictions> provides the default access restrictions for highways. See:

The list element key is a value of the OSM tag 'highway' (in some special cases it is the value of the OSM tags 'construction' or 'proposed').

The list element value defines the default access value for this highway, e.g. 'yes', 'no', 'permissive', 'destination', ...

Parameter for motorcar:

        <access_highway_restrictions>
                <listElementString key="motorway" value="yes"/>
                <listElementString key="trunk" value="yes"/>
                <listElementString key="primary" value="yes"/>
                <listElementString key="secondary" value="yes"/>
                <listElementString key="tertiary" value="yes"/>
                <listElementString key="unclassified" value="yes"/>
                <listElementString key="residential" value="yes"/>
                <listElementString key="road" value="yes"/>
                <listElementString key="living_street" value="yes"/>
                <listElementString key="path" value="no"/>
                <listElementString key="cycleway" value="no"/>
                <listElementString key="footway" value="no"/>
                <listElementString key="pedestrian" value="no"/>
                <listElementString key="steps" value="no"/>
                <listElementString key="sidewalk" value="no"/>
                <listElementString key="turning_circle" value="yes"/>
                <listElementString key="yes" value="yes"/>
                <listElementString key="no" value="no"/>
                ...
                <!--hard-coded: <listElementString key="else" value="unknown"/>-->
        </access_highway_restrictions\>

Section <access_highway_restrictions_interpretation>

The parameter <access_highway_restrictions_interpretation> specifies how the access restriction values of highways are interpreted. See:

The list element key is a value (e.g. 'yes', 'no', 'permissive', 'destination', ...) of the access OSM tags (e.g. 'access', 'motorcar', 'bicycle').

The list element value can only be 'yes' or 'no':

  • 'yes' indicates that this highway is traversable.
  • 'no' indicates that this highway is restricted.

Example:

  • Extract from OSM data:
            <tag k="highway" v="residential"/>
            <tag k="access" v="permissive"/>
  • Extract from parameters:
            <listElementNoYes key="permissive" value="yes"/>
  • Result: This highway ('residential') is traversable ('permissive' => 'yes').

Parameter for motorcar:

        <access_highway_restrictions_interpretation>
                <listElementNoYes key="no" value="no"/>
                <listElementNoYes key="destination" value="no"/>
                <listElementNoYes key="delivery" value="no"/>
                <listElementNoYes key="agricultural" value="no"/>
                <listElementNoYes key="forestry" value="no"/>
                <listElementNoYes key="private" value="no"/>
                <listElementNoYes key="yes" value="yes"/>
                <listElementNoYes key="unknown" value="yes"/>
                <listElementNoYes key="designated" value="yes"/>
                <listElementNoYes key="official" value="yes"/>
                <listElementNoYes key="permissive" value="yes"/>
                ...
                <!--default: <listElementNoYes key="else" value="yes"/>-->
        </access_highway_restrictions_interpretation>

Section <access_highway_tracktype_restrictions>

The parameter <access_highway_tracktype_restrictions> specifies if a highway with a the OSM tag 'tracktype' is restricted. See: OSM tag tracktype.

The list element key is a value of the OSM tag 'tracktype' (e.g. grade1, grade2, grade3, ...).

The list element value can only be 'yes' or 'no':

  • 'yes' indicates that this highway is traversable.
  • 'no' indicates that this highway is restricted.

Example:

  • Extract from OSM data:
            <tag k="highway" v="residential"/>
            <tag k="tracktype" v="grade1"/>
  • Extract from parameters:
            <listElementNoYes key="grade1" value="yes"/>
  • Result: This highway is traversable (access = 'yes').

Parameter for motorcar:

        <access_highway_tracktype_restrictions>
                <listElementNoYes key="grade1" value="yes"/>
                <listElementNoYes key="grade2" value="yes"/>
                <listElementNoYes key="grade3" value="yes"/>
                <listElementNoYes key="grade4" value="yes"/>
                <listElementNoYes key="grade5" value="no"/>
                ...
                <!--default: <listElementNoYes key="else" value="yes"/>-->
        </access_highway_tracktype_restrictions>

Section <driveTimeFactors_highway_tracktype>

The parameter <driveTimeFactors_highway_tracktype> specifies how much longer (or shorter) the drive time is if the vehicle passes a highway with the OSM tag 'tracktype'. See: OSM tag tracktype.

The list element key is a value of the OSM tag 'tracktype' (e.g. grade1, grade2, grade3, ...).

The list element value is a scalar factor which is multiplied by the normal drive time of the current highway.

Example:

  • Extract from OSM data:
            <tag k="highway" v="residential"/>
            <tag k="tracktype" v="grade2"/>
  • Extract from parameters:
            <listElementFloat key="grade2" value="1.25"/>
  • Result: The drive time is 1.25 times longer for this road.

Parameter for motorcar:

        <driveTimeFactors_highway_tracktype>
                <listElementFloat key="grade1" value="1"/>
                <listElementFloat key="grade2" value="1.25"/>
                <listElementFloat key="grade3" value="1.5"/>
                <listElementFloat key="grade4" value="2"/>
                <listElementFloat key="grade5" value="1"/>
                ...
                <!--default: <listElementFloat key="else" value="1"/>-->
        </driveTimeFactors_highway_tracktype>

Section <access_highway_surface_restrictions>

The parameter <access_highway_surface_restrictions> specifies if a highway with a the OSM tag 'surface' is restricted. See: OSM tag surface.

The list element key is a value of the OSM tag 'surface' (e.g. paved, unpaved, asphalt, ...).

The list element value can only be 'yes' or 'no':

  • 'yes' indicates that this highway is traversable.
  • 'no' indicates that this highway is restricted.

Example:

  • Extract from OSM data:
            <tag k="highway" v="unclassified"/>
            <tag k="surface" v="mud"/>
  • Extract from parameters:
            <listElementNoYes key="mud" value="no"/>
  • Result: This highway is restricted (access = 'no').

Parameter for motorcar:

        <access_highway_surface_restrictions>
                <listElementNoYes key="paved" value="yes"/>
                <listElementNoYes key="unpaved" value="yes"/>
                <listElementNoYes key="asphalt" value="yes"/>
                <listElementNoYes key="compacted" value="yes"/>
                <listElementNoYes key="concrete" value="yes"/>
                <listElementNoYes key="cobblestone" value="yes"/>
                <listElementNoYes key="paving_stones" value="yes"/>
                <listElementNoYes key="pebblestone" value="yes"/>
                <listElementNoYes key="sand" value="yes"/>
                <listElementNoYes key="dirt" value="yes"/>
                <listElementNoYes key="earth" value="no"/>
                <listElementNoYes key="ground" value="no"/>
                <listElementNoYes key="grass" value="no"/>
                <listElementNoYes key="mud" value="no"/>
                <listElementNoYes key="wood" value="no"/>
                <listElementNoYes key="metal" value="yes"/>
                ...
                <!--default: <listElementNoYes key="else" value="yes"/>-->
        </access_highway_surface_restrictions>

Section <driveTimeFactors_highway_surface>

The parameter <driveTimeFactors_highway_surface> specifies how much longer (or shorter) the drive time is if the vehicle passes a highway with the OSM tag 'surface'. See: OSM tag surface.

The list element key is a value of the OSM tag 'surface' (e.g. paved, unpaved, asphalt, ...).

The list element value is a scalar factor which is multiplied by the normal drive time of the current highway.

Example:

  • Extract from OSM data:
            <tag k="highway" v="unclassified"/>
            <tag k="surface" v="grass"/>
  • Extract from parameters:
            <listElementFloat key="grass" value="2"/>
  • Result: The drive time is 2 times longer for this road.

Parameter for motorcar:

        <driveTimeFactors_highway_surface>
                <listElementFloat key="paved" value="1"/>
                <listElementFloat key="unpaved" value="2"/>
                <listElementFloat key="asphalt" value="1"/>
                <listElementFloat key="compacted" value="1.25"/>
                <listElementFloat key="concrete" value="1"/>
                <listElementFloat key="cobblestone" value="1"/>
                <listElementFloat key="paving_stones" value="1"/>
                <listElementFloat key="pebblestone" value="2"/>
                <listElementFloat key="sand" value="2"/>
                <listElementFloat key="dirt" value="2"/>
                <listElementFloat key="earth" value="1"/>
                <listElementFloat key="ground" value="1"/>
                <listElementFloat key="grass" value="2"/>
                <listElementFloat key="mud" value="1"/>
                <listElementFloat key="wood" value="1"/>
                <listElementFloat key="metal" value="1.5"/>
                <!--default: <listElementFloat key="else" value="1"/>-->
        </driveTimeFactors_highway_surface>

Section <access_highway_smoothness_restrictions>

The parameter <access_highway_smoothness_restrictions specifies> if a highway with a the OSM tag 'smoothness' is restricted. See: OSM tag smoothness.

The list element key is a value of the OSM tag 'smoothness' (e.g. excellent, good, impassable, ...).

The list element value can only be 'yes' or 'no'.

  • 'yes' indicates that this highway is traversable.
  • 'no' indicates that this highway is restricted.

Example:

  • Extract from OSM data:
            <tag k="highway" v="unclassified"/>
            <tag k="smoothness" v="horrible"/>
  • Extract from parameters:
            <listElementNoYes key="horrible" value="no"/>
  • Result: This highway is restricted (access = 'no').

Parameter for motorcar:

        <access_highway_smoothness_restrictions>
                <listElementNoYes key="excellent" value="yes"/>
                <listElementNoYes key="good" value="yes"/>
                <listElementNoYes key="intermediate" value="yes"/>
                <listElementNoYes key="bad" value="yes"/>
                <listElementNoYes key="very_bad" value="yes"/>
                <listElementNoYes key="horrible" value="no"/>
                <listElementNoYes key="very_horrible" value="no"/>
                <listElementNoYes key="impassable" value="no"/>
                ...
                <!--default: <listElementNoYes key="else" value="yes"/>-->
        </access_highway_smoothness_restrictions>

Section <driveTimeFactors_highway_smoothness>

The parameter <driveTimeFactors_highway_smoothness> specifies how much longer (or shorter) the drive time is if the vehicle passes a highway with the OSM tag 'smoothness'. See: OSM tag smoothness.

The list element key is a value of the OSM tag 'smoothness' (e.g. excellent, good, impassable, ...).

The list element value is a scalar factor which is multiplied by the normal drive time of the current highway.

Example:

  • Extract from OSM data:
            <tag k="highway" v="unclassified"/>
            <tag k="smoothness" v="bad"/>
  • Extract from parameters:
            <listElementFloat key="bad" value="1.5"/>
  • Result: The drive time is 1.5 times longer for this road.

Parameter for motorcar:

        <driveTimeFactors_highway_smoothness>
                <listElementFloat key="excellent" value="1"/>
                <listElementFloat key="good" value="1"/>
                <listElementFloat key="intermediate" value="1.25"/>
                <listElementFloat key="bad" value="1.5"/>
                <listElementFloat key="very_bad" value="1.75"/>
                <listElementFloat key="horrible" value="1"/>
                <listElementFloat key="very_horrible" value="1"/>
                <listElementFloat key="impassable" value="1"/>
                ...
                <!--default: <listElementFloat key="else" value="1"/>-->
        </driveTimeFactors_highway_smoothness>

Section <oneway_highway_implications>

The parameter oneway_highway_implications specifies in which cases highways are interpreted as one-way roads. Sometimes the OSM tag 'oneway' must not be explicitly added to a highway although the highway is a one-way road (e.g. highway=motorway).

This parameter lists cases and defines how these cases are interpreted. A case consists of a list of key-value pairs and the attribute interpret_as_oneway. If the current highway matches one of these cases, then the attribute interpret_as_oneway is used to define if this highway is interpreted as a one-way road.

The list element values can have the following values:

  • "": The OSM tag does not exist or its value is empty ("").
  • *: The OSM tag exists and any value is allowed. The value must not be "".
  • another value: The OSM tag exists and has this value.

Example:

  • Extract from OSM data:
            <tag k="highway" v="tertiary"/>
            <tag k="junction" v="roundabout"/>
  • Extract from parameters:
            <caseOneway interpret_as_oneway="yes">
                    <listElementString key="highway" value="*"/>
                    <listElementString key="oneway" value=""/>
                    <listElementString key="junction" value="roundabout"/>
            </caseOneway>
  • Result: This highway matches this case. The highway is interpreted as a oneway.

Parameter for motorcar:

        <oneway_highway_implications>
                <caseOneway interpret_as_oneway="yes">
                        <listElementString key="highway" value="motorway"/>
                        <listElementString key="oneway" value=""/>
                        <listElementString key="junction" value=""/>
                </caseOneway>
                <caseOneway interpret_as_oneway="yes">
                        <listElementString key="highway" value="roundabout"/>
                        <listElementString key="oneway" value=""/>
                        <listElementString key="junction" value=""/>
                </caseOneway>
                <caseOneway interpret_as_oneway="yes">
                        <listElementString key="highway" value="*"/>
                        <listElementString key="oneway" value=""/>
                        <listElementString key="junction" value="roundabout"/>
                </caseOneway>
                <caseOneway interpret_as_oneway="no">
                        <listElementString key="highway" value="*"/>
                        <listElementString key="oneway" value="no"/>
                </caseOneway>
                <caseOneway interpret_as_oneway="yes">
                        <listElementString key="highway" value="*"/>
                        <listElementString key="oneway" value="yes"/>
                </caseOneway>
                <caseOneway interpret_as_oneway="-1"><!--recommended-->
                        <listElementString key="highway" value="*"/>
                        <listElementString key="oneway" value="-1"/>
                </caseOneway>
                ...
        </oneway_highway_implications>

Section <maxspeed_highway_implications>

The parameter <maxspeed_highway_implications> specifies the maxspeed implications of highways. These implications are used if a highway does not have the OSM tag maxspeed. Depending on the country, the default maximum speeds are different (see OSM tags for routing/Maxspeed).

The following values can be used: The value 'null' if there is no maximum speed. The default unit is km/h if there is no unit. If the maxspeed value has a unit (e.g. maxspeed=50 mph), then the parameter <speed_highway_units> is used to convert this speed into km/h. Instead of numeric constants, variables can be used. The maximum speed is used to calculate the drive time if it is smaller than the average speed (<avspeed_highway_implications>).

Parameter for motorcar:

        <maxspeed_highway_implications>
                <listElementString key="motorway" value="null"/>
                <listElementString key="trunk" value="50"/>
                <listElementString key="primary" value="50"/>
                <listElementString key="secondary" value="50"/>
                <listElementString key="tertiary" value="50"/>
                <listElementString key="unclassified" value="50"/>
                <listElementString key="road" value="50"/>
                <listElementString key="residential" value="50"/>
                <listElementString key="living_street" value="4"/>
                <listElementString key="path" value="null"/>
                <listElementString key="cycleway" value="null"/>
                <listElementString key="footway" value="null"/>
                <listElementString key="pedestrian" value="null"/>
                <listElementString key="steps" value="null"/>
                <listElementString key="sidewalk" value="null"/>
                <listElementString key="turning_circle" value="null"/>
                <listElementString key="yes" value="null"/>
                <listElementString key="no" value="null"/>
                ...
                <!--default: <listElementString key="else" value="null"/>-->
        </maxspeed_highway_implications>

Section <avspeed_highway_implications>

The parameter <avspeed_highway_implications> defines the average speed of highways. Unlike the maxspeed (<maxspeed_highway_implications>), the speed value must not be 'null'. The default unit is km/h if there is no unit. If the avspeed value has a unit (e.g. avspeed=50 mph), then the parameter <speed_highway_units> is used to convert this speed into km/h. Instead of numbers, variables can be used. The average speed is used to calculate the drive time if it is smaller than the maximum speed.

Parameter for motorcar:

        <avspeed_highway_implications>
                <listElementString key="motorway" value="110"/>
                <listElementString key="trunk" value="90"/>
                <listElementString key="primary" value="70"/>
                <listElementString key="secondary" value="60"/>
                <listElementString key="tertiary" value="55"/>
                <listElementString key="unclassified" value="50"/>
                <listElementString key="road" value="50"/>
                <listElementString key="residential" value="40"/>
                <listElementString key="living_street" value="4"/>
                <listElementString key="path" value="8"/>
                <listElementString key="cycleway" value="15"/>
                <listElementString key="footway" value="5"/>
                <listElementString key="pedestrian" value="5"/>
                <listElementString key="steps" value="0"/>
                <listElementString key="sidewalk" value="5"/>
                <listElementString key="turning_circle" value="5"/>
                <listElementString key="yes" value="50"/>
                <listElementString key="no" value="0"/>
                ...
                <!--default: <listElementString key="else" value="50"/>-->
        </avspeed_highway_implications>

Section <speed_highway_variables>

The parameter <speed_highway_variables> defines variables which can used instead of speed values. This parameter is used for maximum and average speeds.

Example:

  • Extract from OSM data:
            <tag k="highway" v="primary"/>
            <tag k="maxspeed" v="DE:urban"/>
  • Extract from parameters:
            <listElementString key="DE:urban" value="50"/>
  • Result: The maxspeed is 50.

Parameter for motorcar:

        <speed_highway_variables>
                <listElementString key="variable" value="null"/>
                <listElementString key="DE:motorway" value="null"/>
                <listElementString key="DE:urban" value="50"/>
                <listElementString key="DE.urban" value="50"/>
                <listElementString key="DE:rural" value="100"/>
                <listElementString key="DE:walk" value="10"/>
                <listElementString key="walk" value="10"/>
                <listElementString key="DE:living_street" value="10"/>
                <listElementString key="unrestricted" value="null"/>
                <listElementString key="none" value="null"/>
                <listElementString key="no" value="null"/>
                <listElementString key="moderate" value="30"/>
                <listElementString key="moderat" value="30"/>
                <listElementString key="signals" value="null"/>
        </speed_highway_variables>

Section <speed_highway_units>

The parameter <speed_highway_units> defines conversion factors to convert speed units into the default speed unit km/h. This parameter is used for maximum speed and average speed. If the speed value has a unit (e.g. maxspeed=50 mph), then this parameter is used to convert the speed into km/h.

Example: maxspeed=50 mph => 50 mph * 1.609 = 80.45 km/h

Parameter for motorcar:

        <speed_highway_units>
                <listElementFloat key="km/h" value="1"/>
                <listElementFloat key="kmh" value="1"/>
                <listElementFloat key="kmph" value="1"/>
                <listElementFloat key="kph" value="1"/>
                <listElementFloat key="mph" value="1.609"/>
                <listElementFloat key="knots" value="1.852"/>
        </speed_highway_units>

Section <length_highway_units>

The parameter <length_highway_units> defines conversion factors to convert length units into the default length unit m. This parameter is used for the OSM tag 'maxheight'. If the length value has a unit (e.g. maxheight=13 ft), then this is used to convert the speed into km/h.

Example: maxheight=13 ft => 13 ft * 0.3048 = 3.96 m

Parameter:

        <length_highway_units>
                <listElementFloat key="m" value="1"/>
                <listElementFloat key="metre" value="1"/>
                <listElementFloat key="metres" value="1"/>
                <listElementFloat key="ft" value="0.3048"/>
                <listElementFloat key="feet" value="0.3048"/>
        </length_highway_units>

Section <weight_highway_units>

The parameter <weight_highway_units> defines conversion factors to convert weight units into the default weight unit t. This parameter is used for the OSM tag 'maxweight'. If the weight value has a unit (e.g. maxweight=50 mph), then this parameter is used to convert the weight into km/h.

Example: maxweight=3500 kg => 3500 kg * 0.001 = 3.5 t

Parameter:

        <weight_highway_units>
                <listElementFloat key="t" value="1"/>
                <listElementFloat key="kg" value="0.001"/>
        </weight_highway_units>

Section <driveTime_slowDown_delay>

The parameter <driveTime_slowDown_delay> is used to specify how much longer the drive time is if the vehicle passes a highway with 'traffic_calming' or a 'barrier'. The attribute highwaySlowDownFactor is a scalar factor which is multiplied by the normal drive time of the current highway. The attribute barrierDelayConstant is a time which is added to the normal drive time (unit: minutes).

Parameter:

        <driveTime_slowDown_delay barrierDelayConstant="0.1" highwaySlowDownFactor="1.25" />