Skip to content

Charts and zones

A route that ignores the chart is no use in the Channel or the North Sea. The router has to know where the traffic separation schemes, wind farms, restricted areas and nature reserves are, and what rules apply in each. WeatherRouting takes this information from OpenStreetMap. This page explains what that is, where the data is good and where it falls short, and how the app fills the gaps.

The best source would be the official electronic navigational charts (ENCs) of the hydrographic offices. In practice they are not open data. Commercial chart sets, such as the o-charts sold for OpenCPN, come with a licence that does not allow their contents to be used by another program. Some countries publish parts of their data openly, but each in its own format, under its own terms and with its own updates. Collecting and maintaining them one country at a time does not work for a small project.

OpenStreetMap is the one source that is open, covers all of Europe’s waters in one format, and can be used freely, provided its licence is respected. The data is published under the Open Database Licence (ODbL), which allows any use as long as OpenStreetMap is credited. Its drawback is that it is made by volunteers, and that shows in places, as described below.

OpenStreetMap (OSM) is a map of the world built by volunteers, in the way Wikipedia is an encyclopaedia built by volunteers. Anyone can add or correct roads, buildings, coastlines — and things at sea.

OpenSeaMap is the nautical side of it. It has no separate database: its buoys, lights, harbours and traffic schemes are stored in OSM itself, as objects with seamark:… tags. OpenSeaMap draws them as a layer on top of the ordinary map, which is the seamark layer you see in WeatherRouting. How sea features are to be tagged is described on the OSM wiki under Seamarks, with the full list of object types on Seamark Objects. The types follow the IHO’s S-57 standard for electronic charts, so a separation zone in OSM (seamark:type=separation_zone) is the same thing as a separation zone (TSEZNE) on an ENC.

OSM is not one service but a database with several free services around it, run by the OpenStreetMap Foundation and by volunteers. WeatherRouting uses two kinds.

The background map and the seamark layer are pictures, cut into tiles. They are served free of charge, but under conditions. The OSM Foundation’s tile usage policy asks for visible credit, a clear name for the program asking, and caching of tiles that have been fetched. It also forbids downloading tiles in bulk ahead of time: tiles may only be fetched for what someone is actually looking at, and offline use of its tile server is not allowed. The policy also makes clear there is no guarantee of service.

For the zones, WeatherRouting does not need pictures but the objects themselves, with their exact outlines and tags. It asks for them through the Overpass API, a free query service that searches the OSM database: “give me every traffic separation scheme, wind farm and restricted area in this box”. The public Overpass servers ask users to stay below about 10,000 queries and about 1 GB of data a day, answer an overload with a refusal, and turn away the heaviest users first (Overpass API documentation).

Overpass is a shared service run on goodwill, and it shows:

  • Speed. A large query can take minutes. Fetching the zones for one 2° × 2° square of sea has taken around three minutes on a busy day.
  • Availability. At busy times the server refuses queries, or reports that it is down. A query that runs out of time or memory may come back with only part of the data.
  • Size. A whole sailing area can hold thousands of objects. The British Isles hold around 1,700 zones.

The app fetches zones per area, when you ask for them in the Areas tab, never in the background:

  • The seamarks — traffic schemes, precautionary areas, wind farms, restricted areas and the like — come in one query per area. Traffic schemes are fetched with a margin around the area, so a scheme that crosses the area’s edge is complete.
  • Protected areas (nature reserves and similar) are fetched separately, one 1° square at a time, on a best-effort basis: if Overpass is too busy, the app keeps the seamarks and says that protected areas may be missing.
  • The app waits between queries, retries when Overpass says it is busy, and notices an answer that is only partly complete.
  • Through the relay, the app does not ask Overpass itself. The relay — the server that also prepares the weather downloads — fetches each 2° square once, keeps it for 30 days, and hands the same answer to everyone sailing in that square. That spares Overpass, and it means a slow Overpass day only hurts the first person to ask. A square nobody has asked for in 90 days is removed.

Once fetched, an area’s zones are stored with the area and used offline from then on. They are fetched again only when you ask, for example after the app’s zone building has improved.

On the chartIn OSM (seamark:type)Default rule in WeatherRouting
Traffic laneseparation_lanefollow in the traffic direction, or cross at right angles
Separation zone and separation lineseparation_zone, separation_linecross at right angles only
Roundaboutseparation_roundaboutgo round with the centre to port
Crossing areaseparation_crossingwarn
Precautionary areaprecautionary_areawarn
Inshore traffic zoneinshore_traffic_zonewarn
Wind farmproduction_area with category wind_farmno-go
Restricted area, entry prohibitedrestricted_area with restriction no_entry (or similar)no-go
Restricted area, otherrestricted_areawarn
Nature reserve, protected areaboundary=protected_area, leisure=nature_reservewarn

