RfC: New key firmness=*

I am getting bored of people trying to repurpose key tracktype for mapping what should better get a name that actually says that it is only about a single detail of a surface, namely its firmness. One that would not start with a historically grown dataset impossible to verify if it meets the new intent (or its past intent, as some not get tired to point out) and last not least for a clear definition of what it actually maps.

So I start this RfC here by proxy (without assignment though, @rhhs, @bradrh and @ftrebien be so kind?): Please share ideas. Especially I’d be interested in a scale, that would allow mappers to reproducibly assess on the ground truth, so this can become a tag that will help openstreetmap stay the best map in the world!

PS: That proved quite hard, to get these two links from a search engine

At a minimum, you’ll need to decide if this is mapping dry firmness, wet firmness, or most-common firmness. Clay soils, for example, can go from “can support heavy machinery without leaving a mark” when dry to “anything you drop will disappear into the mud” after a heavy rain. Meanwhile, gravel-heavy flood deposits might not have a meaningful difference between wet and dry firmness.

9 Likes

Any tags you like. I am not aware of a better firmness classification than the one used for tracktype that is as verifiable. In fact, I think anything beyond 3 firmness levels carries a great risk of causing a lot of confusion. My 2 cents on this are that I think the main focus should be mapping surface accurately (within reasonable limits that one can expect from the average surveyor) and ensuring it and smoothness are well supported by the tools (eg. for rocky tracks). In particular, I think the rendering of highway=track based on combinations of surface and smoothness needs more work (and hasn’t received it due to inertia). surface is very strategic to reduce the complexity of the questions we’ve been debating: its values not only declare the material but also typically carry an expected, yet implicit, “firmness” profile that may not be obvious even to the surveyor; and many combinations of surface and tracktype simply don’t make sense, and some are even more expressive (eg. surface=mud is certainly less firm than a typical tracktype=grade5 ). One area to explore is possible additional surface values that cover more tracktype values. For example, dirt tracks that are grade3 vs those that are grade4: why are both mapped as dirt? is there a better, not-yet-proposed but hopefully more verifiable surface value for it? (should we revisit surface=earth , or maybe introduce surface=loose_dirt ?) I’d suggest using TagInfo to explore common and rare combinations of these tags, they are not as freely combinable in reality as discussions seem to suggest (regardless of which criteria one uses for tracktype).

2 Likes

Let’s invite this author to create a firmness system for us - and survive the scrutiny of the community! :wink:

1 Like

I don’t see how such scale can look like. You have wet/dry, which you could solve by firmness, firmness:dry and firmness:wet. Typical you would put a certain force on a certain area and measure how fast your object is sinking. Now the issue is that won’t workout great with objects mappers usually carry with them. I would even go with the above values and just use a boolean. Now the thing is, kind of you can derive this level of detail as well from surface in most of the cases.

1 Like

I would like to note that

1. There are other factors than surface roughness that affect whether a certain way is usable for a certain vehicle and that are not covered by the smoothness tag. That is, if smoothness is not defined as “usability by certain wheeled vehicles’ as is suggested here, but only describes surface roughness which is then used to evaluate usability by wheeled vehicles.

2. The tracktype tag is a mess because it is skunked: different mappers take surface firmness and degree of development and other factors into account in different degrees, which makes it insufficiently clear how a certain tracktype tag on a way should be interpreted (it depends too much on the mapper who tagged it)

3. The surface tag for unpaved surfaces is a mess, judging by the lengthy discussions on the meaning of several surface tags such as gravel, fine_gravel, pebblestone, ground/dirt/earth, etc. The values are descriptive: they are based on what they are called in the different dialects of English and other languages, and not on verifiable criteria such as their physical properties that are more useful for map users.

4. What follows below is a brainstorm that needs to be discussed and thought about further and is not a well-considered proposal.

It would be good to have a firmness tag to be able to add information to ways that routers can use to judge whether a way is usable. This should be based on verifiable physical properties of the surface, i.e the composition of hard and soft materials (like the iD preset and the StreetComplete quest for tracktype do) so that it is independent of weather conditions at the time of survey.

However, I think it would be more powerful if we would create or more precisely define values in the surface key space that imply firmness. This would also help to solve the issue in item 3 above. Most unpaved ways in my mapping area have a surface “in their natural state” (composition the same as the topsoil next to the way, with no material from elsewhere added). I am tagging them as either ground (when it contains rocky components) or dirt (when it contains only sand and clay, with very little larger fragments). This already implies a firmness: ground implies firmness=grade2 or 3, dirt implies firmness=grade4 or 5. We could add further detail by defining other surface values that correspond more closely to the values of tracktype. We could for instance hijack surface=clay to mean a very soft surface of natural clay corresponding to grade5, not usable by narrow tire bicycles and with difficulty for fatbikes and motorbikes while 2-tracked vehicles (cars) are likely to get stuck in it. We could also assign default firmness values to existing surface tags such as gravel, compacted, fine_gravel, etc. so that they need to be tagged with firmness only when they deviate from the default.

It would also be very useful esp. for cyclists to introduce surface=loose_sand and surface=loose_gravel to tag surfaces that are especially difficult to cycle on. surface=loose_sand is sand that is usually very dry, so that narrow bicycle tires sink into it. This causes increased resistance and makes steering very difficult. It is nearly impossible to use for city and racing bikes but may be usable for fatbikes and motorbikes and is firm enough to cause no usability problems for 2-track vehicles with broad tires.

