Consulta de datos en formato JSON
Introducción y objetivos
Se han recibido peticiones, por parte de distintos usuarios, expresando interés en poder
acceder a los resultados generados por SAICA-Ebro en formatos que permitan incorporarlos en
su propios sistemas.
Para facilitar el acceso a la información se han programado tres páginas de consulta, que permiten
obtener resultados de sendas entidades.
- Estaciones de control implantadas en el sistema
- Señales asociadas a las estaciones de control
- Medidas recibidas de una señal en un periodo de fechas
La respuesta del servidor a estas consultas está en formato JSON, compuesto de una sección
de encabezado, con carácter informativo, y una de datos, que se corresponde con la información
descrita en cada una de las secciones siguientes.
Consulta de las estaciones de control implantadas en el sistema
Página:
https://saica.chebro.es/query_estaciones_json.php
Parámetros GET: No admite
Información recuperada para cada una de las estaciones de control
Campo |
Tipo |
Descripción contenido |
estacion_codigo | Numérico | Código único asignado a la estación |
estacion_descripcion | Texto | Nombre identificativo |
estacion_activa | Numérico (0/1) | ¿Está activa? (Sí - 1 / No - 0) |
estacion_longitud | Numérico | Ubicación: longitud (en grados) |
estacion_latitud | Numérico | Ubicación: latitud (en grados) |
estacion_comentario | Texto | Comentario general asociado |
Consulta de las señales asociadas a las estaciones de control
Página:
https://saica.chebro.es/query_tags_json.php
Parámetros GET. Admite el parámetro opcional
estacion, cuyo valor
debe corresponderse con el código de una de las estaciones del sistema.
Si la llamada se realiza sin parámetro, devuelve las señales configuradas
para todas las estaciones de control.
Si el código de la estación suministrado es incorrecto, se devuelve un JSON
con la parte de datos vacía.
Ejemplo de llamada (recuperar las señales para la estación de código 903):
https://saica.chebro.es/query_tags_json.php?estacion=903
Información recuperada para cada una de las señales asociadas
Campo |
Tipo |
Descripción contenido |
tag_codigo | Numérico | Código único asignado a la señal |
tag_estacion | Numérico | Código de la estación |
tag_activo | Numérico (0/1) | ¿Está la señal actualmente activa? (Sí - 1 / No - 0) |
tag_descripcion | Texto | Descripción de la señal, incluyendo las unidades de medida |
Consulta de las medidas quinceminutales correspondientes a una señal
de una estación para un periodo de fechas determinado (versión 1)
Página:
https://saica.chebro.es/query_data_json.php
Parámetros GET. Es obligatorio pasar a la llamada un parámetro relacionado con la señal:
- el código de la señal (parámetro tag)
También hay que introducir criterios relacionados con la fecha:
- la fecha inicial de consulta (parámetro fini)
- la fecha final de consulta (parámetro ffin)
Ejemplo de llamada (recuperar los datos de la señal de código 7380 -conductividad
de la estación 903 - Arga en Echauri, correspondientes a los días 17 y 18 de abril de 2023).
https://saica.chebro.es/query_data_json.php?tag=7380&fini=2023-04-17&ffin=2023-04-19
Las fechas deben suministrarse a la llamada en formato YYYY-MM-DD.
En la cadena de fecha se admite cualquier otro separador distinto del guión.
Solo se gestionan las fechas a nivel de día. Cualquier marca de hora adicional incluida no genera error, pero es ignorada.
Las fechas iniciales y finales se interpretan como fecha-hora a las 00:00:00, no como días completos.
Información recuperada para cada una de las medidas
Campo |
Tipo |
Descripción contenido |
fecha | Fecha-hora | Fecha-hora a que corresponde la medida |
valor | Numérico | Valor de la medida |
validez | Numérico | Código que indica el estado de validez asignado
a la medida (0: pendiente de validar, 1: válido, >1: no válido |
En el encabezado del fichero JSON se incluye información en formato descriptivo de la señal
(estación a que corresponde, descripción de la señal y unidades de medida, así como el
significado de los distintos códigos de estado de validación).
Consulta de las medidas quinceminutales o estadísticos (diarios / mensuales / anuales) correspondientes a una señal
de una estación para un periodo de fechas determinado (versión 2)
Página:
https://saica.chebro.es/query_data_json_v2.php
Parámetros GET. Es obligatorio pasar a la llamada un parámetro relacionado con la señal:
- el código de la señal (parámetro tag)
También hay que introducir criterios relacionados con la fecha:
- la fecha inicial de consulta (parámetro fini)
- la fecha final de consulta (parámetro ffin)
De forma opcional puede añadirse el parámetro
stats. Si el parámetro no aparece,
o su valor es
raw, se obtienen los resultados quinceminutales.
Otros valores permitidos son
year (se obtienen cálculos anuales),
month (se obtienen cálculos mensuales) y
day (se obtienen cálculos diarios).
Ejemplo de llamada (recuperar los datos de la señal de código 7380 -conductividad
de la estación 903 - Arga en Echauri, correspondientes a los días 17 y 18 de abril de 2023).
https://saica.chebro.es/query_data_json_v2.php?tag=7380&fini=2023-04-17&ffin=2023-04-19
Ejemplo de llamada (recuperar los estadísticos mensuales de la señal de código 7380 -conductividad
de la estación 903 - Arga en Echauri, entre enero de 2010 y diciembre de 2020).
https://saica.chebro.es/query_data_json_v2.php?tag=7380&fini=2010-01-01&ffin=2020-12-31&stats=month
Las fechas deben suministrarse a la llamada en formato ISO 8601 (es válido el formato YYYY-MM-DD).
Explicación formato fechas ISO 8601
El formato de las fechas de salida es ISO 8601, incluyendo, para evitar incertidumbre, el desplazamiento horario
respecto a la hora UTC.
Información recuperada para cada una de las medidas (raw: quinceminutales)
Campo |
Tipo |
Descripción contenido |
date | Fecha-hora | Fecha-hora a que corresponde la medida |
value | Numérico | Valor de la medida |
validation | Numérico | Código que indica el estado de validez asignado
a la medida (0: pendiente de validar, 1: válido, >1: no válido |
En el encabezado del fichero JSON, en las secciones
meta y
criteria se incluye información en formato descriptivo de la señal
(estación a que corresponde, ubicación -latitud y longitud-, descripción de la señal y unidades de medida, así como el
significado de los distintos códigos de estado de validación).
Información recuperada para cada una de las medidas (day: estadísticas diarias)
Campo |
Tipo |
Descripción contenido |
date | Fecha | Día a que corresponden los cálculos (YYYY-MM-DD) |
numData | Numérico | Número de medidas recibidas |
numDataValid | Numérico | Número de medidas consideradas como válidas (con las que se realiza el cálculo) |
minimum | Numérico | Mínimo calculado entre las medidas válidas del periodo |
maximum | Numérico | Máximo calculado entre las medidas válidas del periodo |
average | Numérico | Promedio calculado entre las medidas válidas del periodo |
En el encabezado del fichero JSON, en la sección
criteria se incluye información en formato descriptivo de la señal
(estación a que corresponde, ubicación -latitud y longitud-, descripción de la señal y unidades de medida).
Información recuperada para cada una de las medidas (month: estadísticas mensuales)
Campo |
Tipo |
Descripción contenido |
date | Fecha | Año-mes a que corresponden los cálculos (YYYY-MM) |
numData | Numérico | Número de medidas recibidas |
numDataValid | Numérico | Número de medidas consideradas como válidas (con las que se realiza el cálculo) |
minimum | Numérico | Mínimo calculado entre las medidas válidas del periodo |
maximum | Numérico | Máximo calculado entre las medidas válidas del periodo |
average | Numérico | Promedio calculado entre las medidas válidas del periodo |
En el encabezado del fichero JSON, en la sección
criteria se incluye información en formato descriptivo de la señal
(estación a que corresponde, ubicación -latitud y longitud-, descripción de la señal y unidades de medida).
Información recuperada para cada una de las medidas (year: estadísticas anuales)
Campo |
Tipo |
Descripción contenido |
date | Fecha | Año a que corresponden los cálculos (YYYY) |
numData | Numérico | Número de medidas recibidas |
numDataValid | Numérico | Número de medidas consideradas como válidas (con las que se realiza el cálculo) |
minimum | Numérico | Mínimo calculado entre las medidas válidas del periodo |
maximum | Numérico | Máximo calculado entre las medidas válidas del periodo |
average | Numérico | Promedio calculado entre las medidas válidas del periodo |
En el encabezado del fichero JSON, en la sección
criteria se incluye información en formato descriptivo de la señal
(estación a que corresponde, ubicación -latitud y longitud-, descripción de la señal y unidades de medida).
En la versión actual de las consultas no se han introducido restricciones, ni a nivel de identificación de usuario,
ni de control de volumen de datos consultados.
En el caso de que la monitorización del sistema detectara usos que pudieran considerarse abusivos, o que
la utilización de estas consultas creciera hasta llegar a afectar el rendimiento general del sistema, en posteriores versiones
se implementarían controles, de una u otra naturaleza dependiendo de las anomalías detectadas
(asignación de key a usuarios, limitación en volumen de datos, en número de consultas, control de direcciones IP, ...)
Fecha de actualización: junio de 2024