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
TypeScript
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;
}