aemet-api
Version:
Cliente TypeScript para la API de AEMET (Agencia Estatal de Meteorología)
214 lines (213 loc) • 6.97 kB
JavaScript
/**
* Constantes para la librería de AEMET
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PROVINCIAS = exports.PROVINCE_MAPPING = exports.STATION_FIELDS = exports.SKY_STATES = exports.ENDPOINTS = exports.DEFAULT_TIMEOUT = exports.DEFAULT_BASE_URL = void 0;
// URL base por defecto de la API
exports.DEFAULT_BASE_URL = 'https://opendata.aemet.es/opendata/api';
// Timeout por defecto (en milisegundos)
exports.DEFAULT_TIMEOUT = 10000;
// Endpoints de la API
exports.ENDPOINTS = {
// Predicción por municipio
FORECAST_MUNICIPALITY: '/prediccion/especifica/municipio/diaria/',
// Municipios
MUNICIPALITIES: '/maestro/municipios/',
// Provincias
PROVINCES: '/maestro/provincias/',
// Predicción marítima costera
COASTAL_FORECAST: '/prediccion/maritima/costera/costa/',
// Predicción de playas
BEACH_FORECAST: '/prediccion/especifica/playa/',
// Avisos meteorológicos de hoy
ALERTS_TODAY: '/avisos_cap/today/',
// Avisos meteorológicos de mañana
ALERTS_TOMORROW: '/avisos_cap/tomorrow/',
// Valores climatológicos diarios
CLIMATE_VALUES_DAILY: '/valores/climatologicos/diarios/datos/',
// Estaciones para valores climatológicos
CLIMATE_STATIONS: '/valores/climatologicos/inventarioestaciones/todasestaciones/',
};
// Códigos de estado del cielo y sus descripciones
exports.SKY_STATES = {
'11': 'Despejado',
'11n': 'Despejado noche',
'12': 'Poco nuboso',
'12n': 'Poco nuboso noche',
'13': 'Intervalos nubosos',
'13n': 'Intervalos nubosos noche',
'14': 'Nuboso',
'14n': 'Nuboso noche',
'15': 'Muy nuboso',
'15n': 'Muy nuboso noche',
'16': 'Cubierto',
'16n': 'Cubierto noche',
'17': 'Nubes altas',
'17n': 'Nubes altas noche',
'23': 'Intervalos nubosos con lluvia',
'23n': 'Intervalos nubosos con lluvia noche',
'24': 'Nuboso con lluvia',
'24n': 'Nuboso con lluvia noche',
'25': 'Muy nuboso con lluvia',
'25n': 'Muy nuboso con lluvia noche',
'26': 'Cubierto con lluvia',
'26n': 'Cubierto con lluvia noche',
'33': 'Intervalos nubosos con nieve',
'33n': 'Intervalos nubosos con nieve noche',
'34': 'Nuboso con nieve',
'34n': 'Nuboso con nieve noche',
'35': 'Muy nuboso con nieve',
'35n': 'Muy nuboso con nieve noche',
'36': 'Cubierto con nieve',
'36n': 'Cubierto con nieve noche',
'43': 'Intervalos nubosos con lluvia escasa',
'43n': 'Intervalos nubosos con lluvia escasa noche',
'44': 'Nuboso con lluvia escasa',
'44n': 'Nuboso con lluvia escasa noche',
'45': 'Muy nuboso con lluvia escasa',
'45n': 'Muy nuboso con lluvia escasa noche',
'46': 'Cubierto con lluvia escasa',
'46n': 'Cubierto con lluvia escasa noche',
'51': 'Intervalos nubosos con tormenta',
'51n': 'Intervalos nubosos con tormenta noche',
'52': 'Nuboso con tormenta',
'52n': 'Nuboso con tormenta noche',
'53': 'Muy nuboso con tormenta',
'53n': 'Muy nuboso con tormenta noche',
'54': 'Cubierto con tormenta',
'54n': 'Cubierto con tormenta noche',
'61': 'Intervalos nubosos con tormenta y lluvia escasa',
'61n': 'Intervalos nubosos con tormenta y lluvia escasa noche',
'62': 'Nuboso con tormenta y lluvia escasa',
'62n': 'Nuboso con tormenta y lluvia escasa noche',
'63': 'Muy nuboso con tormenta y lluvia escasa',
'63n': 'Muy nuboso con tormenta y lluvia escasa noche',
'64': 'Cubierto con tormenta y lluvia escasa',
'64n': 'Cubierto con tormenta y lluvia escasa noche',
'71': 'Intervalos nubosos con nieve escasa',
'71n': 'Intervalos nubosos con nieve escasa noche',
'72': 'Nuboso con nieve escasa',
'72n': 'Nuboso con nieve escasa noche',
'73': 'Muy nuboso con nieve escasa',
'73n': 'Muy nuboso con nieve escasa noche',
'74': 'Cubierto con nieve escasa',
'74n': 'Cubierto con nieve escasa noche',
};
// Campos de estaciones meteorológicas
exports.STATION_FIELDS = {
ID: 'indicativo',
NAME: 'nombre',
PROVINCE: 'provincia',
ALTITUDE: 'altitud',
LATITUDE: 'latitud',
LONGITUDE: 'longitud',
SYNOP: 'indsinop'
};
// Mapa de normalización de provincias
exports.PROVINCE_MAPPING = {
'ILLES BALEARS': 'Islas Baleares',
'BARCELONA': 'Barcelona',
'MADRID': 'Madrid',
'A CORUÑA': 'A Coruña',
'ALACANT/ALICANTE': 'Alicante',
'ARABA/ALAVA': 'Álava',
'ASTURIAS': 'Asturias',
'BADAJOZ': 'Badajoz',
'BIZKAIA': 'Vizcaya',
'BURGOS': 'Burgos',
'CACERES': 'Cáceres',
'CADIZ': 'Cádiz',
'CANTABRIA': 'Cantabria',
'CASTELLON': 'Castellón',
'CIUDAD REAL': 'Ciudad Real',
'CORDOBA': 'Córdoba',
'CUENCA': 'Cuenca',
'GIPUZKOA': 'Guipúzcoa',
'GIRONA': 'Girona',
'GRANADA': 'Granada',
'GUADALAJARA': 'Guadalajara',
'HUELVA': 'Huelva',
'HUESCA': 'Huesca',
'JAEN': 'Jaén',
'LA RIOJA': 'La Rioja',
'LAS PALMAS': 'Las Palmas',
'LEON': 'León',
'LLEIDA': 'Lleida',
'LUGO': 'Lugo',
'MALAGA': 'Málaga',
'MURCIA': 'Murcia',
'NAVARRA': 'Navarra',
'OURENSE': 'Ourense',
'PALENCIA': 'Palencia',
'PONTEVEDRA': 'Pontevedra',
'SALAMANCA': 'Salamanca',
'SANTA CRUZ DE TENERIFE': 'Santa Cruz de Tenerife',
'SEGOVIA': 'Segovia',
'SEVILLA': 'Sevilla',
'SORIA': 'Soria',
'TARRAGONA': 'Tarragona',
'TERUEL': 'Teruel',
'TOLEDO': 'Toledo',
'VALENCIA': 'Valencia',
'VALLADOLID': 'Valladolid',
'ZAMORA': 'Zamora',
'ZARAGOZA': 'Zaragoza',
'CEUTA': 'Ceuta',
'MELILLA': 'Melilla'
};
// Versión normalizada (sin acentos, mayúsculas)
exports.PROVINCIAS = {
ALAVA: "Álava",
ALBACETE: "Albacete",
ALICANTE: "Alicante",
ALMERIA: "Almería",
ASTURIAS: "Asturias",
AVILA: "Ávila",
BADAJOZ: "Badajoz",
BALEARES: "Islas Baleares",
BARCELONA: "Barcelona",
BURGOS: "Burgos",
CACERES: "Cáceres",
CADIZ: "Cádiz",
CANTABRIA: "Cantabria",
CASTELLON: "Castellón",
CEUTA: "Ceuta",
CIUDAD_REAL: "Ciudad Real",
CORDOBA: "Córdoba",
CUENCA: "Cuenca",
GERONA: "Gerona",
GRANADA: "Granada",
GUADALAJARA: "Guadalajara",
GUIPUZCOA: "Guipúzcoa",
HUELVA: "Huelva",
HUESCA: "Huesca",
JAEN: "Jaén",
LA_CORUNA: "La Coruña",
LA_RIOJA: "La Rioja",
LAS_PALMAS: "Las Palmas",
LEON: "León",
LERIDA: "Lérida",
LUGO: "Lugo",
MADRID: "Madrid",
MALAGA: "Málaga",
MELILLA: "Melilla",
MURCIA: "Murcia",
NAVARRA: "Navarra",
ORENSE: "Orense",
PALENCIA: "Palencia",
PONTEVEDRA: "Pontevedra",
SALAMANCA: "Salamanca",
SEGOVIA: "Segovia",
SEVILLA: "Sevilla",
SORIA: "Soria",
TARRAGONA: "Tarragona",
TENERIFE: "Santa Cruz de Tenerife",
TERUEL: "Teruel",
TOLEDO: "Toledo",
VALENCIA: "Valencia",
VALLADOLID: "Valladolid",
VIZCAYA: "Vizcaya",
ZAMORA: "Zamora",
ZARAGOZA: "Zaragoza"
};
;