Skip to main content

No project description provided

Project description

Colombia Hydrodata

PyPI Docs

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

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

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.2.0.tar.gz (19.8 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.2.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for colombia_hydrodata-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ee8ab61033af94171c2cc405f7e3808717a85bc27dbf981023bd643b13fb33f1
MD5 a44fc091839c61e8c5d64636003e6392
BLAKE2b-256 1da67e3a265e2b7152c9b35562119d7d90c0b4828e636845c366614def93e0dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for colombia_hydrodata-0.2.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for colombia_hydrodata-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68ea169dad62fa6cd612dafd9d77b2b370908e5f8eb1702f835183e9e14f49b2
MD5 ffb3c712840aa27a05f1b0b1f1453a49
BLAKE2b-256 6cca42f7f1d996c1e81acb14eb6fef8e9212084a0276df98eeea297ff0c463b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for colombia_hydrodata-0.2.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