Cliente de la API de ISOCAP

Descarga

⬇ Descargar el cliente (ZIP, 12,6 kB)

El ZIP contiene la carpeta isocap_cliente con:

  • isocap_cliente.py (33,7 kB)
  • isocap.toml.ejemplo (1,4 kB)
  • puntos_ejemplo.csv (1,4 kB)

Para calcular hace falta una cuenta de ISOCAP y su token personal, que se crea en la página «Tokens API» tras registrarse e iniciar sesión. Versión de ISOCAP: 4.16.0.

isocap_cliente.py calcula isócronas con la API de ISOCAP desde la línea de órdenes. Puede calcular un punto o un lote de puntos leídos de un CSV, y descarga los resultados de cada cálculo:

  • el Shapefile en ZIP o el GeoPackage;
  • el GeoJSON en EPSG:4326;
  • el CSV de parámetros;
  • un resumen.csv con una fila por cálculo.

Solo necesita Python 3.11 o posterior, sin paquetes adicionales. Se descarga en ZIP desde la página Cliente API de ISOCAP (menú «API») y se describe también en el manual de usuario, §10.8.

Fichero Contenido
isocap_cliente.py El cliente.
isocap.toml.ejemplo Configuración de ejemplo: cópiela como isocap.toml y escriba su token.
puntos_ejemplo.csv Los casos de validación de la guía IGME 2003 (sondeo San Bartolomé, Villacastín) para los 9 métodos, más el mismo sondeo en UTM.

Token

El token es personal y se crea en la página Tokens de ISOCAP. El cliente lo busca en este orden:

  1. la opción --token;
  2. la variable de entorno ISOCAP_TOKEN;
  3. la clave token del fichero de configuración.

Es preferible usar el fichero o la variable de entorno, porque la opción --token queda en el historial de la consola. El cliente nunca muestra el token. No comparta isocap.toml ni lo suba a ningún repositorio (en el de ISOCAP está en .gitignore).

Configuración

Todas las claves de isocap.toml son opcionales; consulte isocap.toml.ejemplo. Lo que se escriba en la línea de órdenes manda sobre el fichero de configuración.

Clave (sección) Opción Por defecto
url ([isocap]) --url (o ISOCAP_URL) https://isocap.igme.es
token ([isocap]) --token (o ISOCAP_TOKEN) —
directorio ([salida]) --salida resultados, relativo al fichero de configuración
formato ([salida]) --formato SHAPE (ZIP); GEODATABASE = GeoPackage
descargar_fichero / _geojson / _parametros ([salida]) --[no-]descargar-fichero, --[no-]descargar-geojson, --[no-]descargar-parametros sí
epsg, azimut ([calculo]) --epsg, --azimut 4326, 0
pausa_s ([peticiones]) --pausa 1,1 s entre cálculos
reintentos ([peticiones]) --reintentos 3
tiempo_espera_s ([peticiones]) --tiempo-espera 120 s
verificar_tls ([peticiones]) --[no-]verificar-tls sí

Algunas aclaraciones: - EPSG y azimut del CSV: epsg y azimut solo se aplican a las filas del CSV que dejan vacías esas columnas. - Pausa entre cálculos: la API admite 60 cálculos por minuto y token. Si se supera el límite, el cliente espera y lo vuelve a intentar. - Verificación del certificado: --no-verificar-tls solo sirve para una instalación local con certificado autofirmado.

CSV de puntos

Cada fila es un cálculo, es decir, un punto con un método. Para calcular varios métodos en el mismo sondeo, repita el sondeo en varias filas.

Formato del fichero: - Codificación: UTF-8, con o sin BOM. En Excel, guárdelo como «CSV UTF-8». - Separador: ;, , o tabulador. El cliente lo detecta en la cabecera. - Números: se admite la coma decimal (0,025) y la notación científica (3,7e-6). Con el separador ,, use el punto decimal. - Comentarios: se ignoran las líneas que empiezan por #.

Columna Obligatoria Contenido
metodo sí Nombre del método en la API (Wyssling, Jacobs y Bear, RFC Ec. volumétrica…), su título o un alias: wyssling, jacobs_bear, rfc_volumetrica, rfc_recarga, rfc_descenso, analisis_flujo, flujo_uniforme, solucion_analitica_simple, krijgsman_lobo_ferreira. Da igual escribirlo con o sin tildes, mayúsculas o signos.
lon, lat sí Longitud (X) y latitud (Y): grados en EPSG:4326 o metros en UTM.
id no Nombre del punto. Se usa en los ficheros de salida; si falta, filaN.
epsg no Sistema de referencia de las coordenadas: 4326, 25828, 25829, 25830, 25831 o 3857.
azimut no Dirección hacia la que fluye el agua, en grados respecto al norte geográfico. Los métodos circulares lo ignoran.
formato no SHAPE o GEODATABASE, para esa fila.
parámetros según el método Una columna por parámetro, con el nombre de la API y en su unidad.

