UNPKG

nasa-power-api-client

Version:

Cliente TypeScript para la API NASA POWER enfocado en datos meteorológicos de España

197 lines (196 loc) 5.33 kB
/** * Tipos para la API de NASA POWER */ /** * Coordenadas geográficas */ export interface GeoCoordinates { latitude: number; longitude: number; } /** * Comunidades autónomas de España con sus coordenadas aproximadas */ export declare enum SpanishRegion { ANDALUCIA = "Andaluc\u00EDa", ARAGON = "Arag\u00F3n", ASTURIAS = "Asturias", BALEARES = "Islas Baleares", CANARIAS = "Islas Canarias", CANTABRIA = "Cantabria", CASTILLA_LA_MANCHA = "Castilla-La Mancha", CASTILLA_Y_LEON = "Castilla y Le\u00F3n", CATALUNNA = "Catalunna", EXTREMADURA = "Extremadura", GALICIA = "Galicia", MADRID = "Madrid", MURCIA = "Murcia", NAVARRA = "Navarra", PAIS_VASCO = "Pa\u00EDs Vasco", LA_RIOJA = "La Rioja", COMUNIDAD_VALENCIANA = "Comunidad Valenciana", CEUTA = "Ceuta", MELILLA = "Melilla" } /** * Mapa de coordenadas por región española */ export declare const SPANISH_REGION_COORDINATES: Record<SpanishRegion, GeoCoordinates>; /** * Parámetros meteorológicos disponibles en la API de NASA POWER */ export declare enum MeteoParam { T2M = "T2M",// Temperatura media a 2m T2M_MAX = "T2M_MAX",// Temperatura máxima a 2m T2M_MIN = "T2M_MIN",// Temperatura mínima a 2m T2MDEW = "T2MDEW",// Temperatura de punto de rocío a 2m T2MWET = "T2MWET",// Temperatura de bulbo húmedo a 2m RH2M = "RH2M",// Humedad relativa a 2m RH2M_HR = "RH2M_HR",// Humedad relativa máxima a 2m PRECTOTCORR = "PRECTOTCORR",// Precipitación total corregida WS10M = "WS10M",// Velocidad del viento a 10m WD10M = "WD10M",// Dirección del viento a 10m PS = "PS",// Presión superficial CLOUD_AMT = "CLOUD_AMT",// Cantidad de nubes ALLSKY_SFC_SW_DWN = "ALLSKY_SFC_SW_DWN",// Radiación solar descendente ALLSKY_SFC_PAR_TOT = "ALLSKY_SFC_PAR_TOT",// Radiación fotosintéticamente activa total TSOIL1 = "TSOIL1",// Temperatura del suelo en primera capa TSOIL2 = "TSOIL2",// Temperatura del suelo en segunda capa GWETROOT = "GWETROOT",// Humedad de la zona de raíces GWETTOP = "GWETTOP",// Humedad de la capa superior GWETPROF = "GWETPROF",// Humedad del perfil del suelo EVLAND = "EVLAND" } /** * Formato de respuesta de la API */ export declare enum ResponseFormat { JSON = "JSON", CSV = "CSV", ASCII = "ASCII" } /** * Opciones para las peticiones a la API */ export interface ApiRequestOptions { coordinates: GeoCoordinates; startDate: string; endDate: string; parameters: MeteoParam[]; format?: ResponseFormat; community?: string; } /** * Datos meteorológicos diarios */ export interface DailyWeatherData { date: string; temperature?: number; maxTemperature?: number; minTemperature?: number; precipitation?: number; humidity?: number; maxHumidity?: number; minHumidity?: number; windSpeed?: number; windDirection?: number; pressure?: number; cloudCover?: number; solarRadiation?: number; soilTemperature?: number; deepSoilTemperature?: number; soilMoisture?: number; rootZoneMoisture?: number; topSoilMoisture?: number; evapotranspiration?: number; parRadiation?: number; growingDegreeDays?: number; frostDays?: number; wetDays?: number; soilMoistureProfile?: number; dewPoint?: number; wetBulbTemperature?: number; } /** * Índices agroclimáticos */ export interface AgroClimateIndices { droughtIndex?: number | 'no definido'; heatStressIndex?: number | 'no definido'; freezeRisk?: number | 'no definido'; diseaseRisk?: number | 'no definido'; irrigationNeed?: number | 'no definido'; optimalPlantingConditions?: boolean | 'no definido'; harvestConditions?: 'Buenas' | 'Regulares' | 'Malas' | 'no definido'; } /** * Recomendaciones agrícolas basadas en datos meteorológicos */ export interface AgriculturalRecommendations { irrigation: { recommended: boolean; amount: number; message: string; }; pestControl: { recommended: boolean; riskLevel: 'bajo' | 'medio' | 'alto' | 'no definido'; message: string; }; fertilization: { recommended: boolean; message: string; }; fieldOperations: { canWork: boolean; message: string; }; planting: { recommended: boolean | 'no definido'; message: string; }; harvesting: { recommended: boolean; message: string; }; } /** * Respuesta de la API NASA POWER */ export interface NasaPowerResponse { type: string; geometry: { type: string; coordinates: number[]; }; properties: { parameter: { [paramName: string]: { [date: string]: number; }; }; }; header: { title: string; api: { version: string; name: string; }; sources: string[]; fill_value: number; time_standard: string; start: string; end: string; }; messages: string[]; parameters: { [paramName: string]: { units: string; longname: string; }; }; times: { data: number; process: number; }; }