Descarga automatizada de series hidrometeorológicas desde el portal DHIME del IDEAM (Colombia).
Project description
ideam-dhime
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.csvconsolidado (simerge_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/1900como piso tecnico). min_datepermite imponer un piso global o por solicitud (por ejemplo01/01/1970).- Si una ventana no tiene datos (
SIN_DATOS_EN_RANGOoSIN_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.pyideam_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.xlsxno 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c68b2ac7a03d7fa3458758f3b11791cf2aef30b767cb19e719d20f5f836a5d34
|
|
| MD5 |
123e39f85e7dd5e670acc310742c4e3e
|
|
| BLAKE2b-256 |
86988e1a6b11a50942b0427fec2e50dc62c2f49b69897d8f062a58708ed65795
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71b5a2f7eb9066af29dc9d8d6b5ee80bf528a68bfe7af4a56b0b2dbb97931ef2
|
|
| MD5 |
de10a1fbdddc57283d5df97e4686707f
|
|
| BLAKE2b-256 |
bf5a4a24e1fcf9e07629ca6fdd4a8d960038f547c57a4a6c31d0c9201958132c
|