Method
How this map is made, and how to read it
Each figure ends a chain of source data, joins, projection and inference. This page explains every layer, how to read it and where its evidence ends.
Structural figures are checked against the committed data at every release. Live figures are accepted per station only when their time, value and unit pass the rules below.
Reading the map
The map draws one country ten ways. Layers are grouped by the reader’s question, not by the office that publishes them.
| Layer | The question it answers | What it is drawn from |
|---|---|---|
| Flow | How much water is moving now? | 187 federal discharge series; only current, valid readings can drive 8'711 reaches |
| Relative to the long-term mean | Is that high or low for this river? | Current flow divided by a modelled long-term annual mean. A ratio, not a drought index; not quotable |
| Temperature | Where is the 25 °C ceiling in play? | The gauges that carry a thermometer, against GSchV Annex 2 No. 12(4) |
| Water quality | What was measured here, for which substance, and when? | Every laboratory result in the current NAWA TREND prepared release, kept at its station |
| Reservoirs | How much water is held back, and how full is it? | 225 dams under federal supervision, and a weekly filling series since 2000 |
| Ice | What has the ice lost, and how fast? | Six dated glacier inventories, 1850 to 2023 |
| Residual flow | What does the Art. 31(1) arithmetic give? | 1'041 published Q347 points; illustrative, not a cantonal determination |
| Water use | Who takes water out, and who puts heat in? | Four federal registers: hydropower, abstractions, nuclear sites, treatment plants |
| Wetlands | Which water-dependent places have federal protection? | Five federal inventories, drawn with their legal class and inventory identity intact |
| Sources and groundwater | Where does the water come from? | Groundwater bodies, headwaters, sub-catchments, and the protection zones in force |
Selecting water
Hover over water to see its name, value and evidence class. Select it for the full record: discharge, long-term mean, relative flow, upstream catchment and the basis for the figure. Scroll or pinch to zoom; drag to pan. The address preserves the layer and view, so a copied link returns to the same place.
Names live on the pointer rather than on the plane. A label on a map has to be somewhere, and everywhere it can go is already spoken for: over the water it hides the water, beside the water it is in the next canton, off to one side it lands under the legend. Attaching the name to the reading instead costs nothing, collides with nothing, and has the advantage that the name you get is the name of the reach you asked about. Lakes and glaciers keep their names on the plane, because a lake name sits inside a shape that is its own and competes with nothing.
Time, and the switch that strips the map back
Two layers describe a change rather than a state, and they get a time ribbon: the reservoirs run twenty-six years of weekly filling, the ice runs six surveys held in their real intervals of 81, 42, 37, 6 and 7 years. Press play, or drag the scrubber.
Live data only removes every estimate and archival layer. What remains changes with the feed: a reach survives only while its selected gauge has a finite, non-negative discharge, a verified unit and an observation no more than 30 minutes old.
The network
The river lines are HydroRIVERS v1.0, clipped to Switzerland and then filtered at 5 km² upstream area. The source itself includes rivers only where catchment is at least 10 km² or modelled mean flow is at least 0.1 m³/s. It is therefore not a complete inventory of 5–10 km² streams. The extract has 8'711 unique reaches, each with an identifier, the reach immediately downstream of it, a Strahler order, an upstream catchment area and a modelled long-term mean discharge.
It is a modelled geometry and not the federal watercourse layer. HydroRIVERS is a global product derived from a digital elevation model, and it is generalised far coarser than a Swiss topographic map: a single reach can cut a meander the real river takes, and two channels 200 m apart can be one line. At country scale that is invisible. At valley scale it is the reason a line does not sit exactly where the water does, and it is the reason the name join described below has the failure mode it has.
The map is drawn in Web Mercator, which is also the projection the federal WMS services answer in, so the optional relief and grey-topographic grounds and the four source overlays need no reprojection: the rectangle on screen is asked for in the coordinates it is already in.
Where the water goes
Every reach in HydroRIVERS carries MAIN_RIV, the identifier of the most
downstream reach of its river system. Grouping the Swiss extract by that field gives the
river systems; identifying each system by the reach its water leaves the country through
gives the four European sea basins. Nothing about the basins is quoted: they fall out of a
field the network already carries.
The share of the country in each is then measured rather than taken from a federal page. A one-kilometre grid is laid over the border polygon, every cell whose centre falls inside it is assigned to the basin of the nearest mapped channel through a 0.02° vertex hash, and the cells are counted. That gives 41'128 cells inside a simplified border of 41'140 km², against the official 41'291 km²: 0.4 % is lost to the simplification of the border ring, and the shares are shares of what the grid found, not of the official area.
The last Swiss gauge in each basin is the one with the largest modelled mean, and its distance from the border is measured by brute force against the 749 vertices of the border ring. That distance is the point of the exercise: it is what shows that on the Ticino there is no frontier gauge at all, and the map's own use layer is what shows that on the Inn there is one and it stands inside a diverted reach.
The glaciers are sorted by the same rule. Each body in the 2023 inventory and each outline in the 1850 inventory is assigned to a basin by its own centroid. The 2023 areas are the inventory's own and sum exactly to its published total; the 1850 areas are measured here from the outlines by the shoelace and sum 1.1 % high, because a hole inside an outline is counted as ice. Both figures, and the discrepancy, are printed on the page that uses them.
The result is site/data/basins.json, and it is read by the
opening section of the About page.
The live read
Discharge, water level and water temperature come from the gauging network of the Federal
Office for the Environment, queried through LINDAS, the federal linked-data service, with
one SPARQL request against the graph <https://lindas.admin.ch/foen/hydro>.
The federal series updates roughly every ten minutes and the page re-reads it on that
cadence, for as long as it is the tab being looked at. A hidden tab stops asking, and on
return serves out whatever is left of the cadence. The button forces a read at any
time.
The station file has 233 unique stations; 227 snap to a reach. 187 carry discharge, landing on 173 reaches. Five discharge stations have no verifiable unit, so 168 reaches can ever be accepted as measured.
Water quality: measurements, not a verdict
The quality layer contains the complete current prepared NAWA TREND record: 1'543'996 published results at 144 flowing-water stations, from 2011 through 2024. Its 724 parameter-and-unit series remain separate. The same substance reported in a different unit is not silently combined.
The country view asks one narrow question at a time: one parameter, one unit, one year. A filled diamond is the median of that station's quantified results in that year. A hollow diamond means it was sampled but every valid result lay below the determination limit. An unfilled faint diamond means it was not sampled for that selection. Values below the limit are censored observations, not zero; they are counted and never invented into the median. Missing values remain missing.
Colour is comparable across years. Each parameter uses one fixed range derived from the 5th, 50th and 95th percentiles of all station-year medians in the release; wide positive ranges use a logarithmic scale. Values beyond the endpoints keep the endpoint colour. The scale shows the distribution of measurements. It is not a health class, a composite score or a legal threshold.
No station value is spread along a river and no gap is interpolated. Open a station and the browser reads the exact rows from BAFU's public API: sampling window and type, measured value, determination and detection limits, method, uncertainty and laboratory remark. The baked annual summary remains available if that live read fails.
NAWA is a national long-term programme for flowing waters. It does not replace denser cantonal monitoring and this layer does not cover lakes, biological condition or an unmeasured reach. See the source, licence and data state.
Three classes of evidence
This is the claim the map makes about itself, and it is the reason the whole project exists: most of what you are looking at is inference. Every reach on the screen belongs to exactly one of three classes, and the bar at the top of the map counts them from the drawing itself on every live read, so it cannot drift away from what is on screen.
- Eligible gauge reach — 168 (1.9 %)
- Connected estimate — 5'125 (58.8 %)
- No current basis — 3'418 (39.2 %)
These are structural upper bounds, assuming every unit-verified discharge gauge is current. The bar on the map is live and is normally lower.
| Class | What the number is | What it will bear |
|---|---|---|
| Measured | A gauge sits on this reach; the figure is read from it. | A measurement, at that point, at that minute. Nothing further downstream. |
| Estimated | The reach's long-term mean, scaled by how far the nearest gauge stands from its own mean. | An indication of direction and rough size. Not a figure to put in a pleading. |
| No basis | No gauge below it and none above it. The long-term mean, and nothing else. | Nothing about today. It is drawn as unknown rather than guessed. |
Estimating a reach
An ungauged reach is given a number in one step, and the step is deliberately crude because a crude rule that can be stated in a sentence is easier to argue with than a sophisticated one that cannot.
Each accepted gauge yields an anomaly: its current discharge divided by the long-term mean. A reach with no gauge takes the anomaly of the first gauged reach downstream of it, because that is the water it is about to become, and multiplies its own long-term mean by it. Failing that it takes the closest connected gauge on any upstream branch. Failing both, it has no basis.
DIS_AV_CMS, which
is modelled, not a federal station statistic. The scaling does not model diversions,
storage or travel time and does not enforce mass balance at confluences. It is a directional
signal, not a discharge measurement or drought index.The names
HydroRIVERS is anonymous. It carries an identifier, an area and a discharge, and no name at all. The names come from swissNAMES3D, the official gazetteer published by swisstopo, release 2026, and they are joined to the network by proximity.
The gazetteer gives a name and one anchor point per placement, not a named geometry: the Rhine appears six times along its course and the Aare sixteen. That is a label file, and it is used as one. Each anchor is snapped to the nearest reach, which gives it two things it lacks — how much country drains past the point where the name is written, so the map knows how large the water is, and the local direction of the channel.
Three numbers, and each of them was tuned
Nothing in this project fought back harder, and the three numbers that settle it are worth stating because each one is a compromise rather than a fact.
- 500 m of snap radius. The two sources are drawn at different scales, and the real gap runs from 85 m on the Rhine at Schaffhausen through 254 m on the Ticino to 1'097 m on the Reuss. Tighten it to 300 m and the Limmat, the Emme and the Sarine silently vanish. Widen it to 1'200 m and the Äpelööbächlein comes out as the fifth largest watercourse in Switzerland.
- 25 km of clustering. Fourteen different brooks in this country are called Dorfbach and they are not one river, so anchors sharing a name are grouped by proximity and each group is ranked on its own.
- Three placements before a cluster is believed. A cluster of three or more takes the largest reach any of its anchors reached; a cluster of one or two takes the smallest. That is what stops the Erzbach, written twice beside the Aare, from claiming 10'706 km² on the strength of one placement that fell 131 m from the trunk.
Carrying a name along its own water
The anchors alone name 1'691 of 8'711 reaches, so a reader pointing between two placements would be told nothing about a river they can plainly see is the Aare. Each name is therefore carried along its own channel, on the rule rivers are actually named by: the majority partner keeps the name. Downstream it runs while the reach it came from still supplies at least half of what flows below, and stops at the confluence where it no longer does. Upstream it follows the branch carrying most of the water, stopping when the only choice left is a tributary less than half the size. Names are processed largest first and a claim already made is never overwritten. That carries the count to 3'433 reaches.
Refusing a brook the Rhine
A canal running within about 200 m of a trunk river cannot be told from that river in a network generalised this coarsely, and the snap has nothing to weigh: within 500 m of the Aare the register has also written the Rothkanal, the Erzbach and a Dorfbach, and no Aare label falls near enough to argue. Corroboration cannot settle it either — the gazetteer writes the Rhine six times in the whole country and the Töss once.
What settles it is the register's own vocabulary. A Bach is a brook, a Riale a mountain brook, a Kanal a cut channel, an Aalte Rii and a Vieux Rhône courses the river has left. None of them drains four figures of country. So a name that declares itself small is refused a reach above 500 km², and the reach is left for the trunk's own name to be carried onto.
The ice
Six dated inventories from GLAMOS — 1850, 1931, 1973, 2010, 2016 and 2023 — with the 2023 bodies drawn over the 1850 outlines, so what stays in colour is the ice that has gone. The tongue sparkline in a glacier's panel is the Swiss Glacier Length Change series, measured every autumn since the 1880s.
Six surveys made between 1850 and 2023 use different instruments and delineation rules: a plane-table survey, an aerial photogrammetric one and an airborne-laser one are not the same measurement, and the older outlines carry the uncertainty of their own century. What the series is strong evidence of is long-run change. The 2010–2016 segment is not a rate.
For phone performance, the 1931, 1973, 2010 and 2016 silhouettes omit bodies smaller than 0.05 km². Their totals include every body. The drawn shapes represent 98.7, 97.7, 98.1 and 98.7 % of the respective inventory area.
The reservoirs
Two federal registers, and they do not describe the same objects. Holding both without letting either borrow the other's authority is the whole difficulty of this layer.
- The dams are structures: 225 of them under federal supervision, each with the volume its reservoir holds when full. That is a fixed property and it is drawn as one, by area.
- The filling level is a weekly figure in gigawatt hours — stored electricity, not stored water — published for four regions and for nothing smaller, since 3 January 2000.
Protected wetlands
Five federal inventories belong on this map because their protection aims depend on water. The Auenverordnung requires the natural dynamics of water and sediment to be preserved. Mires depend on their water table. The map places these duties beside the water they protect.
| Inventory | Objects | km² | Protection |
|---|---|---|---|
| Alluvial zones | 326 | 278.5 | Auenverordnung, SR 451.31 |
| Raised and transitional bogs | 552 | 56.7 | SR 451.32, and Art. 78(5) BV |
| Fens | 1'371 | 228.1 | SR 451.33, and Art. 78(5) BV |
| Amphibian spawning sites | 873 | 222.3 | SR 451.34 |
| Mire landscapes | 89 | 875 | SR 451.35, and Art. 78(5) BV |
The inventories overlap each other — a fen sits inside a mire landscape, an
alluvial zone inside both — so these areas must not be added up. Each is the federal
shape_area attribute for that inventory, not something measured
off the simplified outline this map draws.
Two protections, drawn as two
Alluvial zones and amphibian spawning sites are protected by ordinance, and both aims are stated in terms of water, so they are drawn in the water's own pale hue. Bogs, fens and mire landscapes are drawn in the ink every statutory quantity on this map wears — bone on the night surface, sepia on the day one, a warm earth against a cool ground either way — because they are held by something stronger than an ordinance.
Mire landscapes are drawn as an outline and never filled. They are containers, 875 km² of them, and a fill would bury the bogs they are drawn around.
Where the two layers land on the same water
A reach counts as running through a zone when a vertex of its line falls inside the zone's boundary. That is a coarse test and it is the right coarseness: the network is generalised to about a hundred metres, so a finer test would be answering a question the geometry cannot support. It locates the overlap; it does not measure it.
What is drawn, and what waits for the zoom
Outlines are simplified to 45 m. Objects smaller than about 1.5 ha have no outline at any zoom this map reaches and are drawn as a ring instead — a third of the raised-bog inventory is like this, because the ordinance protects patches of a few hundred square metres, and a map that dropped them would be saying they are not there. At country view the smallest objects wait: four hundred and forty-four rings over the country is a texture, not a fact. Zoom in and every object of every inventory is on the screen.
Every object carries its number and a link to its federal object sheet, the PDF that holds the protection aim and the boundary description. The number, not the name, is the unit the ordinance and any decision use, so the panel gives it the same weight as the name. Parcels filed under one number are shown as one object.
Pictures, and things that are data
Three of the four overlays on the water-sources layer, and both optional grounds, are drawn by a federal or cantonal server for the rectangle on screen and arrive as an image. This map cannot query them, cannot date them from the picture, and cannot check them. It can only place them correctly and say what they are.
The headwaters are the exception: they are first-order reaches of this map's own network, drawn in this map's own ink. And a headwater is not a spring. It is a reach with nothing above it, clipped at 5 km² of upstream area — the top of the network as this map draws it, and the part of the country with no gauge anywhere above it.
The hillshade is composited differently on each surface, and the difference is not decoration. swissALTI3D's relief is drawn for white paper: mid grey where the ground is flat, which is most of the picture. On the day surface it is left as drawn and multiplied into the page, so it can only take light away and the flat ground barely marks the paper. On the night surface it is inverted and composited with lighten, so it can only add light: flat ground falls back to the plane's own black and only the lit slopes are left. Dropped on unaltered, it would turn the country into a grey slab either way and take the discharge ramp's contrast with it.
Water-cycle coverage
The project aims to trace water through the whole cycle and identify the law protecting each essential pathway. This release covers only part of that chain.
| Pathway | Current coverage | Needed next |
|---|---|---|
| Precipitation, snow, soil | Not mapped | Observed precipitation, snow water equivalent and soil moisture |
| Ice | Six area inventories | Annual mass balance and volume |
| Groundwater and springs | Groundwater-body context only | NAQUA levels, spring discharge and recharge |
| Rivers and lakes | Current station observations on a model network; NAWA TREND laboratory results, 2011–2024 | Small streams, sediment, cantonal quality, lake profiles and biological condition |
| Storage | Dams and regional stored energy | Named-reservoir levels and lake storage |
| Use and return | Four historical registers | Sector volumes, transfers, return flows and current permits |
| Legal protection | Residual flow, wetlands and protection zones | Concessions, expiry, orders, enforcement and cantonal decisions |
| Across the border | Sea-basin context and frontier gauges | Matched downstream observations and transboundary duties |
What this map cannot do
The map does not prove a case. It identifies the relevant reach, the age of each register and the quantities absent from open federal data. Its limits follow.
- It is not a complete account of Swiss water. The table above is the development roadmap, not data the current map claims to contain.
- It does not cover every stream. HydroRIVERS omits many small or dry headwaters; absence from this map does not mean absence on the ground.
- It cannot tell you a concession's expiry date. For an existing abstraction that date, and not today, is the operative one. It is in the concession, and no federal open dataset carries it.
- It cannot tell you a nuclear station's cooling volume or thermal load. No federal open dataset publishes either. Those figures sit in the cantonal concession and in the operators' own reporting.
- It cannot tell you how full one named reservoir is. See above.
- It cannot establish causation. The glacier inventories and the reservoir series are strong evidence of a change of state. They are not, on their own, evidence that any named party caused it. Attribution is a separate question needing separate sources.
- It cannot find a breach. A datum here is a fact about a river. The step to a finding is the lawyer's, and it needs the applicable requirement, sampling design, concession, licence and site.
How it is rebuilt
The build uses Bash, curl, unzip, Node and a pinned mapshaper release. Numbered steps write
the files in site/data; later steps read earlier outputs.
| Step | What it builds | When it runs |
|---|---|---|
| 00 | Fetches the federal source archives | by hand |
| 01 | The gauging stations, with their unit resolution | by hand |
| 02 | The river network | by hand |
| 03 | Lakes and the border | by hand |
| 04 | The glacier inventories | by hand |
| 05 | The four registers of water use | by hand |
| 06 | The weekly reservoir filling series | weekly |
| 07 | Q347 and the Art. 31(1) minimum | by hand |
| 08 | The vintage audit: every source's data state | weekly |
| 09 | Glacier length change | by hand |
| 10 | The names, joined to the network | by hand |
| 11 | The twenty-six cantonal delivery dates | weekly |
| 12 | The five federal inventories of protected wetlands | weekly |
| 13 | The four sea basins, their shares, gauges and ice | by hand |
| 14 | The five-language publication | each release |
| 15 | The social preview image | by hand |
| 16 | Machine-readable source provenance | weekly |
| 17 | The NAWA TREND water-quality record | weekly |
| 18 | The canton monitoring evidence audit | weekly |
The Monday refresh rebuilds stations, reservoirs, cantonal dates, wetlands, water quality, monitoring evidence, source vintage and provenance; it then verifies and commits the result. Annual names and deterministic basin geometry are rebuilt when their inputs change. The sources page also checks federal data states in the reader’s browser, so a date can update between scheduled builds.