Water in OpenStreetMap

Posted by Peda on 28 August 2014 in English (English).

This article is supposed to give a brief introduction about water in OpenStreetMap. It will show you typical errors made by mappers and how they can be fixed with the help of MapRoulette.

The Water Network

Mapping water in OSM can be divided into two categories. On the one hand there are area types of water like ponds, lakes, reservoirs and even whole river areas (waterway=riverbank) and as a special case the sea (natural=costline). On the other hand there are simple ways, the waterways: These are rivers, streams, canals, ditches and drains.

The water network is thus built by the waterways. This also means that a broad river mapped as riverbank additionally contains a waterway=river in between. Thereby the direction of the way also denotes the direction of the water flow. If you follow a river or stream, you should at some point reach a big lake or the see. How to identify the direction of a way is explained on this wiki page.

Unfortunately the water network in OSM is broken at many places. As a result, some rivers appear to flow uphill or spring from the sea.

SRTM and MapRoulette

SRTM provides height data for mostly the whole planet for free. It makes it possible to determine for any waterway in OSM if it flows downhill or uphill. Though the data is unprecise, many waterways are quite long which makes it quite reliable to identify the direction of flow for many rivers and streams. However, one can’t advise to start an automatic mass edit based on SRTM. MapRoulette Having said that, there’s a neat project called MapRoulette, helping to solve such problems by letting the OSM community decide on small tasks. Thus there is a new challenge in MapRoulette to check on the waterway’s direction. Each task is one waterway that supposedly flows uphill and its flow direction has to be turned.

The difficulty of the tasks will grow over time. If the difference of height is some hundred of meters it’s simple in most cases. For smaller differences, e.g. 10 meters, it might well be a error in SRTM. However, the challenge will start with the easy tasks. And still there will be extra help: Each task’s instruction contains the height difference from the start to the end of the way as an additional help.

False Positives

It’s not always as easy as one might think. There are some cases that need special attention that are listed below. * A canal might be tagged as a river or stream. In contrast to rivers or streams a canal may “flow” uphill. Particularly: What’s the direction of a canal anyway? * Not every fork is a confluence. There are cases where a river splits up into two ways. * There are rivers and streams that dry out or drain away. Thus they “disappear” from the map. But you may not conclude that this is a spring.

Errors and Error Detection

The following paragraph will show some scenes with errors in the water network. It should give you an impression, how to determine (and repair) common mistakes.

All screenshots showing imagery are proprietary and based on GEOIMAGE-AUSTRIA® (c.f. wiki)


In mountainous regions you typically get a large difference in height. An example of this can be seen in the following JOSM screenshots: The complete stream, the start and the end of the stream all end start As one can clearly see, the stream originates high up in the mountains and finally leads in a larger river in the valley. Downloading the data in the surrounding area one can additionaly check, if the stream and river are connected or not. The right image below shows the result after correcting the direction of the way. data fixed ## Forks If you check a waterway, it is also wise to investigate the complete way for forks. It happens quite often that more than one stream flows uphill as it was tagged by the same author. This might look like this: multiple ## Water Mouth Quite easy cases are rivers and streams that end in the sea. This can be detected, as the waterway is connected to the coastline. Thus, the way’s direction has to lead to the sea. coastline ## Defective Parts of the Way In some cases only parts of a waterway are directed in incorrect. In these cases one part has to be wrong, but one also has to be cautious to correctly determine which part is wrong. wrong # Additional Notes The network of waterways should be fully linked. Thus, it is advisable to also verify that ever way’s end is connected to the next waterway. Especially ways should not end at riverbanks but at a river or stream.

Further typical errors or missing notes are welcome. I’d add them here

Any changeset’s source tag should at least contain SRTM as a source.

Comment from maning on 28 August 2014 at 02:29

This is nice challenge. However, I can’t see it in the list of challenges in MapRoulette.

Comment from Peda on 28 August 2014 at 11:39

I fell asleep before I could upload the challenge and discovered just today that there’s still a little bug. I hope to put it online tonight.

Comment from Peda on 28 August 2014 at 16:27

Fixed. Uploaded 1000 really easy tasks to begin with, Europe only for now. Worldwide coverage will follow soon.

Comment from robbieonsea on 28 August 2014 at 19:26

An excellent MapRoulette challenge - thanks.

[Although one could argue for the case of large elevation change (e.g +200m) or ways from the sea - could be automatically fixed by a bot].

It would be nice if the link to edit with Id used the main’s Id rather than the version!

Comment from mvexel on 28 August 2014 at 22:47

A really cool and fun MapRoulette challenge, Peter! Sorry for the bugs along the way - but together we have made MapRoulette a little more stable as a result :)

Robbieonsea: the reason we link to the ‘ version’ of iD is that the arguments MapRoulette passes to iD are not all forwarded when you use the edit link. It should generally be the same version, though.

Comment from voschix on 29 August 2014 at 13:12

What about two-directional waterways? Two categories spring to mind: a) Irrigation systems where the flow direction is controlled by sluice gates b) waterways that connect lagoons and the sea, where the water flow direction is tide-dependent

In these case the arrow direction is arbitrary. Or is there a tag for this specific situation

Comment from Harry Wood on 29 August 2014 at 14:12

Awesome! Correcting the direction of rivers is a nice easy thing for mappers to do

One thing I’ve pondered (and listed on my hack ideas list), is modelling hydrology worldwide in order to locate missing rivers. Starting with the biggest first. In some less well mapped parts of the world, you can easily look at OpenCycleMap contours (SRTM) and see that there is (most likely) a large river missing from OpenStreetMap. At time of writing there’s an example here in the congo. Endless other examples in Africa, Siberia etc, and these are big rivers we’re missing.

Comment from Andre Engels on 24 September 2014 at 12:57

Would it be possible to add an arrow to the Maproulette interface for this challenge, to more easily distinguish when someone else already fixed the river?

Login to leave a comment