Documentación de la API del MeteoSIX Versión v2 MeteoGalicia 25 de junio de 2013 Índice general 1. Introducción 1 2. Modelos de predicción numérica 2.1. WRF (Weather Research Forecast) . . . . 2.2. WW3 (Wave Watch III) . . . . . . . . . . 2.3. SWAN (Simulating Waves Nearshore) . . . 2.4. ROMS (Regional Ocean Modeling System) 2.5. MOHID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 5 6 6 3. Cuestiones generales 3.1. Obtención de la clave para el uso de la API 3.2. Sistemas de coordenadas . . . . . . . . . . 3.3. Nombres y valores de parámetros . . . . . 3.4. Idioma . . . . . . . . . . . . . . . . . . . 3.5. Zonas horarias . . . . . . . . . . . . . . . 3.6. Formatos temporales . . . . . . . . . . . . 3.7. Formatos numéricos . . . . . . . . . . . . 3.8. Imágenes . . . . . . . . . . . . . . . . . . 3.9. Formatos de salida . . . . . . . . . . . . . 3.10. Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 8 8 8 9 9 9 9 10 4. Operaciones 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Parámetros comunes a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo . . . . . 4.3. Formatos de salida comunes a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo . 4.4. Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo . . 11 11 11 13 13 5. Operación /findPlaces 5.1. Introducción . . 5.2. Parámetros . . . 5.3. Resultado . . . . 5.4. Ejemplos . . . . 19 19 19 20 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. Operación /getNumericForecastInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 I 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. Introducción . . . . . Rango temporal . . . Parámetros . . . . . . Resultado . . . . . . . Otras consideraciones Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 25 25 27 32 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 37 37 37 41 8. Operación /getSolarInfo 8.1. Introducción . . . . . 8.2. Rango temporal . . . 8.3. Parámetros . . . . . . 8.4. Resultados . . . . . . 8.5. Otras consideraciones 8.6. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 43 43 43 46 47 7. Operación /getTidesInfo 7.1. Introducción . . . 7.2. Rango temporal . 7.3. Parámetros . . . . 7.4. Resultados . . . . 7.5. Ejemplos . . . . . . . . . . 9. Excepciones 49 10. A1. Novedades de la versión v2 53 11. A2. Acerca de este documento 11.1. Versiones y cambios de este documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 12. A3. Zonas horarias 57 II CAPÍTULO 1 Introducción La API del MeteoSIX es un servicio web gratuito y de libre uso que da acceso a distinta información meteorológica y oceanográfica. En concreto, es posible acceder a: Los resultados de distintos modelos de predicción numérica, meteorológica y oceanográfica. Los datos proceden directamente de las salidas de los modelos, sin supervisión humana. La estimación de las horas de salida y puesta de sol. La predicción de mareas. Además se proporcionan métodos para el acceso a un catálogo que permite localizar distintas entidades geográficas. Actualmente, la información de predicción meteorológica y oceanográfica procede de los modelos ejecutados diariamente por MeteoGalicia. Estos se ejecutan sobre diferentes mallas, de distintas resoluciones y coberturas espaciotemporales. Para más detalles, consulte el apartado Modelos de predicción numérica. La información de las horas de salida y puesta de sol está disponible para cualquier punto del planeta y para 365 días desde el día actual. La información de mareas se ofrece actualmente para la costa gallega y cubre 60 días (ver la sección Operación /getTidesInfo). La versión actual de la API es la versión v2 (2.0.0), y es a la que se refiere este manual. Esta versión NO es compatible con la versión v1, dado que cambian algunos parámetros y comportamientos. 1 Documentación de la API del MeteoSIX, Versión v2 2 Capítulo 1. Introducción CAPÍTULO 2 Modelos de predicción numérica La información de predicción numérica que sirve la API procede directamente de las salidas de los modelos de predicción numérica ejecutados diariamente por MeteoGalicia. Existen distintos modelos, y cada uno se ejecuta sobre diferentes mallas (diferentes zonas de cobertura y resoluciones). Estas ejecuciones duran generalmente varias horas, y la hora de finalización, a partir de la cual los datos están disponibles, varía de un modelo/malla a otro. Para una misma malla, la hora de finalización de la ejecución puede variar de un día a otro, por lo que las horas de publicación que aparecen en las siguientes tablas son orientativas. Una vez que finalizan las ejecuciones, pasan unos minutos hasta que están disponibles a través de la API. La frecuencia temporal para la que tanto los modelos como la API tienen datos de predicción numérica es actualmente de 1 hora. Los modelos y mallas para los que la API del MeteoSIX sirve actualmente información de predicción numérica son los siguientes (las horas están indicadas en UTC (Tiempo universal coordinado)): 3 Documentación de la API del MeteoSIX, Versión v2 2.1 WRF (Weather Research Forecast) 4 Malla Resolución Horizonte predicción Cobertura Inicio ción ejecu- Fin ejecución aproximada Artabro1Km 1 km 72h 72h 00:00 UTC 12:00 UTC 11:00 UTC 20:30 UTC RiasBaixas1Km 1 km 72h 72h 00:00 UTC 12:00 UTC 11:00 UTC 20:30 UTC NortePortugal1Km 1 km 72h 72h 00:00 UTC 12:00 UTC 11:00 UTC 20:30 UTC 04km 4 km 72h 84h 00:00 UTC 12:00 UTC 6:30 UTC 18:30 UTC 12km 12 km 96h 84h 00:00 UTC 12:00 UTC 6:30 UTC 18:30 UTC 36km 36 km 96h 84h 00:00 UTC 12:00 UTC 6:30 UTC 18:30 UTC Capítulo 2. Modelos de predicción numérica Documentación de la API del MeteoSIX, Versión v2 2.2 WW3 (Wave Watch III) Malla Resolución Horizonte predicción Cobertura Inicio ción ejecu- Fin ejecución aproximada Galicia 0,05º 96h 96h 00:00 UTC 12:00 UTC 5:30 UTC 17:30 UTC Iberica 0,25º 96h 96h 00:00 UTC 12:00 UTC 5:30 UTC 17:30 UTC AtlanticoNorte 0,5º 96h 96h 00:00 UTC 12:00 UTC 5:30 UTC 17:30 UTC 2.3 SWAN (Simulating Waves Nearshore) Malla Resolución Horizonte predicción Artabro 500 m 84h 12:00 UTC 22:00 UTC RiasBaixas 250 m 84h 12:00 UTC 22:00 UTC 2.2. WW3 (Wave Watch III) Cobertura Inicio ción ejecu- Fin ejecución aproximada 5 Documentación de la API del MeteoSIX, Versión v2 2.4 ROMS (Regional Ocean Modeling System) Malla Resolución Horizonte predicción Cobertura Inicio ción ejecu- Fin ejecución aproximada Galicia 0,02º 96h Malla Resolución Horizonte predicción Artabro 0,003º 72h 00:00 UTC 14:30 UTC Arousa 0,003º 72h 00:00 UTC 14:30 UTC Vigo 0,003º 72h 00:00 UTC 14:30 UTC 00:00 UTC 9:00 UTC Inicio ción Fin ejecución aproximada 2.5 MOHID Cobertura ejecu- Para obtener más información sobre las características de los distintos modelos de predicción puede consultarse http://www.meteogalicia.es/modelos/index.action 6 Capítulo 2. Modelos de predicción numérica CAPÍTULO 3 Cuestiones generales La API está compuesta por una serie de operaciones que se ejecutan mediante peticiones HTTP GET y HTTP POST a la URL del servicio (dominio de la API). La URL de la API es la siguiente: http://servizos.meteogalicia.es/apiv2 La estructura general de una petición tiene la siguiente forma: http://servizos.meteogalicia.es/apiv2/ruta_operación?[parámetros_de_la_operación] Por ejemplo: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo?coord=-8,44 &variables=temperature,wind&API_KEY=*** Dependiendo de la operación, los parámetros que recibe especifican el comportamiento del MeteoSIX ante esa petición, y condicionan el tipo de respuesta y su contenido. 3.1 Obtención de la clave para el uso de la API El uso de la API es libre y gratuito pero se necesita una clave de usuario que debe ser incluida en todas las peticiones. La clave se puede solicitar en este enlace. Esta clave es de uso privado y estará asociada a una dirección de correo electrónico. Si se olvida, se puede volver a consultar en el mismo enlace. La clave es única para cada usuario de la API del MeteoSIX. Deberá ser incluida en cada petición ya que en caso de no incluir este parámetro, o en caso de que su valor no sea una clave válida, se devolverá una excepción. Nota: los usuarios de versiones anteriores a la v2 de la API mantienen su clave activa, no siendo necesario que soliciten una nueva. 7 Documentación de la API del MeteoSIX, Versión v2 3.2 Sistemas de coordenadas Algunas operaciones de la API del MeteoSIX devuelven resultados que contienen geometrías. Del mismo modo, algunas operaciones reciben como parámetro valores geométricos (coordenadas). Si no se especifica ningún sistema de coordenadas como parámetro, se usará siempre el WGS 84 (EPSG:4326). Nota: actualmente sólo se soporta el WGS 84 (EPSG:4326) 3.3 Nombres y valores de parámetros Todos los parámetros – salvo el parámetro API_KEY – admiten los valores sin diferenciar si están en mayúsculas o minúsculas, aunque se recomienda emplear los valores tal y como se especifican en este documento. Lo mismo se aplica para los nombres de esos parámetros. Así, el parámetro: models=WRF,WW3 es equivalente a: MODELS=wrf,ww3 y también a: MoDeLS=wRF,Ww3 3.4 Idioma La API soporta los siguientes idiomas: Gallego Español Inglés El idioma por defecto es el inglés. Nota: en las versiones anteriores el idioma por defecto era el gallego 3.5 Zonas horarias La API del MeteoSIX permite especificar la zona horaria en la que se desea que se devuelvan los valores. Si no se especifica una zona horaria como parámetro, todas las fechas, horas, instantes temporales, etc. que aparecen en las respuestas de las peticiones a la API están en la zona horaria que corresponde a Galicia, es decir, en UTC+1 en horario de invierno y UTC+2 en horario de verano. Nota: UTC es el Tiempo universal coordinado, ver https://es.wikipedia.org/wiki/Tiempo_universal_coordinado Las zonas horarias se especifican mediante el parámetro tz, que puede tomar los valores que se especifican en el apéndice A3. Zonas horarias. 8 Capítulo 3. Cuestiones generales Documentación de la API del MeteoSIX, Versión v2 3.6 Formatos temporales El formato empleado para las fechas devueltas por la API es yyyy-MM-ddTHH:mm:ssZZ, donde: yyyy: año MM: mes dd: día del mes HH: hora (en formato de 24 horas) mm: minuto ss: segundo ZZ: desviación respecto a la hora UTC. Los caracteres ZZ se sustituirán por un código que representa la desviación de la hora respecto a la hora UTC. Por ejemplo, para una fecha en hora local de Galicia, en horario de verano, los caracteres ZZ se sustituyen por el código +02; para una fecha en hora local de Galicia, en horario de invierno, se sustituyen por el código +01. Para fechas en UTC, los caracteres ZZ se sustituyen por el código Z. Ejemplos: 2011-10-24T05:00:00+02 2011-10-24T05:00:00+01 2011-10-24T05:00:00Z // Galician local time, summer // Galician local time, winter // UTC hour A la hora de especificar momentos temporales a través de parámetros, el formato a emplear es yyyy-MM-ddTHH:mm:ss (el mismo, pero sin la diferencia horaria con UTC). 3.7 Formatos numéricos El separador decimal es siempre el punto, ‘.’, independientemente del idioma. 3.8 Imágenes Para algunas variables, como el viento o el estado del cielo, la API del MeteoSIX devuelve referencias (URLs) a imágenes de iconos que representan los valores puntuales de esas variables, además de los propios valores numéricos. Todas estas imágenes están en formato PNG y tienen unas dimensiones de 24x24 píxeles. 3.9 Formatos de salida En general, todas las peticiones devolverán datos en el formato que se especifique en los parámetros de la petición (o en el formato por defecto). Dependiendo del tipo de operación y del resultado (correcto, excepción, etc.), los formatos contemplados son los siguientes: GeoJSON 1 1 Aunque el MIME-TYPE que se declara es el de JSON (GeoJSON carece de MIME-TYPE específico), se emplea este formato que añade a JSON soporte para información geográfica. En este documento se hablará normalmente de GeoJSON, aunque a veces aparecerá JSON. Siempre que la información contenida en una salida en JSON contenga datos geográficos, éstos irán en GeoJSON. 3.6. Formatos temporales 9 Documentación de la API del MeteoSIX, Versión v2 GML 3.2.1 KML 2.0 HTML 3.10 Excepciones En caso de error, la API devolverá información sobre éste, en el formato de error especificado en la petición (o en el formato por defecto). Los formatos soportados para las excepciones son: JSON 1 XML 10 Capítulo 3. Cuestiones generales CAPÍTULO 4 Operaciones 4.1 Introducción La API del MeteoSIX contempla, en esta versión v2, cuatro operaciones: Operación /findPlaces: Permite buscar lugares por nombre, a partir de una cadena de caracteres. Operación /getNumericForecastInfo: Devuelve información de predicción numérica, atmosférica y oceanográfica. Modificado en la versión v2: (antes era la operación /getWeatherInfo) Operación /getTidesInfo: Devuelve información de mareas. Nuevo en la versión v2. Operación /getSolarInfo: Devuelve información de las horas de salida y puesta de sol. Nuevo en la versión v2. En cada petición deben indicarse una serie de parámetros que determinan el comportamiento del MeteoSIX a la hora de preparar la respuesta. Las operaciones /getNumericForecastInfo, /getTidesInfo y /getSolarInfo comparten una serie de características comunes (algunos parámetros, formatos de salida, etc.) que se describen a continuación. 4.2 Parámetros comunes a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo Los parámetros comunes a estas operaciones son: 11 Documentación de la API del MeteoSIX, Versión v2 Nombre API_KEY Obligatorio SÍ Posibles valores Clave de la API del MeteoSIX Identificador de lugar Valor por defecto - locationId NO 1 coord 2 NO 1 x,y (ej: -8.32,44.5) - startTime NO Instante temporal, con formato yyyy-MMddTHH:mm:ss - endTime NO Instante temporal, con formato yyyy-MMddTHH:mm:ss - lang NO ‘gl’ ‘es’ ‘en’ ‘en’ tz 3 NO “Europe/Madrid” CRS 3 NO style 3 NO format NO exceptionsFormat NO Identificador de la zona horaria (ver Zonas horarias) Identificador del Sistema de Coordenadas Nombre del estilo a aplicar en el HTML de la respuesta ‘gml3’ ‘kml’ ‘application/json’ ‘text/html’ ‘application/json’ ‘application/xml’ ‘text/html’ 1 2 3 12 - Comentarios Ver la sección Obtención de la clave para el uso de la API. Identificador de lugar sobre el que se desea obtener datos (ver Operación /findPlaces). Si no existe un lugar con ese identificador, devuelve una excepción. Par de coordenadas del lugar sobre el que se desea obtener datos separadas por comas. En el caso de coordenadas geográficas el orden es longitud,latitud. Primer instante temporal para el que se quiere información. Si no se indica se devuelve desde el primer instante disponible, dentro de los límites establecidos para cada petición. Si es anterior al primero disponible, devuelve una excepción. Último instante temporal para el que se quiere información. Si no se indica, se devuelve hasta el último instante disponible, dentro de los límites establecidos para cada petición. Si es posterior al último disponible devuelve una excepción. Idioma en el que se devuelven los textos, incluyendo los textos de las excepciones. Zona horaria en la que se mostrarán las horas. “EPSG:4326” Actualmente el único posible valor es EPSG:4326. “default” Sólo se debe indicar cuando el valor del parámetro format es text/html. Actualmente el único posible valor es default. Formato en el que se quieren los resultados. ‘application/json’ ‘application/json’ Formato para las excepciones. Uno y sólo uno de los dos parámetros, locationId o coord, tiene que estar presente En la versión v1 de la API este parámetro se llamaba lonlat Nuevos en la versión v2 Capítulo 4. Operaciones Documentación de la API del MeteoSIX, Versión v2 Si no se indica el valor de los parámetros startTime ni endTime se obtendrá la información para todos los instantes disponibles, dentro de los límites establecidos para cada petición. 4.3 Formatos de salida comunes a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo HTML: devuelve una tabla en HTML con los datos deseados. Este formato está pensado para poder introducir fácilmente la información del MeteoSIX en una página web o similar. GML: formato GML 3.2.1, compatible con muchos visores geográficos (QGIS, OpenLayers, ArcView...). KML: en este formato, la información viene incluida en el elemento <description> en forma de HTML (con el mismo contenido que especifica el formato HTML). JSON: la información va codificada en GeoJSON. 4.4 Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo La API del MeteoSIX organiza la información meteorológica y oceanográfica que devuelve en distintas variables. Cuando se invoque alguna de estas operaciones la API devolverá información para el intervalo de tiempo que se solicite, estructurada conceptualmente de la siguiente manera: Localizaciones: cada localización contiene información para uno o varios días. • Días: cada día contiene información sobre el intervalo de tiempo que comprende (puede no ser el día completo) e información para determinadas variables. ◦ Variables: para cada variable se incluye cierta información, que depende del tipo de variable que sea (de predicción numérica, de mareas, solar...). Valores e instantes temporales: los valores propiamente dichos, y los instantes temporales con los que se corresponden. Se trata, por tanto, de una colección de localizaciones (actualmente esta colección contiene sólo un elemento). Así, dependiendo del formato de salida, cada petición devolverá lo siguiente: Nombre “Colección de localizaciones” Comentarios Según el formato, tendrá una forma concreta u otra: JSON: se emplea un objeto “FeatureCollection” que contiene tantos objetos “Feature” como puntos de predicción (actualmente sólo uno) GML: se emplea un elemento <gml:FeatureCollection> que contiene tantos <gml:FeatureMember> como puntos de predicción (actualmente sólo uno) KML: la información está en elementos <Placemark> (actualmente sólo uno) HTML: la información está en tablas HTML Para cada localización obtenida, se devuelven a su vez los siguientes atributos: 4.3. Formatos de salida comunes a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo 13 Documentación de la API del MeteoSIX, Versión v2 Nombre “Geometría” Comentarios Las coordenadas del lugar. Se trata de un punto. Según el formato de salida, estará presentada de una forma distinta: JSON: la geometría se presenta como un geometry con un objeto con *”type” : “Point” GML: la geometría se presenta como un <gml:featureMember> que contiene un <geometry> que a su vez contiene un <gml:point> KML: la geometría se presenta como un elemento <Point> HTML: la información va en un texto dentro del HTML “Días” Es una lista de días para los que se tiene información. Cada día a su vez presenta la estructura descrita en la documentación de cada operación (Opcional) Contiene otros datos del lugar. Por ejemplo, cuando la operación se invoca con parámetro locationId, se devuelve también el id, nombre, municipio, provincia y tipo de lugar. “Datos del lugar” Para cada día se devuelve: Nombre “day” Comentarios El intervalo de tiempo para el que hay información dentro del día. Según el formato de salida vendrá especificada de un modo distinto, pero los instantes temporales tendrán el formato yyyy-MM-ddTHH:mm:ss+XX JSON: la fecha viene en un elemento “TimePeriod” GML: la fecha viene en un elemento <gml:TimePeriod> que contiene un elemento <gml:begin> y un elemento <gml:end> KML: igual que en HTML, ya que este HTML viene dentro del elemento <description/> HTML: muestra una tabla por día, encabezada con la fecha de ese día “variables” Es una lista de variables para las que se tiene información. Cada variable tiene la estructura descrita en los diferentes apartados de cada operación Así, ya formalmente, y en concreto para cada formato de salida: JSON: Devuelve un objeto GeoJSON con la siguiente estructura: { "type": "FeatureCollection", "features": [ { "type": "Feature", "crs": { "type": "name", "properties": { "name": CRS } }, "geometry": { "type": "Point", "coordinates": [ x,y ] }, "properties": { "id": ID, "name": NAME, 14 Capítulo 4. Operaciones Documentación de la API del MeteoSIX, Versión v2 "municipality": MUNICIPALITY, "province": PROVINCE, "type": TYPE, "days": DAYS_ARRAY } } ... ] } Donde CRS es el sistema urn:ogc:def:crs:OGC:1.3:CRS84). de coordenadas (actualmente es siempre ID, NAME, MUNICIPALITY, PROVINCE y TYPE sólo se devuelven cuando la operación se invoca con el parámetro locationId, aunque pueden aparecer otros atributos. A su vez, el objeto DAYS_ARRAY es un array JSON que contiene tantos elementos como días para los que haya información disponible, cada uno de los cuales tiene la siguiente estructura: { "TimePeriod": { "begin": { "TimeInstant": START_DATE }, "end": { "TimeInstant": END_DATE } }, "variables": VARIABLES_ARRAY } Donde START_DATE y END_DATE representan respectivamente el primero y último instante temporal para los que hay valores disponibles en este día. GML: Devuelve un documento GML cuya raíz es un elemento <gml:FeatureCollection> con la siguiente estructura: <?xml version="1.0" encoding="UTF-8"?> <gml:FeatureCollection xmlns="http://www.meteogalicia.es/meteosix" xmlns:gml="http://www.opengis.net/gml"> <gml:boundedBy> <gml:Box srsName="EPSG:4326"> <gml:coordinates>MINX,MINY MAXX,MAXY</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember id="ID" name="NAME" municipality="MUNICIPALITY" province="PROVINCE" type="TYPE"> <geometry> <gml:Point srsName="CRS"> <gml:coordinates> x,y </gml:coordinates> </gml:Point> </geometry> <days> DAY 1 DAY 2 ... 4.4. Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo 15 Documentación de la API del MeteoSIX, Versión v2 </days> </gml:featureMember> </gml:FeatureCollection> Donde CRS es el sistema de coordenadas (actualmente es siempre EPSG:4326). De nuevo, ID, NAME, MUNICIPALITY, PROVINCE y TYPE sólo se devuelven cuando la operación se invoca con parámetro locationId. Es decir, presenta un <gml:featureMember> que contiene la geometría, seguido de una sucesión de elementos <day>, cada uno de los cuales presenta la siguiente estructura: <day> <gml:TimePeriod> <gml:begin> <gml:TimeInstant> <gml:timePosition> START_DATE </gml:timePosition> </gml:TimeInstant> </gml:begin> <gml:end> <gml:TimeInstant> <gml:timePosition> END_DATE </gml:timePosition> </gml:TimeInstant> </gml:end> </gml:TimePeriod> <variables> VARIABLE 1 VARIABLE 2 ... </variables> </day> Esto es, un elemento <gml:TimePeriod> que indica el intervalo de predicción, seguido de una sucesión de elementos <variable>. HTML: La respuesta es un documento HTML con el correspondiente CSS que contiene una tabla con la información solicitada. 16 Capítulo 4. Operaciones Documentación de la API del MeteoSIX, Versión v2 KML: La respuesta es un documento KML cuya raíz es un elemento <kml> con el siguiente contenido: <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.0"> <Document> <Placemark id="thePoint1"> <Point> <coordinates>x,y</coordinates> </Point> <description> DESCRIPTION </description> </Placemark> <Placemark id="thePoint2"> ... </Placemark> ... </Document> </kml> Contiene tantos elementos <Placemark> como localizaciones se obtienen, con la información de las geometrías en los subelementos <Point>, y conteniendo los subelementos DESCRIPTION el mismo HTML que se obtiene cuando se hace la misma petición con el formato HTML. 4.4. Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo 17 Documentación de la API del MeteoSIX, Versión v2 18 Capítulo 4. Operaciones CAPÍTULO 5 Operación /findPlaces 5.1 Introducción Esta operación sirve para localizar lugares a partir de una cadena de caracteres. En la información devuelta para cada lugar se incluyen atributos alfanuméricos (nombre, nombre del municipio al que pertenece, etc.), un identificador que permitirá referenciar el lugar en las otras operaciones, y sus coordenadas, lo que permite geolocalizar el lugar, o emplear estas coordenadas para referenciar también el lugar en las otras operaciones. Se puede indicar el tipo o tipos de lugares en los que se desea buscar. Si no se establece este parámetro, se busca en todos los tipos de lugares. Los tipos de lugares que se pueden buscar actualmente son: Nombre locality beach Descripción Entidades de población Playas Ámbito Galicia Galicia Nota: se corresponden con los valores eesspp y praia de versiones anteriores de la API. El criterio de coincidencia es el siguiente: devolverá todos los lugares cuyo nombre comience, contenga o acabe con la cadena de caracteres especificada, sea en mayúsculas o minúsculas. La información sobre las entidades de población fue proporcionada por el SITGA (Sistema de Información Territorial de Galicia, http://sitga.xunta.es) y la localización de las playas fue facilitada por INTECMAR (Instituto Tecnológico para el Control del Medio Marino de Galicia, http://www.intecmar.org/). 5.2 Parámetros Los parámetros que puede recibir esta operación son: 19 Documentación de la API del MeteoSIX, Versión v2 Nombre location Obligatorio SÍ types NO lang NO format NO exceptionsFormat NO API_KEY SÍ Posibles valores Cualquier cadena de caracteres Secuencia separada por comas de los tipos de lugares de entre los que buscar (ver a tabla de tipos de lugar) ‘gl’ ‘es’ ‘en’ Valor por defecto - ‘gml3’ ‘kml’ ‘application/json’ ‘application/xml’ ‘application/json’ Clave del API del MeteoSIX ‘application/json’ Comentarios Por ejemplo “ouren” o “coru” - ‘en’ ‘application/json’ Idioma en el que se devuelven los textos, incluyendo los textos de las excepciones. Formato de los resultados Formato de salida para las excepciones 5.3 Resultado Esta operación devuelve los resultados siguiendo el formato especificado por el parámetro format. Se trata de un array de lugares. En función del formato especificado, la estructura de datos devuelta será: Un “FeatureCollection”, en caso de GeoJSON, con tantos objetos “feature” como coincidencias se encontraron Un <gml:FeatureCollection> en caso de GML, con tantos elementos <FeatureMember> como coincidencias se encontraron Un documento KML en caso de KML con tantos elementos <Placemark> como coincidencias se encontraron En cualquier caso, las geometrías devueltas serán siempre puntos. Si no se encuentra ningún resultado, devuelve esos mismos objetos/elementos, pero sin contenido. Cada lugar encontrado contiene los siguientes atributos, presentados de distinta manera según el formato de salida elegido: Nombre id name municipality province type geometry Comentarios Identificador (para emplear en futuras búsquedas por id) Nombre del lugar Nombre del municipio al que pertenece Nombre de la provincia a la que pertenece Tipo de lugar Las coordenadas del punto. Según el formato de salida, estará presentada de una forma distinta: JSON: la geometría se presenta como un objeto “geometry” que contiene un objeto con la propiedad “type” : “Point” GML: la geometría se presenta como un elemento <geometry> que contiene un elemento <gml:point> KML: la geometría se presenta como un elemento <Point> En concreto para cada formato de salida: JSON: 20 Capítulo 5. Operación /findPlaces Documentación de la API del MeteoSIX, Versión v2 Devuelve un objeto GeoJSON con la siguiente estructura: { "type" : "FeatureCollection", "crs" : { "type" : "name", "properties" : { "name" : CRS } }, "features" : FEATURES_ARRAY } El objeto FEATURES_ARRAY es un array JSON ([elemento1, elemento2...]), donde cada elemento es un “feature”. Cada uno de ellos es de la forma: { "type" : "Feature", "geometry" : { "type" : "Point", "coordinates": [ x, y ] }, "properties" : { "id" : ID, "name" : NAME, "municipality" : MUNICIPALITY, "province" : PROVINCE, "type" : TYPE } } donde, además de los atributos ya mencionados, aparecen: • x : la coordenada x, o longitud, con 5 decimales. • y : la coordenada y, o latitud, con 5 decimales. GML: Devuelve un documento GML cuya raíz es un elemento <gml:FeatureCollection> con la siguiente estructura: <gml:FeatureCollection xmlns="http://www.meteogalicia.es/meteosix" xmlns:gml="http://www.opengis.net/gml"> <gml:boundedBy> <gml:Box srsName=CSR> <gml:coordinates> MIN_X,MIN_Y MAX_X,MAX_Y </gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> FEATURE_MEMBER_1 </gml:featureMember> <gml:featureMember> FEATURE_MEMBER_2 </gml:featureMember> ... </gml:FeatureCollection> 5.3. Resultado 21 Documentación de la API del MeteoSIX, Versión v2 Contiene el bounding box con todos los lugares encontrados (se especifican las coordenadas de las esquinas inferior izquierda y superior derecha de este bounding box), y una lista de lugares en forma de elementos <FeatureMember>, que a su vez presentan la siguiente estructura: <gml:featureMember> <geometry> <gml:Point srsName=CSR> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </geometry> <id>ID</id> <name>NAME</name> <municipality>MUNICIPALITY</municipality> <province>PROVINCE</province> <type>TYPE</type> </gml:featureMember> KML: Devuelve un documento KML con la siguiente estructura: <kml xmlns="http://earth.google.com/kml/2.0"> <Document> <Placemark id="ID"> <Point> <coordinates>x,y</coordinates> </Point> <description>NAME - MUNICIPALITY (PROVINCE) - TYPE</description> </Placemark> <Placemark id="..."> ... </Placemark> ... </Document> </kml> es decir, un documento KML con una serie de elementos <Placemark> que representan cada uno de los lugares encontrados. 5.4 Ejemplos Buscar lugares que contengan el texto ‘oure’: http://servizos.meteogalicia.es/apiv2/findPlaces?location=oure&API_KEY=*** Buscar lugares que contengan el texto ‘lanza’: http://servizos.meteogalicia.es/apiv2/findPlaces?location=lanza&API_KEY=*** Buscar playas que contengan el texto ‘lanza’: http://servizos.meteogalicia.es/apiv2/findPlaces?location=lanza&types=beach&API_KEY=*** 22 Capítulo 5. Operación /findPlaces CAPÍTULO 6 Operación /getNumericForecastInfo 6.1 Introducción Nota: esta operación sustituye a la operación /getWeatherInfo de la versión anterior de la API Esta operación permite obtener información de la predicción numérica meteorológica y oceanográfica para un punto concreto. Existen dos formas de indicar a MeteoSIX el punto sobre el que se quiere realizar la consulta: A partir de un par de coordenadas x, y. A partir del id de un lugar obtenido previamente mediante la Operación /findPlaces. Respecto a la estructura de salida definida en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo, si esta petición solicita información, por ejemplo, para tres variables distintas, cada día incluirá tres variables (si hay predicción para las tres para ese día). Del mismo modo, si se solicita información para una variable en un mismo modelo y en tres mallas distintas, cada día incluirá tres variables (una por cada malla). De este modo, es posible obtener información para una misma variable pero procedente de distintos modelos, o de un mismo modelo pero distintas mallas, etc. Sin embargo, a la hora de especificar las variables que se quieren incluir en las respuestas, no es obligatorio especificar los modelos y mallas para los que se quiere obtener los datos. De este modo, si sólo se especifican los nombres de las variables, la API del MeteoSIX devolverá siempre la información procedente de las mejores mallas y modelos (los de mayor resolución para cada una de ellas). Es posible que la malla de mayor resolución no tenga datos a partir de un determinado día, pero sí los tengan otras mallas. En ese caso, la API devolverá los datos de la malla de mejor resolución para los días que ésta tiene datos, y de las otras mallas para el resto. También es posible indicar las unidades en las que se quieren obtener los resultados para cada variable. Si se omite esta opción, las variables se devolverán en sus unidades por defecto. La siguiente tabla muestra las variables sobre las que se puede realizar consultas. Se muestra el nombre a emplear en las peticiones, su descripción, los modelos para los que hay predicciones disponibles para la variable, los posibles valores que devuelve, las posibles unidades de medida (que se explican más adelante), las unidades de medida por defecto, y si el resultado incorpora o no una URL del icono asociado. 23 Documentación de la API del MeteoSIX, Versión v2 Nombre Descripción Modelos Valores sky_state Estado del cielo WRF temperature Temperatura WRF precipitation_amount Precipitación WRF acumulada durante la hora anterior Viento WRF SUNNY, HIGH_CLOUDS, PARTLY_CLOUDY, OVERCAST, CLOUDY, FOG, SHOWERS, OVERCAST_AND_SHOWERS, INTERMITENT_SNOW, DRIZZLE, RAIN, SNOW, STORMS, MIST, FOG_BANK, MID_CLOUDS, WEAK_RAIN, WEAK_SHOWERS, STORM_THEN_CLOUDY, MELTED_SNOW, RAIN_HAIL Número entero degC degK degF Número real (con 2 deci- lm2 males) wind relative_humidity Humedad relativa cloud_area_fraction Cobertura nubosa air_pressure_at_sea_level Presión al nivel del mar snow_level Cota de nieve sea_water_temperature Temperatura del agua WRF significative_wave_height Altura ola 1 24 de UnidadesUnidades por defecto -1 - Devuelve los valores de módulo y dirección del viento, ambos números reales con 2 decimales WRF Número real (con 2 decimales) Número real (con 2 decimales) Número entero WRF Número entero ROMS, MOHID Número entero WW3, SWAN Número real (con 2 decimales) WRF Incorpora URL de icono SÍ degC NO lm2 NO kmhdeg msdeg mphdeg ktdeg perc kmhdeg SÍ perc NO perc perc NO hpa pa atm m ft hpa NO m NO degC degK degF m ft degC NO m SÍ Si se especifica el parámetro units, la unidad para esta variable tiene que quedar vacía (sin espacios en blanco) Capítulo 6. Operación /getNumericForecastInfo Documentación de la API del MeteoSIX, Versión v2 mean_wave_direction relative_peak_period sea_water_salinity Dirección del mar Período de ola Salinidad del agua WW3, SWAN WW3, SWAN ROMS, MOHID Número real (con 2 decimales) Número entero deg deg SÍ s s NO Número real (con 2 decimales) psu psu NO Donde: degC: grados Celsius ( ºC ) degK: grados Kelvin ( ºK ) degF: grados Fahrenheit ( ºF ) kmh-deg: kilómetros por hora ( km/h ) – grados ( º ) ms-deg: metros por segundo ( m/s ) – grados ( º ) mph-deg: millas por hora ( mph ) – grados ( º ) kt-deg: nudos ( kt ) – grados ( º ) m: metros ( m ) ft: pies ( ft ) lm2: litros por metro cuadrado ( l/m2 ) perc: porcentaje ( % ) hpa: hectopascales ( hPa ) pa: pascales ( Pa ) atm: atmósferas ( atm ) s: segundos ( s ) deg: grados ( º ) psu: unidades prácticas de salinidad ( psu ) 6.2 Rango temporal Si no se especifica el rango temporal en los parámetros, se devuelven todos los datos disponibles, cuyo alcance temporal depende de los modelos y mallas concretos (ver apartado Modelos de predicción numérica). 6.3 Parámetros Los parámetros que admite esta operación, además de los referenciados en la tabla de parámetros comunes, son: 6.2. Rango temporal 25 Documentación de la API del MeteoSIX, Versión v2 Nombre variables Obligatorio NO Posibles valores Secuencia separada por comas de nombres de variables de entre los nombres indicados en la tabla de variables de predicción Secuencia separada por comas de nombres de modelos de entre los nombres: WRF, WW3, SWAN, ROMS, MOHID Valor por defecto ‘sky_state, temperature, wind, precipitation_amount’ Comentarios models NO - NO Secuencia separada por comas de nombres de mallas de entre los nombres indicados en la columna Malla de las tablas: WRF, WW3, SWAN, ROMS y MOHID - NO Secuencia separada por comas de nombres de unidades de entre los nombres indicados en la celda correspondiente a la columna Unidades de la tabla de variables de predicción Si no hay valores o si para una de las variables no se indica valor (cadena vacía), se emplea la unidad por defecto indicada en la tabla de variables de predicción Tiene que tener tantos elementos como variables se indican en el parámetro variables. Cada modelo se refiere a la variable que ocupa la misma posición en ese parámetro. Un elemento puede ser la cadena vacía (se aplicará el modelo con mayor precisión). Tiene que tener tantos elementos como variables se indican en el parámetro variables y modelos se indican en el parámetro models. Cada malla se refiere a la variable y modelo que ocupan la misma posición en sus respectivos parámetros. Un elemento puede ser la cadena vacía (aplicará la mejor malla) Tiene que tener tantos elementos como variables se indican en el parámetro variables. Cada unidad se refiere a la variable que ocupa la misma posición en el parámetro variables. Un elemento puede ser la cadena vacía (se aplicará la unidad por defecto) grids units El funcionamiento, a la hora de seleccionar variables, es el siguiente: Si no se indica el parámetro variables, éste toma el valor por defecto: ‘sky_state,temperature,wind,precipitation_amount’. Los valores devueltos serán los mismos que si sólo se emplea el parámetro variables dándole el valor por defecto. Si sólo se indica el parámetro variables y no los parámetros models ni grids, se devolverán los valores correspondientes a las salidas de los modelos ejecutados en las mallas de mayor resolución disponibles para cada variable. Por ejemplo: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?coord=-8.4275,43.4336 &variables=sky_state,significative_wave_height,sea_water_temperature &API_KEY=*** devolverá los valores para la variable sky_state en el modelo WRF y en la malla Artabro1Km, para la variable 26 Capítulo 6. Operación /getNumericForecastInfo Documentación de la API del MeteoSIX, Versión v2 significative_wave_height en el modelo SWAN en la malla Artabro, y para la variable sea_water_temperature en el modelo MOHID en la malla Artabro. Si se indican los parámetros variables y models y no el parámetro grids, se devolverán los valores correspondientes a las salidas de los modelos ejecutados en las mallas de mayor resolución disponible para cada variable. Por ejemplo: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?coord=-8.4275,43.4336 &variables=sky_state,significative_wave_height,sea_water_temperature &models=WRF,WW3,ROMS &API_KEY=*** devolverá los valores para la variable sky_state en el modelo WRF y en la malla Artabro, para la variable significative_wave_height pero ahora en el modelo WW3 en la malla Galicia y para la variable sea_water_temperature ahora en el modelo ROMS en la malla Galicia. Si se indican los parámetros variables y models y el parámetro grids, se devolverán los valores correspondientes a las salidas de los modelos y mallas especificados para cada variable. De esta manera es posible pedir información de una misma variable en varias mallas y modelos. Por ejemplo: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?coord=-8.4275,43.4336 &variables=sky_state,sky_state,temperature, significative_wave_height,significative_wave_height,sea_water_temperature &models=WRF,WRF,WRF,WW3,WW3,ROMS &grids=04km,12km,36km,Galicia,AtlanticoNorte,Galicia &API_KEY=*** devolverá los valores para la variable sky_state en el modelo WRF y en la malla 04km, para la variable sky_state en el modelo WRF y en la malla 12km, para la variable temperature en el modelo WRF y en la malla 36km, para la variable significative_wave_height en el modelo WW3 en la malla Galicia, para la variable significative_wave_height en el modelo WW3 en la malla AtlanticoNorte y para la variable sea_water_temperature en el modelo ROMS en la malla Galicia. Si el número de elementos indicados en alguno de estos tres parámetros (contando con cadenas vacías) no coincide, la operación devuelve una excepción. Se permiten cadenas vacías en los parámetros models y grids. Los valores de las variables afectadas procederán de la combinación malla/modelo de mayor resolución disponible. 6.4 Resultado El resultado de la operación /getNumericForecastInfo sigue lo especificado en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo. Si una variable se pide en dos mallas distintas, entonces habrá dos elementos variable para cada día, uno por malla (y modelo). Este elemento variable incluirá la información del modelo y de la malla con los que se corresponde. Cada elemento variable contiene una serie de valores para esa variable en ese modelo y en esa malla, para el día concreto. Las variables aparecen siguiendo el orden que se muestra en la tabla de variables de predicción. Para cada variable: 6.4. Resultado 27 Documentación de la API del MeteoSIX, Versión v2 Nombre “name” “model” “modelRun” “grid” “geometry” “units” “values” Comentarios El nombre de la variable. El nombre del modelo del que procede. La fecha, en formato yyyy-MM-ddTHH:mm:ss+XX, de la ejecución del modelo del cual proceden los valores. El nombre de la malla de la que procede. La geometría del punto del cual proceden los valores. Este no tiene por qué coincidir exactamente con el punto para el cual se realizó la petición. El nombre de las unidades de medida de esta variable. Es la lista de valores para cada hora, dentro del día, de cada variable (combinación variablemodelo-malla). Cada valor sigue la estructura mostrada en la tabla de estructura común de valores, excepto el valor de la variable wind que sigue la estructura mostrada en la tabla de estructura del valor de viento. Para cada valor: Nombre “timeInstant” “value” “iconURL” Comentarios La hora, en formato yyyy-MM-ddTHH:mm:ss+XX, a la que corresponde el valor. El valor de la variable. Puede ser un valor numérico o una cadena de caracteres, dependiendo de la variable de la que se trate. (Opcional) En caso de que el valor de la variable tenga un icono asociado, se proporcionará en este campo la URL del icono proporcionado por el MeteoSIX que representa ese valor. Para cada valor de la variable wind: Nombre “timeInstant” “moduleValue” “directionValue” “iconURL” Comentarios La hora, en formato yyyy-MM-ddTHH:mm:ss+XX, a la que corresponde el valor. El valor del módulo del viento. El valor de la dirección del viento. URL del icono proporcionado por el MeteoSIX que representa ese valor. Si el formato de salida es JSON o GML, si no se especifica un intervalo temporal concreto y si una de las variables no tiene valores para una malla en alguno de los días (bien porque no están disponibles puntualmente, bien porque el modelo no produce valores para ese instante temporal), el formato de la variable varía. Nombre “name” “model” “modelRun” “grid” “message” “values” Comentarios El nombre de la variable. El nombre del modelo del que procede. La fecha, en formato yyyy-MM-ddTHH:mm:ss+XX, de la ejecución del modelo del cual proceden los valores. El nombre de la malla de la que procede. Mensaje indicando el motivo de la ausencia de valores. Array vacío. Esto no se aplica, sin embargo, cuando se especifica un intervalo temporal explícito en la petición. En este caso, se exige que todas las mallas tengan datos para ese intervalo, y si alguna no los tiene, devolverá una excepción (se entiende que se está pidiendo una variable en un intervalo en el que se sabe que no está disponible). Puede consultar los intervalos disponibles para cada modelo y malla en el apartado Modelos de predicción numérica. Así, ya formalmente, y en concreto para cada formato de salida: JSON: Continuando con lo definido en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo, el objeto VARIABLES_ARRAY es un array JSON que contiene tantos elementos como combinaciones variable-modelo-malla haya para ese día, cada uno de los cuales tiene la siguiente estructura: 28 Capítulo 6. Operación /getNumericForecastInfo Documentación de la API del MeteoSIX, Versión v2 { "name": VARIABLE_NAME, "geometry": GEOMETRY, "model": MODEL_NAME, "modelRun": MODEL_RUN, "grid": GRID_NAME, "units": UNIT_NAME, "values": VALUES_ARRAY } Donde: • VARIABLE_NAME es el nombre de la variable (igual que el parámetro usado). • GEOMETRY es la geometría del punto del que proceden los valores, presentada con un objeto con “type” : “Point”. • MODEL_NAME es el nombre del modelo del que proceden los valores. • MODEL_RUN es la fecha, en formato yyyy-MM-ddTHH:mm:ss+XX, de la ejecución del modelo del que proceden los valores. • GRID_NAME es el nombre de la malla en la que se ejecutó el modelo del que proceden los valores. • UNIT_NAME es el nombre de las unidades de medida para esta variable. • VALUES_ARRAY es un array JSON que contiene tantos elementos como valores hay para esta combinación variable-modelo-malla en este día. Cada elemento puede tener una de las siguientes estructuras: ◦ Variable con URL de icono (ver la tabla de variables de predicción) (siempre que no se trate de la variable wind): { "timeInstant": HOUR, "value": VALUE, "iconURL": ICON_URL } Donde HOUR es la hora a la que corresponde el valor, en formato yyyy-MM ddTHH:mm:ss+XX; VALUE es el valor, cuyo tipo de dato dependerá de la variable de la que se trate (ver la tabla de variables de predicción); e ICON_URL, que será una URL -de acceso público- a un icono proporcionado por el MeteoSIX que representa el valor de esta variable. ◦ Variable sin URL de icono (ver la tabla de variables de predicción): { "timeInstant": HOUR, "value": VALUE } ◦ Variable wind (ver la tabla de variables de predicción): { "timeInstant": HOUR, "moduleValue": MOD_VALUE, "directionValue": DIR_VALUE, 6.4. Resultado 29 Documentación de la API del MeteoSIX, Versión v2 "iconURL": ICON_URL } Donde, a mayores de los campos ya conocidos, MOD_VALUE es el valor del módulo del viento y DIR_VALUE es el valor de la dirección del viento. Como se comentó, si una de las variables no tiene datos para alguna malla, el formato varía, siendo: { "name": VARIABLE_NAME, "model": MODEL_NAME, "modelRun": MODEL_RUN, "grid": GRID_NAME, "message": REASON, "values": EMPTY_ARRAY } GML: Continuando con lo definido en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo, habrá un elemento VARIABLE por cada combinación variable-modelo-malla, cada uno de los cuales es de la siguiente forma: <variable name="VARIABLE_NAME" model="MODEL_NAME" grid="GRID_NAME" units="UNIT_NAME" modelRun="MODEL_RUN"> <geometry> <gml:Point srsName=CRS> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </geometry> <values> HOUR_VALUE 1 HOUR_VALUE 2 ... </values> </variable> El elemento <variable> presenta los mismos atributos que en el caso de JSON, y contiene tantos elementos <hourValue> como horas de predicción hay en este día para esta combinación variable-modelo-malla. Cada uno de estos elementos, a su vez, presenta una de las siguientes estructuras, de nuevo dependiendo de si la variable tiene URL de icono o no, y del caso particular de la variable wind. Así: Variable con URL de icono (ver la tabla de variables de predicción) (siempre que no se trate de la variable wind): <hourValue> <gml:TimeInstant> <gml:timePosition> HOUR </gml:timePosition> </gml:TimeInstant> <value>VALUE</value> <iconURL>ICON_URL</iconURL> </hourValue> Variable sin URL de icono (ver la tabla de variables de predicción): <hourValue> <gml:TimeInstant> <gml:timePosition> 30 Capítulo 6. Operación /getNumericForecastInfo Documentación de la API del MeteoSIX, Versión v2 HOUR </gml:timePosition> </gml:TimeInstant> <value>VALUE</value> </hourValue> Variable wind (ver la tabla de variables de predicción): <hourValue> <gml:TimeInstant> <gml:timePosition> HOUR </gml:timePosition> </gml:TimeInstant> <moduleValue>MOD_VALUE</moduleValue> <directionValue>DIR_VALUE</directionValue> <iconURL>ICON_URL</iconURL> </hourValue> En todos los casos, los valores son del mismo tipo que los vistos para JSON. En caso de no haber valores, el formato sería: <variable name="VARIABLE_NAME" model="MODEL_NAME" grid="GRID_NAME" message="REASON" modelRun="MODEL_RUN"> <values/> </variable> HTML: A mayores de la información devuelta en otros formatos, incluye resúmenes diarios para cada variable. Si para una variable no se ofrecen valores para un instante temporal (porque no hay datos o porque es un valor pasado) se indica con un guión -. Así, por ejemplo, la respuesta ante una petición de las variables wind y sky_state sería: 6.4. Resultado 31 Documentación de la API del MeteoSIX, Versión v2 KML La respuesta es un documento KML con la estructura indicada en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo. 6.5 Otras consideraciones Si no se indica intervalo temporal: Se devolverán todos los datos disponibles para cada una de las variables, modelos y mallas especificados en la petición. En el caso del formato HTML los valores que se devuelven serán siempre a partir de la hora actual (y en KML también, debido a que el contenido del elemento <description> es el mismo). En otros formatos devuelve todos los datos disponibles, independientemente de si corresponden a tiempos pasados o no. Si se indica intervalo temporal: Si alguna de las variables no tiene valores para un modelo y malla especificados para todo el intervalo, devuelve una excepción. En este caso, si el intervalo incluye tiempos pasados, devolverá esos valores también en HTML y KML. 6.6 Ejemplos Obtener predicción estándar para una localización determinada: 32 Capítulo 6. Operación /getNumericForecastInfo Documentación de la API del MeteoSIX, Versión v2 http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?coord=-8.350573861318628,43.3697102138535 &API_KEY=*** Obtener la misma predicción estándar para una localización determinada, pero en HTML: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?coord=-8.350573861318628,43.3697102138535 &format=text/html &API_KEY=*** Obtener, para Loureda, Arteixo (lugar con id 42917), la predicción para la variable temperatura en las mallas de 4 y 12 km, y para el estado del cielo en la malla de 36 km, del WRF: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?locationId=42917 &variables=temperature,temperature,sky_state &grids=04km,12km,36km &format=gml3 &API_KEY=*** La misma petición, pero en formato KML y con las temperaturas en grados Kelvin: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?locationId=42917 &variables=temperature,temperature,sky_state &grids=04km,12km,36km &format=kml &units=degk,degk, &API_KEY=*** La misma petición, pero en formato HTML y para un periodo de tiempo determinado: http://servizos.meteogalicia.es/apiv2/getNumericForecastInfo ?locationId=42917 &variables=temperature,temperature,sky_state &grids=04km,12km,36km &format=text/html &units=degk,degk, &startTime=2013-03-07T15:00:00 &endTime=2013-03-08T08:00:00 &API_KEY=*** Nota: para ejecutar esta última petición es necesario ajustar los parámetros startTime y entTime a valores actuales 6.6. Ejemplos 33 Documentación de la API del MeteoSIX, Versión v2 34 Capítulo 6. Operación /getNumericForecastInfo CAPÍTULO 7 Operación /getTidesInfo 7.1 Introducción Esta petición ofrece información acerca de las mareas en un punto en la costa, o cercano a ella. La API devuelve información de 12 puertos situados a lo largo de la geografía gallega. En concreto: Identificador 1 3 4 5 6 7 8 9 10 11 12 13 Nombre A Coruña Vigo Vilagarcía Ferrol Ría de Foz Corcubión Ría de Camariñas Ría de Corme A Guarda Ribeira Muros Pontevedra La información que devuelve para esos puertos es el resumen diario de mareas: hora y altura de marea para cada pleamar y bajamar del día. Cada uno de estos 12 puertos tiene asociado, por proximidad, un puerto de referencia de entre los cuatro siguientes: Identificador 1 2 3 4 Nombre A Coruña Gijón Vigo Vilagarcía La API dispone, para estos puertos de referencia, de información de altura de marea para cada 30 minutos. En la siguiente figura puede ver la ubicación de los 12 puertos (violeta), así como de los 4 puertos de referencia (rojo). 35 Documentación de la API del MeteoSIX, Versión v2 Con lo cual, si se invoca esta operación para un punto “p” cercano a la costa gallega (en la figura, dentro del área amarilla), se recibirá por una parte el resumen diario del puerto más cercano “1” entre los 12 considerados, y además los valores en serie, a intervalos de 30 minutos, correspondientes al puerto de referencia “2” más cercano al puerto “1”. En la siguiente figura puede verse un ejemplo de esta situación, en donde el puerto más cercano al punto “p” indicado por el usuario es el puerto de Muros (en la imagen, “1”), y el puerto de referencia del puerto de Muros es el puerto de Vilagarcía (en la imagen, “2”): 36 Capítulo 7. Operación /getTidesInfo Documentación de la API del MeteoSIX, Versión v2 7.2 Rango temporal Si no se especifica el rango temporal en los parámetros, se devuelven datos de mareas para cinco días. Si se especifica el rango, esta operación puede devolver datos de mareas de hasta dos meses a partir del día actual. 7.3 Parámetros Los parámetros que admite esta operación son exactamente los indicados en la tabla de parámetros comunes. 7.4 Resultados La estructura de los resultados devueltos es idéntica a la de la operación /getNumericForecastInfo (ver el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo), con la particularidad de que para cada variable dentro de cada día, la estructura es la siguiente: 7.2. Rango temporal 37 Documentación de la API del MeteoSIX, Versión v2 Nombre “name” “message” “units” “port” Comentarios Nombre de la variable, tides en este caso. Información adicional. Unidades en las que se muestran los valores. Identificación del puerto de donde se cogen los datos (ver a continuación la tabla de *port* y *referencePort*). Identificación del puerto de referencia donde se cogen los valores (ver a continuación la tabla de *port* y *referencePort*). Resumen de los datos obtenidos (ver a continuación la tabla de *summary*). El valor de las mareas cada media hora (ver a continuación la tabla de valores de mareas). “referencePort” “summary” “values” Tabla con la estructura de los valores port y referencePort de la variable tides: Nombre “id” “name” “geometry” Comentario Identificador del puerto. Nombre de la ciudad donde se encuentra el puerto. Punto donde se encuentra el puerto. Summary es un array que contiene objetos con la siguiente estructura: Nombre “id” “state” Comentario Identificador del dato. Estado de la marea. Puede tomar los valores de “High tides” para la pleamar y “Low tides” para la bajamar. Altura de la marea. Instante temporal con formato yyyy-MM-ddTHH:mm:ss. “height” “TimeInstant” “Values” es un array que contiene todos los valores para la marea en intervalos de media hora: Nombre “height” “TimeInstant” Comentario Altura de la marea, en metros. Instante temporal con formato yyyy-MM-ddTHH:mm:ss. Entonces, las salidas para los distintos formatos será así: JSON: Devuelve un objeto GeoJSON con la siguiente estructura: { "type": "FeatureCollection", "features": [ { "type": "Feature", "crs": { "type": "name", "properties": { "name": CRS } }, "geometry": { "type": "Point", "coordinates": [ x,y ] }, "properties": { "days": [ { 38 Capítulo 7. Operación /getTidesInfo Documentación de la API del MeteoSIX, Versión v2 "TimePeriod": { "begin": { "TimeInstant": FIRST_VALUE_TIME_INSTANT }, "end": { "TimeInstant": LAST_VALUE_TIME_INSTANT } }, "variables": [ { "name": "tides", "message": MESSAGE, "units": "m", "port": { "id": PORT_IDENTIFIER, "name": PORT_NAME, "geometry": { "type": GEOMETRY_TYPE, "coordinates": [ x,y ] } }, "referencePort": { "id": REFERENCE_PORT_IDENTIFIER, "name": REFERENCE_PORT_NAME, "geometry": { "type": "Point", "coordinates": [ x,y ] }, "summary": [ { "id": VALUE_IDENTIFIER, "state": TIDES_STATE, "height": TIDES_HEIGHT, "TimeInstant": TIME_INSTANT }, ... ], "values": [ { "height": TIDES_HEIGHT, "TimeInstant": TIME_INSTANT }, ... ] } } ] } Donde CRS es el sistema de coordenadas (actualmente es siempre “urn:ogc:def:crs:OGC:1.3:CRS84”). GML: Devuelve un documento GML cuya raíz es un elemento <gml:FeatureCollection> con la siguiente estructura: 7.4. Resultados 39 Documentación de la API del MeteoSIX, Versión v2 <?xml version="1.0" encoding="UTF-8"?> <gml:FeatureCollection xmlns="http://www.meteogalicia.es/meteosix" xmlns:gml="http://www.opengis.net/gml"> <gml:boundedBy> <gml:Box srsName="EPSG:4326"> <gml:coordinates>MINX,MINY MAXX,MAXY</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <geometry> <gml:Point srsName=CRS> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </geometry> <days xmlns="http://www.meteogalicia.es/meteosix" xmlns:gml="http://www.opengis.net/gml"> <day> <gml:TimePeriod> <gml:begin> <gml:TimeInstant> <gml:timePosition>FIRST_VALUE_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </gml:begin> <gml:end> <gml:TimeInstant> <gml:timePosition>LAST_VALUE_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </gml:end> </gml:TimePeriod> <variables> <variable name="tides_info" units="m"> <port> <id>PORT_IDENTIFIER</id> <name>PORT_NAME</name> <gml:Point srsName=CRS> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </port> <referencePort> <id>REFERENCE_PORT_IDENTIFIER</id> <name>REFERENCE_PORT_NAME</name> <gml:Point srsName=CRS> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </referencePort> <summary> <tideValue id="VALUE_IDENTIFIER" state="TIDES_STATE"> <height>TIDES_HEIGHT</height> <gml:TimeInstant> <gml:timePosition>TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </tideValue> ... </summary> <values> <hourValue> <height>TIDES_HEIGHT</height> <gml:TimeInstant> 40 Capítulo 7. Operación /getTidesInfo Documentación de la API del MeteoSIX, Versión v2 <gml:timePosition>TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </hourValue> ... </values> </variable> </variables> </day> </days> </gml:featureMember> </gml:FeatureCollection> Donde CRS es el sistema de coordenadas (actualmente es siempre “EPSG:4326”). HTML La respuesta es un documento HTML (con la hoja de estilos CSS correspondiente al estilo indicado) que contiene una tabla con la información solicitada: KML La respuesta es un documento KML con la estructura indicada en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo. 7.5 Ejemplos Obtener datos de mareas para el puerto más cercano a un punto concreto: http://servizos.meteogalicia.es/apiv2/getTidesInfo?coord=-8.637,43.45&API_KEY=*** 7.5. Ejemplos 41 Documentación de la API del MeteoSIX, Versión v2 42 Capítulo 7. Operación /getTidesInfo CAPÍTULO 8 Operación /getSolarInfo 8.1 Introducción Con esta operación se puede obtener información sobre a qué hora saldrá el sol (orto), a qué hora estará en su punto más alto (mediodía) y a qué hora se pondrá (ocaso) para cualquier punto del globo. También permite obtener las horas de luz totales. 8.2 Rango temporal Si no se especifica el rango temporal en los parámetros, se devuelven datos para cinco días. Si se especifica el rango temporal, esta operación puede devolver datos de salida y puesta de sol de hasta un año a partir del día actual. 8.3 Parámetros Los parámetros que admite esta operación son exactamente los comentados en la tabla de parámetros comunes. 8.4 Resultados La estructura de los resultados devueltos es idéntica a la de la operación /getNumericForecastInfo (ver el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo), con la particularidad de que para cada variable dentro de cada día, la estructura es la siguiente: Nombre “name” “sunrise” “midday” “sunset” “duration” Comentarios Nombre de la variable, solar en este caso. Instante de tiempo en el que se producirá la salida del sol. Instante de tiempo en el que se producirá el mediodía. Instante de tiempo en el que se producirá la puesta del sol. Tiempo de luz solar. Entonces, las salidas para los distintos formatos será así: JSON 43 Documentación de la API del MeteoSIX, Versión v2 Devuelve un objeto GeoJSON con la siguiente estructura: { "type": "FeatureCollection", "features": [ { "type": "Feature", "crs": { "type": "name", "properties": { "name": CRS } }, "geometry": { "type": "Point", "coordinates": [ x,y ] }, "properties": { "days": [ { "TimePeriod": { "begin": { "TimeInstant": SUNRISE_TIME_INSTANT }, "end": { "TimeInstant": SUNSET_TIME_INSTANT } }, "variables": [ { "name": "solar", "sunrise": SUNRISE_TIME_INSTANT, "midday": MIDDAY_TIME_INSTANT, "sunset": SUNSET_TIME_INSTANT, "duration": DURATION } ] }, ... ] } ] } Donde DURATION sigue el formato “Xh Xm”, por ejemplo “9h 12m”, y CRS es el sistema de coordenadas (actualmente es siempre “urn:ogc:def:crs:OGC:1.3:CRS84”). Los instantes temporales devueltos siguen el formato especificado en el apartado Formatos temporales. GML Devuelve un documento GML cuya raíz es un elemento <gml:FeatureCollection> con la siguiente estructura: <?xml version="1.0" encoding="UTF-8"?> <gml:FeatureCollection xmlns="http://www.meteogalicia.es/meteosix" xmlns:gml="http://www.opengis.net/gml"> 44 Capítulo 8. Operación /getSolarInfo Documentación de la API del MeteoSIX, Versión v2 <gml:boundedBy> <gml:Box srsName="EPSG:4326"> <gml:coordinates>MINX,MINY MAXX,MAXY</gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <geometry> <gml:Point srsName=CRS> <gml:coordinates>x,y</gml:coordinates> </gml:Point> </geometry> <days> <day> <gml:TimePeriod> <gml:begin> <gml:TimeInstant> <gml:timePosition>SUNRISE_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </gml:begin> <gml:end> <gml:TimeInstant> <gml:timePosition>SUNSET_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </gml:end> </gml:TimePeriod> <variables> <variable name="solar"> <sunrise> <gml:TimeInstant> <gml:timePosition>SUNRISE_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </sunrise> <midday> <gml:TimeInstant> <gml:timePosition>MIDDAY_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </midday> <sunset> <gml:TimeInstant> <gml:timePosition>SUNSET_TIME_INSTANT</gml:timePosition> </gml:TimeInstant> </sunset> <duration>DURATION</duration> </variable> ... </variables> </day> </days> </gml:featureMember> </gml:FeatureCollection> Donde DURATION sigue el formato “Xh Xm”, por ejemplo “9h 12m”, y CRS es el sistema de coordenadas (actualmente es siempre “EPSG:4326”). HTML La respuesta es un documento HTML (con la hoja de estilos CSS correspondiente al estilo indicado) que contiene una tabla con la información solicitada: 8.4. Resultados 45 Documentación de la API del MeteoSIX, Versión v2 KML La respuesta es un documento KML con la estructura indicada en el apartado Estructura de la respuesta a las operaciones /getNumericForecastInfo, /getTidesInfo, /getSolarInfo. 8.5 Otras consideraciones Si no se indica intervalo temporal: Se devolverán datos para 5 días, incluido el día actual. Si se indica intervalo temporal: Aunque el formato de los parámetros startTime y endTime se mantiene (es obligatorio que el valor de estos parámetros siga el formato yyyy-MM-ddTHH:mm:ss), sólo se tienen en cuenta año, mes y día (se ignora la parte THH:mm:ss). Esta petición devuelve valores para el punto exacto que se solicita en la petición. Por esta razón, los elementos variable no incluyen a mayores el subelemento geometry en ninguno de los formatos de salida. 46 Capítulo 8. Operación /getSolarInfo Documentación de la API del MeteoSIX, Versión v2 8.6 Ejemplos Obtener estimación de orto y ocaso para un punto determinado: http://servizos.meteogalicia.es/apiv2/getSolarInfo ?coord=-8.350573861318628,43.3697102138535 &API_KEY=*** La misma petición, pero para dos días concretos y en HTML: http://servizos.meteogalicia.es/apiv2/getSolarInfo ?coord=-8.350573861318628,43.3697102138535 &format=text/html &startTime=2014-03-07 &endTime=2014-03-09 &API_KEY=*** 8.6. Ejemplos 47 Documentación de la API del MeteoSIX, Versión v2 48 Capítulo 8. Operación /getSolarInfo CAPÍTULO 9 Excepciones La API del MeteoSIX devuelve excepciones en diversas circunstancias de funcionamiento anormal. La forma de la excepción depende del formato de excepciones escogido, pero siempre contendrá: Un código de excepción. Un mensaje descriptivo. Así, en formato JSON, las excepciones tienen la forma: { "Exception": { "code": "CODE", "message": "MESSAGE" } } y en XML: <?xml version="1.0" encoding="UTF-8"?> <Exception code="CODE"> <message>MESSAGE</message> </Exception> Algunas excepciones son comunes a todas las operaciones y otras son específicas de cada operación. Las excepciones comunes a todas las operaciones son: 49 Documentación de la API del MeteoSIX, Versión v2 Código 000 001 002 003 004 005 006 007 008 009 010 011 Descripción Un parámetro indicado está mal escrito o no existe El idioma indicado no existe, está mal escrito o no está soportado El parámetro format indica un formato no soportado El parámetro exceptionsFormat indica un formato no soportado La API_KEY no es válida No se encuentra el parámetro API_KEY Error interno de la aplicación o del servidor de datos El punto indicado cae fuera del área geográfica para la cual se tienen datos El intervalo temporal indicado cae fuera del rango temporal para el cual se tienen datos No hay datos para ese punto y para el intervalo indicado, bien porque el punto indicado cae fuera del área espacial geográfica para la cual se tienen datos, bien porque el intervalo temporal indicado cae fuera del rango temporal para el cual se tienen datos El sistema de coordenadas indicado (parámetro CRS) no está soportado o es inválido El estilo indicado (parámetro style) no está soportado o es inválido Para la operación /findPlaces, además, pueden darse las siguientes excepciones: Código 100 101 102 103 Descripción El parámetro location está vacío No se encuentra el parámetro location El formato del parámetro types es inválido El parámetro types contiene algún valor inválido Las siguiente excepciones pueden darse en las operaciones /getNumericForecastInfo, /getTidesInfo y /getSolarInfo: Código 200 201 202 203 204 205 206 Descripción Se especificaron los parámetros locationId y coord al mismo tiempo No se especificaron ni locationId ni coord No se encontró ningún lugar con el locationId indicado El parámetro locationId está vacío El parámetro coord es inválido o está mal escrito El formato de alguno de los instantes indicados es inválido El instante inicial indicado es posterior al instante final Las siguiente excepciones pueden darse en las operaciones /getNumericForecastInfo y /getTidesInfo: Código 300 Descripción No hay datos para el intervalo temporal indicado Las siguiente excepciones pueden darse en la operación /getNumericForecastInfo: Código 400 401 402 403 404 405 406 Descripción Algunas de las variables indicadas no existen El parámetro units es inválido o está mal escrito El formato de las unidades indicadas para la variable wind es inválido Algunas de las variables indicadas no existen Algunas de las unidades indicadas no existen Hay variables repetidas Una de las unidades indicadas no es aplicable para esa variable Las siguientes excepciones pueden darse en las operaciones /getTidesInfo y /getSolarInfo: Código 500 Descripción El intervalo de tiempo especificado es demasiado grande Las siguientes excepciones pueden darse en la operación /getNumericForecastInfo: 50 Capítulo 9. Excepciones Documentación de la API del MeteoSIX, Versión v2 Código 600 601 602 603 604 605 606 607 608 Descripción El parámetro models es inválido o está mal escrito El parámetro grids es inválido o está mal escrito El número de variables no es igual al número de modelos El número de variables no es igual al número de mallas El número de variables no es igual al número de unidades Alguno de los modelos indicados no existen Algunas de las mallas indicadas no existen Uno de los modelos indicados no es aplicable para esa variable Una de las mallas indicadas no es aplicable para ese modelo Las siguientes excepciones pueden darse en las operación /getTidesInfo: Código 700 Descripción La información sobre los puertos para recuperar datos de mareas no está disponible 51 Documentación de la API del MeteoSIX, Versión v2 52 Capítulo 9. Excepciones CAPÍTULO 10 A1. Novedades de la versión v2 Nota: la versión v2 de la API del MeteoSIX no es compatible con versiones anteriores. Estas son algunas de las novedades de la versión v2 de la API del MeteoSIX: Nuevos modelos oceanográficos Se añaden a la API los modelos oceanográficos SWAN y MOHID. En el caso del SWAN, están disponibles las salidas de las ejecuciones del modelo sobre las mallas Ártabro y Rías Baixas. En el caso del MOHID, están disponibles las salidas de las ejecuciones del modelo sobre las mallas Ártabro, Arousa y Vigo. Ver También: Modelos de predicción numérica. Nuevas mallas de alta resolución para el modelo WRF Se añaden las mallas Ártabro, Rías Baixas y Norte Portugal, con una resolución de 1 km. Ver También: Modelos de predicción numérica. Información de orto y ocaso (Operación /getSolarInfo) Se añade una operación que permite obtener información sobre las horas de salida de sol, mediodía y puesta de sol, para cualquier punto geográfico. Información de mareas (Operación /getTidesInfo) Se añade una operación que permite obtener información de mareas (horas y alturas en el puerto más cercano) para puntos próximos a la costa gallega. Selección automática de los mejores modelos y mallas para una variable Si no se especifica un modelo o malla concreta, la API del MeteoSIX devolverá, para cada variable de predicción numérica, los datos procedentes del modelo y de la malla de mayor resolución que contengan datos para cada punto. Por defecto, cobertura ampliada a Europa Occidental Además, si no se especifica un modelo o malla concreta, la API del MeteoSIX devolverá datos para puntos dentro de la cobertura de la malla de 36 km del WRF (que se puede consultar aquí). Ver También: 53 Documentación de la API del MeteoSIX, Versión v2 Modelos de predicción numérica. Soporte para distintas zonas horarias Se acepta un parámetro tz (time zone) que permite indicar el huso horario en que se desean recibir las respuestas. Soporte para distintos Sistemas de Coordenadas Se acepta un parámetro CRS que permite especificar el Sistema de Coordenadas a emplear, tanto en los parámetros de las peticiones como en los valores devueltos. Por ahora, sólo admite el valor EPSG:4326, que es también el valor que toma por defecto si no se especifica este parámetro. La petición ‘/getWeatherInfo’ ahora se llama ‘/getNumericForecastInfo’ La petición que en la versión v1 se llamaba ‘/getWeatherInfo’ ahora se llama ‘/getNumericForecastInfo’. El parámetro ‘lonlat’ ahora se llama ‘coord’ El parámetro que en la versión v1 se llamaba lonlat ahora se llama coord. Cambios en los nombres de los formatos Como se puede ver en la tabla de parámetros comunes, los nombres de los formatos de salida se simplifican para evitar errores de encoding. Soporte para distintos estilos en HTML Si el formato de salida es text/html, se admite el parámetro style que permite configurar el estilo del HTML devuelto. Por ahora, sólo admite el valor default, que es también el valor que toma por defecto si no se especifica este parámetro. Eliminación de variables de la API Se eliminan de la API las variables de predicción numérica snow_precipitation, wind_module y wind_direction. Los valores de las dos últimas pueden obtenerse a partir de la variable wind Nuevo idioma por defecto El nuevo idioma por defecto (si no se especifica otro como parámetro) es el inglés (en_UK). Nota: en la API v1 era el gallego. Nuevas excepciones La API puede devolver nuevos tipos de excepción. Además, los códigos de las excepciones han cambiado. Puede consultarlo en el apartado Excepciones. Los tipos de lugar ahora se denominan ‘locality’ y ‘beach’ Los tipos de lugar que en versiones anteriores de la API se llamaban eesspp y praia se denominan ahora locality y beach respectivamente. 54 Capítulo 10. A1. Novedades de la versión v2 CAPÍTULO 11 A2. Acerca de este documento 11.1 Versiones y cambios de este documento -06/08/2013 Corrección de errores para el horizonte de predicción del MOHID, el valor correcto es de 48 horas en lugar de las 72 horas que se indicaban -25/06/2013 Versión inicial del manual de la API v2 55 Documentación de la API del MeteoSIX, Versión v2 56 Capítulo 11. A2. Acerca de este documento CAPÍTULO 12 A3. Zonas horarias Las zonas horarias que se pueden especificar mediante el parámetro tz son las siguientes: Europe/Madrid UTC Europe/Lisbon Europe/London Europe/Paris Etc/GMT+12 Etc/GMT+11 Pacific/Midway Pacific/Niue Pacific/Pago_Pago Pacific/Samoa US/Samoa America/Adak America/Atka Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti SystemV/HST10 US/Aleutian 57 Documentación de la API del MeteoSIX, Versión v2 US/Hawaii Pacific/Marquesas AST America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat Etc/GMT+9 Pacific/Gambier SystemV/YST9 SystemV/YST9YDT US/Alaska America/Dawson America/Ensenada America/Los_Angeles America/Metlakatla America/Santa_Isabel America/Tijuana America/Vancouver America/Whitehorse Canada/Pacific Canada/Yukon Etc/GMT+8 Mexico/BajaNorte PST PST8PDT Pacific/Pitcairn SystemV/PST8 SystemV/PST8PDT US/Pacific US/Pacific-New America/Boise America/Cambridge_Bay America/Chihuahua America/Dawson_Creek 58 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Ojinaga America/Phoenix America/Shiprock America/Yellowknife Canada/Mountain Etc/GMT+7 MST MST7MDT Mexico/BajaSur Navajo PNT SystemV/MST7 SystemV/MST7MDT US/Arizona US/Mountain America/Bahia_Banderas America/Belize America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Indiana/Knox America/Indiana/Tell_City America/Knox_IN America/Managua America/Matamoros America/Menominee America/Merida America/Mexico_City America/Monterrey 59 Documentación de la API del MeteoSIX, Versión v2 America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Rainy_River America/Rankin_Inlet America/Regina America/Resolute America/Swift_Current America/Tegucigalpa America/Winnipeg CST CST6CDT Canada/Central Canada/East-Saskatchewan Canada/Saskatchewan Chile/EasterIsland Etc/GMT+6 Mexico/General Pacific/Easter Pacific/Galapagos SystemV/CST6 SystemV/CST6CDT US/Central US/Indiana-Starke America/Atikokan America/Bogota America/Cayman America/Coral_Harbour America/Detroit America/Fort_Wayne America/Grand_Turk America/Guayaquil America/Havana America/Indiana/Indianapolis America/Indiana/Marengo America/Indiana/Petersburg 60 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis America/Iqaluit America/Jamaica America/Kentucky/Louisville America/Kentucky/Monticello America/Lima America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Panama America/Pangnirtung America/Port-au-Prince America/Thunder_Bay America/Toronto Canada/Eastern Cuba EST EST5EDT Etc/GMT+5 IET Jamaica SystemV/EST5 SystemV/EST5EDT US/East-Indiana US/Eastern US/Michigan America/Caracas America/Anguilla America/Antigua America/Argentina/San_Luis America/Aruba 61 Documentación de la API del MeteoSIX, Versión v2 America/Asuncion America/Barbados America/Blanc-Sablon America/Boa_Vista America/Campo_Grande America/Cuiaba America/Curacao America/Dominica America/Eirunepe America/Glace_Bay America/Goose_Bay America/Grenada America/Guadeloupe America/Guyana America/Halifax America/Kralendijk America/La_Paz America/Lower_Princes America/Manaus America/Marigot America/Martinique America/Moncton America/Montserrat America/Port_of_Spain America/Porto_Acre America/Porto_Velho America/Puerto_Rico America/Rio_Branco America/Santiago America/Santo_Domingo America/St_Barthelemy America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Thule 62 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 America/Tortola America/Virgin Antarctica/Palmer Atlantic/Bermuda Atlantic/Stanley Brazil/Acre Brazil/West Canada/Atlantic Chile/Continental Etc/GMT+4 PRT SystemV/AST4 SystemV/AST4ADT America/St_Johns CNT Canada/Newfoundland AGT America/Araguaina America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/ComodRivadavia America/Argentina/Cordoba America/Argentina/Jujuy America/Argentina/La_Rioja America/Argentina/Mendoza America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/Tucuman America/Argentina/Ushuaia America/Bahia America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba 63 Documentación de la API del MeteoSIX, Versión v2 America/Fortaleza America/Godthab America/Jujuy America/Maceio America/Mendoza America/Miquelon America/Montevideo America/Paramaribo America/Recife America/Rosario America/Santarem America/Sao_Paulo Antarctica/Rothera BET Brazil/East Etc/GMT+3 America/Noronha Atlantic/South_Georgia Brazil/DeNoronha Etc/GMT+2 America/Scoresbysund Atlantic/Azores Atlantic/Cape_Verde Etc/GMT+1 Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia 64 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu America/Danmarkshavn Atlantic/Canary Atlantic/Faeroe Atlantic/Faroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/St_Helena Eire Etc/GMT Etc/GMT+0 Etc/GMT-0 Etc/GMT0 Etc/Greenwich Etc/UCT Etc/UTC Etc/Universal Etc/Zulu Europe/Belfast Europe/Dublin Europe/Guernsey Europe/Isle_of_Man Europe/Jersey GB GB-Eire GMT GMT0 Greenwich Iceland Portugal UCT Universal WET 65 Documentación de la API del MeteoSIX, Versión v2 Zulu Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Ceuta Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Africa/Windhoek Arctic/Longyearbyen Atlantic/Jan_Mayen CET ECT Etc/GMT-1 Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Malta Europe/Monaco Europe/Oslo Europe/Podgorica 66 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich MET Poland ART Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Hebron Asia/Istanbul Asia/Jerusalem 67 Documentación de la API del MeteoSIX, Versión v2 Asia/Nicosia Asia/Tel_Aviv CAT EET Egypt Etc/GMT-2 Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Mariehamn Europe/Nicosia Europe/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Tiraspol Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye Israel Libya Turkey Africa/Addis_Ababa Africa/Asmara Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Juba Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa 68 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Europe/Kaliningrad Europe/Minsk Indian/Antananarivo Indian/Comoro Indian/Mayotte Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 Mideast/Riyadh87 Mideast/Riyadh88 Mideast/Riyadh89 Asia/Tehran Iran Asia/Baku Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Moscow Europe/Samara Europe/Volgograd Indian/Mahe Indian/Mauritius Indian/Reunion NET W-SU Asia/Kabul 69 Documentación de la API del MeteoSIX, Versión v2 Antarctica/Mawson Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Dushanbe Asia/Karachi Asia/Oral Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Kerguelen Indian/Maldives PLT Asia/Calcutta Asia/Colombo Asia/Kolkata IST Asia/Kathmandu Asia/Katmandu Antarctica/Vostok Asia/Almaty Asia/Bishkek Asia/Dacca Asia/Dhaka Asia/Qyzylorda Asia/Thimbu Asia/Thimphu Asia/Yekaterinburg BST Etc/GMT-6 Indian/Chagos Asia/Rangoon Indian/Cocos Antarctica/Davis Asia/Bangkok 70 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 Asia/Ho_Chi_Minh Asia/Hovd Asia/Jakarta Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Phnom_Penh Asia/Pontianak Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST Antarctica/Casey Asia/Brunei Asia/Choibalsan Asia/Chongqing Asia/Chungking Asia/Harbin Asia/Hong_Kong Asia/Kashgar Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Macau Asia/Makassar Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Ulan_Bator Asia/Urumqi Australia/Perth 71 Documentación de la API del MeteoSIX, Versión v2 Australia/West CTT Etc/GMT-8 Hongkong PRC Singapore Australia/Eucla Asia/Dili Asia/Irkutsk Asia/Jayapura Asia/Pyongyang Asia/Seoul Asia/Tokyo Etc/GMT-9 JST Japan Pacific/Palau ROK ACT Australia/Adelaide Australia/Broken_Hill Australia/Darwin Australia/North Australia/South Australia/Yancowinna AET Antarctica/DumontDUrville Asia/Yakutsk Australia/ACT Australia/Brisbane Australia/Canberra Australia/Currie Australia/Hobart Australia/Lindeman Australia/Melbourne Australia/NSW 72 Capítulo 12. A3. Zonas horarias Documentación de la API del MeteoSIX, Versión v2 Australia/Queensland Australia/Sydney Australia/Tasmania Australia/Victoria Etc/GMT-10 Pacific/Chuuk Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap Australia/LHI Australia/Lord_Howe Antarctica/Macquarie Asia/Sakhalin Asia/Vladivostok Etc/GMT-11 Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Pohnpei Pacific/Ponape SST Pacific/Norfolk Antarctica/McMurdo Antarctica/South_Pole Asia/Anadyr Asia/Kamchatka Asia/Magadan Etc/GMT-12 Kwajalein NST NZ Pacific/Auckland Pacific/Fiji 73 Documentación de la API del MeteoSIX, Versión v2 Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis NZ-CHAT Pacific/Chatham Etc/GMT-13 MIT Pacific/Apia Pacific/Enderbury Pacific/Tongatapu Etc/GMT-14 Pacific/Kiritimati 74 Capítulo 12. A3. Zonas horarias