La geomática es una disciplina clave para la recolección, análisis, gestión y visualización de información geoespacial. En un mundo donde los datos espaciales son fundamentales para la toma de decisiones en áreas como la agricultura y la gestión de recursos naturales, el dominio de herramientas digitales para el manejo de esta información se ha vuelto indispensable.
Este documento tiene como objetivo introducir al lector en la creación de gráficos mediante funciones del lenguaje de programación R, destacando la facilidad que ofrecen sus herramientas a través de paquetes como sf, dplyr, ggplot2 y ggspatial. Estos permiten la manipulación de datos y la elaboración de representaciones cartográficas precisas, adaptadas a las necesidades del análisis territorial en el ámbito agropecuario.
-Aplicar funciones básicas para el analisis y visualisación de datos Geoespaciales
-Generar un mapa representativo del Departamento de Casanare con sus respectivos municipios y nombre de ciudades principales.
son paquetes de funciones, datos y codigos que permiten amplificar las capacidades basicas de R, ayudando asi a su manejo de manera mas practica. En este trabajo se usaron 4 librerias que se pueden ver en la caja de función “r”, se deben llamar para poder acceder a su coleccion de datos de la forma library()..
library(sf)
library(dplyr)
library(ggplot2)
library(ggspatial)
Estas funciones sirven para localizar la ruta de los archivos que se van a usar, crear una nueva variable con esa información y cargar los datos geográficos al entorno de trabajo. Estos pasos iniciales son clave para asegurarse de que los datos cargados sean los correctos y el código funcione bien.
list.files("C:/Users/Janus/Desktop/GB2/P1/DATOS/municipios")
## [1] "MGN_ADM_MPIO_GRAFICO.cpg" "MGN_ADM_MPIO_GRAFICO.dbf"
## [3] "MGN_ADM_MPIO_GRAFICO.prj" "MGN_ADM_MPIO_GRAFICO.sbn"
## [5] "MGN_ADM_MPIO_GRAFICO.sbx" "MGN_ADM_MPIO_GRAFICO.shp"
## [7] "MGN_ADM_MPIO_GRAFICO.shp.xml" "MGN_ADM_MPIO_GRAFICO.shx"
## [9] "poblacion.xlsx" "poblacion2.csv"
colombia <- st_read("C:/Users/Janus/Desktop/GB2/P1/DATOS/municipios/MGN_ADM_MPIO_GRAFICO.shp")
## Reading layer `MGN_ADM_MPIO_GRAFICO' from data source
## `C:\Users\Janus\Desktop\GB2\P1\DATOS\municipios\MGN_ADM_MPIO_GRAFICO.shp'
## 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
head(colombia)
proviene del paquete sf, se usa para trabajar datos espaciales que pueden ser puntos, lineas o pológonos. Nos permite guardar un objetos espacial en archivo GeoPackage(gppkg). En esta sección se utilizó el archivo gpkg de los municipios de Colombia para luego filtrar mediante la funcion “dplyr::filter”, con esta se puede filtrar unicamente los datos de interes (Casanare), y generar una primera visualizacion en los datos mediante un grafico.
st_write(colombia, "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.
list.files(pattern = "gpkg")
## [1] "csnr_munic.gpkg" "municipios.gpkg"
colombia <- st_read("./municipios.gpkg")
## Reading layer `municipios' from data source
## `C:\Users\Janus\Desktop\GB2\proyecto3\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
(casanare <- dplyr::filter(colombia, dpto_cnmbr=="CASANARE"))
Este código permite visualizar los datos de los municipios filtrados del departamento de Casanare, mostrando sus puntos centroides.
Además, el código es flexible y permite modificar fácilmente aspectos visuales como los colores, los bordes y la forma de los puntos para adaptar la gráfica a diferentes necesidades o preferencias estéticas.
plot(st_geometry(casanare), col = sf.colors(12, categorical = TRUE), border = 'white',
axes = TRUE)
plot(st_geometry(st_centroid(casanare)), pch = 6, col = 'red', add = TRUE)
## Warning: st_centroid assumes attributes are constant over geometries
Figura 1: Departamento de Casanare
Esta función en R se usa para leer archivos Csv y convertirlos a data frame, para poder aplicarlos en este caso a graficos. En esta seccion se usó el codigo read.csv() para transportar los archivos csv de la base de datos descargada, y recortando tambien unicamente las de Casanare; y mediante el codigo st_crs se adegura que los datos espaciales se ubiquen correctamente.
st_write(casanare, "csnr_munic.gpkg", driver = "GPKG", append = F)
## Deleting layer `csnr_munic' using driver `GPKG'
## Writing layer `csnr_munic' to data source `csnr_munic.gpkg' using driver `GPKG'
## Writing 19 features with 11 fields and geometry type Multi Polygon.
cities = read.csv("C:/Users/Janus/Desktop/GB2/P1/DATOS/ciudades/worldcities.csv") %>%
st_as_sf(coords=c("lng","lat"), crs=4326)
cities
st_crs(cities)$epsg
## [1] 4326
st_crs(casanare)$epsg
## [1] 4686
A continuación se visualiza el mapa del departamento de Casanare, donde los puntos rojos indican la ubicación de las principales ciudades.
La siguiente línea de código realiza el recorte del conjunto de datos de ciudades, filtrando solo aquellas pertenecientes a Casanare, y organiza las variables según las necesidades del análisis.
ncities <- st_transform(cities, crs= st_crs(casanare))
csnr_cities <- ncities[casanare, , op = st_within]
plot(st_geometry(casanare), col=sf.colors(12, categorical = TRUE), border = "grey",axes = TRUE)
plot(st_geometry(csnr_cities), pch = 16, col = "red", add = TRUE)
Figura 2: Ciudades de casanare
Al realizar un grafico se debe pensar en la estetica para que se pueda leer de la manera mas comoda y no se vea como un aglomerado de datos que cuesta entender. para esto se usa “ggplot()” que crea una gráfica vacia usando el sistema de graficos ggplot2, añadiendo el departamento, municipios y las ciudades con la función “geom_sf”, “aes” permite asignar un color diferente a cada ciudad, “labs” da nombre a los ejes de las graficas permitiendo asi organizar la lectura
ggplot() +
geom_sf(data = casanare) +
geom_sf(data = csnr_cities, aes(color = city), size = 3) +
labs(x = "Longitud", y ="Latitud", title = "Ciudades de Casanare") +
theme_bw()
Figura 3: cuadricula y mejora visual
Como ultimos toques en esta sección se agregan obetos de infomacion como la barra de escala “annotation_scale”, y la flecha del norte “annotation_north_arrow”.
ggplot() +
geom_sf(data = casanare) +
geom_sf(data = csnr_cities, aes(color = city, label = city), size = 3) +
annotation_scale(location = "br", height = unit(0.5, "cm"),
width = unit(1, "cm"), pad_x = unit(0.3, "in"),
pad_y = unit(0.3, "in")) +
annotation_north_arrow(height = unit(1.5, "cm"), width = unit(1.5, "cm"),
which_north = "true", location = "br",
pad_x = unit(0.5, "in"), pad_y = unit(0.8, "in"), style = north_arrow_fancy_orienteering()) +
labs(x = "Longitud", y = "Latitud", title = "Ciudades de Casanare") +
theme_bw()
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: label
## Warning in annotation_scale(location = "br", height = unit(0.5, "cm"), width =
## unit(1, : Ignoring unknown parameters: `width`
Figura 4: ubicación de objetos Geoespaciales en el mapa
This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
sessionInfo()
## R version 4.5.0 (2025-04-11 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 10 x64 (build 19045)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## 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-21
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.6 jsonlite_2.0.0 compiler_4.5.0 tidyselect_1.2.1
## [5] Rcpp_1.0.14 jquerylib_0.1.4 scales_1.4.0 yaml_2.3.10
## [9] fastmap_1.2.0 R6_2.6.1 generics_0.1.4 classInt_0.4-11
## [13] s2_1.1.8 knitr_1.50 tibble_3.2.1 units_0.8-7
## [17] DBI_1.2.3 bslib_0.9.0 pillar_1.10.2 RColorBrewer_1.1-3
## [21] rlang_1.1.6 cachem_1.1.0 xfun_0.52 sass_0.4.10
## [25] cli_3.6.5 withr_3.0.2 magrittr_2.0.3 wk_0.9.4
## [29] class_7.3-23 digest_0.6.37 grid_4.5.0 lifecycle_1.0.4
## [33] vctrs_0.6.5 KernSmooth_2.23-26 proxy_0.4-27 evaluate_1.0.3
## [37] glue_1.8.0 farver_2.1.2 e1071_1.7-16 rmarkdown_2.29
## [41] tools_4.5.0 pkgconfig_2.0.3 htmltools_0.5.8.1
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.