Los parámetros y sus unidades son:

Columna Unidad Métodos
Q_m3_s m³/s Wyssling
K_m_s m/s Wyssling
Q_m3_d m³/día todos menos Wyssling y el análisis del sistema de flujo
K_m_d m/día análisis del sistema de flujo, flujo uniforme, solución analítica simple, Krijgsman y Lobo Ferreira
T_m2_d m²/día Jacobs y Bear, función del descenso
b_m m todos menos el método de la recarga, la función del descenso y el análisis del sistema de flujo
i — métodos con flujo regional
me — métodos con tiempo de tránsito
t_d días métodos con tiempo de tránsito (en la función del descenso, tiempo de bombeo)
S — función del descenso
N_m_d m/día método de la recarga
d_target_m m función del descenso
dist_divisoria_m m flujo uniforme

--metodos lista los parámetros que pide cada método, según el catálogo del servidor. Las celdas de los parámetros que un método no usa se dejan vacías; si tienen valor, se ignoran con un aviso. El sentido del caudal depende del método: - en Jacobs y Bear es el caudal ficticio continuo de 24 h; - en el método de la recarga es el caudal anual medio de explotación.

Consulte el manual de usuario, §7.

Uso

# Métodos y parámetros
python isocap_cliente.py --metodos

# Comprobar un CSV sin calcular nada: no gasta cálculos ni necesita token
python isocap_cliente.py --csv puntos_ejemplo.csv --comprobar

# Lote completo con la configuración de isocap.toml
python isocap_cliente.py --config isocap.toml --csv puntos_ejemplo.csv

# El mismo lote en GeoPackage y en otro directorio (manda sobre isocap.toml)
python isocap_cliente.py --config isocap.toml --csv puntos.csv --formato GEODATABASE --salida lote_2

# Un cálculo
python isocap_cliente.py --config isocap.toml --metodo wyssling --id pozo_3 \
    --lon=-4,4104 --lat 40,7761 --azimut 20 \
    --Q_m3_s 0,003 --K_m_s 3,7e-6 --b_m 93 --i 0,025 --me 0,002 --t_d 50

Una coordenada negativa con coma decimal se escribe con =, por ejemplo --lon=-4,4104; si no, la consola la confunde con una opción. Con punto decimal no hace falta: --lon -4.4104.

Resultados

En el directorio de salida, para cada cálculo: - <id>_<método>.zip o .gpkg; - <id>_<método>.geojson; - <id>_<método>_parametros.csv.

Por ejemplo, san_bartolome_wyssling.zip. Si el mismo id y el mismo método se repiten, se añade el principio del job_id.

resumen.csv (UTF-8 con BOM, separador ;) tiene una fila por cálculo, con estas columnas: - los datos de la fila; - estado (ok o error) y mensaje, con el motivo del error o los avisos; - job_id y los nombres de los ficheros; - las salidas del cálculo: primero las comunes (area_m2, perimeter_m, equivalent_radius_m…) y después las propias de cada método. Están en las mismas unidades y con la misma coma decimal que el CSV de parámetros.

El resumen se reescribe tras cada cálculo, así que un lote interrumpido conserva lo hecho. Los cálculos quedan también en el histórico del usuario en ISOCAP, con el identificador API-<job_id>.

Comportamiento ante errores

  • Validación previa: antes de calcular, el cliente valida todas las filas con el catálogo del servidor: método conocido y ningún parámetro que falte.
  • Errores en una fila: una fila con errores no detiene el lote. Queda en el resumen con estado=error. Esto vale también para los valores que rechaza el servidor, como una porosidad de 0.
  • Token no válido: si el token no vale, el lote se interrumpe en el primer cálculo.
  • Errores pasajeros: ante los errores de red y los 429, 502, 503 y 504, el cliente espera y lo vuelve a intentar.
  • Código de salida:
Código Significado
0 Todo correcto.
1 Algún cálculo con error.
2 Error de uso o de configuración, o sin conexión.