spi_indice: Calcula el SPI

View source: R/spi.R

spi_indiceR Documentation

Calcula el SPI

Description

Calcula el Índice Estandarizado de Precipitación para distintas escalas. Las funciones spi_indice y spei_indice usan internamente a la función SPEI::spi pero tienen la ventaja de devolver el resultado como un data.frame que se puede usar de manera directa para el análisis de datos con dplyr.

Usage

spi_indice(
  fecha,
  precipitacion,
  escalas,
  referencia = rep(TRUE, length(fecha)),
  distribucion = "Gamma",
  ...
)

spei_indice(fecha, balance, escalas, distribucion = "log-Logistic", ...)

spi_referencia(fecha, precipitacion)

Arguments

fecha

vector de fechas.

precipitacion

vector de precipitacion.

escalas

vector numérico con las escalas requeridas. La unidad de la escala está dada por el vector de fechas. Si escalas = 6 y los datos son mensuales entonces el cálculo del indice se hará en escalas de 6 meses.

referencia

serie de precipitación para usar de referencia en el ajuste a la distribución teórica. Puede ser:

  • vector lógico o numérico que se usará para filtrar los datos de entrada.

  • un data frame con columna fecha y precipitacion. La función spi_referencia() es un simple wrapper a data.frame() que le pone el nombre correcto a las variables.

distribucion

distribución usada para ajustar los datos.

...

argumentos pasados a SPEI::spi

balance

balance entre precipitación y evapotranspiración potencial.

Details

La función spi_indice toma valores de precipitación mientras que spei_indice toma valores del balance entre precipitación y evapotranspiración potencial. Internamente hacen lo mismo; la única diferencia es la distribución teórica usada por defecto para ajustar los datos.

Value

Un data.frame con columnas

  • fecha (fecha)

  • escala (numérico) definidas en el argumento de entrada

  • spi o spei (numérico)

References

Vicente-Serrano, S. M., Beguería, S. and López-Moreno, J. I.: A multiscalar drought index sensitive to global warming: The standardized precipitation evapotranspiration index, J. Clim., 23(7), \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1175/2009JCLI2909.1")}, 2010.

R Package SPEI: Calculation of the Standardized Precipitation-Evapotranspiration Index

Examples


library(dplyr)
data(NH0358)

datos_mensuales <- NH0358 %>%
  group_by(fecha = lubridate::round_date(fecha, "month")) %>%
  reframe(precip = mean(precip, na.rm = TRUE),
          etp = mean(etp, na.rm = TRUE))

# Para escalas de 1 a 12 meses
datos_mensuales %>%
  reframe(spi_indice(fecha, precip, escalas = 1:12)) %>%
  slice_head(n = 10)

# Si tenemos nuevos datos y hay que calcular el spi nuevamente pero sin que
# cambien los valores previos, hay que usar `referencia`, por ejemplo usando
# los datos desde el comienzo de la seria hasta 2016

# Usando un vector lógico
datos_mensuales %>%
  reframe(spi_indice(fecha, precip, escalas = 1:12,
                     referencia = data.table::year(fecha) < 2016)) %>%
  slice_head(n = 10)

# O un data.frame
datos_2016 <- datos_mensuales %>%
 filter(data.table::year(fecha) < 2016)

datos_mensuales %>%
reframe(spi_indice(fecha, precip, escalas = 1:12,
                   referencia = spi_referencia(datos_2016$fecha, datos_2016$precip))) %>%
  slice_head(n = 10)



AgRoMeteorologiaINTA/agromet documentation built on Feb. 6, 2025, 8:26 p.m.