Documentacion WS Datos monitoreo CEAZA-Met


Condiciones de uso:
Es requerido que los usuarios de este sistema soliciten un nombre de usuario enviando un mail a ceazamet@ceaza.cl, indicando: Nombre, mail, rubro, empresa, uso que se le va a dar, frecuencia y cantidad de datos a descargar por día en forma automatizada. Ademas se debe mencionar la fuente de datos y un link (ej: Datos provistos por CEAZA, www.ceazamet.cl).
 
Advertencia: El uso de estos servicios son de resposabilidad del usuario, estos servicios no tienen ninguna garantia con respecto a la confiabilidad de los datos o con respecto a la disponibilidad de estos. Es de obligacion del usuario verificar que estos funciones como el espera. Ademas el autor se reserva el derecho de cambiar o alterar los servicios a su criterio.

El sistema CEAZA-Met desde su implementacion en la version 3.0 (2012) pone a disposicion acceso a datos mediante webservices. Los webservices implementados son del tipo REST por lo que toda la informacion necesaria para obtener los datos estan datos por la URL, la URL basica del WS de datos de monitoreo es:

http:www.ceazamet.cl/ws/pop_ws.php

Este webservice implementa por el momento 3 funciones que permiten acceder al listado de estaciones, sensores y sus datos. Por defecto los datos son entregados como CSV (Comma Separated Values), sin embargo tambien esta planeado implementarlo como JSON. Ademas se agrega a los archivos ciertos metadatos que son marcados con un inicio de linea dado por el caracter #, de esta forma es facil reconocer una linea que debe ser ignorada por un script de trabajo con datos.

Existe un parametro opcional usado para todas las llamadas llamado "user", este parametro contiene un mail, si el parametro no se entrega entonces las consultas estan limitadas en candidad maxima de registros devueltos y en cantidad de consultas por dia, si usted tiene un mail asociado al uso del webservice debe ingresarlo.

A continuacion se describen las 3 funciones y sus formas de uso.

GetListaEstaciones

Retorna el listado de estaciones pertenecientes a un proyecto.

Parametro Valores posibles Descripcion
p_cod(*) ceazamet, changolab Es el campo obligatorio que indica el nombre del proyecto del que se quieren el listado de estaciones
e_cod codigo de una estacion Si se especifica solo se mostraran los datos asociados a esa estacion en particular.
c0,..,c6 e_lat, e_lon, e_altitud, e_ultima_lectura, e_cod, e_nombre, e_primera_lectura, e_cod_provincia Es el nombre de los campos, se usa para pedir campos (y un orden) especifico de las columnas de salida, este parametro no es obligatorio, sin embargo se recomienda su uso ya que es posible que se cambien el orden de las columnas por defecto en futuras actualizaciones del WS.

Ejemplo de uso:

http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaEstaciones&p_cod=ceazamet
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaEstaciones&p_cod=ceazamet&user=anon@nohost.com&c0=e_lat&c1=e_lon&c2=e_altitud&c3=e_ultima_lectura&c4=e_cod&c5=e_nombre&c6=e_primera_lectura

Ejemplo de la salida (Como CSV):

#Datos provistos por CEAZA a traves del sistema CEAZA-Met, generados el:2012-10-03 10:54:17
#Los datos aqu? entregados no han sido validados.
#Para consultas, contactar con Cristian Orrego al mail cristian.orrego@ceaza.cl. -30.0000,-71.4000,122,2012-10-03 09:00:00,4,Coquimbo [Doca],
-30.7232,-70.7726,862,2012-10-03 09:00:00,RPL,Rapel,
-29.9618,-70.5389,900,2012-10-03 09:00:00,PYRV,Puya Rivadavia,
-29.9833,-71.0833,204,2012-10-03 08:00:00,9,G.Mistral [Rumpa],
-30.1167,-70.4833,1212,2012-10-03 08:00:00,8,Pisco Elqui [Pingo],
-30.0383,-70.6966,634,2012-10-02 20:00:00,6,INIA Vicuña [Copao],
-30.0667,-71.2333,135,2012-10-02 20:00:00,3,INIA P.de Azúcar [Lilén],

GetListaSensores

Retorna el listado de sensores de una estacion en particular.

Parametro Valores posibles Descripcion
p_cod(*) ceazamet Es el campo obligatorio que indica el codigo del proyecto al que pertenece la estacion.
e_cod(*)   Es el campo obligatorio que indica el codigo de la estacion de la cual se requiere el listado de sensores.
tm_cod ta_c, hr, vv_ms, dv, rs_w, pp_mm Es el campo que permite obtener los sensores de la estacion de un tipo especifico.
c0,..,c9 e_cod, s_cod, tf_nombre, um_notacion,s_altura, s_ultima_lectura, tm_cod, s_primera_lectura Es el nombre de los campos, se usa para pedir campos (y un orden) especifico de las columnas de salida, este parametro no es obligatorio, sin embargo se recomienda su uso ya que es posible que se cambien el orden de las columnas por defecto en futuras actualizaciones del WS. Para identificar un tipo especifico de medicion se debe usar el campo de codigo del tipo de medicion, este campo indica por ejemplo que se esta midiendo Temperatura del Aire en ºC, normalmente ademas se usara el campo de altura del sensor, ya que no siempre es a 1.5m/2m.

