River gauges

Back to the map
This is not a flood warning service.
Official warnings come from the Bureau of Meteorology. In an emergency call 000. For SES assistance call 132 500. Never enter, drive through or approach floodwater.

What this is

The gauges on this map are read every few minutes and every reading is kept. That is the whole point of the site: the Bureau of Meteorology publishes only the last four days of river heights, so once a flood peak scrolls off its page it is gone from public view. This server keeps what it has seen, and the record deepens for as long as it runs.

It is a small self-hosted thing, not an official service, and it can be wrong. Readings are operational and unvalidated: they arrive unchecked from the instrument, they can be delayed, and they can be missing for a day or more. Where a gauge has published nothing, this site shows a gap rather than drawing a line across it.

Where the data comes from

Each gauge names its own source. Nothing here is measured by this site.

SourceLicenceTimestamps

How times are shown

Every reading is stored in UTC and converted only when it is drawn, so nothing shifts when daylight saving starts or ends. By default times appear in your browser's own time zone. On a gauge you can switch to gauge time, which is the zone the gauge itself reports in and matches what the Bureau prints on its own pages.

South Australia moves between ACST (+9:30) and ACDT (+10:30). Where a source states its offset, that offset is read from the source rather than assumed — assuming one is wrong for about half the year.

Privacy

No accounts, and no third-party trackers — nothing here reports to an advertising network or an analytics company. The map tiles come from a public basemap provider and the fonts from Google Fonts; nothing else leaves this server.

This server does keep its own log of visits. Each request records the address it came from, the page asked for, the browser and system reported by it, and where the link was followed from. Pages also report back the size of the browser window, the device's pixel ratio, the time zone it is set to, and how long the page stayed open. It is read only by whoever runs this site, is never sold, shared or sent anywhere else, and is deleted on a schedule. A cookie is set to tell one visit from the next; it holds a random-looking identifier and nothing else.

If you submit a photograph, the image is re-encoded before it is stored, which discards all embedded metadata — including GPS coordinates. A photograph taken from your own back yard will not publish where you live. The only thing kept about a submitter is a salted hash of their IP address, used to rate-limit submissions; no address is stored against a photo, and it cannot be recovered from the hash.

Contributing

Photographs. Open a gauge and use "Submit a photo". Each one is pinned to the river level recorded when it was taken, which over time builds a visual scale for what a given height actually looks like. Nothing appears publicly until it has been reviewed. Never enter or approach floodwater to take a photograph.

Position corrections. Most sources publish no coordinates at all, so many pins are placed by hand and marked approximate. If you know exactly where a gauge sits, that is genuinely useful — get in touch.

Your own sensor. This service accepts readings from home-built water level sensors. An administrator creates a device and issues a token, then the sensor posts to:

POST /api/ingest/v1/<device-id>
Authorization: Bearer <token>
Content-Type: application/json

{ "readings": [ { "at": "2026-08-19T03:05:00Z", "value": 0.36 } ] }

A bare number as text/plain works too, for firmware without a JSON encoder. If a reading carries no timestamp it is stamped on arrival and labelled as such, so it is never mistaken for a measured time. Re-sending the same reading is harmless. MQTT is supported where the operator has configured a broker.

Contact

—