--- title: "Sistema de Centros Poblados del Perú" subtitle: "Acceso a Capitales, Centros Poblados y Asentamientos Dispersos" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Sistema de Centros Poblados del Perú} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 8, fig.height = 6, warning = FALSE, message = FALSE ) ``` ## Introducción Este documento presenta las funciones del paquete `rsdot` para acceder y analizar el **Sistema de Centros Poblados del Perú**, basado en la clasificación oficial del Instituto Nacional de Estadística e Informática (INEI) según el Censo de Población y Vivienda 2017. ### Clasificación INEI de Asentamientos Humanos El INEI clasifica los asentamientos humanos en el Perú utilizando una jerarquía basada en **tamaño poblacional, organización de viviendas y disponibilidad de servicios**: #### 1. **Capitales** (Administrativas) Centros administrativos principales del país: - **Capital Departamental**: Sede del gobierno regional (ej. Cusco, Arequipa, Lima) - **Capital Provincial**: Sede de la administración provincial - **Capital Distrital**: Sede del gobierno local distrital *Características*: Centros urbanos con la mayor concentración de servicios públicos, infraestructura y población. #### 2. **Centros Poblados (CPs)** Núcleos de población con las siguientes características: - **Definición**: Asentamientos con nombre propio, población generalmente > 150 habitantes (según criterios del INEI) - **Organización**: Viviendas agrupadas con cierta organización espacial - **Servicios**: Infraestructura básica (agua, desagüe, luz) y vías de acceso - **Clasificación**: - **Urbanos**: Viviendas agrupadas, con pistas/veredas, mayor densidad - **Rurales**: Viviendas más dispersas, menor densidad (caseríos, comunidades) #### 3. **Asentamientos Dispersos** Poblaciones muy pequeñas o viviendas aisladas: - Poblaciones que no alcanzan la categoría de Centro Poblado - Viviendas aisladas en zonas rurales - Sin organización espacial definida - Servicios básicos limitados o ausentes ### Funciones Disponibles: El paquete `rsdot` proporciona dos funciones principales: - **`get_capitales()`**: Accede a las capitales departamentales, provinciales y distritales - **`get_centros_poblados()`**: Accede a todos los centros poblados y asentamientos dispersos censados Ambas funciones utilizan datos georreferenciados del Censo 2017, accesibles a través de la plataforma **VIsor SDOT** de la PCM. ```{r load-packages} library(rsdot) library(ggplot2) library(dplyr) library(sf) ``` --- ## Función 1: get_capitales() Accede a las **capitales administrativas** (departamentales, provinciales y distritales) identificadas en el Censo 2017. Estas son los centros urbanos principales que sirven como sedes del gobierno en sus respectivos niveles. ### Jerarquía de Capitales El campo `capital` indica la jerarquía administrativa: - **1**: Capital departamental - **2**: Capital provincial - **3**: Capital distrital ### Uso Básico ```{r capitales-basico} # Obtener todas las capitales de Cusco capitales_cusco <- get_capitales(departamento = "CUSCO") # Ver estructura de los datos head(capitales_cusco) # Resumen estadístico summary(capitales_cusco$pob) ``` ### Análisis por Jerarquía ```{r analisis-jerarquia} # Clasificar capitales por tipo capitales_cusco %>% st_drop_geometry() %>% mutate( tipo = case_when( capital == 1 ~ "Departamental", capital == 2 ~ "Provincial", capital == 3 ~ "Distrital" ) ) %>% group_by(tipo) %>% summarise( n_capitales = n(), pob_total = sum(pob, na.rm = TRUE), pob_promedio = round(mean(pob, na.rm = TRUE)), pob_mediana = median(pob, na.rm = TRUE) ) ``` ### Identificar Capitales Provinciales ```{r capitales-provinciales} # Las capitales provinciales son centros urbanos importantes capitales_prov <- capitales_cusco %>% filter(capital == 2) capitales_prov %>% st_drop_geometry() %>% select(nombprov, cen_pob, pob) %>% arrange(desc(pob)) ``` ### Visualización de la Jerarquía Administrativa ```{r mapa-jerarquia, fig.width=9, fig.height=7} # Crear categorías para visualización capitales_cusco <- capitales_cusco %>% mutate( tipo_capital = case_when( capital == 1 ~ "Departamental", capital == 2 ~ "Provincial", capital == 3 ~ "Distrital" ), tipo_capital = factor( tipo_capital, levels = c("Departamental", "Provincial", "Distrital") ) ) # Mapa de capitales por jerarquía administrativa ggplot(capitales_cusco) + geom_sf(aes(color = tipo_capital, size = pob), alpha = 0.7) + scale_size_continuous( name = "Población", range = c(1, 12), labels = scales::comma, breaks = c(1000, 10000, 50000, 150000, 300000) ) + scale_color_manual( name = "Jerarquía\nAdministrativa", values = c( "Departamental" = "#E41A1C", # Rojo - Capital departamental "Provincial" = "#377EB8", # Azul - Capitales provinciales "Distrital" = "#4DAF4A" # Verde - Capitales distritales ) ) + theme_minimal() + labs( title = "Jerarquía Administrativa de Capitales en Cusco", subtitle = "Sistema de asentamientos según clasificación INEI - Censo 2017", caption = "Fuente: INEI - Censo de Población y Vivienda 2017 | Visor SDOT" ) + theme( legend.position = "right", plot.title = element_text(face = "bold", size = 14), plot.subtitle = element_text(size = 11) ) ``` --- ## Función 2: get_centros_poblados() Accede al **universo completo de centros poblados y asentamientos dispersos** censados en 2017, incluyendo tanto núcleos urbanos organizados como viviendas dispersas en zonas rurales. Esta función proporciona acceso a: 1. **Centros Poblados Urbanos**: Asentamientos con viviendas agrupadas, pistas/veredas, servicios básicos 2. **Centros Poblados Rurales**: Caseríos, comunidades, anexos con cierta organización 3. **Asentamientos Dispersos**: Viviendas aisladas, poblaciones muy pequeñas ### Datos Disponibles La función proporciona información detallada sobre: - **Población**: Total de habitantes - **Vivienda**: Total de viviendas, viviendas particulares, viviendas ocupadas - **Ubicación**: Coordenadas geográficas (REFERENCIAL) - **Administración**: Departamento, provincia, distrito ### Uso Básico ```{r centros-poblados-basico} # Obtener centros poblados de Tacna (departamento pequeño para ejemplo) cp_tacna <- get_centros_poblados(departamento = "TACNA") # Estructura de los datos head(cp_tacna) # Estadísticas generales cat("Total de asentamientos censados:", nrow(cp_tacna), "\n") cat("Población total:", format(sum(cp_tacna$pob, na.rm = TRUE), big.mark = ","), "\n") cat("Viviendas totales:", format(sum(cp_tacna$viv, na.rm = TRUE), big.mark = ","), "\n") ``` ### Clasificación por Tamaño Poblacional Siguiendo los criterios del INEI para clasificación urbano-rural: ```{r clasificacion-tamano} # Clasificar centros poblados según tamaño cp_clasificados <- cp_tacna %>% mutate( categoria = case_when( pob >= 10000 ~ "Urbano Grande (≥10,000 hab.)", pob >= 2000 ~ "Urbano Mediano (2,000-9,999 hab.)", pob >= 500 ~ "Urbano Pequeño (500-1,999 hab.)", pob >= 150 ~ "Rural Concentrado (150-499 hab.)", pob >= 50 ~ "Rural Disperso (50-149 hab.)", TRUE ~ "Asentamiento Disperso (<50 hab.)" ), categoria = factor( categoria, levels = c( "Urbano Grande (≥10,000 hab.)", "Urbano Mediano (2,000-9,999 hab.)", "Urbano Pequeño (500-1,999 hab.)", "Rural Concentrado (150-499 hab.)", "Rural Disperso (50-149 hab.)", "Asentamiento Disperso (<50 hab.)" ) ) ) # Distribución por categoría distribucion <- cp_clasificados %>% st_drop_geometry() %>% group_by(categoria) %>% summarise( n_asentamientos = n(), pob_total = sum(pob, na.rm = TRUE), pob_promedio = round(mean(pob, na.rm = TRUE)), viv_total = sum(viv, na.rm = TRUE) ) %>% mutate( pct_asentamientos = round(n_asentamientos / sum(n_asentamientos) * 100, 1), pct_poblacion = round(pob_total / sum(pob_total) * 100, 1) ) print(distribucion) ``` ### Visualización del Sistema de Asentamientos ```{r mapa-sistema-completo, fig.width=10, fig.height=8} # Mapa del sistema completo de asentamientos ggplot(cp_clasificados) + geom_sf(aes(color = categoria, size = pob), alpha = 0.6) + scale_size_continuous( name = "Población", range = c(0.5, 8), labels = scales::comma ) + scale_color_brewer( name = "Clasificación\nINEI", palette = "Spectral", direction = -1 ) + theme_minimal() + labs( title = "Sistema de Centros Poblados y Asentamientos Dispersos", subtitle = "Departamento de Tacna - Clasificación según tamaño poblacional INEI", caption = "Fuente: INEI - Censo de Población y Vivienda 2017 | Visor SDOT\nNOTA: Ubicaciones son referenciales" ) + theme( legend.position = "right", plot.title = element_text(face = "bold", size = 14), legend.box = "vertical" ) ``` ### Análisis de Concentración Urbana vs Rural ```{r urbano-rural} # Clasificación urbano-rural según INEI (> 2000 hab = urbano) cp_tacna_ur <- cp_tacna %>% mutate( clasificacion = if_else(pob >= 2000, "Urbano", "Rural/Disperso") ) # Análisis de concentración concentracion <- cp_tacna_ur %>% st_drop_geometry() %>% group_by(clasificacion) %>% summarise( n_asentamientos = n(), pob_total = sum(pob, na.rm = TRUE), viv_total = sum(viv, na.rm = TRUE) ) %>% mutate( pct_asentamientos = round(n_asentamientos / sum(n_asentamientos) * 100, 1), pct_poblacion = round(pob_total / sum(pob_total) * 100, 1) ) print(concentracion) # Interpretación cat("\nInterpretación:\n") cat("- Los asentamientos urbanos (≥2,000 hab.) representan el", concentracion$pct_asentamientos[concentracion$clasificacion == "Urbano"], "% de los asentamientos\n") cat("- Pero concentran el", concentracion$pct_poblacion[concentracion$clasificacion == "Urbano"], "% de la población total\n") ``` --- ## Análisis Integrado: Capitales en el Sistema de Asentamientos ### Comparar Capitales con su Contexto Poblacional ```{r analisis-integrado} # Obtener datos completos de Cusco capitales <- get_capitales(departamento = "CUSCO") centros <- get_centros_poblados(departamento = "CUSCO") # Identificar centros poblados que son capitales capitales_ids <- unique(capitales$codccpp) centros <- centros %>% mutate( es_capital = codccpp %in% capitales_ids, tipo_asentamiento = case_when( es_capital ~ "Capital (administrativa)", pob >= 2000 ~ "Centro Poblado Urbano", pob >= 500 ~ "Centro Poblado Rural", pob >= 150 ~ "Centro Poblado Pequeño", TRUE ~ "Asentamiento Disperso" ) ) # Estadísticas comparativas comparacion <- centros %>% st_drop_geometry() %>% group_by(tipo_asentamiento) %>% summarise( n = n(), pob_total = sum(pob, na.rm = TRUE), pob_promedio = round(mean(pob, na.rm = TRUE)), viv_total = sum(viv, na.rm = TRUE) ) %>% mutate( pct_asentamientos = round(n / sum(n) * 100, 1), pct_poblacion = round(pob_total / sum(pob_total) * 100, 1) ) %>% arrange(desc(pob_total)) print(comparacion) ``` ### Visualización del Sistema Completo ```{r mapa-sistema-integrado, fig.width=10, fig.height=8} # Mapa que muestra la jerarquía completa del sistema de asentamientos ggplot() + # Primero: asentamientos dispersos y pequeños (fondo) geom_sf( data = centros %>% filter(!es_capital, pob < 500), aes(size = pob), color = "gray70", alpha = 0.3 ) + # Segundo: centros poblados medianos geom_sf( data = centros %>% filter(!es_capital, pob >= 500, pob < 2000), aes(size = pob), color = "steelblue", alpha = 0.5 ) + # Tercero: centros poblados urbanos (no capitales) geom_sf( data = centros %>% filter(!es_capital, pob >= 2000), aes(size = pob), color = "darkblue", alpha = 0.6 ) + # Cuarto: capitales (destacadas) geom_sf( data = centros %>% filter(es_capital), aes(size = pob), color = "#E41A1C", alpha = 0.8 ) + scale_size_continuous( name = "Población", range = c(0.3, 10), labels = scales::comma, breaks = c(100, 1000, 10000, 50000, 200000) ) + theme_minimal() + labs( title = "Sistema Jerárquico de Asentamientos Humanos en Cusco", subtitle = "Capitales (rojo), Centros Poblados Urbanos (azul oscuro), Rurales (azul claro), Dispersos (gris)", caption = "Fuente: INEI - Censo 2017 | Clasificación según INEI\nNOTA: Tamaño proporcional a población" ) + theme( legend.position = "right", plot.title = element_text(face = "bold", size = 14) ) ``` --- ## Análisis de Vivienda y Servicios ### Características Habitacionales por Tipo de Asentamiento ```{r analisis-vivienda} # Análisis de vivienda por tipo de asentamiento vivienda_stats <- centros %>% st_drop_geometry() %>% filter(viv > 0) %>% mutate( tipo = case_when( es_capital ~ "Capital", pob >= 2000 ~ "Urbano", pob >= 500 ~ "Rural", TRUE ~ "Disperso" ) ) %>% group_by(tipo) %>% summarise( n_asentamientos = n(), pob_total = sum(pob, na.rm = TRUE), viv_total = sum(viv, na.rm = TRUE), viv_ocupadas = sum(viv_part_o, na.rm = TRUE), pob_por_vivienda = round(pob_total / viv_total, 2), tasa_ocupacion = round(viv_ocupadas / sum(viv_part, na.rm = TRUE) * 100, 1) ) print(vivienda_stats) ``` ### Densidad Habitacional ```{r densidad-habitacional, fig.width=8, fig.height=6} # Análisis de densidad habitacional cp_densidad <- centros %>% filter(viv > 0) %>% mutate( pob_por_viv = pob / viv, categoria = case_when( es_capital ~ "Capital", pob >= 2000 ~ "Urbano", pob >= 500 ~ "Rural", TRUE ~ "Disperso" ) ) # Boxplot de población por vivienda ggplot(cp_densidad %>% st_drop_geometry(), aes(x = categoria, y = pob_por_viv, fill = categoria)) + geom_boxplot() + scale_fill_brewer(palette = "Set2") + coord_flip() + labs( title = "Densidad Habitacional por Tipo de Asentamiento", subtitle = "Habitantes por vivienda según clasificación INEI", x = "Tipo de Asentamiento", y = "Población por Vivienda", caption = "Fuente: INEI - Censo 2017" ) + theme_minimal() + theme(legend.position = "none") ``` --- ## Análisis Provincial y Distrital ### Distribución de Asentamientos por Distrito ```{r por-distrito} # Análisis por distrito dist_stats <- centros %>% st_drop_geometry() %>% group_by(nombdist) %>% summarise( n_asentamientos = n(), n_capitales = sum(es_capital), n_urbanos = sum(pob >= 2000), n_rurales = sum(pob < 2000 & pob >= 150), n_dispersos = sum(pob < 150), pob_total = sum(pob, na.rm = TRUE), viv_total = sum(viv, na.rm = TRUE) ) %>% arrange(desc(pob_total)) %>% head(10) print(dist_stats) ``` --- ## Casos de Uso Especializados ### 1. Análisis de Accesibilidad a Servicios ```{r accesibilidad, eval=FALSE} # Ejemplo: Calcular distancia de asentamientos rurales a centros urbanos library(sf) # Identificar centros urbanos (≥ 2000 hab) urbanos <- centros %>% filter(pob >= 2000) # Identificar asentamientos rurales dispersos rurales <- centros %>% filter(pob < 500) # Calcular distancia al centro urbano más cercano rurales_con_dist <- rurales %>% mutate( centro_mas_cercano_idx = st_nearest_feature(., urbanos), distancia_km = as.numeric(st_distance( geometry, urbanos$geometry[centro_mas_cercano_idx], by_element = TRUE )) / 1000 # Convertir a km ) # Estadísticas de accesibilidad summary(rurales_con_dist$distancia_km) ``` ### 2. Jerarquía Urbana Regional ```{r jerarquia-urbana} # Análisis de jerarquía urbana usando regla rango-tamaño centros_urbanos <- centros %>% filter(pob >= 2000) %>% arrange(desc(pob)) %>% mutate( rango = row_number(), pob_esperada = first(pob) / rango, # Ley de Zipf ratio = round(pob / pob_esperada, 2) ) # Top 10 centros urbanos top_urbanos <- centros_urbanos %>% st_drop_geometry() %>% select(rango, cen_pob, nombdist, pob, pob_esperada, ratio) %>% head(10) print(top_urbanos) ``` ### 3. Patrón de Dispersión Rural ```{r patron-dispersion, fig.width=8, fig.height=6} # Análisis del patrón de asentamientos rurales dispersos dispersos <- centros %>% filter(pob < 150) # Distribución de población en asentamientos dispersos ggplot(dispersos %>% st_drop_geometry(), aes(x = pob)) + geom_histogram(binwidth = 10, fill = "steelblue", alpha = 0.7) + labs( title = "Distribución de Población en Asentamientos Dispersos", subtitle = "Asentamientos con menos de 150 habitantes", x = "Población", y = "Número de Asentamientos", caption = "Fuente: INEI - Censo 2017" ) + theme_minimal() ``` --- ## Referencias y Recursos ### Fuentes de Datos - INEI (2017). **Censo de Población y Vivienda 2017**. Instituto Nacional de Estadística e Informática. ### Funciones Relacionadas - `get_red_vial_nacional()` - Red vial nacional del Perú - `get_red_vial_departamental()` - Red vial departamental - `get_departamentos()` - Límites departamentales ---