Cartografía Censo 2024 – PostgreSQL

[This article was first published on https://pacha.dev/blog, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
pacha.dev/blog

Cartografía Censo 2024 – PostgreSQL

Organicé los archivos Parquet que proporciona el INE para el Censo 2024 en una base de datos PostgreSQL con la extensión PostGIS, facilitando así su consulta y análisis espacial.
Author

Mauricio “Pachá” Vargas S.

Published

December 21, 2025

Puedes enviarme preguntas para el blog utilizando este formulario y suscribirse para recibir un correo electrónico cuando haya una nueva publicación.

Organicé los archivos Parquet que proporciona el INE para el Censo 2024 en una base de datos PostgreSQL con la extensión PostGIS, facilitando así su consulta y análisis espacial.

Las llaves primarias y foráneas se han definido según las relaciones establecidas en la documentación oficial del INE, asegurando la integridad referencial entre las tablas.

Tablas procesadas:

  • Comunas
  • Límites Urbanos
  • Manzanas
  • Provincias
  • Regiones

En donde corresponde (e.g., comunas), usé la notación oficial de la Subsecretaría de Desarrollo Regional(SUBDERE) para los códigos geográficos, es decir que “05” es “Región de Valparaíso”, “051” es “Provincia de Valparaíso” y “05101” es “Comuna de Valparaíso” en lugar de “5”, “51” y “5101” para evitar cualquier tipo de ambiguedad.

Para cargar los datos en PostgreSQL, se debe contar con PostgreSQL version 15 o más reciente, junto con la extensión PostGIS instalada. Los siguientes comandos permiten crear las tablas desde el dump SQL:

createdb censo2024_cartografia
pg_restore -d new_censo2024_cartografia /path/to/censo2024_cartografia.postgres

Si estos datos son de utilidad para tu proyecto, por favor abre un issue para saber cómo mejorar o expandir este repositorio.

En el siguiente enlace puedes donar de forma voluntaria para apoyar mis proyectos de código abierto:

Buy me a coffee

Ejemplo de uso con ggplot2 para mostrar la proporción de hogares con hacinamiento a nivel de manzanas:

hacinamiento_por_comuna <- tbl(con, "manzanas") |>
    filter(cod_region == "13") |>
    select(
        n_viviendas = n_vp,
        n_viviendas_hacinadas = n_viv_hacinadas,
        cod_comuna,
        cod_manzana,
        geometry
    ) |>
    filter(n_viviendas > 0) |>
    mutate(
        razon_hacinamiento = n_viviendas_hacinadas / n_viviendas
    ) |>
    inner_join(tbl(con, "cod_comuna")) |>
    collect()

# conver pq_gmtry to sf
# see page 12 in Manual_uso_cartografia_CPV2024.pdf, it says EPSG - 4674
hacinamiento_por_comuna$geometry <- st_as_sfc(
    hacinamiento_por_comuna$geometry,
    crs = 4674
)

# add comunas as borders to see the limits
comunas <- tbl(con, "comunas") |>
    filter(cod_region == "13") |>
    select(cod_comuna, geometry) |>
    collect()

comunas$geometry <- st_as_sfc(
    comunas$geometry,
    crs = 4674
)

# subset to Gran Santiago
gran_santiago <- c("131", "132")

hacinamiento_por_comuna <- hacinamiento_por_comuna |>
    filter(
       str_sub(cod_comuna, 1, 3) %in% gran_santiago
    )

comunas <- comunas |>
    filter(
       str_sub(cod_comuna, 1, 3) %in% gran_santiago
    )

g <- ggplot(data = hacinamiento_por_comuna) +
    geom_sf(
        aes(fill = razon_hacinamiento, geometry = geometry),
        color = NA
    ) +
    geom_sf(
        data = comunas,
        aes(geometry = geometry),
        fill = NA,
        color = "black",
        size = 1
    ) +
    scale_fill_gradientn(
        colors = c("#ffffff", "#ff7e66", "#ff2800"),
        values = scales::rescale(c(0, 0.3, 0.6)),
        na.value = "grey90",
        name = "Razón de Hacinamiento",
        limits = c(0, 0.6),
        breaks = seq(0, 0.6, by = 0.2),
        labels = scales::percent_format(accuracy = 1L)
    ) +
    theme_minimal() +
    labs(
        title = "Razón de Hacinamiento por Manzana en la Región Metropolitana",
        subtitle = "Censo 2024 - Chile",
        caption = "Fuente: INE - Censo 2024. Procesado por pacha.cl"
    ) +
    theme(
        plot.title = element_text(size = 16, face = "bold"),
        plot.subtitle = element_text(size = 12),
        plot.caption = element_text(size = 8),
        legend.position = "right"
    ) +
    # limits by geo coordinates of Gran Santiago
    coord_sf(xlim = c(-70.9, -70.5), ylim = c(-33.7, -33.3))

Resultado:

Razón de Hacinamiento por Manzana en la Región Metropolitana

Loading...

To leave a comment for the author, please follow the link and comment on their blog: https://pacha.dev/blog.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)