“Warn” means the router may pass through, but the result lists every such zone the route touches. “Right angles” allows a tolerance, 15° by default. The defaults for wind farms, restricted and protected areas and the other non-TSS kinds can be changed in Settings, and per area. A zone’s rule can also be changed one zone at a time.

The OSM sea data in Northwest Europe is good on the whole: separation zones and boundary lines are mostly where the chart has them. The weak points are of a few recurring kinds:

  • Lanes are lines, not areas. On a chart a traffic lane is the water between a separation zone and the scheme’s outer boundary. In OSM a lane is usually only a line with a direction, somewhere inside that water. The lane’s area has to be reconstructed from the surrounding features.
  • Gaps. A lane may be mapped in pieces with stretches missing between them, or stop short of where the chart closes it. Off Calais, for example, a lane is missing for several miles between two mapped pieces.
  • Missing or outdated objects. A new wind farm or a changed scheme appears in OSM only when a volunteer adds it. (To verify: an example of a recent change that took time to appear.)
  • Inconsistent tagging. The same thing is sometimes tagged in different ways. In the Seine estuary, for example, recommended tracks are drawn as if they were traffic lanes.
  • Zones on land. Most nature reserves lie ashore, and some scheme parts are drawn reaching onto land. The app leaves out zones that lie mostly on land, using its own coastline data.

None of this is unusual for volunteer data, and the mapping improves over time. But the router follows its zones literally: a gap in a lane is open sea to it, and a route may cut through it against the traffic. So the app does not use the OSM data as it is.

How WeatherRouting repairs the traffic schemes

Section titled “How WeatherRouting repairs the traffic schemes”

Building lanes the way the chart reads them

Section titled “Building lanes the way the chart reads them”

When an area’s zones are fetched, the app builds each lane’s area from its scheme, the way a navigator reads the chart:

  • Each side to its own edge. A lane reaches the separation zone, separation line or boundary on each side, wherever the OSM line happens to lie between them. It never runs into a separation zone, and never past the middle towards a lane of opposite traffic.
  • Joined across gaps. Two pieces of the same lane, with the same traffic direction, one ending where the other starts further along the same line, become one lane across the gap. Lanes are never joined across a crossing area or a precautionary area: that water is not lane.
  • Closed where the chart closes them. A lane runs on as long as its flanking features do, and ends on the line between their tips, or where a boundary line crosses it.
  • Open mouths. A lane end that faces another lane of the same scheme close by runs on until it meets it.

After the lanes are built, any water left that is enclosed by a scheme’s own parts and touches the ends of at least two lanes becomes a junction: water where lanes meet. In a junction the router accepts any heading except one close to head-on against a lane ending there (within 45° by default). Leftover water that does not fit this pattern is not filled automatically. It shows in the area’s list of holes, so a person can look at it.

Rules only go so far: each new scheme brings a shape the rules did not foresee. Two kinds of hand correction cover the rest.

  • Corrected lane outlines. Authorised editors can correct a built lane’s outline on the map in the online version: move, add or remove its corners, which snap to the nearby OSM features. A lane can also be marked as a recommended track rather than a TSS lane, so the router ignores it. These corrections are shared: the relay keeps them and passes them on, so every user, online and in the installed app, gets the corrected lane. If the OSM data under a corrected lane changes later, the correction stays in force and is marked for review.
  • Your own zones. Anyone can draw zones of their own in the Areas tab: lanes, separation zones, roundabouts, junctions, and no-go or warning areas. Where your own zone overlaps an OSM lane or separation zone, the OSM zone wins for the router, so a roughly drawn circle does not block traffic following a lane. In the online version, zones that the administrator shares are visible to everyone, read-only.
  • The zones come from OpenStreetMap and its seamark data, because no official source is both open and practical.
  • The data is good but incomplete, especially for traffic lanes. WeatherRouting rebuilds lanes and junctions from the surrounding features, and shared hand corrections take care of the rest.
  • None of this replaces the official chart. Check your route against an up-to-date chart before you sail it.

Free software under AGPL-3.0-or-later · Source code · Credits

Generated using E.U. Copernicus Marine Service Information; https://doi.org/10.48670/moi-00054