Tuplanolla
- Mapper since:
- November 15, 2022
- Last map edit:
- November 10, 2026
I survey the woods. Mountain bikes and climbing shoes are often involved. I do all of my work on the ground with surveying equipment varying from pen and paper to satellite positioning systems, laser rangefinders and machine vision cameras.
My current goal is to find every natural trail in the region and
classify its visibility and difficulty.
In terms of tags,
this means assigning each highway=path
the appropriate trail_visibility, mtb:scale and
potential obstacle list.
Sometimes, this also extends
to mapping forest roads using highway=track
with the appropriate tracktype,
mapping logging machine tracks using man_made=cutline
with cutline=loggingmachine and
improving other surrounding features.
The following questions often come up in changeset discussions, so, instead of repeating them on every occasion, I collected them and their short answers here. First, the why, and then, the how.
- Why did you reinstate a way I removed?
- Why did you disconnect ways?
- Why did you remove nodes from a way?
- Why did you split a way?
- Why did you move or reshape a way?
- How do you determine which tags to use?
- How do you determine trail difficulty?
- How do you determine trail visibility?
- How do you classify obstacles?
- What is your mapping philosophy?
Why did you reinstate a way I removed?
Understand the four seasons.
Trails overgrow in the summer,
become covered in leaves in the autumn and
covered in snow in the winter.
Do not delete trails that cannot be found in those circumstances.
If you must, mark them was:highway=path and wait one year.
If the trails are still gone consistently, you can delete the now-historical trails;
otherwise you can reinstate them and
mark them with note:trail_visibility=volatile or such.
Seems that maybe: is sometimes used to indicate there is a trail,
but confidence or measurements are not conclusive enough to draw it.
Why did you disconnect ways?
Here is a procedure for determining whether features should be connected or not.
Suppose you connected a municipal boundary with a trail. If the city changes its legislation, does this spontaneously move the trail in the woods? No, so do not connect them.
Suppose you connected a forest/scrub land use area boundary with a trail.
Is the trail marked trail_visibility=no
with its only observable definining property being the boundary between the land use areas?
If yes, connect the features.
Would the trail stay where it is even if the forest was cut and turned into a scrub?
If yes, do not connect the features.
If you are using the iD editor, you can turn features off in the settings, so that you do not accidentally connect them with unrelated things.
Why did you remove nodes from a way?
You should not place nodes that cannot be verified to be there or falsified to not be there. See the question about my mapping philosophy for a more thorough explanation.
Here is a simple procedure for placing the appropriate number of nodes on a trail.
- Make three friends stand on three consecutive nodes.
- Draw strings between the friends, so that the strings form a triangle.
- If the string between the first and last friends stays on the trail for its entire length, there are too many nodes on the trail.
- If the strings between the middle friend and either of the other friends deviate from the trail, there are too few nodes on the trail.
It is, of course, a thought experiment, so you do not actually need to have friends.
](https://i0.wp.com/putonlalla.wordpress.com/wp-content/uploads/2026/10/node-density-guide.png)
Why did you split a way?
I try to group together flows and avoid kinks in junctions. It helps keep the data tidy and avoids making overarching edits, where you change the tags of one end of a trail based on the properties of its other end, even though they should be different.
I try to not split junction-free segments into smaller pieces, since the decision to follow a certain trail segment at a junction is when the information about the segment is needed; once you are already on the segment, all you can do is regret or turn back. Still, sometimes splitting is necessary, because the segment is so long or the values of the keys vary so much.
It is disputed whether trail segments with varying difficulty or visibility should be tagged according to the maximum value or the median value. Thus, if the deviation is greater than one increment, I split the segment, so that the distinction does not matter.
](https://i0.wp.com/putonlalla.wordpress.com/wp-content/uploads/2026/11/way-connectivity-guide-2.png)
Why did you move or reshape a way?
It was most likely placed with the correct intent, but was lacking in error analysis, so all I did was measure it more precisely. This part is still waiting for more detailed discussion.
Error estimates in aerial imagery
Do not draw trails based on the tree canopy, because shadows have a cast direction and some species of trees have a side they prefer to grow towards.
- TODO Talk about perspective correction.
- TODO Talk about ortophoto referencing error.
Error estimates in satellite positioning and heatmaps
- TODO Talk about absolute and systematic errors and their timescales.
- TODO Show an example of error drift.
- TODO Talk about momentum correction.
- TODO Talk about cliffside attentuation correction.
- TODO Talk about convolution shrinkage and its effects on correctly sizing circles and placing nodes at T-junctions.
- TODO Talk about bimodal side correction.
Error estimates in inertial systems
- TODO Talk about integration error accumulation.
- TODO Talk about slam-style machine vision errors. If there are join points, error at the nodes of loops collapse, but along the loop the error will still be linear.
Error estimates in rangefinders or theodolites
- TODO These are practically zero in comparison to other systems, but let us talk about them anyway.
How do you determine which tags to use?
If you find a path through the woods, it should fall into one of the following categories.
Natural trails
Is it a narrow path that formed spontaneously, as hikers used it for recreation or to access remote locations, such as camping sites or fishing ponds? It is a natural trail (metsäpolku).
| Key | Value | Notes |
|---|---|---|
highway |
path |
Unless traffic signs designate it, in which case something else |
informal |
yes |
Unless it is a nature trail (luontopolku) or in a national park (kansallispuisto), in which case no |
surface |
unpaved |
Unless known more specifically, as explained later |
width |
||
foot |
yes |
Unless explicitly restricted, in which case something else |
bicycle |
yes |
Unless explicitly restricted, in which case something else |
horse |
yes |
Unless explicitly restricted, in which case something else |
motor_vehicle |
no |
Unless explicitly exempted, in which case something else |
obstacle |
no |
Unless explicitly listed, as explained later |
oneway |
no |
Unless explicitly restricted, in which case yes |
trail_visibility |
Explained later | |
mtb:scale |
Explained later | |
sac_scale |
Practically, you should always tag
highway, trail_visibility and either mtb:scale or sac_scale,
as well as access (that is, foot, bicycle, horse and motor_vehicle),
obstacle and oneway when they differ from the default values.
The tags for informal, surface and width are nice trivia,
but often quite useless for traversal.
Land-access roads or cross-country ski trails
Is it a wide track that was originally built for vehicles, so that they could access otherwise unreachable places, such as construction sites or forestry locations? It is a land-access road (metsätie or equivalently metsäautotie or metsänhoitotie) or a cross-country ski trail (latupohja).
| Key | Value | Notes |
|---|---|---|
highway |
track |
Unless traffic signs designate it, in which case something else |
surface |
unpaved |
Unless known more specifically, as explained later |
width |
||
foot |
yes |
Unless explicitly restricted, in which case something else |
bicycle |
yes |
Unless explicitly restricted, in which case something else |
horse |
yes |
Unless explicitly restricted, in which case something else |
motor_vehicle |
yes |
Unless explicitly restricted, in which case something else |
obstacle |
no |
Unless explicitly listed, as explained later |
oneway |
no |
Unless explicitly restricted, in which case yes |
tracktype |
Explained later | |
mtb:scale |
0 |
Unless known more specifically, as explained later |
sac_scale |
strolling |
Unless known more specifically |
Tracks that serve as cross-country ski trails in the winter often serve as land access roads in the summer, which is probably why they are tagged the same way in practice.
Rural roads that go to businesses or residences
should be tagged highway=unclassified
with motor_vehicle=destination instead,
but this seems to be rarely done in practice,
because they are visually indistinguishable and
legally work the same way as land access roads.
Practically, you should always tag
highway, tracktype and either mtb:scale or sac_scale,
as well as access (that is, foot, bicycle, horse and motor_vehicle) and
oneway when they differ from the default values.
The tags for surface and width can also be useful for vehicles.
Cut lines or tracks
Is it a wide track that was created by a vehicle heavy enough to cut trees, such as a logging machine or an armored vehicle (such as a tank)? It is a cut line (raivauslinja) or a track (ajoura).
| Key | Value | Notes |
|---|---|---|
man_made |
cutline |
Not to be taken literally |
cutline |
unknown |
Unless known to be created by a particular vehicle, in which case loggingmachine or armor |
Tagging tracks is currently quite limited, but that is not a big issue, since they can share the same ways with natural trails, as their tags are disjoint.
Tracks often outlive natural trails. In the best case (dry, mineral soils and winter logging when the ground is frozen), the visible ruts may fade within 3–10 years as vegetation regrows and moss, grass and shrubs cover them. In more sensitive conditions (wet soils, peatlands or areas where the ground was disturbed in summer), the tracks can persist much longer; 10–30 years is common for clearly visible ruts and, in some peat-rich or poorly-drained areas, they can remain visible indefinitely in landscape terms, even if partially softened by vegetation. Even after the visible track has faded, the soil compaction and altered drainage remain, so the ground can stay slightly sunken or wetter for decades.
How do you determine trail difficulty?
I follow these tables based on the OpenStreetMap Wiki and
experience gathered from usage patterns on local trails.
The following are commonly used on highway=path.
mtb:scale |
Symbol | Features | Bike | Example | Notes |
|---|---|---|---|---|---|
0 |
![]() |
Mostly flat and unobstructed | Pleasant to ride on a road bike | Gravel road | Not really mountain biking |
1 |
![]() |
Small rocks or single roots or extremely loose gravel | Possible to ride on a road bike with discomfort | Suburban shortcut | You can sit down most of the time |
2 |
![]() |
Moderate rocks or sprawling root networks | Might destroy your road bike; get a mountain bike | Natural trail damaged by erosion | Rowdy riding mostly off the saddle |
3 |
![]() |
Boulders or tiresome rock gardens or features that you have to carry speed through | Requires a mountain bike | Area mangled by the ice age | Hiking is often a better option |
4 |
![]() |
Drops or gaps narrower than handlebars or sections, where stopping is impossible | Requires a high-category mountain bike | Downhill race track | Downhill sections feel more like surfing than biking |
5 |
![]() |
Big airtime or trials balancing on one wheel | Pretty much requires a special-purpose bike | Dirt jump track or rampage line | Downhill sections feel more like flying than biking |
6 |
Cliffside | Impossible to ride, but possible to fall down |
If you are a weaker rider and cannot ride anything above level 3,
do not tag features with anything from 4 to 6.
Leave a fixme note and ask someone more skilled to do it for you.
The following are commonly used on highway=track.
tracktype |
Description |
|---|---|
grade1 |
Well-maintained compacted gravel road to access service buildings in the city |
grade2 |
Slightly rough but maintained gravel road outside the city, no vegetation |
grade3 |
Maintained cross-country ski trails or access roads to masts, some grass here and there |
grade4 |
Established tractor tracks or overgrown country roads, expect vegetation or mud |
grade5 |
Fresh tracks from a heavy logging machine or armor, possibly very messy |
The various difficulty scales are related as follows.
tracktype |
mtb:scale |
sac_scale |
climbing:grade:uiaa |
|---|---|---|---|
grade1–grade5 |
0 |
strolling |
|
grade3–grade5 |
1 |
hiking |
|
grade5 |
2–3 |
mountain_hiking |
|
3–4 |
demanding_mountain_hiking |
||
4–5 |
alpine_hiking |
1 |
|
5–6 |
demanding_alpine_hiking |
1–2 |
|
6 |
difficult_alpine_hiking |
2 |
I personally find the seven-point scale of mtb:scale to be accurate enough,
so that there is no need to extend it with + and - modifiers.
It is already tricky to find a suitable grade between 2 ja 3,
so adding 2-, 2+, 3- and 3+ to the mix definitely does not help.
The principle in physics, that each measurement should either be
verifiable or refutable through better experiment, carries over.
The worldwide distribution of mtb:scale values
can be collected from Taginfo.
](https://i0.wp.com/putonlalla.wordpress.com/wp-content/uploads/2026/10/mtb-scale-actual.png)
I would have expected the distribution to follow the inverse power law instead.
](https://i0.wp.com/putonlalla.wordpress.com/wp-content/uploads/2026/10/mtb-scale-expected.png)
Perhaps people do not tag trivial or impossible trails that often,
which would explain the relatively low numbers of 0 and 6, and
shy away from tagging harder difficulties,
which would explain the skew towards 1+ and 2-.
Should we maximize the information content of the scale and
aim to tag things following this distribution?
How do you determine trail visibility?
I follow this table based on experienced gathered from usage patterns on local trails.
| Value | Trail | Trailhead |
|---|---|---|
excellent |
Trail easy to follow even through hairpins | Impossible to miss even at high speed |
good |
Trail mostly easy to follow | Easy to see when moving |
intermediate |
Hard to see in dim lighting | Can be seen at standstill |
bad |
Trail barely visible on the ground | Hard to find |
horrible |
Traces of trail can be found with effort | Almost invisible |
no |
Trail only exists in the minds of people | Not there |
The no value is especially interesting,
since you have to infer the existence of a trail
from knowing people use it or
finding broken branches or footsteps on fresh snow.
How do you classify obstacles?
It is very common for trails to get overgrown or for trees to fall on them. Common obstacles in the region are
- overgrown vegetation (tagged
obstacle=vegetation), - big or multiple fallen trees (tagged
obstacle=fallen_tree), - wet sand or peat (tagged
obstacle=mud), - large or multiple holes (tagged
obstacle=hole), - huge pile or several piles of loose material (tagged
obstacle=heap) and - dangerous ramp or ramps for jumping over gaps (tagged
obstacle=jump).
Whether these should affect difficulty is open to interpretation. However, it is definitely clear that they are obstacles, not mere inconveniences.
What is your mapping philosophy?
The philosophy of science is founded on the principle that observations should either be verifiable or falsifiable. These principles apply to mapping just as much as they apply to experimental physics.
Suppose there is a node
tagged with natural=cave_entrance
at the WGS 84 coordinates (62.2242, 25.6813)
with the supposed uncertainty of (0.0001, 0.0001).
If I went there and could not find a cave entrance nearby,
I could deduce that it has collapsed or never been there,
thereby falsifying the observation and
giving me a reason to delete the node.
However, making observations is not always straightforward.
Suppose there is a way
tagged with highway=path and trail_visibility=no
going almost directly from (62.2212, 25.7079) to (62.2203, 25.7072).
I may have to wait a whole year for the first snow to fall,
so that I can gather enough evidence from footprints
to deduce that the trail indeed exists,
thereby verifying the existence of the trail and
giving me a reason not to tag the way with was:highway=path.
Following this reasoning, empty nodes (nodes that are not shared by any other geometry) are a mistake, because you cannot observe them to verify or falsify their existence. Similarly, consecutive collinear nodes on a way (nodes that are not shared by any other geometry) are a mistake, because you can only observe turns that have a finite radius.





