1 Introducción

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.

2 Preparación del espacio de trabajo

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.

3 2. Preparación de los datos espaciales

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.

3.1 2.1 Lectura de la información espacial

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.

3.2 2.2 Exploración de los atributos

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.

3.3 2.3 Cálculo del área de los municipios

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:

  • area_m2: área de cada municipio expresada en metros cuadrados.
  • area: área expresada en kilómetros cuadrados, redondeada a dos cifras significativas.

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.

3.4 2.4 Obtención de los centroides de los municipios

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.

3.5 2.5 Obtención del Modelo Digital de Elevación (DEM)

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.

3.6 2.6 Almacenamiento del DEM

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.

3.7 2.7 Conversión del DEM a un objeto SpatRaster

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.

4 3. Visualización del Modelo Digital de Elevación

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.

4.1 3.1 Creación de la paleta de colores

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.

4.2 3.2 Reducción de la resolución espacial

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.

4.3 3.3 Recorte del Modelo Digital de Elevación

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.

4.4 3.4 Elaboración del mapa interactivo

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.

5 4. Resultados y análisis

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.

5.1 4.1 Análisis del Modelo Digital de Elevación

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.

5.2 4.2 Distribución de los municipios

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.

5.3 4.3 Aplicaciones del análisis espacial

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.

5.4 4.4 Discusión

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.

6 5. Conclusiones

  • 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.

7 6. Bibliografia.

Lizarazo, I., 2025. Elevation data processing and analysis in R. Available at https://rpubs.com/ials2un/otro_dem

7.1 8. Entorno de trabajo

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