Skip to contents

Descarga y carga los límites distritales oficiales del INEI (2023) desde el repositorio OSF de DEMARCA. Implementa caché de sesión para optimizar descargas repetidas y mantiene la consola limpia durante la ejecución.

Usage

get_distritos(
  distrito = NULL,
  provincia = NULL,
  departamento = NULL,
  show_progress = TRUE,
  force_update = FALSE
)

Arguments

distrito

Character vector. Nombre(s) del/los distrito(s) a filtrar. Puede ser un único distrito (ej: "WANCHAQ") o múltiples distritos (ej: c("CUSCO", "WANCHAQ", "SANTIAGO")). No distingue entre mayúsculas y minúsculas. Si es NULL, no filtra por distrito.

provincia

Character vector. Nombre de la provincia para filtrar todos sus distritos (ej: "CUSCO"). Si se especifica, retorna todos los distritos de la provincia indicada. No distingue entre mayúsculas y minúsculas.

departamento

Character vector. Nombre del departamento para filtrar todos sus distritos (ej: "CUSCO"). Si se especifica, retorna todos los distritos del departamento indicado. No distingue entre mayúsculas y minúsculas.

show_progress

Logical. Si TRUE (por defecto), muestra mensajes informativos sobre el progreso de la descarga. Si FALSE, ejecuta de forma silenciosa.

force_update

Logical. Si TRUE, fuerza una nueva descarga del archivo incluso si existe en caché. Por defecto FALSE para aprovechar datos en caché.

Value

Un objeto sf (simple feature) con la geometría de los distritos solicitados, incluyendo sus atributos geográficos y administrativos.

Details

La función descarga los datos directamente desde OSF (Open Science Framework) y los almacena en un directorio temporal de caché durante la sesión de R. Los datos corresponden a los límites censales oficiales del INEI 2023.

El caché se almacena en: tempdir()/DEMARCA_cache/

La función maneja automáticamente la codificación de caracteres especiales (tildes, ñ) para asegurar compatibilidad entre diferentes sistemas operativos.

Los filtros se pueden combinar jerárquicamente:

  • Solo departamento: retorna todos los distritos del departamento

  • Departamento + provincia: retorna todos los distritos de esa provincia

  • Departamento + provincia + distrito: retorna distritos específicos

  • Solo distrito: retorna ese distrito de cualquier parte del Perú

Fuente de datos: Repositorio DEMARCA en OSF (https://osf.io/j9ax8/)

References

INEI (2023). Límites Censales Distritales del Perú. Repositorio DEMARCA: https://osf.io/j9ax8/

Examples

if (FALSE) { # \dontrun{
# Cargar todos los distritos del Perú
distritos_peru <- get_distritos()

# Cargar un distrito específico
wanchaq <- get_distritos(distrito = "Wanchaq")

# Cargar todos los distritos de una provincia
distritos_cusco <- get_distritos(provincia = "Cusco")

# Cargar todos los distritos de un departamento
distritos_puno <- get_distritos(departamento = "Puno")

# Cargar múltiples distritos específicos
distritos_centrales <- get_distritos(
  distrito = c("CUSCO", "WANCHAQ", "SANTIAGO")
)

# Combinar filtros: distritos de una provincia específica
costa_lima <- get_distritos(
  provincia = "CAÑETE",
  departamento = "LIMA"
)

# Filtro jerárquico completo
distrito_especifico <- get_distritos(
  distrito = "SAN SEBASTIÁN",
  provincia = "CUSCO",
  departamento = "CUSCO"
)

# Forzar actualización de datos
distritos_actualizados <- get_distritos(force_update = TRUE)

# Ejecución silenciosa
callao <- get_distritos(provincia = "CALLAO", show_progress = FALSE)

# Visualización con ggplot2
library(ggplot2)

# Mapa de todos los distritos de la provincia de Cusco
ggplot(distritos_cusco) +
  geom_sf(aes(fill = nombdist), color = "white", linewidth = 0.2) +
  labs(
    title = "Distritos de la Provincia de Cusco",
    subtitle = "Límites Censales INEI 2023",
    fill = "Distrito",
    caption = "Fuente: INEI | Visor - SDOT"
  ) +
  scale_fill_brewer(palette = "Paired") +
  theme_minimal() +
  theme(
    legend.position = "right",
    legend.key.size = unit(0.4, "cm")
  )

# Mapa de un distrito específico
ggplot(wanchaq) +
  geom_sf(fill = "#FFA07A", color = "darkred", linewidth = 1.5) +
  labs(
    title = "Distrito de Wanchaq",
    subtitle = "Provincia y Departamento de Cusco",
    caption = "Fuente: INEI | Visor - SDOT"
  ) +
  theme_minimal()

# Mapa de distritos de Cañete
ggplot(costa_lima) +
  geom_sf(aes(fill = nombdist), color = "white", linewidth = 0.3) +
  labs(
    title = "Distritos de la Provincia de Cañete",
    subtitle = "Departamento de Lima",
    fill = "Distrito",
    caption = "Fuente: INEI | Visor - SDOT"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

# Mapa de distritos centrales con etiquetas
ggplot(distritos_centrales) +
  geom_sf(aes(fill = nombdist), color = "white", linewidth = 0.5) +
  geom_sf_text(aes(label = nombdist), size = 3, fontface = "bold") +
  labs(
    title = "Distritos Centrales de Cusco",
    fill = "Distrito",
    caption = "Fuente: INEI | Visor - SDOT"
  ) +
  scale_fill_manual(
    values = c("CUSCO" = "#FF6B6B", "WANCHAQ" = "#4ECDC4",
               "SANTIAGO" = "#45B7D1")
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")
} # }