AgRoMeteorologiaINTA / agroclimatico

Conjunto de funciones para calcular índices y estadísticos climáticos hidrológicos a partir de datos tidy. Incluye una función para graficar resultados georeferenciados y e información cartográfica.
https://agrometeorologiainta.github.io/agroclimatico/
Other
17 stars 0 forks source link

Heladas #9

Closed paocorrales closed 3 years ago

paocorrales commented 4 years ago

Propuesta: calculo de heladas

Me olvido de algo @NatiGattinoni, @yabellini?

NatiGattinoni commented 4 years ago

Perfecto!!, podes considerar como fecha de primera helada las fechas anteriores al 15/7 y luego de esa fecha, son las de ultima helada, considerando todo el record de años. en cuanto a la intensidad, se considera como la temperatura mínima más baja del periodo considerado.

de esta manera vamos a tener los datos climáticos y podemos comparar los datos actuales con ellos.

veamos que opina @yabellini

eliocamp commented 4 years ago

La olas (olas de frío, olas de calor...) identifica observaciones consecutivas donde se dio alguna condicion. Devuelve las fechas en las que empezó y terminó cada ola y su longitud. Si una ola todavía no terminó, su día de fin es NA y su longitud es NA.

# 20 días de datos del SMN
datos <- metR::GetSMNData(seq(lubridate::today() - 20, lubridate::today()-1, by = "1 day"), 
                          type = "daily")
library(dplyr)

datos %>% 
  group_by(station) %>% 
  summarise(agromet::olas(date, tmax > 20))
#> `summarise()` regrouping output by 'station' (override with `.groups` argument)
#> # A tibble: 377 x 4
#> # Groups:   station [116]
#>    station           inicio     fin        longitud
#>    <chr>             <date>     <date>     <drtn>  
#>  1 AEROPARQUE AERO   2020-10-12 2020-10-19  7 days 
#>  2 AEROPARQUE AERO   2020-10-23 2020-10-28  5 days 
#>  3 AEROPARQUE AERO   2020-10-31 NA         NA days 
#>  4 AZUL AERO         2020-10-12 2020-10-19  7 days 
#>  5 AZUL AERO         2020-10-24 2020-10-24  0 days 
#>  6 AZUL AERO         2020-10-26 2020-10-27  1 days 
#>  7 AZUL AERO         2020-10-31 NA         NA days 
#>  8 BAHIA BLANCA AERO 2020-10-12 2020-10-20  8 days 
#>  9 BAHIA BLANCA AERO 2020-10-23 2020-10-24  1 days 
#> 10 BAHIA BLANCA AERO 2020-10-26 2020-10-28  2 days 
#> # … with 367 more rows

Created on 2020-11-01 by the reprex package (v0.3.0)

paocorrales commented 4 years ago

Mientras que dias_promedios() calcula el primer y último día del año en promedio a partir de un vector de fechas:

library(agromet)
#> Warning: replacing previous import 'vctrs::data_frame' by 'tibble::data_frame'
#> when loading 'dplyr'

obs <- leer_nh(list.files("datos/", full.names = TRUE))

obs %>% 
  filter(t_min <= 0) %>% 
  group_by(codigo_nh) %>% 
  summarise(dias_promedios(fecha))

#> `summarise()` regrouping output by 'codigo_nh' (override with `.groups` argument)
#> # A tibble: 10 x 5
#> # Groups:   codigo_nh [5]
#>   codigo_nh variable     dia   mes dia_juliano
#>   <chr>     <fct>      <int> <int>       <int>
#> 1 0001      primer_dia    10     4         100
#> 2 0001      ultimo_dia    22    10         295
#> 3 0006      primer_dia    29     6         180
#> 4 0006      ultimo_dia    24     7         205
#> 5 0008      primer_dia     7     5         127
#> 6 0008      ultimo_dia    10    10         283
#> 7 0011      primer_dia    25     6         176
#> 8 0011      ultimo_dia    31     7         212
#> 9 0012      primer_dia     4     6         155
#>10 0012      ultimo_dia     3     9         246

Esta función puede usarse tanto para heladas (t_min <= 0) como para cualquier otra variable porque lo único que necesita es el vector de fechas.