environmental_considerations_and_pseudo_tags.md (#612)

Document the new pseudo tag logic
This commit is contained in:
Stapawe 2023-09-24 09:08:07 +01:00 committed by GitHub
parent 50306100e9
commit 90fbe8345a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,87 @@
Environmental considerations (penalties for traffic, noise, town, no river, no forest) are possible due to the creation of pseudo tags during processing OSM data by spatial SQL queries in https://github.com/abrensch/brouter/blob/master/misc/scripts/mapcreation/brouter.sql. During this processing, roads are extended by a 32 m buffer creating 64 m wide lines. Then it is calculated what percentage of such line is at a specific distance to a noise source or within a forest, for example. The percentage is converted to a factor and the factor is assigned to a class. Ways that pass through different environments and are represented by a single OSM way can be problematic because the class is always based on the average environment along an entire OSM way. For traffic, calculations are on another level of complexity.
### consider_noise, noise_penalty
For proximity of noisy roads (secondary and higher). The noise factor represents the proportion of a road's buffer area that lies within the 64-meter buffer of noisy roads. This proportion is reduced:
- for motorways and trunk roads with max speed < 105 by 1.5
- for primary roads 2 times
- 3 times if maxspeed is 75 - 105 for primary and secondary
- other secondary roads 5 times
Noise class is roughly proportional to the noise factor:
noise_factor = noise class
- < 0.1 = '1'
- < 0.25 = '2'
- < 0.4 = '3'
- < 0.55 = '4'
- < 0.8 = '5'
- ELSE = '6'
To be classified as noise class 6, a way must be less than 13 m on average from the middle of the carriageway of a motorway with a maximum speed exceeding 105. For a class 5, the distance must be up to 35 meters. (1 - noise factor) * 64 m for a given class determines the distance
**Max noise class:**
| Max speed | Motorway, trunk |Primary|Secondary |
|--- |:---: |:---: |:---: |
| >105 |6 |4 | 3 |
| 105 |5 |4 |3 |
| 75 |5 |3 |2 |
### consider_river, no_river_penalty
OSM data recognized as river:
- waterway: river, canal
- natural: water (except wastewater)
Waterways have 32 m wide buffers. Water areas have 77 m wide buffers.
river_see = river class
- < 0.17 = '1'
- < 0.35 = '2'
- < 0.57 = '3'
- < 0.80 = '4'
- < 0.95 = '5'
- ELSE = '6'
### consider_forest, no_forest_penalty
OSM data recognized as forest:
- landuse: forest, allotments, flowerbed, orchard, vineyard, recreation_ground, village_green
- leisure: garden, park, nature_reserve
No forest buffers are used.
Imagine you trace the way with a pencil drawing lines 62 meters wide. Then estimated_forest_class=6 corresponds to the case that at least 98% of the line is in the woodland. This number is called a green factor.
green_factor = forest class
- < 0.1 = NULL
- < 0.2 = '1'
- < 0.4 = '2'
- < 0.6 = '3'
- < 0.8 = '4'
- < 0.98 = '5'
- ELSE = '6'
### consider_town, town_penalty
Town_class is determined by population data from OSM.
Class
- 1 = 50-80 k people
- 2 = 80-150 k people
- 3 = 150 - 400 k people
- 4 = 400 - 1,000 k people
- 5 = 1 - 2 million people
- 6 = > 2 million people
### consider_traffic, traffic_penalty
(modified copy from the sql file).
OSM data used to estimate the traffic:
- population of towns (+ distance from position to the towns)
- size of industrial areas (landuse=industrial) and distance to them. Not considered: solar & wind farms.
- airports international
- motorway and trunk road density - traffic on motorways decreases traffic on primary/secondary/tertiary. Calculated on a grid (100 km^2)
- density of highways (tertiary and higher) calculated on a grid (100 km^2). Traffic decreases when more such roads are available. Exceptions: near junctions between motorways and other roads the traffic increases on these roads.
- mountain-ranges calculated as density of peaks > 400 m traffic is generally on highways in such regions higher as only generated by the local population or industrial areas
- calculate traffic from the population (for each segment of type primary secondary tertiary)
- SUM of (population of each town < 100 km) / ( town-radius + 2500 + dist(segment-position to the town) ** 2 )
- town-radius is calculated as sqrt(population)