## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  warning = FALSE,
  message = FALSE
)

# Verificar conectividad con la API del SINIA
has_api <- curl::has_internet() && tryCatch({
  con <- url("https://wp.bex.pe/portal/wp-json/esam/v1/website/marcos-ordenadores/mdea/indice-estadisticas", "r")
  close(con)
  TRUE
}, error = function(e) FALSE)

## ----setup--------------------------------------------------------------------
library(siniaR)
library(dplyr)
library(ggplot2)

## ----busqueda-facil, eval = has_api-------------------------------------------
# Buscar estadísticas sobre bosques y deforestación
bosques <- sinia_buscar("bosque")
bosques |> select(id, numeral, nombre)

# Buscar estadísticas sobre calidad del aire
aire <- sinia_buscar("aire")
aire |> select(id, numeral, nombre)

# Buscar estadísticas sobre residuos sólidos
residuos <- sinia_buscar("residuos")
residuos |> select(id, numeral, nombre)

## ----mdea-enriquecido, eval = has_api-----------------------------------------
# Descargar el índice completo del MDEA
indicadores <- sinia_indicadores(marco = "mdea", solo_estadisticas = TRUE)

# Nombres descriptivos para cada uno de los 6 componentes
nombres_componentes <- c(
  "1" = "1. Condiciones y Calidad Ambiental",
  "2" = "2. Recursos Ambientales y su Uso",
  "3" = "3. Residuos",
  "4" = "4. Eventos Naturales y Desastres",
  "5" = "5. Hábitat Humano y Asuntos Socioambientales",
  "6" = "6. Protección y Gestión Ambiental"
)

# Agregar el componente de forma clara y legible
catalogo_mdea <- indicadores |>
  mutate(
    codigo_componente = substr(numeral, 1, 1),
    componente = nombres_componentes[codigo_componente]
  )

# Conteo de indicadores disponibles por componente
catalogo_mdea |>
  count(componente, name = "total_estadisticas")

## ----componente-1, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 1
c1_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "1")

head(c1_indicadores |> select(id, numeral, nombre), 5)

# Descargar datos de Temperatura del Aire (ID = 1) en formato largo
temp_peru <- sinia_datos(id = 1, pivot = "long")
head(temp_peru)

## ----componente-2, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 2
c2_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "2")

head(c2_indicadores |> select(id, numeral, nombre), 5)

## ----componente-3, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 3
c3_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "3")

head(c3_indicadores |> select(id, numeral, nombre), 5)

## ----componente-4, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 4
c4_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "4")

head(c4_indicadores |> select(id, numeral, nombre), 5)

## ----componente-5, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 5
c5_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "5")

head(c5_indicadores |> select(id, numeral, nombre), 5)

## ----componente-6, eval = has_api---------------------------------------------
# Filtrar indicadores del Componente 6
c6_indicadores <- catalogo_mdea |>
  filter(codigo_componente == "6")

head(c6_indicadores |> select(id, numeral, nombre), 5)

## ----grafico-mdea, eval = has_api, fig.width = 7, fig.height = 4.2------------
departamentos_muestra <- c("Lima", "Loreto", "Cusco", "Piura", "Puno")

temp_filtrada <- temp_peru |>
  filter(departamento %in% departamentos_muestra, !is.na(valor))

ggplot(temp_filtrada, aes(x = anio, y = valor, color = departamento)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  scale_color_manual(values = c(
    "Lima" = "#1B75BC",
    "Loreto" = "#78BE20",
    "Cusco" = "#E07A26",
    "Piura" = "#38B6FF",
    "Puno" = "#7B3F7B"
  )) +
  labs(
    title = "Temperatura Promedio Anual por Departamento",
    subtitle = "MDEA Componente 1: Condiciones y Calidad Ambiental",
    x = "Año",
    y = "Temperatura (°C)",
    color = "Departamento"
  ) +
  theme_minimal()

## ----marco-sinia, eval = has_api----------------------------------------------
# Catálogo sectorial propio del SINIA
sinia_tematico <- sinia_indicadores(marco = "sinia", solo_estadisticas = TRUE)
head(sinia_tematico |> select(id, numeral, nombre), 6)

