Skip to main content

No project description provided

Project description

Colombia Hydrodata

PyPI Docs Open fetch-data in Colab Open plot-data in Colab

Python client for accessing hydrological and meteorological data from Colombia.

The library integrates official IDEAM data sources and exposes them through a clean, Pythonic API for station discovery, dataset retrieval, and built-in time-series plotting.

Data is fetched from:


Architecture

The library follows a client -> station -> dataset hierarchy.

Client
  └── Station
        └── Dataset
  • Client loads the station catalog and exposes methods to query and filter stations.
  • Station represents an IDEAM monitoring station with its full metadata and available variables.
  • Dataset represents a time series retrieved from the Aquarius WebPortal.

Installation

pip install colombia-hydrodata

Or with Poetry:

poetry add colombia-hydrodata

Quick Start

Interactive notebook: Open fetch-data.ipynb in Colab

from colombia_hydrodata import Client

client = Client()

# Fetch a single station
station = client.fetch_station("29037020")
print(station.name)

# Fetch its discharge time series
dataset = station["CAUDAL@HIS_Q_MEDIA_D"]
print(dataset.data.head())

Plotting

Interactive notebook: Open plot-data.ipynb in Colab

Datasets expose built-in plotting helpers through the plot property.

import matplotlib.pyplot as plt

dataset.plot.time_series(title=station.name)
plt.show()

For decomposed series, you can generate the built-in analysis layouts:

dataset = (
    station["NIVEL@NV_MEDIA_D"]
    .sight_level(-0.367)
    .rescale(1 / 100)
    .interpolate()
    .deconstruction()
)

fig, axs = dataset.plot.time_series_analysis(figsize=(10, 6), tight_layout=True)
plt.show()

You can also inspect the annual envelope and highlight specific years:

fig, axs = dataset.plot.daily_series_analysis(
    years=[2024, 2025],
    figsize=(10, 4),
    tight_layout=True,
)
axs[0].legend()
plt.show()

Client

Client is the main entry point. On initialization it downloads the full IDEAM station catalog from Datos Abiertos Colombia and stores it internally as a GeoDataFrame.

from colombia_hydrodata import Client

client = Client()

Fetching Stations

Single station

station = client.fetch_station("29037020")

Returns a Station object with full metadata.

Multiple stations by ID

stations = client.fetch_stations(["29037020", "29037021"])

Returns a list of Station objects.


Spatial Queries

Bounding box

stations = client.fetch_bbox(
    xmin=-75.0,
    ymin=9.5,
    xmax=-74.0,
    ymax=10.5,
)

Shapely geometry

from shapely.geometry import Polygon

region = Polygon(...)
stations = client.fetch_region(region)

Catalog only

To get a lightweight GeoDataFrame of station metadata without instantiating Station objects:

gdf = client.stations_in_region(region)
gdf = client.stations_in_list(["29037020", "29037021"])

Filtering Stations

Use the Filters dataclass to narrow results by metadata fields. All filters are optional and combined with logical AND.

from colombia_hydrodata import Client
from colombia_hydrodata.filters import Filters

client = Client()

filters = Filters(
    category="Limnimetrica",
    department="Bolivar",
    status="Activa",
)

stations = client.fetch_region(region, filters=filters)

Available filter fields:

Field Description
category Station category
department Department
municipality Municipality
status Operational status
owner Owning institution
hydrographic_area Hydrographic area
hydrographic_zone Hydrographic zone
hydrographic_subzone Hydrographic subzone

Station

A Station is a frozen dataclass with full metadata about an IDEAM monitoring station.

station = client.fetch_station("29037020")
print(station)

It also provides the dataset access points:

dataset = station.fetch("CAUDAL@HIS_Q_MEDIA_D")
dataset = station["CAUDAL@HIS_Q_MEDIA_D"]

Both return a Dataset object.


Dataset

A Dataset represents a time series associated with a station and a variable.

dataset = station["NIVEL@NV_MEDIA_D"]

print(dataset.station)
print(dataset.variable)
print(dataset.data.head())

The data DataFrame has two core columns:

Column Description
timestamp Datetime
value Numeric measurement

Datasets also expose transformation helpers such as:

  • sight_level()
  • rescale()
  • interpolate()
  • detrend()
  • seasonal()
  • anomalies()
  • deconstruction()

And plotting helpers through:

dataset.plot

Documentation

Full documentation is available at:

https://sebnarvaez19.github.io/colombia-hydrodata/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colombia_hydrodata-0.3.0.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

colombia_hydrodata-0.3.0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file colombia_hydrodata-0.3.0.tar.gz.

File metadata

  • Download URL: colombia_hydrodata-0.3.0.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for colombia_hydrodata-0.3.0.tar.gz
Algorithm Hash digest
SHA256 94fd4981799884a3043eefdd10e490b6592920646c7acdf382eacc45339079f2
MD5 f3acce3d4570d11ec6fe344c337afcf7
BLAKE2b-256 71c308ae3a3f4cf1ae31bf9038aee028dd434714228a8eee448a8edb1c306876

See more details on using hashes here.

Provenance

The following attestation bundles were made for colombia_hydrodata-0.3.0.tar.gz:

Publisher: release.yml on sebnarvaez19/colombia-hydrodata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file colombia_hydrodata-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for colombia_hydrodata-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 abcd853c54a443d171f38c70bf6c9ecb268680d4670176e3293cec079d1fe6e7
MD5 993a77c4f1dd7a85a1ef8e767730ada4
BLAKE2b-256 d1bc1da29f3c93e9d325f61ee135e19efe13cc52eddb5ff4015e8729da0e883b

See more details on using hashes here.

Provenance

The following attestation bundles were made for colombia_hydrodata-0.3.0-py3-none-any.whl:

Publisher: release.yml on sebnarvaez19/colombia-hydrodata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page