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. SiFALSE, ejecuta de forma silenciosa.- force_update
Logical. Si
TRUE, fuerza una nueva descarga del archivo incluso si existe en caché. Por defectoFALSEpara 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")
} # }