nasa-power-api-client
Version:
Cliente TypeScript para la API NASA POWER enfocado en datos meteorológicos de España
186 lines (137 loc) • 5.3 kB
Markdown
# NASA POWER for Agriculture Spain
# Descripción
Este cliente proporciona una interfaz sencilla para acceder a los datos meteorológicos y agroclimáticos de la API NASA POWER, especialmente adaptado para su uso en aplicaciones agrícolas en España.
## Características
- Obtención de datos meteorológicos por coordenadas o región española
- Cálculo de índices agroclimáticos (sequía, estrés por calor, riesgo de heladas, etc.)
- Generación de recomendaciones agrícolas personalizadas
- Funciones especializadas:
- Verificación de condiciones de lluvia
- Determinación de necesidad de riego
- Evaluación de riesgo de heladas
- Análisis de condiciones óptimas para siembra
## Estructura de Datos
Los datos se reciben en el siguiente formato:
```json
{
"properties": {
"parameter": {
"PARÁMETRO_CLIMÁTICO": {
"units": "UNIDAD_DE_MEDIDA",
"FECHA": VALOR_NUMÉRICO,
...
}
}
}
}
```
### Parámetros disponibles
| Parámetro | Descripción | Unidad |
|-----------|-------------|--------|
| T2M | Temperatura media a 2 metros | °C |
| T2M_MAX | Temperatura máxima a 2 metros | °C |
| T2M_MIN | Temperatura mínima a 2 metros | °C |
| PRECTOTCORR | Precipitación total corregida | mm/día |
| RH2M | Humedad relativa a 2 metros | % |
| TSOIL1 | Temperatura del suelo (capa 1) | °C |
| EVLAND | Evaporación terrestre | mm/día |
## Consideraciones importantes
### Posibles valores no definidos
- Algunos registros pueden contener valores `undefined` o `null` cuando los datos no están disponibles para ciertas fechas.
- Recomendamos siempre verificar la existencia de los datos antes de utilizarlos.
### Formato de fechas
- Las fechas se representan en formato YYYYMMDD (por ejemplo, 20220101 para el 1 de enero de 2022).
- Asegúrese de manejar correctamente la conversión de estos formatos según sea necesario.
### Errores de API
- La API puede devolver errores cuando:
- Las coordenadas geográficas están fuera de rango
- El rango de fechas solicitado es inválido
- Hay problemas de conectividad con el servidor
- El servicio está en mantenimiento
### Especificidad para España
- Esta implementación está optimizada para coordenadas dentro del territorio español.
- Los datos pueden utilizarse para planificación agrícola, gestión de riego, y previsión de cosechas.
## Instalación
```bash
npm install nasa-power-for-agriculture-spain
```
## Ejecución
```bash
npm start
```
## Pruebas
```bash
npm test
```
## Uso básico
```typescript
import { NasaPowerClient, SpanishRegion } from 'nasa-power-client';
// Crear instancia del cliente
const client = new NasaPowerClient();
// Obtener datos meteorológicos para una región de España
async function getWeatherData() {
const startDate = '20230101';
const endDate = '20230105';
const data = await client.getWeatherDataForSpanishRegion(
SpanishRegion.ANDALUCIA,
startDate,
endDate
);
console.log(data);
}
getWeatherData();
```
## Ejemplos de uso
### Verificar si está lloviendo
```typescript
const isRaining = await client.isRaining(SpanishRegion.GALICIA);
console.log(`¿Está lloviendo en Galicia? ${isRaining ? 'Sí' : 'No'}`);
```
### Determinar necesidad de riego
```typescript
const irrigationInfo = await client.shouldIrrigate(SpanishRegion.VALENCIA);
console.log(`¿Se debe regar? ${irrigationInfo.shouldIrrigate ? 'Sí' : 'No'}`);
console.log(`Razón: ${irrigationInfo.reason}`);
if (irrigationInfo.recommendedAmount) {
console.log(`Cantidad recomendada: ${irrigationInfo.recommendedAmount} mm`);
}
```
### Verificar riesgo de heladas
```typescript
const frostRisk = await client.checkFrostRisk(SpanishRegion.CASTILLA_Y_LEON);
console.log(`Nivel de riesgo: ${frostRisk.riskLevel}`);
console.log(`Mensaje: ${frostRisk.message}`);
```
### Analizar condiciones para siembra
```typescript
const plantingConditions = await client.checkPlantingConditions(SpanishRegion.ARAGON);
console.log(`¿Condiciones óptimas? ${plantingConditions.isOptimal ? 'Sí' : 'No'}`);
console.log(`Detalles: ${plantingConditions.message}`);
```
### Obtener datos agrícolas completos
```typescript
const agriculturalData = await client.getAgriculturalData(
SpanishRegion.CATALUÑA,
'20230601',
'20230615'
);
// Datos meteorológicos
console.log(agriculturalData.weatherData);
// Índices agroclimáticos calculados
console.log(agriculturalData.indices);
// Recomendaciones agrícolas
console.log(agriculturalData.recommendations);
```
## Regiones españolas soportadas
La librería incluye coordenadas predefinidas para todas las comunidades autónomas de España.
## Requisitos
- Node.js 14.x o superior
- Conexión a Internet para acceder a la API de NASA POWER
## Tecnologías utilizadas
- TypeScript
- Axios para peticiones HTTP
- Jest para pruebas
## Fuente de datos
Los datos son proporcionados por [NASA POWER](https://power.larc.nasa.gov/), un servicio que ofrece datos meteorológicos y de energía solar para diversas aplicaciones, incluyendo la agricultura.
## Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.