Skip to main content

Descarga automatizada de series hidrometeorológicas desde el portal DHIME del IDEAM (Colombia).

Project description

ideam-dhime

Python 3.9+ License: GPL v3 DOI

Cliente Python para descargar series hidrometeorologicas desde DHIME (IDEAM, Colombia), con chunking por frecuencia, consolidacion de CSVs y catalogo maestro de estaciones embebido.

Estado de la version

  • Version actual: 0.3.0
  • Soporta descarga por lote y paralela.
  • Soporta entrada minima por estacion: station_code + variable_id.
  • Incluye catalogo maestro unificado en docs/guia_estaciones.xlsx.

Instalacion

pip install -e .

Donde se guardan los resultados

Los archivos se guardan en la carpeta indicada por download_path.

  • Si usas download_path="./datos_hidro" y ejecutas desde la raiz del proyecto, se guardan en ./datos_hidro.
  • En lote, cada estacion genera un *-final.csv consolidado (si merge_chunks=True).

Uso rapido (API publica)

Una estacion

from ideam_dhime import download_dhime_data

csv_final = download_dhime_data(
    download_path="./datos_hidro",
    station_code="21017020",
    variable_id=7,
    min_date="01/01/1970",  # opcional
)
print(csv_final)

Lote (paralelo)

from ideam_dhime import batch_download

requests = [
    {"download_path": "./datos_hidro", "station_code": "21017020", "variable_id": 7},
    {"download_path": "./datos_hidro", "station_code": "21017030", "variable_id": 7},
]

results = batch_download(
    requests=requests,
    download_path="./datos_hidro",
    parallel=True,
    workers=2,
    min_date="01/01/1970",  # opcional
    merge_chunks=True,
    keep_chunks=False,
)

for item in results:
    print(item.status, item.request.station_code, item.message, item.csv_final)

Regla de fechas (v0.3.0)

  • Si el usuario no pasa fechas, se consulta historico completo disponible (desde 01/01/1900 como piso tecnico).
  • min_date permite imponer un piso global o por solicitud (por ejemplo 01/01/1970).
  • Si una ventana no tiene datos (SIN_DATOS_EN_RANGO o SIN_SOLAPE), se omite y se consolida lo que si exista.
  • Solo falla una estacion si no hay datos en ninguna ventana o si ocurre un error tecnico real.

Catalogo maestro de estaciones

  • Archivo auditable: docs/guia_estaciones.xlsx.
  • Snapshots runtime:
    • ideam_dhime/stations_generated.py
    • ideam_dhime/locations_generated.py
  • Regeneracion desde carpeta local CNE/:
python -m ideam_dhime.regenerate_stations -v

Tambien disponible como script:

ideam-dhime-regenerate-stations -v

Script de ejemplo

Ejecuta:

python examples/example_batch.py

Ese ejemplo ya viene preparado para:

  • conjunto minimal de 10 estaciones,
  • modo paralelo (workers=2),
  • min_date="01/01/1970".

Comandos utiles de validacion

pytest -q

Notas de empaquetado (PyPI)

  • docs/guia_estaciones_calidad.xlsx no se publica como artefacto oficial de uso.
  • Los resultados de descarga (datos_hidro/, test_downloads/) estan ignorados en .gitignore.

Licencia

GNU GPL v3 o posterior. Ver LICENSE.

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

ideam_dhime-0.3.0.tar.gz (392.0 kB view details)

Uploaded Source

Built Distribution

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

ideam_dhime-0.3.0-py3-none-any.whl (380.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ideam_dhime-0.3.0.tar.gz
  • Upload date:
  • Size: 392.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for ideam_dhime-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c68b2ac7a03d7fa3458758f3b11791cf2aef30b767cb19e719d20f5f836a5d34
MD5 123e39f85e7dd5e670acc310742c4e3e
BLAKE2b-256 86988e1a6b11a50942b0427fec2e50dc62c2f49b69897d8f062a58708ed65795

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ideam_dhime-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 380.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for ideam_dhime-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71b5a2f7eb9066af29dc9d8d6b5ee80bf528a68bfe7af4a56b0b2dbb97931ef2
MD5 de10a1fbdddc57283d5df97e4686707f
BLAKE2b-256 bf5a4a24e1fcf9e07629ca6fdd4a8d960038f547c57a4a6c31d0c9201958132c

See more details on using hashes here.

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