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.1.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.1-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: colombia_hydrodata-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 351147a4a9bf887f583c9cc1bde4d6e92262106a17b8c31f3361248ce21ad370
MD5 68223f6ff5f3ed108ac40831ec1b9688
BLAKE2b-256 9198aa803ac5386e3b9dd0b31cb85b12884474924ac6211ce8015741f5327f4e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for colombia_hydrodata-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b714432311f3870c9f1e3558ff01b911f07b2d46ace28ad63b88632a67af96e3
MD5 8c5ebb4e308c45acbcf465db695d4a1e
BLAKE2b-256 9d82d2ce655701d3e1de04468ea063da45d6dccc199737d991ed4dae53544472

See more details on using hashes here.

Provenance

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