Los Sistemas de Información Geográfica (SIG) constituyen una herramienta fundamental para el análisis, gestión y representación de información espacial. Permiten integrar datos vectoriales y raster para estudiar las características físicas de un territorio y apoyar la toma de decisiones en diferentes áreas como la planificación territorial, la gestión ambiental y la investigación científica.
En este cuaderno se desarrolla un análisis espacial del departamento de Putumayo utilizando el lenguaje de programación R y diferentes paquetes especializados en el manejo de información geográfica. Se realiza la preparación de los datos espaciales, el cálculo de atributos de los municipios, la obtención y procesamiento de un Modelo Digital de Elevación (DEM) y la elaboración de un mapa interactivo que integra información topográfica y administrativa.
El objetivo de esta práctica es aplicar herramientas de análisis espacial mediante software de código abierto, comprendiendo cada una de las etapas del procesamiento de información geográfica y la visualización de resultados.
Antes de iniciar el análisis espacial, es necesario cargar las librerías que contienen las funciones utilizadas durante el desarrollo de la práctica. Cada paquete proporciona herramientas específicas para el manejo de información geográfica, procesamiento de datos raster y construcción de mapas interactivos.
library(sf)
library(terra)
library(raster)
library(elevatr)
library(leaflet)
Las principales librerías utilizadas fueron las siguientes:
| Librería | Descripción |
|---|---|
| sf | Permite leer, manipular y analizar datos espaciales vectoriales, como los límites de los municipios. |
| terra | Proporciona herramientas modernas para el procesamiento y análisis de datos raster. |
| raster | Se utilizó para manejar inicialmente el Modelo Digital de Elevación
descargado con elevatr. |
| elevatr | Permite descargar Modelos Digitales de Elevación (DEM) desde servicios web. |
| leaflet | Facilita la creación de mapas interactivos con diferentes capas de información espacial. |
Cada una de las librerías empleadas cumple una función específica dentro del flujo de trabajo. En conjunto permiten realizar todas las etapas del análisis espacial, desde la lectura y preparación de la información geográfica hasta la elaboración de mapas interactivos y la visualización del Modelo Digital de Elevación.
En esta sección se preparan los datos espaciales que serán utilizados durante el desarrollo del cuaderno. Inicialmente se carga la capa vectorial correspondiente a los municipios del departamento de Putumayo y se verifican sus principales características. Posteriormente, se calculan nuevos atributos espaciales, como el área de cada municipio y sus centroides, y se obtiene un Modelo Digital de Elevación (DEM), el cual será procesado para su posterior visualización y análisis.
El primer paso consiste en cargar la capa vectorial que contiene la división político-administrativa de los municipios del departamento de Putumayo. Esta información se encuentra almacenada en formato GeoPackage (.gpkg), el cual permite almacenar datos espaciales y sus atributos en un único archivo.
Una vez cargada la información, se inspecciona su estructura para conocer el tipo de geometría, el sistema de referencia de coordenadas y los atributos disponibles para cada municipio.
munic <- sf::st_read(".\\municipios.gpkg")
## Reading layer `municipiois' from data source
## `C:\Users\ASUS\OneDrive\Documents\unal\GB2\proyecto 4\municipios.gpkg'
## using driver `GPKG'
## Simple feature collection with 12 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.1605 ymin: -0.581019 xmax: -73.88365 ymax: 1.427201
## Geodetic CRS: WGS 84
munic <- sf::st_read("./municipios.gpkg", layer = "municipiois")
## Reading layer `municipiois' from data source
## `C:\Users\ASUS\OneDrive\Documents\unal\GB2\proyecto 4\municipios.gpkg'
## using driver `GPKG'
## Simple feature collection with 12 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.1605 ymin: -0.581019 xmax: -73.88365 ymax: 1.427201
## Geodetic CRS: WGS 84
munic
## Simple feature collection with 12 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.1605 ymin: -0.581019 xmax: -73.88365 ymax: 1.427201
## Geodetic CRS: WGS 84
## First 10 features:
## ID_0 ISO NAME_0 ID_1 NAME_1 ID_2 NAME_2 TYPE_2
## 1 53 COL Colombia 23 Putumayo 814 Colón Municipio
## 2 53 COL Colombia 23 Putumayo 815 Orito Municipio
## 3 53 COL Colombia 23 Putumayo 816 Puerto Asís Municipio
## 4 53 COL Colombia 23 Putumayo 817 Puerto Caicedo Municipio
## 5 53 COL Colombia 23 Putumayo 818 Puerto Guzmán Municipio
## 6 53 COL Colombia 23 Putumayo 819 Puerto Leguízamo Municipio
## 7 53 COL Colombia 23 Putumayo 820 San Francisco Municipio
## 8 53 COL Colombia 23 Putumayo 821 San Miguel de Mocoa Municipio
## 9 53 COL Colombia 23 Putumayo 822 Santiago Municipio
## 10 53 COL Colombia 23 Putumayo 823 Sibundoy Municipio
## ENGTYPE_2 NL_NAME_2 VARNAME_2 geom
## 1 Municipality <NA> <NA> MULTIPOLYGON (((-77.015 1.2...
## 2 Municipality <NA> <NA> MULTIPOLYGON (((-76.735 0.6...
## 3 Municipality <NA> <NA> MULTIPOLYGON (((-76.11011 0...
## 4 Municipality <NA> <NA> MULTIPOLYGON (((-76.3974 0....
## 5 Municipality <NA> <NA> MULTIPOLYGON (((-76.3974 0....
## 6 Municipality <NA> <NA> MULTIPOLYGON (((-73.88365 -...
## 7 Municipality <NA> <NA> MULTIPOLYGON (((-76.8179 1....
## 8 Municipality <NA> Mocoa MULTIPOLYGON (((-76.4896 0....
## 9 Municipality <NA> <NA> MULTIPOLYGON (((-77.1147 1....
## 10 Municipality <NA> <NA> MULTIPOLYGON (((-77.015 1.2...
La capa fue cargada correctamente como un objeto del tipo sf (Simple Features), el cual almacena simultáneamente la geometría de los municipios y su información alfanumérica. Cada registro representa un municipio del departamento de Putumayo y contiene diferentes atributos descriptivos, además de la geometría de tipo polígono que define sus límites territoriales.
Antes de realizar cualquier procesamiento espacial, es importante identificar los atributos disponibles en la capa de municipios. Esto permite conocer el nombre de las variables que posteriormente serán utilizadas para generar etiquetas, calcular estadísticas y construir los mapas.
names(munic)
## [1] "ID_0" "ISO" "NAME_0" "ID_1" "NAME_1" "ID_2"
## [7] "NAME_2" "TYPE_2" "ENGTYPE_2" "NL_NAME_2" "VARNAME_2" "geom"
La exploración de la tabla de atributos permitió identificar las
variables disponibles dentro de la capa espacial. Entre ellas se
encuentran los nombres del país, departamento y municipio
(NAME_0, NAME_1 y NAME_2), además
de otros atributos descriptivos y la geometría (geom).
Posteriormente se incorporaron los campos area_m2 y
area, correspondientes al área calculada en metros
cuadrados y kilómetros cuadrados, respectivamente.
Una vez cargada la información espacial, se verificó que la capa de municipios no contenía un atributo con el área correspondiente a cada uno de ellos. Debido a esto, fue necesario calcular dicha información a partir de la geometría de los polígonos utilizando funciones del paquete sf.
Inicialmente el área fue calculada en metros cuadrados y posteriormente convertida a kilómetros cuadrados para facilitar su interpretación. Finalmente, los valores fueron redondeados a dos cifras significativas con el fin de mejorar la presentación de los resultados.
munic$area_m2 = sf::st_area(munic)
munic$area = munic$area_m2/1000000
munic$area = signif(munic$area, digits = 2)
munic
## Simple feature collection with 12 features and 13 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.1605 ymin: -0.581019 xmax: -73.88365 ymax: 1.427201
## Geodetic CRS: WGS 84
## First 10 features:
## ID_0 ISO NAME_0 ID_1 NAME_1 ID_2 NAME_2 TYPE_2
## 1 53 COL Colombia 23 Putumayo 814 Colón Municipio
## 2 53 COL Colombia 23 Putumayo 815 Orito Municipio
## 3 53 COL Colombia 23 Putumayo 816 Puerto Asís Municipio
## 4 53 COL Colombia 23 Putumayo 817 Puerto Caicedo Municipio
## 5 53 COL Colombia 23 Putumayo 818 Puerto Guzmán Municipio
## 6 53 COL Colombia 23 Putumayo 819 Puerto Leguízamo Municipio
## 7 53 COL Colombia 23 Putumayo 820 San Francisco Municipio
## 8 53 COL Colombia 23 Putumayo 821 San Miguel de Mocoa Municipio
## 9 53 COL Colombia 23 Putumayo 822 Santiago Municipio
## 10 53 COL Colombia 23 Putumayo 823 Sibundoy Municipio
## ENGTYPE_2 NL_NAME_2 VARNAME_2 geom
## 1 Municipality <NA> <NA> MULTIPOLYGON (((-77.015 1.2...
## 2 Municipality <NA> <NA> MULTIPOLYGON (((-76.735 0.6...
## 3 Municipality <NA> <NA> MULTIPOLYGON (((-76.11011 0...
## 4 Municipality <NA> <NA> MULTIPOLYGON (((-76.3974 0....
## 5 Municipality <NA> <NA> MULTIPOLYGON (((-76.3974 0....
## 6 Municipality <NA> <NA> MULTIPOLYGON (((-73.88365 -...
## 7 Municipality <NA> <NA> MULTIPOLYGON (((-76.8179 1....
## 8 Municipality <NA> Mocoa MULTIPOLYGON (((-76.4896 0....
## 9 Municipality <NA> <NA> MULTIPOLYGON (((-77.1147 1....
## 10 Municipality <NA> <NA> MULTIPOLYGON (((-77.015 1.2...
## area_m2 area
## 1 156698402 [m^2] 160 [m^2]
## 2 1804061274 [m^2] 1800 [m^2]
## 3 2372758489 [m^2] 2400 [m^2]
## 4 1561517025 [m^2] 1600 [m^2]
## 5 3937436133 [m^2] 3900 [m^2]
## 6 10087469721 [m^2] 10000 [m^2]
## 7 707603831 [m^2] 710 [m^2]
## 8 1066885268 [m^2] 1100 [m^2]
## 9 317940889 [m^2] 320 [m^2]
## 10 71060638 [m^2] 71 [m^2]
La función st_area() calcula el área de cada geometría
presente en la capa de municipios y genera un nuevo atributo denominado
area_m2, cuyos valores están expresados en metros
cuadrados.
Posteriormente, estos valores fueron convertidos a kilómetros
cuadrados dividiendo entre un millón, almacenando el resultado en la
variable area.
Finalmente, mediante la función signif() se redujo el
número de cifras significativas a dos, facilitando la lectura de los
resultados sin afectar de manera importante la precisión del
análisis.
Como resultado de este procedimiento se incorporaron dos nuevos atributos a la tabla de datos:
Estos atributos serán utilizados posteriormente para mostrar información adicional en los mapas interactivos y para realizar consultas espaciales durante el desarrollo del cuaderno.
Con el fin de facilitar la representación cartográfica de los municipios, se calcularon los centroides de cada polígono. Un centroide corresponde al punto central de una entidad espacial y suele utilizarse para ubicar etiquetas o realizar análisis espaciales basados en la posición de cada objeto geográfico.
Posteriormente, se extrajeron las coordenadas geográficas de cada
centroide para almacenarlas en dos nuevos atributos (x e
y), los cuales serán utilizados más adelante para
posicionar las etiquetas de los municipios sobre el mapa
interactivo.
(centers <- st_centroid(munic))
## Warning: st_centroid assumes attributes are constant over geometries
## Simple feature collection with 12 features and 13 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -77.03892 ymin: 0.06994226 xmax: -75.08537 ymax: 1.219335
## Geodetic CRS: WGS 84
## First 10 features:
## ID_0 ISO NAME_0 ID_1 NAME_1 ID_2 NAME_2 TYPE_2
## 1 53 COL Colombia 23 Putumayo 814 Colón Municipio
## 2 53 COL Colombia 23 Putumayo 815 Orito Municipio
## 3 53 COL Colombia 23 Putumayo 816 Puerto Asís Municipio
## 4 53 COL Colombia 23 Putumayo 817 Puerto Caicedo Municipio
## 5 53 COL Colombia 23 Putumayo 818 Puerto Guzmán Municipio
## 6 53 COL Colombia 23 Putumayo 819 Puerto Leguízamo Municipio
## 7 53 COL Colombia 23 Putumayo 820 San Francisco Municipio
## 8 53 COL Colombia 23 Putumayo 821 San Miguel de Mocoa Municipio
## 9 53 COL Colombia 23 Putumayo 822 Santiago Municipio
## 10 53 COL Colombia 23 Putumayo 823 Sibundoy Municipio
## ENGTYPE_2 NL_NAME_2 VARNAME_2 geom
## 1 Municipality <NA> <NA> POINT (-77.01243 1.160598)
## 2 Municipality <NA> <NA> POINT (-76.93474 0.6682139)
## 3 Municipality <NA> <NA> POINT (-76.34106 0.4624645)
## 4 Municipality <NA> <NA> POINT (-76.41351 0.6763722)
## 5 Municipality <NA> <NA> POINT (-75.9128 0.7465195)
## 6 Municipality <NA> <NA> POINT (-75.08537 0.06994226)
## 7 Municipality <NA> <NA> POINT (-76.83987 1.11155)
## 8 Municipality <NA> Mocoa POINT (-76.63419 1.158564)
## 9 Municipality <NA> <NA> POINT (-77.03892 1.053632)
## 10 Municipality <NA> <NA> POINT (-76.95613 1.219335)
## area_m2 area
## 1 156698402 [m^2] 160 [m^2]
## 2 1804061274 [m^2] 1800 [m^2]
## 3 2372758489 [m^2] 2400 [m^2]
## 4 1561517025 [m^2] 1600 [m^2]
## 5 3937436133 [m^2] 3900 [m^2]
## 6 10087469721 [m^2] 10000 [m^2]
## 7 707603831 [m^2] 710 [m^2]
## 8 1066885268 [m^2] 1100 [m^2]
## 9 317940889 [m^2] 320 [m^2]
## 10 71060638 [m^2] 71 [m^2]
centers$x = st_coordinates(centers)[,1]
centers$y = st_coordinates(centers)[,2]
centers
## Simple feature collection with 12 features and 15 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -77.03892 ymin: 0.06994226 xmax: -75.08537 ymax: 1.219335
## Geodetic CRS: WGS 84
## First 10 features:
## ID_0 ISO NAME_0 ID_1 NAME_1 ID_2 NAME_2 TYPE_2
## 1 53 COL Colombia 23 Putumayo 814 Colón Municipio
## 2 53 COL Colombia 23 Putumayo 815 Orito Municipio
## 3 53 COL Colombia 23 Putumayo 816 Puerto Asís Municipio
## 4 53 COL Colombia 23 Putumayo 817 Puerto Caicedo Municipio
## 5 53 COL Colombia 23 Putumayo 818 Puerto Guzmán Municipio
## 6 53 COL Colombia 23 Putumayo 819 Puerto Leguízamo Municipio
## 7 53 COL Colombia 23 Putumayo 820 San Francisco Municipio
## 8 53 COL Colombia 23 Putumayo 821 San Miguel de Mocoa Municipio
## 9 53 COL Colombia 23 Putumayo 822 Santiago Municipio
## 10 53 COL Colombia 23 Putumayo 823 Sibundoy Municipio
## ENGTYPE_2 NL_NAME_2 VARNAME_2 geom
## 1 Municipality <NA> <NA> POINT (-77.01243 1.160598)
## 2 Municipality <NA> <NA> POINT (-76.93474 0.6682139)
## 3 Municipality <NA> <NA> POINT (-76.34106 0.4624645)
## 4 Municipality <NA> <NA> POINT (-76.41351 0.6763722)
## 5 Municipality <NA> <NA> POINT (-75.9128 0.7465195)
## 6 Municipality <NA> <NA> POINT (-75.08537 0.06994226)
## 7 Municipality <NA> <NA> POINT (-76.83987 1.11155)
## 8 Municipality <NA> Mocoa POINT (-76.63419 1.158564)
## 9 Municipality <NA> <NA> POINT (-77.03892 1.053632)
## 10 Municipality <NA> <NA> POINT (-76.95613 1.219335)
## area_m2 area x y
## 1 156698402 [m^2] 160 [m^2] -77.01243 1.16059845
## 2 1804061274 [m^2] 1800 [m^2] -76.93474 0.66821385
## 3 2372758489 [m^2] 2400 [m^2] -76.34106 0.46246455
## 4 1561517025 [m^2] 1600 [m^2] -76.41351 0.67637221
## 5 3937436133 [m^2] 3900 [m^2] -75.91280 0.74651950
## 6 10087469721 [m^2] 10000 [m^2] -75.08537 0.06994226
## 7 707603831 [m^2] 710 [m^2] -76.83987 1.11155033
## 8 1066885268 [m^2] 1100 [m^2] -76.63419 1.15856394
## 9 317940889 [m^2] 320 [m^2] -77.03892 1.05363247
## 10 71060638 [m^2] 71 [m^2] -76.95613 1.21933451
La función st_centroid() calcula el centro geométrico de
cada municipio y genera una nueva capa espacial compuesta por puntos.
Posteriormente, mediante la función st_coordinates() se
extraen las coordenadas de dichos puntos, almacenándolas en las
variables x (longitud) y y (latitud).
Estas coordenadas permitirán ubicar correctamente el nombre de cada municipio durante la elaboración del mapa interactivo.
Como resultado de este procedimiento se obtuvo una nueva capa
espacial denominada centers, la cual conserva los atributos
originales de los municipios e incorpora dos nuevas variables
(x e y) que contienen las coordenadas
geográficas de cada centroide.
Esta información será utilizada posteriormente para agregar etiquetas con el nombre de cada municipio dentro del mapa interactivo.
Una vez preparada la información vectorial del departamento de Putumayo, el siguiente paso consistió en obtener un Modelo Digital de Elevación (DEM, Digital Elevation Model). Un DEM es una representación raster de la superficie terrestre, donde cada celda almacena un valor de elevación respecto al nivel medio del mar.
Para la descarga del DEM se utilizó el paquete
elevatr, el cual permite obtener datos de elevación a
partir de servicios web utilizando como referencia un objeto espacial.
En este caso, se empleó la capa de municipios del departamento de
Putumayo y un nivel de detalle (z = 10) adecuado para
realizar análisis regionales sin generar archivos excesivamente
grandes.
elevation <- get_elev_raster(munic, z = 10)
## Mosaicing & Projecting
## Note: Elevation units are in meters.
elevation
## class : RasterLayer
## dimensions : 3584, 5120, 18350080 (nrow, ncol, ncell)
## resolution : 0.0006866186, 0.0006866186 (x, y)
## extent : -77.34375, -73.82826, -0.7033042, 1.757537 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## source : file4c9469b654a.tif
## names : file4c9469b654a
La función get_elev_raster() descarga automáticamente un
Modelo Digital de Elevación que cubre el área definida por el objeto
munic. El argumento z = 10 indica el nivel de
resolución utilizado durante la descarga; valores mayores producen una
resolución espacial más alta, pero también incrementan considerablemente
el tamaño del archivo y el tiempo de procesamiento.
Al ejecutar la función se obtuvo un objeto de tipo RasterLayer, correspondiente al Modelo Digital de Elevación del departamento de Putumayo.
Una vez descargado el Modelo Digital de Elevación, se almacenó en formato GeoTIFF dentro del directorio de trabajo. Guardar el archivo localmente evita realizar nuevamente la descarga en futuras sesiones y facilita su reutilización en otros análisis espaciales.
dir.create("Putumayo")
## Warning in dir.create("Putumayo"): 'Putumayo' already exists
writeRaster( elevation, "Putumayo/elev_Putumayo_z10.tif", overwrite = TRUE )
La función writeRaster() guarda el objeto raster en el
disco duro utilizando el formato GeoTIFF. El argumento
overwrite = TRUE permite reemplazar el archivo existente en
caso de que ya haya sido generado previamente.
Aunque el paquete elevatr devuelve el Modelo Digital
de Elevación como un objeto de tipo RasterLayer, durante
esta práctica se empleó el paquete terra, cuyas
funciones trabajan principalmente con objetos de tipo
SpatRaster.
Por esta razón fue necesario convertir el raster descargado al formato utilizado por terra, manteniendo toda la información espacial original.
elevation2 <- terra::rast(elevation)
elevation2
## class : SpatRaster
## size : 3584, 5120, 1 (nrow, ncol, nlyr)
## resolution : 0.0006866186, 0.0006866186 (x, y)
## extent : -77.34375, -73.82826, -0.7033042, 1.757537 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +no_defs
## source : file4c9469b654a.tif
## name : file4c9469b654a
La función rast() convierte un objeto
RasterLayer en un objeto SpatRaster, que
corresponde al formato nativo del paquete terra. Esta
conversión permite utilizar herramientas más modernas y eficientes para
el procesamiento de información raster.
Una vez preparado el Modelo Digital de Elevación (DEM), se realizaron diferentes procedimientos para optimizar su visualización y representación cartográfica. Inicialmente se definió una escala de colores que permite diferenciar los distintos rangos de elevación. Posteriormente, se redujo la resolución espacial del raster para mejorar el rendimiento durante la visualización y se recortó la información utilizando los límites del departamento de Putumayo. Finalmente, se construyó un mapa interactivo que integra el relieve y la división político-administrativa de los municipios.
La representación visual de un Modelo Digital de Elevación requiere
asignar una escala de colores que permita diferenciar los cambios de
altitud del terreno. Para ello se utilizó la función
colorNumeric() del paquete leaflet, la
cual crea una paleta continua asociando un color a cada valor de
elevación presente en el raster.
pal <- colorNumeric( c("cyan", "forestgreen", "yellow", "tan", "orange", "brown"), values(elevation), na.color = "transparent" )
La función colorNumeric() construye una escala de
colores continua a partir de los valores de elevación del raster. Los
colores seleccionados representan de forma progresiva las diferentes
altitudes del terreno: los tonos fríos corresponden a las zonas más
bajas, mientras que los tonos cálidos representan las elevaciones más
altas. Además, los valores sin información (NA) se
configuraron como transparentes para evitar que aparezcan sobre el
mapa.
Los Modelos Digitales de Elevación suelen contener un gran número de celdas, lo que puede afectar el rendimiento durante la visualización de mapas interactivos. Con el propósito de disminuir el tamaño del raster y mejorar la velocidad de procesamiento, se redujo su resolución espacial utilizando funciones del paquete terra.
elevation3 <- terra::aggregate(elevation2, fact = 2)
## |---------|---------|---------|---------|=========================================
elevation3
## class : SpatRaster
## size : 1792, 2560, 1 (nrow, ncol, nlyr)
## resolution : 0.001373237, 0.001373237 (x, y)
## extent : -77.34375, -73.82826, -0.7033042, 1.757537 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +no_defs
## source(s) : memory
## name : file4c9469b654a
## min value : -146
## max value : 4170.75
La función aggregate() agrupa bloques de celdas
contiguas para generar un nuevo raster con menor resolución espacial. El
argumento fact = 2 indica que cada bloque de 2 × 2 píxeles
será representado por una única celda, reduciendo así el número total de
datos que deben procesarse.
Después de reducir la resolución espacial, el Modelo Digital de Elevación fue recortado utilizando los límites del departamento de Putumayo. Este procedimiento elimina la información ubicada fuera del área de estudio y permite trabajar únicamente con los datos correspondientes al departamento.
elevation4 <- terra::crop(
elevation3,
munic,
mask = TRUE
)
La función crop() recorta el raster utilizando como
referencia la capa de municipios (munic). El argumento
mask = TRUE enmascara automáticamente todas las celdas
ubicadas fuera de los límites del departamento, conservando únicamente
la información de elevación correspondiente al área de estudio.
Como etapa final del procesamiento, se integró la información vectorial de los municipios con el Modelo Digital de Elevación mediante el paquete leaflet. El mapa interactivo permite explorar el relieve del departamento y consultar información básica de cada municipio, como su nombre y área.
leaflet(munic) %>% addTiles() %>% setView(-76.5, 0.5, 8) %>% addPolygons(
color = "white",
weight = 1,
smoothFactor = 0.5,
opacity = 0.25,
fillOpacity = 0.15,
popup = paste("Municipio:", munic$NAME_2, "<br>", "Área (km²):", round(munic$area, 2))) %>%
addLabelOnlyMarkers(
data = centers,
lng = ~x,
lat = ~y,
label = ~NAME_2,
labelOptions = labelOptions(
noHide = TRUE,
direction = "top",
textOnly = TRUE)) %>%
addRasterImage(
elevation4,
colors = pal,
opacity = 0.9) %>%
addLegend(
pal = pal, values = values(elevation),
title = "Elevation data for Putumayo (m)")
El mapa se construyó utilizando una capa base de OpenStreetMap sobre la cual se añadieron los límites municipales, las etiquetas correspondientes a cada municipio, el Modelo Digital de Elevación y una leyenda con la escala de colores utilizada para representar las diferentes altitudes.
Durante la adaptación del código fue necesario reemplazar algunos
atributos utilizados en el ejemplo original, como
mpio_cnmbr, por los atributos presentes en la base de datos
de Putumayo (NAME_2), garantizando así la correcta
visualización de la información.
La elaboración del mapa interactivo permitió integrar la información administrativa de los municipios del departamento de Putumayo con el Modelo Digital de Elevación (DEM), facilitando la interpretación espacial del relieve y su relación con la organización territorial.
A continuación, se presentan los principales resultados obtenidos durante el procesamiento de los datos y una breve interpretación de la información representada en el mapa.
El Modelo Digital de Elevación representa la variación altitudinal del departamento de Putumayo mediante una escala continua de colores. Las tonalidades empleadas permiten identificar visualmente las diferencias de elevación presentes en el territorio, facilitando el reconocimiento de zonas bajas, intermedias y montañosas.
La representación cartográfica evidencia la diversidad del relieve del departamento, característica que influye directamente sobre variables ambientales como la temperatura, la precipitación, la cobertura vegetal y el comportamiento hidrológico.
La incorporación de los límites municipales y sus respectivas etiquetas permite identificar la ubicación espacial de cada municipio dentro del departamento. Además, las ventanas emergentes del mapa muestran información básica como el nombre del municipio y su área en kilómetros cuadrados, facilitando la consulta interactiva de los datos.
La integración entre información vectorial y raster permite relacionar las características topográficas con la distribución político-administrativa del territorio.
La información obtenida mediante el Modelo Digital de Elevación constituye una herramienta de gran utilidad para diferentes áreas de estudio. En el ámbito ambiental permite analizar la distribución del relieve y comprender procesos como el drenaje superficial, la erosión y la delimitación de cuencas hidrográficas.
En el sector agrícola, la elevación influye sobre variables como la temperatura, la humedad y las condiciones del suelo, factores que condicionan el establecimiento y desarrollo de diferentes cultivos.
Asimismo, este tipo de información resulta útil en procesos de planificación territorial, ordenamiento ambiental y evaluación de riesgos naturales, ya que proporciona una representación detallada de las características físicas del territorio.
El flujo de trabajo desarrollado permitió integrar diferentes herramientas del lenguaje de programación R para el manejo de información geográfica. El uso conjunto de los paquetes sf, terra, elevatr y leaflet facilitó la preparación de datos vectoriales, el procesamiento del Modelo Digital de Elevación y la elaboración de un mapa interactivo del departamento de Putumayo.
La utilización de formatos espaciales modernos, como los objetos
sf y SpatRaster, permitió optimizar el
procesamiento de la información y simplificar el desarrollo del
análisis. Asimismo, la reducción de la resolución del raster y el
recorte del área de estudio mejoraron el rendimiento del mapa sin
afectar significativamente la representación del relieve.
En conjunto, los procedimientos realizados constituyen un flujo de trabajo reproducible para el análisis y visualización de información geográfica mediante herramientas de código abierto.
Se preparó correctamente la información espacial correspondiente al departamento de Putumayo mediante herramientas del lenguaje de programación R.
Se calcularon atributos espaciales como el área de los municipios y la ubicación de sus centroides, información que posteriormente fue utilizada para enriquecer la representación cartográfica.
Se descargó y procesó un Modelo Digital de Elevación utilizando los paquetes elevatr y terra, realizando procedimientos de conversión, optimización y recorte del raster.
La integración de datos vectoriales y raster permitió construir un mapa interactivo que facilita la interpretación del relieve y la distribución de los municipios del departamento.
El desarrollo de esta práctica permitió fortalecer el manejo de herramientas de análisis espacial y comprender un flujo de trabajo reproducible para el procesamiento de información geográfica mediante software de código abierto.
Lizarazo, I., 2025. Elevation data processing and analysis in R. Available at https://rpubs.com/ials2un/otro_dem
sessionInfo()
## R version 4.6.0 (2026-04-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
##
## 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] leaflet_2.2.3 elevatr_0.99.1 raster_3.6-32 sp_2.2-1 terra_1.9-27
## [6] sf_1.1-1
##
## loaded via a namespace (and not attached):
## [1] s2_1.1.9 sass_0.4.10 class_7.3-23 KernSmooth_2.23-26
## [5] lattice_0.22-9 hms_1.1.4 digest_0.6.39 magrittr_2.0.5
## [9] RColorBrewer_1.1-3 evaluate_1.0.5 grid_4.6.0 fastmap_1.2.0
## [13] jsonlite_2.0.0 progress_1.2.3 e1071_1.7-17 DBI_1.3.0
## [17] httr_1.4.8 purrr_1.2.2 scales_1.4.0 crosstalk_1.2.2
## [21] slippymath_0.3.1 codetools_0.2-20 jquerylib_0.1.4 cli_3.6.6
## [25] rlang_1.2.0 crayon_1.5.3 units_1.0-1 cachem_1.1.0
## [29] yaml_2.3.12 otel_0.2.0 tools_4.6.0 curl_7.1.0
## [33] mime_0.13 png_0.1-9 vctrs_0.7.3 R6_2.6.1
## [37] proxy_0.4-29 lifecycle_1.0.5 classInt_0.4-11 htmlwidgets_1.6.4
## [41] pkgconfig_2.0.3 progressr_1.0.0 bslib_0.10.0 glue_1.8.1
## [45] Rcpp_1.1.1-1.1 xfun_0.57 rstudioapi_0.18.0 knitr_1.51
## [49] farver_2.1.2 htmltools_0.5.9 rmarkdown_2.31 wk_0.9.5
## [53] compiler_4.6.0 prettyunits_1.2.0