Ejemplo de uso:

http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaSensores&p_cod=ceazamet&e_cod=9&user=anon@host.com
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaSensores&p_cod=ceazamet&e_cod=6&c0=e_cod&c1=s_cod&c2=tf_nombre&c3=um_notacion&c4=s_altura&c5=s_ultima_lectura
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaSensores&p_cod=ceazamet&e_cod=6&tm_cod=ta_c (Obtener solo los sensores que miden temperatura del aire en la estacion)
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaSensores&p_cod=ceazamet&e_cod=6&c0=e_cod&c1=s_cod&c2=tm_cod&c3=s_altura (Obtener solo los campos de codigo de estacion, codigo de sensor, tipo de medicion y altura de la estacion 6)

Ejemplo de la salida:

#Datos provistos por CEAZA a traves del sistema CEAZA-Met, generados el:2012-10-18    08:42:08
#Los datos aqu? entregados no han sido validados.
#Para consultas, contactar con Cristian Orrego al mail cristian.orrego@ceaza.cl.
#Params 
#e_cod,s_cod,tipo_medicion,ultima_lectura
9,69,Temperatura del Aire[°C][1.5m],2012-10-18 04:00:00
9,70,Humedad Relativa[%][1.5m],2012-10-18 04:00:00
9,RMPVV5,Velocidad de Viento[m/s][5m],2012-10-18 04:00:00
9,66,Velocidad de Viento[m/s][2m],2012-10-18 04:00:00

GetSerieSensor

Retorna la serie de datos de un sensor en particular, el espaciamiento de la serie es de una hora por defecto, es posible que luego se incluyan la agregacion diaria y mensual.

Parametro Valores posibles Descripcion
s_cod(*) Codigo de sensor Es el campo obligatorio que indica el codigo del sensor del que se requieren los datos
fecha_inicio(*) 2000-01-01 a 2020-01-01 Es el campo obligatorio que indica la fecha de inicio de la serie.
fecha_fin(*) 2000-01-01 a 2020-01-01 Es el campo obligatorio que indica la fecha de fin de la serie.
interv *hora|dia|mes Intervalo de la serie, es el campo no obligatorio que indica el salto de tiempo e intervalo de agregacion de la serie, puede ser: hora, dia, mes.
valor_nan (nada)*|NAN|9999|0|-1, cualquie valor texto o numerico Es el valor que se debe mostrar cuando no existen datos, si no se especifica no se muestra nada.
formato_nro nro_bytes_enteros.nro_bytes_decimales, ej: 6.3 Si se especifica los numeros usan todos la misma cantidad de espacios, esto hace que en ciertos scripts sean mas faciles de leer.

Ejemplo de uso:


http://www.ceazamet.cl/ws/pop_ws.php?fn=GetSerieSensor&p_cod=ceazamet&s_cod=RPLTA&fecha_inicio=2012-08-20&fecha_fin=2012-08-27&user=anon@host.com
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetSerieSensor&p_cod=ceazamet&s_cod=RPLTA&fecha_inicio=2012-08-20&fecha_fin=2012-08-27&user=anon@host.com&interv=dia
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetSerieSensor&p_cod=ceazamet&s_cod=RPLTA&fecha_inicio=2016-08-20&fecha_fin=2016-08-27&user=anon@host.com&valor_nan=99999
http://www.ceazamet.cl/ws/pop_ws.php?fn=GetSerieSensor&p_cod=ceazamet&s_cod=29&fecha_inicio=2015-08-01&fecha_fin=2015-08-02&valor_nan=&formato_nro=10.3

Ejemplo de la salida:

#Datos provistos por CEAZA a traves del sistema CEAZA-Met, generados el:2012-10-18    08:45:02
#Los datos aqu? entregados no han sido validados.
#Para consultas, contactar con Cristian Orrego al mail cristian.orrego@ceaza.cl.
#Params fi: 2012-08-20 fi: 2012-08-27 s: RPLTA
#s_cod,ultima_lectura,min,prom,max,data_pc
RPLTA,2012-08-20 00:00:00,8.83,10.05,11.02,100
RPLTA,2012-08-20 01:00:00,10.24,10.57,11.08,100
RPLTA,2012-08-20 02:00:00,10.14,10.48,10.86,100
RPLTA,2012-08-20 03:00:00,9.59,10.11,10.66,100
RPLTA,2012-08-20 04:00:00,9.85,10.22,10.6,100
RPLTA,2012-08-20 05:00:00,5.9,7.35,10.37,100
RPLTA,2012-08-20 06:00:00,6.32,7.78,9.11,100
RPLTA,2012-08-20 07:00:00,4.74,5.76,7.12,100
RPLTA,2012-08-20 08:00:00,5,8,10.37,100
RPLTA,2012-08-20 09:00:00,7.54,9.12,11.3,100
RPLTA,2012-08-20 10:00:00,11.54,14.88,18.19,100

Llamadas al webservice

En linux puede usar la herramienta wget de la siguiente forma por ejemplo:

wget -O estaciones.txt 'http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaEstaciones&p_cod=redclima'

En PHP:

$estaciones_csv = file_get_contents('http://www.ceazamet.cl/ws/pop_ws.php?fn=GetListaEstaciones&p_cod=redclima');
echo $estaciones_csv;