Riverflow
Contents Contents
  1. Reading the map
  2. The network
  3. Where the water goes
  4. The live read
  5. Water quality
  6. Three classes of evidence
  7. Estimating a reach
  8. The names
  9. The ice
  10. The reservoirs
  11. Protected wetlands
  12. Pictures, and data
  13. Water-cycle coverage
  14. What it cannot do
  15. How it is rebuilt

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.

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.

LayerThe question it answersWhat it is drawn from
FlowHow much water is moving now?187 federal discharge series; only current, valid readings can drive 8'711 reaches
Relative to the long-term meanIs 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
TemperatureWhere is the 25 °C ceiling in play?The gauges that carry a thermometer, against GSchV Annex 2 No. 12(4)
Water qualityWhat was measured here, for which substance, and when?Every laboratory result in the current NAWA TREND prepared release, kept at its station
ReservoirsHow much water is held back, and how full is it?225 dams under federal supervision, and a weekly filling series since 2000
IceWhat has the ice lost, and how fast?Six dated glacier inventories, 1850 to 2023
Residual flowWhat does the Art. 31(1) arithmetic give?1'041 published Q347 points; illustrative, not a cantonal determination
Water useWho takes water out, and who puts heat in?Four federal registers: hydropower, abstractions, nuclear sites, treatment plants
WetlandsWhich water-dependent places have federal protection?Five federal inventories, drawn with their legal class and inventory identity intact
Sources and groundwaterWhere 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 four derived shares sum to 99.99 %. The four federal shares sum to 98.7 %, because the Adige basin in Val Müstair sits outside them. The derivation is not more accurate than the federal figures; it is more complete, and it says which cells it could not place.

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.

Acceptance rule. For each station the query selects the newest timestamp. The browser accepts discharge only when it is finite, non-negative, at most 30 minutes old and has a unit verified from the station's own hydrodaten plot. Stale, invalid and unit-unknown values remain inspectable but never drive a reach or an estimate.
Live legal screen. The page separately accepts a temperature only when its timestamp is valid and no more than 30 minutes old. A reported value strictly above 25.0 °C triggers review against GSchV Annex 2 No. 12(4); exactly 25.0 °C is at the ceiling, not above it. This is not a finding of breach. The feed does not establish human causation, the unaffected reference state, substantial mixing, the applicable permit or an exception.

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.

A measurement comes before a legal conclusion. Whether a result satisfies water-protection law depends on the correct parameter-specific requirement, sampling duration, water use, method and legal context. The map therefore does not colour a station red for “breach”. It preserves the evidence needed to make that assessment and links to the official source.

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.

ClassWhat the number isWhat it will bear
MeasuredA gauge sits on this reach; the figure is read from it.A measurement, at that point, at that minute. Nothing further downstream.
EstimatedThe 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 basisNo 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.

The long-term mean used here is HydroRIVERS 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.

What that fixed. Before the refusal the Aare's trunk read Aalte Rii, the Ticino read Riale Pian Perdasc over 57 reaches, and the Rhône's course was held by half a dozen side canals. After it, the Rhine runs 165 reaches, the Rhône 91, the Ticino 76 and the Aare 70. Of the large Swiss reaches — over 1'000 km² and inside the gauged network — 99 % now carry a name.
What it costs, and what still gets it wrong. Two canals that genuinely carry a trunk, the Nidau-Büren-Kanal and the Hagneck-Kanal, both cut for the Jura water correction, now read as the Aare. That is the water's own name and not a falsehood, only less local than the register could have been. And about two dozen reaches around Sierre and in the Lötschental still carry a neighbour's name, because nothing in the words or the network separates them. They are named here rather than quietly corrected.

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.

This is area, not volume, and the two have not moved together. Through recent decades the ice thinned faster than it shrank in plan, because a glacier loses thickness over its whole surface before it loses its outline. The area figures on this map are measured. Any volume figure quoted is cited, and comes from separate work by separate methods.
The apparent gain from 2010 to 2016 is a method break, not ice growth. SGI2010 reports 944.4 km². GLAMOS found that applying the later delineation rules to the 2010 imagery gives about 1'009 km², rather than 944.4 km². The map keeps both published inventories unchanged and does not treat their 16.9 km² difference as physical change. See the GLAMOS methodological assessment.

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.
The layer shows each reservoir’s full-capacity volume and its region’s weekly filling level. It cannot show the current level of the Grande Dixence or any other individual dam. The source reports four regions, so every dam in a region receives the same colour.

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.

InventoryObjectskm²Protection
Alluvial zones326278.5 Auenverordnung, SR 451.31
Raised and transitional bogs55256.7 SR 451.32, and Art. 78(5) BV
Fens1'371228.1 SR 451.33, and Art. 78(5) BV
Amphibian spawning sites873222.3 SR 451.34
Mire landscapes89875 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.

Art. 78(5) of the Federal Constitution. Mires and mire landscapes of particular beauty and national importance are protected: no installations may be built and the ground may not be altered, save for facilities serving the mires’ own protection or their existing agricultural use. Unlike almost every protection in Swiss environmental law there is no balancing test here to lose. The article is the one the Rothenthurm initiative wrote into the Constitution in 1987, and Rothenthurm is object number 1 of the mire-landscape inventory — on this map, under that number.

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

415 of the 8'711 reaches on this map run through an alluvial zone of national importance. On those reaches two duties meet: Art. 4 of the Auenverordnung requires the natural dynamics of the water regime to be preserved, and Art. 31 GSchG puts a floor under the quantity left in the bed where water is taken. The residual-flow layer draws the second. This one draws where the first also applies. Hovering such a reach says so in its own readout, whichever layer is on.

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.

The ages disagree with the aims. The amphibian inventory carries a federal data state of May 2026. The alluvial-zone inventory — the one whose protection aim is a quantity of water — carries November 2017, and so does the mire-landscape inventory that holds Rothenthurm. Both are on the sources page with every other date.

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.

PathwayCurrent coverageNeeded next
Precipitation, snow, soilNot mappedObserved precipitation, snow water equivalent and soil moisture
IceSix area inventoriesAnnual mass balance and volume
Groundwater and springsGroundwater-body context onlyNAQUA levels, spring discharge and recharge
Rivers and lakesCurrent station observations on a model network; NAWA TREND laboratory results, 2011–2024Small streams, sediment, cantonal quality, lake profiles and biological condition
StorageDams and regional stored energyNamed-reservoir levels and lake storage
Use and returnFour historical registersSector volumes, transfers, return flows and current permits
Legal protectionResidual flow, wetlands and protection zonesConcessions, expiry, orders, enforcement and cantonal decisions
Across the borderSea-basin context and frontier gaugesMatched 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.

StepWhat it buildsWhen it runs
00Fetches the federal source archivesby hand
01The gauging stations, with their unit resolutionby hand
02The river networkby hand
03Lakes and the borderby hand
04The glacier inventoriesby hand
05The four registers of water useby hand
06The weekly reservoir filling seriesweekly
07Q347 and the Art. 31(1) minimumby hand
08The vintage audit: every source's data stateweekly
09Glacier length changeby hand
10The names, joined to the networkby hand
11The twenty-six cantonal delivery datesweekly
12The five federal inventories of protected wetlandsweekly
13The four sea basins, their shares, gauges and iceby hand
14The five-language publicationeach release
15The social preview imageby hand
16Machine-readable source provenanceweekly
17The NAWA TREND water-quality recordweekly
18The canton monitoring evidence auditweekly

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.

Back to the map