Rekin226/aquascope-gauges
AquaScope gauges The station catalog of every water-observation source AquaScope can reach, harvested on a schedule and published as GeoParquet. Last run 2026-09-23T23:27:06+00:00 with aquascope 0.18.0: 75,721 stations from 11 of 11 sources. Files: stations.parquet: GeoParquet 1.0 (WKB point geometry, WGS84). One row per station: source, station_id, site_id, name, latitude, longitude, variables, period_start, period_end, url (deep link to the agency page), river, country… See the full description on the dataset page: https://huggingface.co/datasets/Rekin226/aquascope-gauges.
AquaScope gauges
The station catalog of every water-observation source AquaScope can reach, harvested on a schedule and published as GeoParquet. Last run 2026-09-23T23:27:06+00:00 with aquascope 0.18.0: 75,721 stations from 11 of 11 sources.
Files:
stations.parquet: GeoParquet 1.0 (WKB point geometry, WGS84). One row per station:source,station_id,site_id,name,latitude,longitude,variables,period_start,period_end,url(deep link to the agency page),river,country,agency,license,redistributable,extra.stations.geojson: the same rows as GeoJSON for tools that don't read parquet.health.json: per-source status of the last run (station count, seconds, error if any).signatures.parquet: flow signatures of every mirrored discharge station (source,station_id, record span and completeness, mean flow, Q5/Q50/Q95, baseflow index, Mann-Kendall p and Sen slope of the annual maxima withamax_trendrising/falling/none, GEV L-moments Q100, mean day of the annual maximum, andnotessaying why a value is empty). Join on(source, station_id).
site_id identifies a physical site within a source and defaults to station_id. Group by (source, site_id) to associate sub-stations while preserving every station record.
Query it in place
DuckDB reads the parquet over HTTPS without downloading it:
INSTALL httpfs; LOAD httpfs;
SELECT source, count(*) FROM
'https://huggingface.co/datasets/Rekin226/aquascope-gauges/resolve/main/stations.parquet'
GROUP BY source ORDER BY 2 DESC;Or from Python: pandas.read_parquet("hf://datasets/Rekin226/aquascope-gauges/stations.parquet").
Sources and terms
Only sources whose terms allow redistribution will have their observations mirrored (Phase 1 of #188); every source appears in the catalog with a link back to the agency. Attribution for each source is in the AquaScope registry (aquascope.registry.SOURCES[key].attribution).
Observations (filling up week by week)
Daily values per station as obs/<variable>/<source>/<station_id>.csv.gz (date,value; discharge in m3/s, water and groundwater level in m, precipitation in mm/day), only for sources whose terms allow mirroring, plus one Parquet bundle per variable and source, obs/<variable>/<source>.parquet (station_id, date, value; join station_id to stations.parquet). obs/manifest.json lists every harvested station with its period, count and unit, and every bundle. Read one station:
pd.read_csv("hf://datasets/Rekin226/aquascope-gauges/obs/discharge/usgs/USGS-01646500.csv.gz")a whole source in one go:
pd.read_parquet("hf://datasets/Rekin226/aquascope-gauges/obs/discharge/hubeau_hydrometrie.parquet")or with DuckDB, joined to the catalog:
SELECT s.name, o.date, o.value
FROM 'hf://datasets/Rekin226/aquascope-gauges/obs/discharge/uk_ea.parquet' o
JOIN 'hf://datasets/Rekin226/aquascope-gauges/stations.parquet' s USING (station_id)
WHERE s.name ILIKE '%thames%'Catchments (BasinATLAS, basins/)
The level-12 sub-basins of HydroATLAS v1.0 / BasinATLAS (Linke et al. 2019, CC BY 4.0) with their routing and attributes, so any point on land can be placed in its catchment and described: basins/lev12.fgb (simplified polygons, spatially indexed; point lookups over HTTPS read a few kilobytes), basins/lev12_topology.parquet (hybas_id, next_down, main_bas, sub_area, up_area, ... plus a representative point), basins/lev12_attributes.parquet (every BasinATLAS attribute per sub-basin, incl. the upstream-aggregated *_u* fields), and basins/lev12.pmtiles / basins/lev06.pmtiles for maps. Built by basins.yml; aquascope basins at LAT LON and the MCP tool describe_catchment read them. Cite: Linke, S., Lehner, B., Ouellet Dallaire, C., et al. (2019). Global hydro-environmental sub-basin and river reach characteristics at high spatial resolution. Scientific Data 6: 283. https://doi.org/10.1038/s41597-019-0300-6
How it is built
aquascope harvest stations --out archive --publish Rekin226/aquascope-gauges runs weekly from GitHub Actions. Every collector answers stations() from its own agency API; nothing is hand-edited. Add a source to AquaScope and it appears here on the next run.
Citation
Cite the AquaScope software (Zenodo concept DOI in the repository README) and the agency of any source you use, as listed in the table above.
