forked from anerv/BikeDNA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.yml
202 lines (178 loc) · 10.4 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# Provide the names of the study area and the name of the reference data, if available, as a human-readable string (max 22 characters).
# This will be used for:
# - plot labelling
# - result labelling
# - exported reports
area_name: # provide area name here
reference_name: # provide name of reference dataset
# Provide the name of the study area/project as a slug.
# (Use https://you.tools/slugify/ if unsure)
# This will be used for:
# - folder and subfolder structure setup
study_area: # provide name of study area
# Provide the CRS which will be used throughout the anaylysis.
# This must be a projected CRS with meters as unit length.
study_crs: # The CRS you want to use for the analysis, as string 'EPSG:XXXX'
# Choose whether plots should be saved in low or high resolution.
# If 'low', plots are saved as png. If 'high', plots are saved as svg (this will lead to significantly larger files)
plot_resolution: 'low'
# Queries used to retrieve the network edges with dedicated bicycle infrastructure from OSM street network data. Update as needed.
# Note, for example, the proposed tag for indicating the type of separation for cycle ways: https://wiki.openstreetmap.org/wiki/Proposal:Separation
bicycle_infrastructure_queries:
A:
"highway == 'cycleway'"
B:
"cycleway in ['lane','track','opposite_lane','opposite_track','designated','crossing']" #'shared_lane',
C:
"cycleway_left in ['lane','track','opposite_lane','opposite_track','designated','crossing']" # should shared_busway be included? 'shared_lane'
D:
"cycleway_right in ['lane','track','opposite_lane','opposite_track','designated','crossing']" # 'shared_lane'
E:
"cycleway_both in ['lane','track','opposite_lane','opposite_track','designated','crossing']" # 'shared_lane'
# Queries for defining bicycle infrastructure as bidirectional (True/False) and centerline mappings (True/False)
# Modify dict values, not keys
simplify_tags_queries:
"centerline_false_bidirectional_true":
- "highway == 'cycleway' & (oneway=='no' or oneway_bicycle=='no')"
- "highway == 'track' & bicycle == 'designated' & (oneway=='no' or oneway_bicycle =='no')"
- "highway == 'path' & bicycle == 'designated' & (oneway=='no' or oneway_bicycle =='no')"
"centerline_false_bidirectional_false":
- "highway == 'cycleway' & (oneway !='no' or oneway_bicycle != 'no')"
- "highway == 'track' & bicycle == 'designated' & (oneway !='no' or oneway_bicycle !='no')"
- "highway == 'path' & bicycle == 'designated' & (oneway !='no' or oneway_bicycle !='no')"
"centerline_true_bidirectional_true":
- "cycleway_left in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (cycleway_right in ['no','none','separate'] or cycleway_right.isnull() or cycleway_right not in ['lane','track','opposite_lane','opposite_track','designated','crossing']) and oneway_bicycle =='no'"
- "cycleway_right in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (cycleway_left in ['no','none','separate'] or cycleway_left.isnull() or cycleway_left not in ['lane','track','opposite_lane','opposite_track','designated','crossing']) and oneway_bicycle =='no'"
- "cycleway in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (oneway_bicycle == 'no' or oneway_bicycle.isnull())"
- "cycleway_both in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (oneway_bicycle == 'no' or oneway_bicycle.isnull())"
- "cycleway_left in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and cycleway_right in ['lane','track','opposite_lane','opposite_track','designated','crossing']"
"centerline_true_bidirectional_false":
- "cycleway_left in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (cycleway_right in ['no','none','separate'] or cycleway_right.isnull() or cycleway_right not in ['lane','track','opposite_lane','opposite_track','designated','crossing']) and oneway_bicycle !='no'"
- "cycleway_right in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and (cycleway_left in ['no','none','separate'] or cycleway_left.isnull() or cycleway_left not in ['lane','track','opposite_lane','opposite_track','designated','crossing']) and oneway_bicycle != 'no'"
- "cycleway in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and oneway_bicycle == 'yes'"
- "cycleway_both in ['lane','track','opposite_lane','opposite_track','designated','crossing'] and oneway_bicycle == 'yes'"
# Note that the new tag 'separation' in some areas also are used for indicating protected cycle ways https://wiki.openstreetmap.org/wiki/Proposal:Separation
osm_bicycle_infrastructure_type:
'protected':
- "highway == 'cycleway'"
- "cycleway in ['track','opposite_track']"
- "cycleway_left in ['track','opposite_track']"
- "cycleway_right in ['track','opposite_track']"
- "cycleway_both in ['track','opposite_track']"
'unprotected':
- "cycleway in ['lane','opposite_lane','crossing']" # 'shared_lane'
- "cycleway_left in ['lane','opposite_lane','crossing']" # 'shared_lane'
- "cycleway_right in ['lane','opposite_lane','crossing']" # 'shared_lane'
- "cycleway_both in ['lane','opposite_lane','crossing']" # 'shared_lane'
'unknown':
- "cycleway in ['designated']"
- "cycleway_left in ['designated']"
- "cycleway_right in ['designated']"
- "cycleway_both in ['designated']"
# Define tags to be downloaded from OSM here. Note that any non-standard tags used in the custom filter must be included here.
osm_way_tags:
- "access"
- "barrier"
- "bridge"
- "bicycle"
- "bicycle_road"
- "crossing"
- "cycleway"
- "cycleway:left"
- "cycleway:right"
- "cycleway:both"
- "cycleway:buffer"
- "cycleway:left:buffer"
- "cycleway:right:buffer"
- "cycleway:both:buffer"
- "cycleway:width"
- "cycleway:left:width"
- "cycleway:right:width"
- "cycleway:both:width"
- "cycleway:surface"
- "foot"
- "footway"
- "highway"
- "incline"
- "junction"
- "layer"
- "lit"
- "maxspeed"
- "maxspeed:advisory"
- "moped"
- "moter_vehicle"
- "motorcar"
- "name"
- "oneway"
- "oneway:bicycle"
- "osm_id"
- "segregated"
- "surface"
- "tracktype"
- "tunnel"
- "width"
# Define tags to be analysed when evaluating the number of existing/missing tags.
# Must be in the form of a nested dictionary.
# The first keys indicate the overall attribute analysed. The sub-keys indicate which columns to look at depending on whether the OSM feature is mapped as a feature on a centerline or the as an individual geometry.
# For example, if highway = 'cycleway' the feature is mapped as an individual geometry. In this case, the tag 'width', if filled out, describes the width of the cycleway.
# On the other hand, if highway = 'primary' and cycleway = 'track' the bicycle infrastructure is mapped as an atttribute to a road centerline and the 'width' tag refers to the main road. In this instance only the 'cycleway_width' columns is of interest.
existing_tag_analysis:
surface:
true_geometries:
- surface
- cycleway_surface
centerline:
- cycleway_surface
width:
true_geometries:
- width
- cycleway_width
- cycleway_left_width
- cycleway_right_width
- cycleway_both_width
centerline:
- cycleway_width
- cycleway_left_width
- cycleway_right_width
- cycleway_both_width
speedlimit:
all:
- maxspeed
lit:
all:
- lit
# Define tags that are considered incompatible and a sign of errors in the OSM data.
# For example, if an element has been defined as bicycle_infrastructure = 'yes' earlier in the analysis, it should not have bicycle = 'no' or bicycle = 'dismount' or car = 'yes'
incompatible_tags_analysis:
bicycle_infrastructure:
'yes':
- ['bicycle','no']
- ['bicycle','dismount']
- ['car','yes']
# Define the desired width of grid cell size in meters for the grid used for local summaries of analysis resutls.
# When evaluating the quality of road network data, using cell sizes of 1 km is usually the default (see e.g. Koukoletsos et al, 2011; Haklay, 2010; Neis et al., 2011)
# Smaller cell sizes give a better granularity, but will make some elements of the analysis slower to compute
grid_cell_size: 300
# Specify whether the bicycle infrastructure in the reference data have been mapped as centerlines or true geometries.
# Describes whether bicycle infrastructure is digitised as one line per road segment (regardless of whether there are bicycle infrastructure along both sides)
# or if there are two distinct geometries mapped in situations with a bike path/track on both sides of a street.
# Can be a value describing the whole dataset or the name of the column describing the situation for each row.
# Valid values are: 'centerline' or 'true_geometries' or a string with the name of the column with either True or False for each geometry.
reference_geometries: # true_geometries or centerline.
# Specify whether the infrastructure geometries are designed for travelling in both directions (i.e. bidirectional) or only one way.
# This information is used to assess the true value of the network so that e.g. broad bidirectional bike lanes' length are counted twice since they represent the same infrastructure as two narrow lanes on each side of the road.
# If geometries are mapped as centerlines but represent infrastructure in both sides of the street (see 'reference_geometries'), this column should also be set to True.
# Can be a value describing the whole dataset or the name of the column describing the situation for each row.
# Valid values are: True or False or a string with the name of the column with either True or False for each geometry.
bidirectional: # True or False
# Specify a dictionary used for classifying segments of bicycle infrastructure as protected or unprotected.
# For protected, unprotected or mixed (protected on one side, unprotected on the other side) specify the query defining the type
ref_bicycle_infrastructure_type:
protected:
- # provide query here. E.g.: "vejklasse == 'Cykelsti langs vej'"
unprotected:
- # provide query here. E.g.: "vejklasse == 'Cykelbane langs vej'"
# mixed: # Only provide mixed query if relevant
# - ""
# Specify the column name (string) of the column in the reference data with the unique ID for each row/feature.
reference_id_col: # provide name of id column here