surface=sand is then also sand that is however usually humid (making it firmer) so that it is almost always usable for fatbikes and motorbikes, and usable with difficulty for city bikes. Likewise surface=loose_gravel is similarly difficult to use for bikes with narrow tires (city bike and racing bikes), but its firmness is not affected by its humidity (it doesn’t become firmer when wet) and it is firm enough for 2-track vehicles.

1 Like

And then you run into the problem that, in the deserts of the western United States, you get naturally sun-fired clay surfaces that can be traversed by just about anything with wheels – at least, when it hasn’t rained recently.

That’s the general problem with trying to deduce surface firmness for natural surface materials: there are too many “except when…” situations.

1 Like

surface=clay is currently defined as a special surface type that is most common in tennis courts. Maybe the US desert sun-fired clay should be a new surface value, like surface=hard_clay or surface=dry_clay (we have surface=mud for soil that stays wet/muddy most of the time and it is quite well supported by data consumers, so I assume we can define new values based on this kind of soil state).

1 Like

This immediately goes out the window somewhere tidal. I’ve not done any analysis, but I would hazard a guess that many beaches are currently tagged as sand and would become loose_sand at some point in the day and then revert later when the waves return and then become loose_sand again while under water and then back to sand when the tide goes out, but only until it’s had a chance to dry …

For something fully verifiable we’d presumably need something like a GoingStick or penetrometer, but there must be something a bit more generic we can use like “how deep are typical footprints (ignoring vegetation)?”. And a scale corresponding to a range of e.g. “no visible impression”, “tread visible”, “full sole outline”, “>1cm deep footprint”, “wear wellies”, “impassable”.

Or how deep does the tip of an umbrella go if you rest it on the surface?

You can’t really compare tennis courts to road surfaces, but I don’t see any problem using the current value surface=clay for roads, which is what I do locally. In Southeast Asia, red hard clay is very common and tends to stay hard year-round. I also doubt that “soft clay” would remain soft over time, as it dries out quite easily.

I am suggesting above that the surface or firmness value should be independent of weather conditions. That a surface is clay is a verifiable fact, so we can map that. That is is sometimes hard (after a long dry period) and sometimes soft (after a rainy period) is not something we can map directly because it is a temporary state. A map user will have to take recent weather into account when deciding on the route to take. A routing app can only take it into account when it has additional information on recent weather conditions, such as recent weather data from other sources or a “wet weather” mode that a user can toggle on and off. It would route along a way with surface=clay in dry weather mode, but not when in wet weather mode.

That’s a very unusual case. Not many surfaces change humidity as frequent as that. I expect most ways with a sandy surface are either dry most of the time (dry climates, exposed to the sun) or humid most of the time (wet climates, in the shade). A mapper may choose to map the worst case scenario.

A mapper should base his decision to map a surface value not on “Do I call this surface clay or sand?” but on “Can I ride a bike on this surface?”, i.e. it should be with usability in mind. surface=clay should be defined not as “It looks like clay” but as “A surface that is hard when dry and soft when wet, difficult to ride on with a bike when wet, and with a high risk of getting stuck with a car when very wet”.

1 Like

Doesn’t the worse case depend on the usage scenario?

Maybe it’s better to add a dedicated tag to record the typical humidity of a surface? Like for mappers it might be hard to judge the typical condition year-around. Especially on back-country trails where you have a lots of tourists.

1 Like

Not sure I understand you correct, but surface contains the material of the object, regardless of any kind of usability.

3 Likes

Where surface names are vague, I discern between similar values based on usability. Ultimately, we want to map surface values that are actually useful for something (eg. choosing good routes).

For many years now, the wiki highlights three vague surface values that would be best avoided when doing direct surveys (if possible): paved, unpaved, and ground. paved and unpaved are usually only adequate when setting a surface value based on aerial imagery, where the exact material composition can’t be accurately identified.

1 Like

Clay and sand are two different materials. Don’t tag sand as clay just because you can cycle on it. That might work for your purpose, because your used router treats the way now as you like. But at the same time you will harm others, with different use cases. If you can’t differentiate between those, use a more general value and let others figure it out.

3 Likes

If one can cycle on it, it is probably neither sand nor clay as defined in the OSM wiki. It is probably dirt or its OSM synonym earth.

1 Like

Just under 7% of surface=sand tags are on beaches, compared with 49% that are on highways so it’s not that uncommon at all. There are also places where you have rainy and dry seasons so the dampness level varies wildly throughout the year, it’s still the same surface.

Absolutely not. The surface is the surface, not some arbitrary combinations of how it behaves under various conditions that the mapper can’t see when they visit it.

Some concrete gets slick when wet, other bits don’t. Changing the surface tag to also cover how it behaves in conditions that aren’t there at the time of survey would mean we suddenly can’t tag the most basic of parking lots. We’re not going to make the situation better by skunking the surface tag too.

How did you arrive at these numbers? How can we know if these “highways” are not just paths/tracks across beaches or roads near them?

That’s just from taginfo which I forgot to link.

I haven’t attempted any spatial analysis for proximity to coastline or tidal water.

1 Like

I use “paved” quite frequently, especially when e.g. a driveway changes from asphalt to concrete..