One API encompassing hydrological station catalogs from national agencies, research groups, and volunteer networks.
The motivation for hydrostations is observability.
More features of the water cycle are visible via remote sensing, and can be simulated through increasingly complex digital models. hydrostations exists to understand the distribution of in situ stations measuring hydrological parameters, providing insight into where we can, and cannot, see this vital resource.
The station is the unit of interest. hydrostations is designed to complement other tools in the space, like AquaFetch and hydrodownloadR.
Declared in YAML, not hardcoded per agency. source_class
marks whether a feed is an official service, an academic
compilation, or a volunteer network. Each comes with different
liveness and quality expectations. The first column is what you'd
pass to get_stations(source=…).
No sources match the current filters.
Coverage is generated from each register's own declared coverage and compartments, not live station counts. Where a real country or continent shape is available it's clipped to the declared area; otherwise a bounding box is shown. Filter by compartment or toggle networks inside the map.
Snapshot generated by examples/render_coverage_map.py.
hydrostations and the sibling package
hydrocrosswalk are decoupled, but together
they provide an interface to join a raw station pull with
a watershed or other admin unit.
Snapshot generated by hydrocrosswalk/examples/render_map.py.
install
uv add hydrostations
fetch stations
from hydrostations import get_stations stations = get_stations( basin="niger", compartment="Q", ) # -> GeoDataFrame: canonical_id, source, source_id, # source_class, geometry, compartment, license, …
every record includes