982 lines
22 KiB
INI
982 lines
22 KiB
INI
# Copyright 2018, University of Freiburg
|
|
# Chair of Algorithms and Datastructures
|
|
# Authors: Patrick Brosi <brosi@informatik.uni-freiburg.de>
|
|
|
|
[rail]
|
|
|
|
# OSM entities to keep on different levels, as k=v. Applies
|
|
# to nodes, edges and relations.
|
|
# Nodes included in kept ways are always kept.
|
|
# Ways included in kept relations are always kept.
|
|
|
|
osm_filter_keep:
|
|
railway=rail
|
|
railway=light_rail
|
|
railway=narrow_gauge
|
|
route=rail
|
|
route=train
|
|
public_transport=stop_area|rel_flat
|
|
|
|
osm_filter_lvl1:
|
|
usage=branch
|
|
|
|
osm_filter_lvl2:
|
|
|
|
osm_filter_lvl3:
|
|
service=crossover
|
|
service=siding
|
|
# we cannot completely drop service=yard, because it is often used
|
|
# incorrectly for crossovers
|
|
service=yard
|
|
|
|
osm_filter_lvl4:
|
|
|
|
osm_filter_lvl5:
|
|
usage=industrial
|
|
usage=military
|
|
usage=test
|
|
service=spur
|
|
railway:traffic_mode=freight
|
|
|
|
# OSM entities to drop, as k=v. Applies to nodes, edges and
|
|
# relations.
|
|
# Nodes included in non-dropped ways are kept regardless of
|
|
# a matching drop filter.
|
|
# Ways included in non-dropped relations are kept regardless of
|
|
# a matching drop filter.
|
|
|
|
osm_filter_drop:
|
|
railway=abandoned
|
|
railway=construction
|
|
railway=disused
|
|
railway=miniature
|
|
railway=signal
|
|
railway=razed
|
|
railway=proposed
|
|
metro=yes
|
|
area=yes
|
|
# access=no
|
|
type=multipolygon
|
|
railway=platform
|
|
public_transport=platform
|
|
building=yes
|
|
building=train_station
|
|
amenity=shelter
|
|
amenity=bus_station
|
|
building=roof
|
|
|
|
# Nodes that should act as "no-hup" nodes. These are nodes
|
|
# that are contained in multiple ways, but cannot be used
|
|
# to switch from one way to another (for example, a
|
|
# track crossing in rail networks)
|
|
|
|
osm_filter_nohup:
|
|
railway:switch=no
|
|
railway=railway_crossing
|
|
|
|
# Edges that should act as one-way nodes.
|
|
|
|
osm_filter_oneway:
|
|
oneway=yes
|
|
railway:preferred_direction=forward
|
|
|
|
osm_filter_oneway_reverse:
|
|
railway:preferred_direction=backward
|
|
|
|
# Edges that may explicitely be used in
|
|
# both directions. May be used to set exception
|
|
# to "osm_filter_oneway"
|
|
|
|
osm_filter_undirected:
|
|
oneway=false
|
|
oneway=no
|
|
oneway=-1
|
|
railway:preferred_direction=both
|
|
railway:bidirectional=regular
|
|
|
|
# Nodes that are stations.
|
|
# Only nodes that have been kept during the filtering above will be
|
|
# checked.
|
|
osm_filter_station:
|
|
public_transport=stop_position
|
|
railway=stop
|
|
railway=halt
|
|
railway=station
|
|
#railway=tram_stop
|
|
railway=subway_stop
|
|
tram_stop=*
|
|
stop=*
|
|
|
|
# Relation fields that should be used for catching the lines that
|
|
# occur on an edge. Only relations that have been kept during the
|
|
# filtering above will be checked. The 'linename' will be normalized
|
|
# according to the rules in line_normalization_chain.
|
|
# The 'from_name' and 'to_name' will be normalized according to the
|
|
# rules in station_normalization_chain.
|
|
# The relations tags are given in the order of their relevance -
|
|
# the first normalized tag-value that is not null/empty will be
|
|
# taken.
|
|
osm_line_relation_tags:
|
|
|
|
# attr name together with the
|
|
# max distance in meters between any of the groups members and
|
|
# a potential new member
|
|
# first matching rule will be taken
|
|
# only applies to nodes that match osm_filter_station!
|
|
osm_station_group_attrs:
|
|
uic_ref=500
|
|
wikidata=500
|
|
[public_transport=stop_area]uic_ref=500
|
|
[public_transport=stop_area]wikidata=500
|
|
name=100
|
|
[public_transport=stop_area]name=100
|
|
|
|
# max distance in meters between a snapped station position and the
|
|
# original station position
|
|
osm_max_snap_distance: 10, 100, 200
|
|
|
|
# max edge level to which station will be snapped
|
|
osm_max_snap_level: 2
|
|
|
|
# sorted by priority, first found attr will be taken
|
|
osm_station_name_attrs:
|
|
name
|
|
[public_transport=stop_area]name
|
|
uic_name
|
|
|
|
# the track number tag in edges, first match is taken
|
|
osm_edge_track_number_tags:
|
|
railway:track_ref
|
|
local_ref
|
|
ref
|
|
|
|
# the track number tag in stop nodes, first match is taken,
|
|
# overwrites osm_edge_track_number_tags
|
|
osm_track_number_tags:
|
|
local_ref
|
|
ref
|
|
|
|
routing_lvl0_fac: 1 # default level
|
|
routing_lvl1_fac: 1.25
|
|
routing_lvl2_fac: 1.5
|
|
routing_lvl3_fac: 2
|
|
routing_lvl4_fac: 2.5
|
|
routing_lvl5_fac: 3.5
|
|
routing_lvl6_fac: 5
|
|
routing_lvl7_fac: 7
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle performans a full turn
|
|
routing_full_turn_punish: 3000
|
|
|
|
routing_station_distance_punish_fac: 3.14
|
|
|
|
routing_non_osm_station_punish: 100
|
|
|
|
routing_platform_unmatched_punish: 2000
|
|
|
|
# Max angle that should be counted as a full turn
|
|
routing_full_turn_angle: 100
|
|
|
|
# Max angle in a route from a station to an already reachable neighbar
|
|
routing_snap_full_turn_angle: 100
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle passes a station node without
|
|
# stopping there
|
|
routing_pass_thru_station_punish: 100
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through a one-way edge
|
|
routing_one_way_meter_punish_fac: 1
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through an edge without any matching line
|
|
# information
|
|
routing_line_unmatched_punish_fac: 1
|
|
|
|
# special line normalization for trains
|
|
line_normalize_chain:
|
|
, -> ' ';
|
|
- -> ' ';
|
|
_ -> ' ';
|
|
" -> '';
|
|
' -> '';
|
|
` -> '';
|
|
/ -> ' ';
|
|
< -> ' ';
|
|
> -> ' ';
|
|
& -> '+';
|
|
ä -> ae;
|
|
ö -> oe;
|
|
ü -> ue;
|
|
ß -> ss;
|
|
è -> e;
|
|
é -> e;
|
|
á -> a;
|
|
à -> a;
|
|
ó -> o;
|
|
ò -> o;
|
|
í -> i;
|
|
ú -> u;
|
|
ù -> u;
|
|
ë -> e;
|
|
ç -> c;
|
|
å -> ae;
|
|
â -> a;
|
|
ê -> e;
|
|
ï -> i;
|
|
œ -> oe;
|
|
ø -> oe;
|
|
^line -> '';
|
|
^linie -> '';
|
|
^metro -> '';
|
|
^tram -> '';
|
|
^strassenbahn -> '';
|
|
^bus -> '';
|
|
|
|
# delete everything in brackets
|
|
\(.+\) -> ' ';
|
|
\[.+\] -> ' ';
|
|
|
|
# whitespace
|
|
\s+ -> ' ';
|
|
^\s -> '';
|
|
\s$ -> '';
|
|
|
|
# line/number combs ALWAYS with whitespace (ICE101 -> ICE 101)
|
|
^([a-zA-Z]+)([0-9]+)$ -> \1 \2;
|
|
|
|
# if a character line number is present, delete the numeric part
|
|
^([a-zA-Z]+) [0-9]+$ -> \1;
|
|
|
|
[bus]
|
|
|
|
# OSM entities to keep on different levels, as k=v. Applies
|
|
# to nodes, edges and relations.
|
|
# Nodes included in kept ways are always kept.
|
|
# Ways included in kept relations are always kept.
|
|
|
|
osm_filter_keep:
|
|
# highways
|
|
highway=motorway
|
|
highway=trunk
|
|
highway=primary
|
|
highway=secondary
|
|
highway=tertiary
|
|
highway=residential
|
|
highway=living_street
|
|
highway=unclassified
|
|
|
|
# highway links
|
|
highway=motorway_link
|
|
highway=trunk_link
|
|
highway=primary_link
|
|
highway=secondary_link
|
|
highway=tertiary_link
|
|
highway=residential_link
|
|
|
|
way=primary
|
|
way=seconday
|
|
way=bus_guideway
|
|
highway=bus_guideway
|
|
busway=*
|
|
psv=yes
|
|
psv=designated
|
|
|
|
trolley_wire=yes
|
|
trolleywire=yes
|
|
trolleybus=yes
|
|
trolley_bus=yes
|
|
|
|
route=bus
|
|
route=trolleybus
|
|
bus=yes
|
|
|
|
public_transport=stop_position
|
|
bus_stop=*
|
|
stop=*
|
|
highway=bus_stop
|
|
amenity=bus_station|no_match_ways|no_match_rels
|
|
|
|
# relations for the restriction system
|
|
type=restriction
|
|
type=restriction:bus
|
|
type=restriction:motorcar
|
|
|
|
osm_filter_lvl1:
|
|
highway=secondary
|
|
highway=secondary_link
|
|
bus=yes
|
|
psv=yes
|
|
access=psv
|
|
access=bus
|
|
trolley_wire=yes
|
|
trolleywire=yes
|
|
trolleybus=yes
|
|
trolley_bus=yes
|
|
psv=designated
|
|
|
|
osm_filter_lvl2:
|
|
highway=tertiary
|
|
highway=tertiary_link
|
|
|
|
osm_filter_lvl3:
|
|
highway=unclassified
|
|
highway=residential
|
|
highway=road
|
|
|
|
osm_filter_lvl4:
|
|
highway=living_street
|
|
highway=pedestrian
|
|
highway=service
|
|
|
|
osm_filter_lvl5:
|
|
service=siding
|
|
access=permissive
|
|
access=private
|
|
access=no
|
|
service=parking_aisle
|
|
highway=footway
|
|
|
|
# OSM entities to drop, as k=v. Applies to nodes, edges and
|
|
# relations.
|
|
# Nodes included in non-dropped ways are kept regardless of
|
|
# a matching drop filter.
|
|
# Ways included in non-dropped relations are kept regardless of
|
|
# a matching drop filter.
|
|
|
|
osm_filter_drop:
|
|
area=yes
|
|
train=yes|no_match_ways
|
|
# access=no
|
|
public_transport=stop_area|no_match_nds|no_match_rels
|
|
type=multipolygon
|
|
railway=platform
|
|
railway=station
|
|
# service=parking_aisle
|
|
highway=proposed
|
|
highway=footway
|
|
highway=construction
|
|
building=yes
|
|
building=train_station
|
|
leisure=garden
|
|
leisure=park
|
|
|
|
# Nodes that should act as "no-hup" nodes. These are nodes
|
|
# that are contained in multiple ways, but cannot be used
|
|
# to switch from one way to another (for example, a
|
|
# track crossing in rail networks)
|
|
|
|
osm_filter_nohup:
|
|
|
|
# Configuration of the OSM road restriction system
|
|
# We only support restriction with a single via node
|
|
# atm
|
|
|
|
osm_node_negative_restriction:
|
|
restriction=no_right_turn
|
|
restriction=no_left_turn
|
|
restriction=no_u_turn
|
|
restriction=no_straight_on
|
|
restriction:bus=no_right_turn
|
|
restriction:bus=no_left_turn
|
|
restriction:bus=no_u_turn
|
|
restriction:bus=no_straight_on
|
|
|
|
osm_node_positive_restriction:
|
|
restriction=only_left_turn
|
|
restriction=only_straight_on
|
|
restriction=only_right_turn
|
|
restriction:bus=only_left_turn
|
|
restriction:bus=only_straight_on
|
|
restriction:bus=only_right_turn
|
|
|
|
osm_filter_no_restriction:
|
|
except=psv|mult_val_match
|
|
except=bus|mult_val_match
|
|
|
|
# Edges that should act as one-way nodes.
|
|
|
|
osm_filter_oneway:
|
|
junction=roundabout # oneway=yes is implied
|
|
highway=motorway # oneway=yes is implied
|
|
oneway=yes
|
|
oneway=1
|
|
oneway=true
|
|
oneway:bus=yes
|
|
oneway:bus=1
|
|
oneway:bus=true
|
|
oneway:psv=yes
|
|
oneway:psv=1
|
|
oneway:psv=true
|
|
|
|
osm_filter_oneway_reverse:
|
|
oneway=-1
|
|
|
|
# Edges that may explicitely be used in
|
|
# both directions. May be used to set exception
|
|
# to "osm_filter_oneway"
|
|
|
|
osm_filter_undirected:
|
|
oneway=false
|
|
oneway=0
|
|
oneway=alternating
|
|
oneway=reversible
|
|
oneway=no
|
|
oneway:bus=no
|
|
oneway:bus=0
|
|
oneway:bus=false
|
|
oneway:psv=no
|
|
oneway:psv=0
|
|
oneway:psv=false
|
|
busway=opposite_lane
|
|
busway=opposite
|
|
busway:left=opposite_lane
|
|
busway:right=opposite_lane
|
|
psv=opposite_lane
|
|
psv=opposite
|
|
|
|
# Nodes that are stations.
|
|
# Only nodes that have been kept during the filtering above will be
|
|
# checked.
|
|
osm_filter_station:
|
|
public_transport=stop_position
|
|
bus_stop=*
|
|
stop=*
|
|
highway=bus_stop
|
|
amenity=bus_station
|
|
|
|
# Relation fields that should be used for catching the lines that
|
|
# occur on an edge. Only relations that have been kept during the
|
|
# filtering above will be checked. The 'linename' will be normalized
|
|
# according to the rules in line_normalization_chain.
|
|
# The 'from_name' and 'to_name' will be normalized according to the
|
|
# rules in station_normalization_chain.
|
|
# The relations tags are given in the order of their relevance -
|
|
# the first normalized tag-value that is not null/empty will be
|
|
# taken.
|
|
osm_line_relation_tags:
|
|
|
|
|
|
# attr name together with the
|
|
# max distance in meters between any of the groups members and
|
|
# a potential new member
|
|
# first matching rule will be taken
|
|
# only applies to nodes that match osm_filter_station!
|
|
osm_station_group_attrs:
|
|
uic_ref=500
|
|
wikidata=500
|
|
name=100
|
|
|
|
# max distance in meters between a snapped station position and the
|
|
# original station position
|
|
osm_max_snap_distance: 10 , 50, 100
|
|
|
|
osm_max_snap_level: 5
|
|
|
|
osm_max_osm_station_distance: 7.5
|
|
|
|
# sorted by priority, first found attr will be taken
|
|
osm_station_name_attrs:
|
|
name
|
|
uic_name
|
|
|
|
# the track number tag in stop nodes, first one is taken
|
|
osm_track_number_tags: local_ref
|
|
|
|
routing_lvl0_fac: 1 # default level
|
|
routing_lvl1_fac: 1.25
|
|
routing_lvl2_fac: 1.5
|
|
routing_lvl3_fac: 1.75
|
|
routing_lvl4_fac: 2.25
|
|
routing_lvl5_fac: 3
|
|
routing_lvl6_fac: 4
|
|
routing_lvl7_fac: 5
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle performans a full turn
|
|
routing_full_turn_punish: 500
|
|
|
|
routing_station_distance_punish_fac: 2.5
|
|
|
|
routing_non_osm_station_punish: 500
|
|
|
|
# Max angle that should be counted as a full turn
|
|
routing_full_turn_angle: 20
|
|
|
|
# Max angle in a route from a station to an already reachable neighbor
|
|
routing_snap_full_turn_angle: 110
|
|
|
|
osm_max_node_block_distance: 10
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle passes a station node without
|
|
# stopping there
|
|
routing_pass_thru_station_punish: 0
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through a one-way edge
|
|
routing_one_way_meter_punish_fac: 4
|
|
|
|
routing_one_way_edge_punish: 5000
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through an edge without any matching line
|
|
# information
|
|
# routing_line_unmatched_punish_fac: 1.75
|
|
|
|
[tram, subway, funicular]
|
|
|
|
# OSM entities to keep on different levels, as k=v. Applies
|
|
# to nodes, edges and relations.
|
|
# Nodes included in kept ways are always kept.
|
|
# Ways included in kept relations are always kept.
|
|
|
|
osm_filter_keep:
|
|
route=tram
|
|
railway=subway
|
|
railway=light_rail
|
|
railway=tram
|
|
railway=funicular
|
|
railway=station
|
|
railway=halt
|
|
railway=tram_stop
|
|
route=subway
|
|
route=light_rail
|
|
subway=yes
|
|
tram=yes
|
|
|
|
osm_filter_lv2:
|
|
service=siding
|
|
|
|
osm_filter_lvl5:
|
|
service=crossover
|
|
service=yard
|
|
|
|
# OSM entities to drop, as k=v. Applies to nodes, edges and
|
|
# relations.
|
|
# Nodes included in non-dropped ways are kept regardless of
|
|
# a matching drop filter.
|
|
# Ways included in non-dropped relations are kept regardless of
|
|
# a matching drop filter.
|
|
|
|
osm_filter_drop:
|
|
area=yes
|
|
public_transport=stop_area
|
|
type=multipolygon
|
|
railway=platform
|
|
public_transport=platform
|
|
service=alley
|
|
|
|
# Nodes that should act as "no-hup" nodes. These are nodes
|
|
# that are contained in multiple ways, but cannot be used
|
|
# to switch from one way to another (for example, a
|
|
# track crossing in rail networks)
|
|
|
|
osm_filter_nohup:
|
|
railway:switch=no
|
|
railway=railway_crossing
|
|
|
|
# Edges that should act as one-way nodes.
|
|
|
|
osm_filter_oneway:
|
|
oneway=yes
|
|
|
|
# Edges that may explicitely be used in
|
|
# both directions. May be used to set exception
|
|
# to "osm_filter_oneway"
|
|
|
|
osm_filter_undirected:
|
|
|
|
# Nodes that are stations.
|
|
# Only nodes that have been kept during the filtering above will be
|
|
# checked.
|
|
osm_filter_station:
|
|
public_transport=stop_position
|
|
station=subway
|
|
station=tram
|
|
railway=stop
|
|
railway=halt
|
|
railway=station
|
|
railway=tram_stop
|
|
railway=subway_stop
|
|
tram_stop=*
|
|
stop=*
|
|
|
|
# Relation fields that should be used for catching the lines that
|
|
# occur on an edge. Only relations that have been kept during the
|
|
# filtering above will be checked. The 'linename' will be normalized
|
|
# according to the rules in line_normalization_chain.
|
|
# The 'from_name' and 'to_name' will be normalized according to the
|
|
# rules in station_normalization_chain.
|
|
# The relations tags are given in the order of their relevance -
|
|
# the first normalized tag-value that is not null/empty will be
|
|
# taken.
|
|
osm_line_relation_tags:
|
|
|
|
|
|
# attr name together with the
|
|
# max distance in meters between any of the groups members and
|
|
# a potential new member
|
|
# first matching rule will be taken
|
|
# only applies to nodes that match osm_filter_station!
|
|
osm_station_group_attrs:
|
|
uic_ref=500
|
|
wikidata=500
|
|
name=100
|
|
|
|
# max distance in meters between a snapped station position and the
|
|
# original station position
|
|
osm_max_snap_distance: 10, 50, 100
|
|
|
|
osm_max_snap_level: 4
|
|
|
|
|
|
# sorted by priority, first found attr will be taken
|
|
osm_station_name_attrs:
|
|
name
|
|
uic_name
|
|
|
|
# the track number tag in stop nodes, first one is taken
|
|
osm_track_number_tags: local_ref
|
|
|
|
routing_lvl0_fac: 1 # default level
|
|
routing_lvl1_fac: 1.5
|
|
routing_lvl2_fac: 2
|
|
routing_lvl3_fac: 2.5
|
|
routing_lvl4_fac: 3.5
|
|
routing_lvl5_fac: 5
|
|
routing_lvl6_fac: 5
|
|
routing_lvl7_fac: 5
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle performans a full turn
|
|
routing_full_turn_punish: 2000
|
|
|
|
routing_station_distance_punish_fac: 3.14
|
|
|
|
routing_non_osm_station_punish: 235
|
|
|
|
# Max angle that should be counted as a full turn
|
|
routing_full_turn_angle: 80
|
|
|
|
# Max angle in a route from a station to an already reachable neighbar
|
|
routing_snap_full_turn_angle: 80
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle passes a station node without
|
|
# stopping there
|
|
routing_pass_thru_station_punish: 100
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through a one-way edge
|
|
routing_one_way_meter_punish_fac: 1
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through an edge without any matching line
|
|
# information
|
|
routing_line_unmatched_punish_fac: 0.5
|
|
|
|
[ferry]
|
|
|
|
# OSM entities to keep on different levels, as k=v. Applies
|
|
# to nodes, edges and relations.
|
|
# Nodes included in kept ways are always kept.
|
|
# Ways included in kept relations are always kept.
|
|
|
|
osm_filter_keep:
|
|
route=ferry
|
|
waterway=river
|
|
motorboat=yes
|
|
ferry=yes
|
|
|
|
# Nodes that are stations.
|
|
# Only nodes that have been kept during the filtering above will be
|
|
# checked.
|
|
osm_filter_station:
|
|
public_transport=stop_position
|
|
station=ferry
|
|
railway=stop
|
|
railway=halt
|
|
railway=station
|
|
stop=*
|
|
|
|
# Relation fields that should be used for catching the lines that
|
|
# occur on an edge. Only relations that have been kept during the
|
|
# filtering above will be checked. The 'linename' will be normalized
|
|
# according to the rules in line_normalization_chain.
|
|
# The 'from_name' and 'to_name' will be normalized according to the
|
|
# rules in station_normalization_chain.
|
|
# The relations tags are given in the order of their relevance -
|
|
# the first normalized tag-value that is not null/empty will be
|
|
# taken.
|
|
osm_line_relation_tags:
|
|
|
|
|
|
# attr name together with the
|
|
# max distance in meters between any of the groups members and
|
|
# a potential new member
|
|
# first matching rule will be taken
|
|
# only applies to nodes that match osm_filter_station!
|
|
osm_station_group_attrs:
|
|
uic_ref=500
|
|
wikidata=500
|
|
name=100
|
|
|
|
# max distance in meters between a snapped station position and the
|
|
# original station position
|
|
osm_max_snap_distance: 10, 100, 200
|
|
|
|
osm_max_snap_level: 4
|
|
|
|
|
|
# sorted by priority, first found attr will be taken
|
|
osm_station_name_attrs:
|
|
name
|
|
uic_name
|
|
|
|
# the track number tag in stop nodes, first one is taken
|
|
osm_track_number_tags: local_ref
|
|
|
|
routing_lvl0_fac: 1 # default level
|
|
routing_lvl1_fac: 1.5
|
|
routing_lvl2_fac: 2
|
|
routing_lvl3_fac: 2.5
|
|
routing_lvl4_fac: 3.5
|
|
routing_lvl5_fac: 5
|
|
routing_lvl6_fac: 5
|
|
routing_lvl7_fac: 5
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle performans a full turn
|
|
routing_full_turn_punish: 100
|
|
|
|
routing_station_distance_punish_fac: 3.14
|
|
|
|
routing_non_osm_station_punish: 50
|
|
|
|
# Max angle that should be counted as a full turn
|
|
routing_full_turn_angle: 45
|
|
|
|
# Max angle in a route from a station to an already reachable neighbar
|
|
routing_snap_full_turn_angle: 0
|
|
|
|
# Punishment (in meters) to add to the distance
|
|
# function if a vehicle passes a station node without
|
|
# stopping there
|
|
routing_pass_thru_station_punish: 0
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through a one-way edge
|
|
routing_one_way_meter_punish_fac: 1
|
|
|
|
# Punishment factor for every meter a vehicle
|
|
# travels through an edge without any matching line
|
|
# information
|
|
routing_line_unmatched_punish_fac: 0.5
|
|
|
|
[tram, bus, subway, rail, gondola, funicular, ferry]
|
|
# Regular expressions and station comparision is
|
|
# always case insensitive!
|
|
station_normalize_chain:
|
|
, -> ' ';
|
|
- -> ' ';
|
|
— -> ' ';
|
|
_ -> ' ';
|
|
" -> '';
|
|
' -> '';
|
|
` -> '';
|
|
\( -> ' ';
|
|
\) -> ' ';
|
|
\[ -> ' ';
|
|
\] -> ' ';
|
|
/ -> ' ';
|
|
'\\' -> ' ';
|
|
< -> ' ';
|
|
> -> ' ';
|
|
& -> '+';
|
|
ä -> ae;
|
|
ö -> oe;
|
|
ü -> ue;
|
|
ß -> ss;
|
|
è -> e;
|
|
é -> e;
|
|
á -> a;
|
|
à -> a;
|
|
ó -> o;
|
|
ò -> o;
|
|
ô -> o;
|
|
ç -> c;
|
|
í -> i;
|
|
ú -> u;
|
|
ù -> u;
|
|
ë -> e;
|
|
å -> ae;
|
|
â -> a;
|
|
ê -> e;
|
|
ï -> i;
|
|
œ -> oe;
|
|
ø -> oe;
|
|
str\. -> strasse;
|
|
av\. -> avenue;
|
|
|
|
# always separate 'street', 'strasse'
|
|
'([a-zA-Z])strasse($| )' -> '\1 strasse\2';
|
|
'([a-zA-Z])street($| )' -> '\1 street\2';
|
|
|
|
# always use "street"
|
|
'(^| )strasse($| )' -> '\1street\2';
|
|
|
|
# always use "avenue"
|
|
'(^| )avenida($| )' -> '\1avenue\2';
|
|
'(^| )avenu($| )' -> '\1avenue\2';
|
|
|
|
# normalize every possible abbr. of german "Bahnhof", "Hauptbahnhof", "Busbahnhof"
|
|
'(^| )hauptbf\.($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hauptbf($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hauptbhf\.($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hauptbhf($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )zentraler busbahnhof($| )$' -> \1busbahnhof\2;
|
|
'(^| )zentraler omnibusbahnhof($| )$' -> \1busbahnhof\2;
|
|
'(^| )omnibusbahnhof($| )' -> '\1busbahnhof\2';
|
|
'(^| )omnibusbhf($| )' -> '\1busbahnhof\2';
|
|
'(^| )busbf\.($| )' -> '\1busbahnhof\2';
|
|
'(^| )busbf($| )' -> '\1busbahnhof\2';
|
|
'(^| )bus bf\.($| )' -> '\1busbahnhof\2';
|
|
'(^| )bus bf($| )' -> '\1busbahnhof\2';
|
|
'(^| )busbhf\.($| )' -> '\1busbahnhof\2';
|
|
'(^| )busbhf($| )' -> '\1busbahnhof\2';
|
|
'(^| )bus bhf\.($| )' -> '\1busbahnhof\2';
|
|
'(^| )bus bhf($| )' -> '\1busbahnhof\2';
|
|
'(^| )zob($| )' -> '\1busbahnhof\2';
|
|
'(^| )hbf\.($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hbf($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hb\.($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )hb($| )' -> '\1hauptbahnhof\2';
|
|
'(^| )bf\.($| )' -> '\1bahnhof\2';
|
|
'(^| )bf($| )' -> '\1bahnhof\2';
|
|
'(^| )bhf\.($| )' -> '\1bahnhof\2';
|
|
'(^| )bhf($| )' -> '\1bahnhof\2';
|
|
'(^| )bhfeingang($| )' -> '\1bahnhofeingang\2';
|
|
'(^| )gare de($| )' -> '\1gare\2';
|
|
|
|
|
|
# if a stations starts with single station identifier
|
|
# always put it at the end (for example, "hauptbahnhof freiburg" becomes "freiburg hauptbahnhof")
|
|
'^hauptbahnhof (.+)$' -> \1 hauptbahnhof;
|
|
'^bahnhof (.+)$' -> \1 bahnhof;
|
|
'^busbahnhof (.+)$' -> \1 busbahnhof;
|
|
'^gare (.+)$' -> \1 gare;
|
|
'^station (.+)$' -> \1 station;
|
|
|
|
'(^| )busbahnhof($| )' -> '\1bbahnhof\2';
|
|
|
|
# normalize line types in station names
|
|
'(^| )u bahn\.($| )' -> '\1ubahn\2';
|
|
'(^| )metro\.($| )' -> '\1ubahn\2';
|
|
'(^| )subway\.($| )' -> '\1ubahn\2';
|
|
'(^| )underground\.($| )' -> '\1ubahn\2';
|
|
'(^| )ubahn($| )' -> '\1u\2';
|
|
'(^| )s bahn\.($| )' -> '\1sbahn\2';
|
|
'(^| )sbahn($| )' -> '\1s\2';
|
|
'(^| )tramway($| )' -> '\1tram\2';
|
|
'(^| )stadtbahn($| )' -> '\1tram\2';
|
|
'(^| )strassenbahn($| )' -> '\1tram\2';
|
|
'(^| )streetcar($| )' -> '\1tram\2';
|
|
'(^| )tram($| )' -> '\1t\2';
|
|
|
|
# delete track information from name
|
|
'(^| )kante [a-zA-Z0-9]{1,2}($| )' -> ' ';
|
|
'(^| )gleis [a-zA-Z0-9]{1,2}($| )' -> ' ';
|
|
'(^| )track [a-zA-Z0-9]{1,2}($| )' -> ' ';
|
|
'(^| )voie [a-zA-Z0-9]{1,2}($| )' -> ' ';
|
|
|
|
# abbrv
|
|
'(^| )und($| )' -> '\1+\2';
|
|
'(^| )and($| )' -> '\1+\2';
|
|
'(^| )et($| )' -> '\1+\2';
|
|
|
|
# noise
|
|
'\sde\s' -> ' ';
|
|
'\sda\s' -> ' ';
|
|
'\sdi\s' -> ' ';
|
|
'\sdel\s' -> ' ';
|
|
'\sdal\s' -> ' ';
|
|
|
|
# abbrv in most western languages
|
|
'(^| )saint ' -> '\1st. ';
|
|
'(^| )sankt ' -> '\1st. ';
|
|
'(^| )sanct ' -> '\1st. ';
|
|
|
|
\. -> ' ';
|
|
|
|
# whitespace
|
|
\s+ -> ' ';
|
|
^\s -> '';
|
|
\s$ -> '';
|
|
|
|
line_normalize_chain:
|
|
, -> ' ';
|
|
- -> ' ';
|
|
_ -> ' ';
|
|
" -> '';
|
|
' -> '';
|
|
` -> '';
|
|
/ -> ' ';
|
|
< -> ' ';
|
|
> -> ' ';
|
|
& -> '+';
|
|
ä -> ae;
|
|
ö -> oe;
|
|
ü -> ue;
|
|
ß -> ss;
|
|
è -> e;
|
|
é -> e;
|
|
á -> a;
|
|
à -> a;
|
|
ó -> o;
|
|
ò -> o;
|
|
í -> i;
|
|
ú -> u;
|
|
ù -> u;
|
|
ë -> e;
|
|
å -> ae;
|
|
ç -> c;
|
|
â -> a;
|
|
ê -> e;
|
|
ï -> i;
|
|
œ -> oe;
|
|
ø -> oe;
|
|
^line -> '';
|
|
^linie -> '';
|
|
^metro -> '';
|
|
^tram -> '';
|
|
^strassenbahn -> '';
|
|
^bus -> '';
|
|
|
|
# delete everything in brackets
|
|
\(.+\) -> ' ';
|
|
\[.+\] -> ' ';
|
|
|
|
# whitespace
|
|
\s+ -> ' ';
|
|
^\s -> '';
|
|
\s$ -> '';
|
|
|
|
# line/number combs ALWAYS without whitespace (T 2 -> T2)
|
|
^([a-zA-Z]+) ([0-9]+)$ -> \1\2;
|
|
|
|
track_normalize_chain:
|
|
'(^| )gleis($| )' -> '';
|
|
'(^| )gl\.($| )' -> '';
|
|
'(^| )platform($| )' -> '';
|
|
'(^| )track($| )' -> '';
|
|
'(^| )rail($| )' -> '';
|
|
# line/number combs ALWAYS without whitespace (1 A -> 1A)
|
|
^([a-zA-Z]+) ([0-9]+)$ -> \1\2;
|
|
^([0-9]+) ([a-zA-Z]+)$ -> \1\2;
|
|
|
|
# delete track numbers greater than 999
|
|
^[0-9]{4,}$ -> '';
|