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