1:Introducion
Este libro presenta un análisis del departamento del Guaviare a través de herramientas y librerías del lenguaje R, como tidyverse, sf, ggplot2 . A partir de datos geográficos, se generan visualizaciones y mapas que permiten comprender las dinámicas territoriales de la región
2:Librerias. En este paso cargamos las librerias que estaremos utilizando a lo largo del proyecto.
library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(ggspatial)
## Warning: package 'ggspatial' was built under R version 4.4.3
2A.1: Revisamos la ruta de los archivos. Despues de instalados los paquetes y librerias se procede a revisar la ruta donde debemos verificar que hay dentro de cada uno de los libros.
list.files("C:/Users/yorhl/Downloads/DATOS")
## [1] "aguas de guaviare.gpkg" "Base agrícola 2023.csv"
## [3] "cities.gpkg" "citis.gpkg"
## [5] "COL_AGUA" "COL_ELEVACION"
## [7] "COL_msk_alt_tif" "COL_rVIAS"
## [9] "colores poblacion.gpkg" "DCD-POBLA.csv"
## [11] "dps-2.csv" "guaviare"
## [13] "GUAVIARE 2025.qgz" "guaviare 2025todo.qgz"
## [15] "GUAVIARE.qgz" "mapa de color.gpkg"
## [17] "MGN2023_DPTO_POLITICO" "MGN2023_MPIO_POLITICO"
## [19] "mipo.gpkg" "MPM"
## [21] "Mun-2023.csv" "puntos_poblacion.gpkg"
## [23] "simplemaps_worldcities_basicv1.77" "Vias.gpkg"
## [25] "worldcities.csv" "ytr.gpkg"
## [27] "ytree.gpkg"
2A.2:leemos la capa de municipios.
debemos leer la capa de MGN2023_MPIO_POLITICO se abre la capa y se revisa su interior.
municipio <- st_read("C:/Users/yorhl/Downloads/DATOS/MGN2023_MPIO_POLITICO")
## Reading layer `MGN_ADM_MPIO_GRAFICO' from data source
## `C:\Users\yorhl\Downloads\DATOS\MGN2023_MPIO_POLITICO' using driver `ESRI Shapefile'
## Simple feature collection with 1121 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.73562 ymin: -4.229406 xmax: -66.84722 ymax: 13.39473
## Geodetic CRS: MAGNA-SIRGAS
2A.3:Tomamos los datos y los representamos en tablas.
head(municipio)
2 B: Ahora guardamos el objeto en este caso “municipio”.
st_write(municipio, "municipios.gpkg", driver = "GPKG", append = F)
## Deleting layer `municipios' using driver `GPKG'
## Writing layer `municipios' to data source `municipios.gpkg' using driver `GPKG'
## Writing 1121 features with 11 fields and geometry type Multi Polygon.
2B.1: En este paso se buscara en el directorio de trabajo todos los archivos cuyo nombre contenga la cadena “gpkg”
list.files(pattern="gpkg")
## [1] "municipios.gpkg" "stder_munic.gpkg"
2B.2:Lectura del archivo GeoPackage Con la ayuda de la función st_read() del paquete sf se lee el archivo municipios.gpkg. Este archivo contiene información geoespacial de los municipios, que será cargada como un objeto de clase sf, lo que nos permitirá visualizar, analizar y manipular los datos espaciales en R
municipio <- st_read("./municipios.gpkg")
## Reading layer `municipios' from data source
## `C:\Users\yorhl\Downloads\municipios.gpkg' using driver `GPKG'
## Simple feature collection with 1121 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.73562 ymin: -4.229406 xmax: -66.84722 ymax: 13.39473
## Geodetic CRS: MAGNA-SIRGAS
2B.3:Filtro del departamento de Guaviare Utilizamos la función filter() del paquete dplyr para seleccionar únicamente los municipios pertenecientes al departamento de Guaviare, a partir del objeto municipio. El resultado se almacena en el objeto Guaviare.
(Guaviare <- dplyr::filter(municipio, dpto_cnmbr=="GUAVIARE"))
3A:Visualización de los municipios de Guaviare y sus centroides. se genera un mapa de los municipios del departamento de Guaviare utilizando la geometría del objeto Guaviare,Posteriormente se calculan y dibujan los centroides de cada municipio sobre el mismo mapa.
plot(st_geometry(Guaviare), col = sf.colors(12, categorical = TRUE), border = 'grey',
axes = TRUE)
plot(st_geometry(st_centroid(Guaviare)), pch = 3, col = 'red', add = TRUE)
## Warning: st_centroid assumes attributes are constant over geometries
3A.1 :Exportación de los municipios de Guaviare a un archivo
GeoPackage. Despues de filtrados los municipios del
departamento de Guaviare,se guarda el resultado en un archivo GeoPackage
(.gpkg), utilizando la función st_write() del paquete sf
st_write(Guaviare, "stder_munic.gpkg", driver = "GPKG", append = F)
## Deleting layer `stder_munic' using driver `GPKG'
## Writing layer `stder_munic' to data source `stder_munic.gpkg' using driver `GPKG'
## Writing 4 features with 11 fields and geometry type Multi Polygon.
4:Conversión de un conjunto de datos de ciudades a objeto espacial. Ahora se cargamos un conjunto de datos de ciudades del archivo worldcities.csv, que contiene las coordenadas de cada ciudad. Posteriormente, convertimos el dataframe en un objeto espacial sf, utilizando las columnas de longitud y latitud como coordenadas.
cities = read.csv('C://Users//yorhl//Downloads//DATOS//worldcities.csv') %>%
st_as_sf(coords = c("lng", "lat"), crs = 4326)
4A.1 : sel lee la ciudades del archivo worldcities.csv. Este objeto “cities” contiene las ciudades del archivo worldcities.csv, convertidas en puntos geográficos.
cities
4A.2: Comprobación del sistema de referencia (CRS) de las capas. Es muy importante que las capas que se desean superponer compartan el mismo sistema de referencia de coordenadas (CRS). en el departamento de Guaviare.
st_crs(cities)$epsg
## [1] 4326
4A.3:sistema de referencia (CRS) para Guaviare. comprobamos el CRS del departamento del Guaviare.
st_crs(Guaviare)$epsg
## [1] 4686
4A.4:Transformación del CRS para permitir análisis espacial. Para poder utilizar la selección espacial o superponer capas en un mismo mapa, es necesario que todos los datos usen el mismo sistema de coordenadas (CRS).con ayuda de la función st_transform() facilita convertir un dataset espacial al mismo CRS que otro.
ncities <- st_transform(cities, crs= st_crs(Guaviare))
4A.5:Selección espacial: ciudades dentro del departamento de Guaviare. Con estas dos capas covertidas (ncities y Guaviare) tienen el mismo sistema de coordenadas, podemos realizar una selección espacial para identificar qué ciudades están ubicadas dentro del departamento de Guaviare,con ayuda de la notación [ ] de los objetos sf, combinada con la operación st_within, que permite seleccionar puntos que están contenidos dentro de un polígono.
stder_cities <- ncities[Guaviare, , op = st_within]
4A.6:Visualización combinada municipios de Guaviare y ciudades dentro del departamento Con ayuda d elos pasos anteriores se procede a generar un mapa del departamento de Guaviare, mostrando los municipios con colores diferenciados. Luego, sobre este mapa, agregamos los puntos correspondientes a las ciudades que se encuentran dentro de Guaviare.
plot(st_geometry(Guaviare), col = sf.colors(12, categorical = TRUE), border = 'grey', axes = TRUE)
plot(st_geometry(stder_cities), pch = 20, col = 'red', add = TRUE)
5 : Mapa de las ciudades dentro del departamento de
Santande.
ggplot() +
# Añadimos los municipios
geom_sf(data = Guaviare, fill = "white", color = "black") +
# Añadimos las ciudades como puntos de colores
geom_sf(data = stder_cities, aes(color = city), size = 3) +
# Añadimos etiquetas a los ejes y un título
labs(x = "Longitud", y = "Latitud", title = "Ciudades de Guaviare") +
# Aplicamos un tema limpio
theme_bw()
5A.1:Ciudades y municipios del departamento de Guaviare. En este mapa se añaden las ciudades del departamento de Guaviare como puntos de colores, sobre la capa de municipios utilizando geom_sf(). Cada ciudad se representa como una figura (punto) y se colorea en función de su nombre, para diferenciarlas visualmente.
# Construimos el mapa
ggplot() +
# Añadimos los municipios del Guaviare
geom_sf(data = Guaviare, fill = "white", color = "black") +
# Añadimos las ciudades como puntos de colores
geom_sf(data = stder_cities, aes(color = city), size = 3) +
# Añadimos la barra de escala en la parte superior derecha
annotation_scale(location = "tr", height = unit(0.25, "cm"),
width_hint = 0.5, # versión más estable para ggspatial
pad_x = unit(0.3, "in"),
pad_y = unit(0.5, "in")) +
# Añadimos la flecha del norte en la parte superior derecha
annotation_north_arrow(location = "tr",
which_north = "true",
height = unit(1, "cm"),
width = unit(1, "cm"),
pad_x = unit(0.5, "in"),
pad_y = unit(0.05, "in"),
style = north_arrow_fancy_orienteering) +
# Añadimos etiquetas a los ejes y título
labs(x = "Longitud", y = "Latitud", title = "Ciudades del departamento de Guaviare") +
# Aplicamos un tema limpio
theme_bw()
6:Entorno de cómputo “Este libro ha sido desarrollado
utilizando el lenguaje de programación R, junto con diversas librerías
especializadas en análisis espacial y visualización de datos. A
continuación, se presenta el entorno de cómputo en el cual se realizó el
análisis, con el fin de garantizar la reproducibilidad de los
resultados”.
sessionInfo()
## R version 4.4.1 (2024-06-14 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 22631)
##
## Matrix products: default
##
##
## locale:
## [1] LC_COLLATE=Spanish_Colombia.utf8 LC_CTYPE=Spanish_Colombia.utf8
## [3] LC_MONETARY=Spanish_Colombia.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Colombia.utf8
##
## time zone: America/Bogota
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] ggspatial_1.1.9 ggplot2_3.5.2 dplyr_1.1.4 sf_1.0-20
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.5 jsonlite_1.8.9 compiler_4.4.1 tidyselect_1.2.1
## [5] Rcpp_1.0.13 jquerylib_0.1.4 scales_1.3.0 yaml_2.3.10
## [9] fastmap_1.2.0 R6_2.5.1 generics_0.1.3 classInt_0.4-10
## [13] s2_1.1.7 knitr_1.49 tibble_3.2.1 units_0.8-5
## [17] munsell_0.5.1 DBI_1.2.3 bslib_0.8.0 pillar_1.9.0
## [21] rlang_1.1.4 utf8_1.2.4 cachem_1.1.0 xfun_0.49
## [25] sass_0.4.9 cli_3.6.3 withr_3.0.1 magrittr_2.0.3
## [29] wk_0.9.4 class_7.3-22 digest_0.6.37 grid_4.4.1
## [33] rstudioapi_0.17.1 lifecycle_1.0.4 vctrs_0.6.5 KernSmooth_2.23-24
## [37] proxy_0.4-27 evaluate_1.0.1 glue_1.8.0 farver_2.1.2
## [41] colorspace_2.1-1 fansi_1.0.6 e1071_1.7-16 rmarkdown_2.29
## [45] tools_4.4.1 pkgconfig_2.0.3 htmltools_0.5.8.1