UNPKG

nasa-power-api-client

Version:

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

116 lines (115 loc) 4.15 kB
import { AgroClimateIndices, AgriculturalRecommendations, ApiRequestOptions, DailyWeatherData, MeteoParam, SpanishRegion } from './types'; /** * Cliente para la API de NASA POWER */ export declare class NasaPowerClient { private readonly apiBaseUrl; private readonly axiosInstance; /** * Constructor */ constructor(); /** * Obtiene datos meteorológicos para una ubicación específica * @param options Opciones de la petición * @returns Promesa con los datos meteorológicos */ getWeatherData(options: ApiRequestOptions): Promise<DailyWeatherData[]>; /** * Obtiene datos meteorológicos para una región de España * @param region Región española * @param startDate Fecha de inicio (YYYYMMDD) * @param endDate Fecha de fin (YYYYMMDD) * @param parameters Parámetros meteorológicos a obtener * @returns Promesa con los datos meteorológicos */ getWeatherDataForSpanishRegion(region: SpanishRegion, startDate: string, endDate: string, parameters?: MeteoParam[]): Promise<DailyWeatherData[]>; /** * Obtiene datos agroclimáticos completos para una región de España * @param region Región española * @param startDate Fecha de inicio (YYYYMMDD) * @param endDate Fecha de fin (YYYYMMDD) * @returns Datos meteorológicos con índices agroclimáticos y recomendaciones */ getAgriculturalData(region: SpanishRegion, startDate: string, endDate: string): Promise<{ weatherData: DailyWeatherData[]; indices: AgroClimateIndices[]; recommendations: AgriculturalRecommendations[]; }>; /** * Comprueba si está lloviendo en una región española * @param region Región española * @returns Promesa que indica si está lloviendo (true) o no (false) */ isRaining(region: SpanishRegion): Promise<boolean>; /** * Determina si es adecuado regar los cultivos * @param region Región española * @returns Información sobre necesidad de riego */ shouldIrrigate(region: SpanishRegion): Promise<{ shouldIrrigate: boolean | 'no definido'; reason: string; recommendedAmount?: number; }>; /** * Comprueba el riesgo de heladas para los cultivos * @param region Región española * @returns Información sobre riesgo de heladas */ checkFrostRisk(region: SpanishRegion): Promise<{ riskLevel: 'bajo' | 'medio' | 'alto' | 'no definido'; message: string; }>; /** * Verifica condiciones óptimas para siembra * @param region Región española * @returns Información sobre condiciones de siembra */ checkPlantingConditions(region: SpanishRegion): Promise<{ isOptimal: boolean | 'no definido'; message: string; details: { soilMoisture?: number; soilTemperature?: number; rain?: number; forecastRain?: boolean; }; }>; /** * Realiza una petición a la API de NASA POWER * @param options Opciones de la petición * @returns Promesa con la respuesta de la API * @private */ private makeApiRequest; /** * Procesa la respuesta de la API y la convierte en un formato más amigable * @param response Respuesta de la API * @returns Datos meteorológicos procesados * @private */ private processApiResponse; /** * Calcula índices agroclimáticos basados en datos meteorológicos * @param data Datos meteorológicos diarios * @returns Índices agroclimáticos * @private */ private calculateAgroClimateIndices; /** * Genera recomendaciones agrícolas basadas en datos meteorológicos e índices * @param data Datos meteorológicos diarios * @param indices Índices agroclimáticos * @returns Recomendaciones agrícolas * @private */ private generateRecommendations; /** * Formatea una fecha al formato YYYYMMDD * @param date Fecha a formatear * @returns Fecha formateada * @private */ private formatDate; }