ODES-Chile / odes-unidades-shiny-app

Visualizar datos climáticos y de sequía para Chile continental
https://odes-chile.org/app/unidades
GNU General Public License v3.0
3 stars 0 forks source link

Error en mini gráfico en indices de sequía (SPEI y SPI) #29

Closed fabian199827 closed 1 year ago

fabian199827 commented 1 year ago

El gráfico de líneas se visualiza de forma errática (Figura 1), esta situación se repite con casi todas las variables SPEI dentro de la misma unidad administrativa seleccionada. Me voy a la opción de descargar datos y se visualizan datos de meses dupilicados (Figura 2). Por otro lado existen ventanas de tiempo sin datos (figura 3) cuando se descargan esos datos, se visualizan como se ven en la figura 4.

Los indicadores con mes duplicado: Todos los SPEI y SPI + Provincias. Esto es para la provincia Río Loa Antofagasta pero se debe repetir para varias provincias. Todos los SPEI y SPI + cuencas Esto es para la La cuenca del Río Aconcagua Petorca pero se debe repetir para varias cuencas.

Indicadores con falta de datos: Todos los SPEI y SPI + Provincias. Esto es para la provincia Río Loa Antofagasta pero se debe repetir para varias provincias.

imagen Figura 1

imagen Figura 2

imagen Figura 3

imagen Figura 4

jbkunst commented 1 year ago

Existen fechas duplicadas, por ejemplo:

sql_con <- function() {
    pool::dbPool(
      drv = RPostgres::Postgres(),
      dbname = "shiny",
      host = Sys.getenv("HOST"),
      user = "shiny",
      password = Sys.getenv("SHINY_PSQL_PWD")
    )
  }

suppressWarnings(library(tidyverse))

d <- tbl(sql_con(), "data_clima_sequia") |> 
  filter(code == "022") |> 
  filter(between(year(date), 2016, 2018)) |> 
  select(date, spei_12) |> 
  arrange(date) |> 
  collect()

d |> 
  count(date)
#> # A tibble: 36 × 2
#>    date           n
#>    <date>     <int>
#>  1 2016-01-01     2
#>  2 2016-02-01     2
#>  3 2016-03-01     2
#>  4 2016-04-01     2
#>  5 2016-05-01     2
#>  6 2016-06-01     2
#>  7 2016-07-01     2
#>  8 2016-08-01     2
#>  9 2016-09-01     2
#> 10 2016-10-01     2
#> # … with 26 more rows

ggplot(d, aes(date, spei_12)) +
  geom_line() +
  geom_point()

Created on 2023-04-27 with reprex v2.0.2

joaquinRiquelme commented 1 year ago

Hola, creo que encontré donde está el problema. Cuando se hace el filtro con filter(code == "022") |> se pide la unidad que tenga el código 022, pero no se especifica el tipo de unidad. Esto genera que se grafiquen los datos de las unidades 022 cuenca y provincia.

image

Para solucionar el problema se debería agregar otra condición al filtro, ejemplo:

filter(unit=="cuencas")

Espero esto pueda solucionar los datos duplicados. Seguiré revisando los datos faltantes.

Saludos

jbkunst commented 1 year ago

Gracias @joaquinRiquelme , tiene todo el sentido. Agregué el filtro por unidad! Cuando pueda, le agradecería que revise algunos casos don @fabian199827

fabian199827 commented 1 year ago

@jbkunst @joaquinRiquelme Súper!! Ahora replico la misma combinación y el gráfico se ve bien (Figura 1) imagen Figura 1

Sin embargo hay años para atrás que no se ven los indicadores, osea se ven vacíos. Hasta el año 1999 se logra ver la línea continua y cuando voy hacia atrás se ven vacíos (Figura 2 y 3)

imagen Figura 2. Línea continua

imagen Figura 3. Se descontinúa la línea

joaquinRiquelme commented 1 year ago

reporte.pdf

Hola @frzambra , va reporte de datos faltantes, creo que los datos faltantes estan en todas las unidades y faltan datos de SPEI mas que de SPI. Por otra parte, mientras mayor sea el horizonte de evaluación del indice menos datos faltan. No encontré algún patrón que indique que exista algun error sistemático, lo que creo es que de alguna manera se indetermina el valor, pero para ir más allá necesitaría ver el algoritmo.

Espero te sea de alguna ayuda. Saludos