1.Introducción

El estudio de las características del terreno, como la pendiente y el aspecto, es fundamental en disciplinas como la geología, la geomorfología, y en este caso la agronomía. La pendiente indica el grado de inclinación de la superficie terrestre, mientras que el aspecto representa la dirección cardinal hacia la que está orientada dicha inclinación. En Colombia, y particularmente en el departamento de Santander, estos factores influyen en el uso del suelo, la conservación de ecosistemas y la planificación urbana y rural.

Para este análisis, se utilizaron herramientas de SIG en el lenguaje R, junto con paquetes especializados para el manejo de datos espaciales. Este documento presenta el proceso de cálculo y análisis de la pendiente y el aspecto a partir de un Modelo Digital de Elevaciones (DEM) en Santander, Colombia.

2.Configuración y carga de datos

2.1 Limpiar memoria

Es importante la eliminación de objetos previos en R para asegurar unn procesamiento limpio de los códigos.

rm(list=ls())

2.2 Cargar librerías

Las siguientes son las librerias necesarias:

-elevatr: Permitira obtener datos de elevación de distintas fuentes en línea y descargar modelos digitales de elevación de una zona específica.

-sf: Facilitara la lectura, manipulación y transformación de datos geográficos en formatos como (.gpkg), tambien para leer los límites municipales desde dpto_santander.gpkg.

-leaflet: Permitira mostrar mapas con los valores de pendiente en porcentaje y agregar datos espaciales en capas, definir estilos, colores y etiquetas.

-MultiscaleDTM: Permitira análizar modelos digitales de terreno, calcular atributos como lo son pendiente y aspecto.

-exactextractr: Extrae estadísticas de valores raster dentro de áreas vectoriales con alta precisión. Se usa para calcular la pendiente media dentro de los límites de cada municipio de Santander.

library(elevatr)
library(sf)
library(leaflet)
library(terra)
library(MultiscaleDTM)
library(exactextractr)

2.3 Leer el DEM

Se carga el DEM, que representa la altitud del terreno en una matriz de celdas del departamento de Santander.

(dem = terra::rast("datos/elevacion_santander.tif"))
## class       : SpatRaster 
## dimensions  : 292, 245, 1  (nrow, ncol, nlyr)
## resolution  : 0.008333333, 0.008333333  (x, y)
## extent      : -74.525, -72.48333, 5.708333, 8.141667  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 
## source      : elevacion_santander.tif 
## name        : elevacion_santander 
## min value   :                  37 
## max value   :                4322

2.4 Cargar datos de entrada

Usando la libreria “sf”, se cargarn los archivos vectoriales que representan los municipios.

(munic <-  sf::st_read("datos/dpto_santander.gpkg"))
## Reading layer `dpto_santandercorr' from data source 
##   `C:\Users\lausi\OneDrive\Documents\2024-2\GEOMATICA\GB02\Proyecto R\datos\dpto_santander.gpkg' 
##   using driver `GPKG'
## Simple feature collection with 87 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -74.52895 ymin: 5.707536 xmax: -72.47706 ymax: 8.14501
## Geodetic CRS:  MAGNA-SIRGAS

3. Procesamiento de datos geoespaciales

3.1 Reducir la resolución del DEM

Para optimizar el procesamiento de los datos.

dem2=terra::aggregate(dem,2, "mean")

3.2 Recortar el DEM

Se recorta dem2, para extraer solo la región de interes.

dem3 = terra::crop(dem2,munic, mask=TRUE)

3.3 Reproyectar coordenadas

Reproyectar las coordenadas al Sistema Colombiano de Coordenadas (EPSG:9377)

(dem_plane=project(dem3,"EPSG:9377"))
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 1841.27, 1841.27  (x, y)
## extent      : 4831189, 5057666, 2189140, 2457965  (xmin, xmax, ymin, ymax)
## coord. ref. : MAGNA-SIRGAS 2018 / Origen-Nacional (EPSG:9377) 
## source(s)   : memory
## name        : elevacion_santander 
## min value   :            38.70399 
## max value   :          4172.91113

3.4 Transformación del objeto vector

(munic_plane = sf::st_transform(munic, "EPSG:9377"))

4. Calcular atributos de terreno

4.1 Pendiente

La pendiente mide la inclinación del terreno en grados o porcentaje. En Colombia, la variabilidad topográfica es extrema, con zonas de alta pendiente en la Cordillera Oriental y terrenos planos en la Orinoquía. La pendiente influye en la erosión del suelo, la distribución del agua y la estabilidad de las construcciones.

4.2 Aspecto

El aspecto indica la dirección hacia la que está orientada la pendiente. En Colombia, esto es relevante en la gestión de ecosistemas, ya que influye en la insolación, la humedad del suelo y la vegetación dominante.

4.3 Función SlpAsp

Se calcula la pendiente y aspecto.

(slp_asp = MultiscaleDTM::SlpAsp(
  dem_plane,
  w = c(3, 3),
  unit = "degrees",
  method = "queen",
  metrics = c("slope", "aspect"),
  na.rm = TRUE,
  include_scale = FALSE,
  mask_aspect = TRUE
))
## class       : SpatRaster 
## dimensions  : 146, 123, 2  (nrow, ncol, nlyr)
## resolution  : 1841.27, 1841.27  (x, y)
## extent      : 4831189, 5057666, 2189140, 2457965  (xmin, xmax, ymin, ymax)
## coord. ref. : MAGNA-SIRGAS 2018 / Origen-Nacional (EPSG:9377) 
## source(s)   : memory
## names       :        slope,       aspect 
## min values  :  0.002031721,   0.09411775 
## max values  : 18.348005492, 359.98103122

5. Partir el objeto slp_asp en dos capas

5.1 Capa 1: Pendiente.

Se extrae y visualiza la capa de pendiente del objeto slp_asp

(slope = subset(slp_asp, 1))
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 1841.27, 1841.27  (x, y)
## extent      : 4831189, 5057666, 2189140, 2457965  (xmin, xmax, ymin, ymax)
## coord. ref. : MAGNA-SIRGAS 2018 / Origen-Nacional (EPSG:9377) 
## source(s)   : memory
## name        :        slope 
## min value   :  0.002031721 
## max value   : 18.348005492

Visualizar los valores de pendiente.

terra::hist(slope, 
     main = "Pendiente de Santander", 
     xlab = "Slope (in degrees)")

5.2 Capa 2: Aspecto.

Se extrae y visualiza la capa de aspecto del objeto slp_asp.

(aspect =subset(slp_asp, 2))
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 1841.27, 1841.27  (x, y)
## extent      : 4831189, 5057666, 2189140, 2457965  (xmin, xmax, ymin, ymax)
## coord. ref. : MAGNA-SIRGAS 2018 / Origen-Nacional (EPSG:9377) 
## source(s)   : memory
## name        :       aspect 
## min value   :   0.09411775 
## max value   : 359.98103122

Visualizar los datos de aspecto

terra::hist(aspect, 
     main = "Aspecto de Santander", 
     xlab = "Aspect (in degrees)")

5.3 Convertir grados de pendiente a porcentaje

(slope_perc = tan(slope*(pi/180))*100)
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 1841.27, 1841.27  (x, y)
## extent      : 4831189, 5057666, 2189140, 2457965  (xmin, xmax, ymin, ymax)
## coord. ref. : MAGNA-SIRGAS 2018 / Origen-Nacional (EPSG:9377) 
## source(s)   : memory
## name        :        slope 
## min value   :  0.003546021 
## max value   : 33.164813179

Visualizar nuevamente pendiente en porcentaje

terra::hist(slope_perc, 
     main = "Pendiente de Santander", 
     xlab = "Slope (in percentage)")

6. Estadísticas zonales

6.1 Pendiente en Colombia.

knitr::include_graphics("pediente_colombia.png")

6.2 Reclasificar raster de pendiente.

Se reclasifica en categorias basadas en la clasificación y escala de colores.

m <- c(0, 3, 1,  
       3, 7, 2,  
       7, 12,  3, 
       12, 25, 4, 
       25, 50, 5, 
       50, 75, 6,
       75, 160, 7)
m <- matrix(m, ncol=3, byrow = TRUE)
rc <- classify(slope_perc, m, right=TRUE)

6.3 Calcular zona estadistica usando “exactextractr”

Se calcula la pendiente media para cada municipio y se visualiza.

(munic$mean_slope <- exactextractr::exact_extract(slope_perc, munic, 'mean'))
##   |                                                                              |                                                                      |   0%  |                                                                              |=                                                                     |   1%  |                                                                              |==                                                                    |   2%  |                                                                              |==                                                                    |   3%  |                                                                              |===                                                                   |   5%  |                                                                              |====                                                                  |   6%  |                                                                              |=====                                                                 |   7%  |                                                                              |======                                                                |   8%  |                                                                              |======                                                                |   9%  |                                                                              |=======                                                               |  10%  |                                                                              |========                                                              |  11%  |                                                                              |=========                                                             |  13%  |                                                                              |==========                                                            |  14%  |                                                                              |==========                                                            |  15%  |                                                                              |===========                                                           |  16%  |                                                                              |============                                                          |  17%  |                                                                              |=============                                                         |  18%  |                                                                              |==============                                                        |  20%  |                                                                              |==============                                                        |  21%  |                                                                              |===============                                                       |  22%  |                                                                              |================                                                      |  23%  |                                                                              |=================                                                     |  24%  |                                                                              |==================                                                    |  25%  |                                                                              |===================                                                   |  26%  |                                                                              |===================                                                   |  28%  |                                                                              |====================                                                  |  29%  |                                                                              |=====================                                                 |  30%  |                                                                              |======================                                                |  31%  |                                                                              |=======================                                               |  32%  |                                                                              |=======================                                               |  33%  |                                                                              |========================                                              |  34%  |                                                                              |=========================                                             |  36%  |                                                                              |==========================                                            |  37%  |                                                                              |===========================                                           |  38%  |                                                                              |===========================                                           |  39%  |                                                                              |============================                                          |  40%  |                                                                              |=============================                                         |  41%  |                                                                              |==============================                                        |  43%  |                                                                              |===============================                                       |  44%  |                                                                              |===============================                                       |  45%  |                                                                              |================================                                      |  46%  |                                                                              |=================================                                     |  47%  |                                                                              |==================================                                    |  48%  |                                                                              |===================================                                   |  49%  |                                                                              |===================================                                   |  51%  |                                                                              |====================================                                  |  52%  |                                                                              |=====================================                                 |  53%  |                                                                              |======================================                                |  54%  |                                                                              |=======================================                               |  55%  |                                                                              |=======================================                               |  56%  |                                                                              |========================================                              |  57%  |                                                                              |=========================================                             |  59%  |                                                                              |==========================================                            |  60%  |                                                                              |===========================================                           |  61%  |                                                                              |===========================================                           |  62%  |                                                                              |============================================                          |  63%  |                                                                              |=============================================                         |  64%  |                                                                              |==============================================                        |  66%  |                                                                              |===============================================                       |  67%  |                                                                              |===============================================                       |  68%  |                                                                              |================================================                      |  69%  |                                                                              |=================================================                     |  70%  |                                                                              |==================================================                    |  71%  |                                                                              |===================================================                   |  72%  |                                                                              |===================================================                   |  74%  |                                                                              |====================================================                  |  75%  |                                                                              |=====================================================                 |  76%  |                                                                              |======================================================                |  77%  |                                                                              |=======================================================               |  78%  |                                                                              |========================================================              |  79%  |                                                                              |========================================================              |  80%  |                                                                              |=========================================================             |  82%  |                                                                              |==========================================================            |  83%  |                                                                              |===========================================================           |  84%  |                                                                              |============================================================          |  85%  |                                                                              |============================================================          |  86%  |                                                                              |=============================================================         |  87%  |                                                                              |==============================================================        |  89%  |                                                                              |===============================================================       |  90%  |                                                                              |================================================================      |  91%  |                                                                              |================================================================      |  92%  |                                                                              |=================================================================     |  93%  |                                                                              |==================================================================    |  94%  |                                                                              |===================================================================   |  95%  |                                                                              |====================================================================  |  97%  |                                                                              |====================================================================  |  98%  |                                                                              |===================================================================== |  99%  |                                                                              |======================================================================| 100%
##  [1]  8.5961952 10.2262630 11.5775385 11.1763353  5.1169653  8.9878035
##  [7]  0.4011796  9.5779610  5.2203121  8.7554998 15.5300531 16.1785126
## [13] 13.2195787 16.3794708  9.8711424  7.6783285 12.9632902 12.1816616
## [19] 10.0960360  0.9872550 11.8313122  4.7065201 12.3607206 11.7571850
## [25]  6.8785210  8.3520813 10.6374464 11.4932461  9.0089846 12.1109695
## [31] 14.7372274 11.7109289 12.7455320 15.7045774  6.8999715  7.6205020
## [37] 11.5254173  5.8316870  7.5713325  2.9738533  3.6705849 12.9072342
## [43]  6.3842149 15.1315145 11.1639690  7.6971846  7.9108424  5.7200704
## [49]  9.8601027 13.1644440 15.7395544 11.2217131  7.5197940 16.0861111
## [55]  6.0728612  4.1395965 11.7794142  9.6467056  7.7013807  7.3309479
## [61] 11.4358091  8.3190975  6.9305234  0.5666540  0.2218978  4.2022219
## [67]  0.4335837 15.9248524  4.6469350  6.3672614 10.0372496 18.1386452
## [73] 14.4555302  6.0370531 14.5291405 11.4257183  5.2277617  8.2664986
## [79]  5.3082895 10.3270292 13.4274807 10.8076439  5.9068298  7.1984749
## [85] 14.9902325  5.6518388 11.8875523

6.4 Visualizar la media de la pendiente

hist(munic$mean_slope, 
     main = "Pendiente media de Santander", 
     xlab = "Slope (in percentage)")

6.5 Reclacificar pendiente

Se reclasifica la pendiente en categorías.

(munic$class <- exactextractr::exact_extract(rc, munic, 'mode'))
##   |                                                                              |                                                                      |   0%  |                                                                              |=                                                                     |   1%  |                                                                              |==                                                                    |   2%  |                                                                              |==                                                                    |   3%  |                                                                              |===                                                                   |   5%  |                                                                              |====                                                                  |   6%  |                                                                              |=====                                                                 |   7%  |                                                                              |======                                                                |   8%  |                                                                              |======                                                                |   9%  |                                                                              |=======                                                               |  10%  |                                                                              |========                                                              |  11%  |                                                                              |=========                                                             |  13%  |                                                                              |==========                                                            |  14%  |                                                                              |==========                                                            |  15%  |                                                                              |===========                                                           |  16%  |                                                                              |============                                                          |  17%  |                                                                              |=============                                                         |  18%  |                                                                              |==============                                                        |  20%  |                                                                              |==============                                                        |  21%  |                                                                              |===============                                                       |  22%  |                                                                              |================                                                      |  23%  |                                                                              |=================                                                     |  24%  |                                                                              |==================                                                    |  25%  |                                                                              |===================                                                   |  26%  |                                                                              |===================                                                   |  28%  |                                                                              |====================                                                  |  29%  |                                                                              |=====================                                                 |  30%  |                                                                              |======================                                                |  31%  |                                                                              |=======================                                               |  32%  |                                                                              |=======================                                               |  33%  |                                                                              |========================                                              |  34%  |                                                                              |=========================                                             |  36%  |                                                                              |==========================                                            |  37%  |                                                                              |===========================                                           |  38%  |                                                                              |===========================                                           |  39%  |                                                                              |============================                                          |  40%  |                                                                              |=============================                                         |  41%  |                                                                              |==============================                                        |  43%  |                                                                              |===============================                                       |  44%  |                                                                              |===============================                                       |  45%  |                                                                              |================================                                      |  46%  |                                                                              |=================================                                     |  47%  |                                                                              |==================================                                    |  48%  |                                                                              |===================================                                   |  49%  |                                                                              |===================================                                   |  51%  |                                                                              |====================================                                  |  52%  |                                                                              |=====================================                                 |  53%  |                                                                              |======================================                                |  54%  |                                                                              |=======================================                               |  55%  |                                                                              |=======================================                               |  56%  |                                                                              |========================================                              |  57%  |                                                                              |=========================================                             |  59%  |                                                                              |==========================================                            |  60%  |                                                                              |===========================================                           |  61%  |                                                                              |===========================================                           |  62%  |                                                                              |============================================                          |  63%  |                                                                              |=============================================                         |  64%  |                                                                              |==============================================                        |  66%  |                                                                              |===============================================                       |  67%  |                                                                              |===============================================                       |  68%  |                                                                              |================================================                      |  69%  |                                                                              |=================================================                     |  70%  |                                                                              |==================================================                    |  71%  |                                                                              |===================================================                   |  72%  |                                                                              |===================================================                   |  74%  |                                                                              |====================================================                  |  75%  |                                                                              |=====================================================                 |  76%  |                                                                              |======================================================                |  77%  |                                                                              |=======================================================               |  78%  |                                                                              |========================================================              |  79%  |                                                                              |========================================================              |  80%  |                                                                              |=========================================================             |  82%  |                                                                              |==========================================================            |  83%  |                                                                              |===========================================================           |  84%  |                                                                              |============================================================          |  85%  |                                                                              |============================================================          |  86%  |                                                                              |=============================================================         |  87%  |                                                                              |==============================================================        |  89%  |                                                                              |===============================================================       |  90%  |                                                                              |================================================================      |  91%  |                                                                              |================================================================      |  92%  |                                                                              |=================================================================     |  93%  |                                                                              |==================================================================    |  94%  |                                                                              |===================================================================   |  95%  |                                                                              |====================================================================  |  97%  |                                                                              |====================================================================  |  98%  |                                                                              |===================================================================== |  99%  |                                                                              |======================================================================| 100%
##  [1] 3 4 4 4 2 3 1 4 1 4 4 4 4 4 3 3 4 4 3 1 4 2 4 4 2 1 4 2 3 4 4 3 4 4 2 3 3 2
## [39] 3 1 2 4 2 4 4 3 2 2 3 4 4 4 2 4 2 2 4 3 3 3 4 2 3 1 1 1 1 4 2 2 4 4 4 1 4 4
## [77] 1 3 2 2 4 4 3 2 4 1 4

Visualizar reclasificacion de pendiente

hist(munic$class, 
     main = "Pendiente reclacificada de Santander", 
     xlab = "Slope (as a category)")

6.6 Reproyectar la pendiente a las anteriores coordenadas

Se reproyecta la raster reclasificada a las coordenadas originales para compatibilidad con otros datos.

(rc.geo = project(rc, "EPSG:4326"))
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 0.01666669, 0.01666669  (x, y)
## extent      : -74.53284, -72.48283, 5.711195, 8.144531  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326) 
## source(s)   : memory
## name        : slope 
## min value   :     1 
## max value   :     5

Reproyectar porcentaje de pendiente

(slope.geo = project(slope_perc, "EPSG:4326"))
## class       : SpatRaster 
## dimensions  : 146, 123, 1  (nrow, ncol, nlyr)
## resolution  : 0.01666669, 0.01666669  (x, y)
## extent      : -74.53284, -72.48283, 5.711195, 8.144531  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326) 
## source(s)   : memory
## name        :        slope 
## min value   :  0.003546021 
## max value   : 31.476469040

7 Visualización pendiente.

7.1 Configurar paleta de colores

Usando la paleta “colorNumeric” para la pendiente

palredgreen <- colorNumeric(c("darkolivegreen4","cyan3", "darkgoldenrod1", "darkred", "chocolate4"), values(slope.geo),
  na.color = "transparent")

7.2. Visualizar mapa de pendiente.

Visualizar la pendiente (%), ajustando los valores para Santander

leaflet(munic) %>% addTiles() %>% setView(-72.8, 6.9, 8.3) %>% 
    addPolygons(color = "gray", weight = 1.0, smoothFactor = 0.5,
    opacity = 0.4, fillOpacity = 0.10,
    popup = paste("Municipio: ", munic$mpio_cnmbr, "<br>",
                          "Slope class: ", munic$class, "<br>")) %>%
  addRasterImage(slope.geo, colors = palredgreen, opacity = 0.8)  %>%
  addLegend(pal = palredgreen, values = values(slope.geo),
    title = "Pendiente en Santander (%)")
## Warning: sf layer has inconsistent datum (+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs).
## Need '+proj=longlat +datum=WGS84'

8. Visualización alterna de la pendiente en grados.

8.1 Convertir la pendiente a grados

slope_deg <- atan(slope*(pi/180)) * (180/pi)

8.2 Calcular la media de la pendiente por municipio

munic$mean_slope_deg <- exactextractr::exact_extract(slope_deg, munic, 'mean')
## Warning in .local(x, y, ...): Polygons transformed to raster CRS (EPSG:9377)
##   |                                                                              |                                                                      |   0%  |                                                                              |=                                                                     |   1%  |                                                                              |==                                                                    |   2%  |                                                                              |==                                                                    |   3%  |                                                                              |===                                                                   |   5%  |                                                                              |====                                                                  |   6%  |                                                                              |=====                                                                 |   7%  |                                                                              |======                                                                |   8%  |                                                                              |======                                                                |   9%  |                                                                              |=======                                                               |  10%  |                                                                              |========                                                              |  11%  |                                                                              |=========                                                             |  13%  |                                                                              |==========                                                            |  14%  |                                                                              |==========                                                            |  15%  |                                                                              |===========                                                           |  16%  |                                                                              |============                                                          |  17%  |                                                                              |=============                                                         |  18%  |                                                                              |==============                                                        |  20%  |                                                                              |==============                                                        |  21%  |                                                                              |===============                                                       |  22%  |                                                                              |================                                                      |  23%  |                                                                              |=================                                                     |  24%  |                                                                              |==================                                                    |  25%  |                                                                              |===================                                                   |  26%  |                                                                              |===================                                                   |  28%  |                                                                              |====================                                                  |  29%  |                                                                              |=====================                                                 |  30%  |                                                                              |======================                                                |  31%  |                                                                              |=======================                                               |  32%  |                                                                              |=======================                                               |  33%  |                                                                              |========================                                              |  34%  |                                                                              |=========================                                             |  36%  |                                                                              |==========================                                            |  37%  |                                                                              |===========================                                           |  38%  |                                                                              |===========================                                           |  39%  |                                                                              |============================                                          |  40%  |                                                                              |=============================                                         |  41%  |                                                                              |==============================                                        |  43%  |                                                                              |===============================                                       |  44%  |                                                                              |===============================                                       |  45%  |                                                                              |================================                                      |  46%  |                                                                              |=================================                                     |  47%  |                                                                              |==================================                                    |  48%  |                                                                              |===================================                                   |  49%  |                                                                              |===================================                                   |  51%  |                                                                              |====================================                                  |  52%  |                                                                              |=====================================                                 |  53%  |                                                                              |======================================                                |  54%  |                                                                              |=======================================                               |  55%  |                                                                              |=======================================                               |  56%  |                                                                              |========================================                              |  57%  |                                                                              |=========================================                             |  59%  |                                                                              |==========================================                            |  60%  |                                                                              |===========================================                           |  61%  |                                                                              |===========================================                           |  62%  |                                                                              |============================================                          |  63%  |                                                                              |=============================================                         |  64%  |                                                                              |==============================================                        |  66%  |                                                                              |===============================================                       |  67%  |                                                                              |===============================================                       |  68%  |                                                                              |================================================                      |  69%  |                                                                              |=================================================                     |  70%  |                                                                              |==================================================                    |  71%  |                                                                              |===================================================                   |  72%  |                                                                              |===================================================                   |  74%  |                                                                              |====================================================                  |  75%  |                                                                              |=====================================================                 |  76%  |                                                                              |======================================================                |  77%  |                                                                              |=======================================================               |  78%  |                                                                              |========================================================              |  79%  |                                                                              |========================================================              |  80%  |                                                                              |=========================================================             |  82%  |                                                                              |==========================================================            |  83%  |                                                                              |===========================================================           |  84%  |                                                                              |============================================================          |  85%  |                                                                              |============================================================          |  86%  |                                                                              |=============================================================         |  87%  |                                                                              |==============================================================        |  89%  |                                                                              |===============================================================       |  90%  |                                                                              |================================================================      |  91%  |                                                                              |================================================================      |  92%  |                                                                              |=================================================================     |  93%  |                                                                              |==================================================================    |  94%  |                                                                              |===================================================================   |  95%  |                                                                              |====================================================================  |  97%  |                                                                              |====================================================================  |  98%  |                                                                              |===================================================================== |  99%  |                                                                              |======================================================================| 100%

8.3 Definir paleta de colores

Usando “colorNumeric”

palSlopeDegrees  <- colorNumeric(palette = c("darkolivegreen4", "cyan3", "darkgoldenrod1", "darkred", "chocolate4"),domain = range (values(slope.geo), na.rm = TRUE), na.color = "transparent")

8.4 Verificar las longitudes y latitudes de los municipios

Se calculan las coordenadas de los centroides de cada municipio y se añaden al dataset.

munic <- st_as_sf(munic)

centroides <- st_centroid(munic)
munic$longitude <- st_coordinates(centroides)[, 1]  
munic$latitude <- st_coordinates(centroides)[, 2]
head(munic[, c("mpio_cnmbr", "longitude", "latitude")])

8.5 Crear mapa

leaflet(munic) %>% 
  addTiles() %>% 
  setView(-72.8, 6.9, 8.3) %>%  
  addPolygons(color = "gray", weight = 1.0, smoothFactor = 0.5,
    opacity = 0.4, fillOpacity = 0.10,
    popup = paste("Municipio: ", munic$mpio_cnmbr, "<br>",
                  "clase de Pendiente: ", munic$class, "<br>",
                  "pendiente promedio: ", round(munic$mean_slope_deg, 1), "°", "<br>")) %>%
  addRasterImage(slope.geo, colors = palredgreen, opacity = 0.8) %>%
  addLegend(pal = palredgreen, values = values(slope.geo),
    title = "Pendiente en Santander (%)") %>%
  addLabelOnlyMarkers(
    lng = munic$longitude,  
    lat = munic$latitude,   #
    label = paste(munic$mpio_cnmbr, ": ", round(munic$mean_slope_deg, 1), "°", sep = ""),
    labelOptions = labelOptions (noHide = TRUE, direction = "auto", textOnly = TRUE, style = list( "font-size" = "7px", "font-weight" = "bold", "color" = "black", "text-shadow" = "0.5px 0.5px white")))

9. Visualización de aspecto

9.1 Crear paleta de colores

Usando colorNumeric

pal_aspect <- colorNumeric(
  palette = c("gray", "red", "orange", "yellow", "green", "cyan", "blue", "purple", "brown"),
  domain = values(aspect), 
  na.color = "transparent"
)

aspect_values <- c(-1, 0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5)

9.2 Visualizar el aspecto

Finalmente, obtenemos el mapa de aspecto de Santander

leaflet(munic) %>%
  addTiles() %>%
  setView(-72.8, 6.9, 8.3) %>%  
  addPolygons(color = "gray", weight = 1.0, smoothFactor = 0.5,
              opacity = 0.4, fillOpacity = 0.10,
              popup = paste("Municipio: ", munic$mpio_cnmbr, "<br>",
                            "Clase de Pendiente: ", munic$class, "<br>")) %>%
  addRasterImage(aspect, colors = pal_aspect, opacity = 0.8) %>%
  addLegend(pal = pal_aspect, values = values(aspect),
            title = "Aspecto Santander (Grados)", opacity = 0.7) %>%
  addControl(
    html = "<div style='background-color: white; padding: 10px; border-radius: 5px; border: 2px solid black; opacity: 0.8; font-size: 14px;'>
              <b>Direction Legend</b><br>
              <span style='color: red;'>North (0-22.5)</span><br>
              <span style='color: orange;'>Northeast (22.5-67.5)</span><br>
              <span style='color: yellow;'>East (67.5-112.5)</span><br>
              <span style='color: green;'>Southeast (112.5-157.5)</span><br>
              <span style='color: cyan;'>South (157.5-202.5)</span><br>
              <span style='color: blue;'>Southwest (202.5-247.5)</span><br>
              <span style='color: purple;'>West (247.5-292.5)</span><br>
              <span style='color: brown;'>North (337.5-360)</span><br>
            </div>",
    position = "bottomright",
    className = "leaflet-control-legend"
  )

10. Conclusión

En Santander, predominan las pendientes suaves en valles y zonas planas, facilitando la agricultura y la construcción. Sin embargo, en áreas montañosas, las pendientes son más pronunciadas, lo que requiere técnicas especiales de manejo del suelo. La pendiente puede expresarse en grados o porcentaje, siendo útil en diferentes contextos. En general, las pendientes más altas alcanzan valores cercanos al 18° o 33% en porcentaje.

A nivel municipal, Bucaramanga presenta pendientes moderadas (5-10%), con un aspecto predominante hacia el noreste. Barrancabermeja, con pendientes bajas (1-5%). Floridablanca, con pendientes entre 7-15%, mientras que Socorro, con inclinaciones entre 10-20%. Estos factores influyen en la planificación territorial, afectando la agricultura, la urbanización y la gestión de riesgos como deslizamientos de tierra.

En el aspecto del terrreno podemos ver patrones distintivos en los diferentes municipios. En Cúcuta, por ejemplo, predomina la orientación hacia el noreste y este, influyendo en la exposición solar y el microclima local, beneficioso para la agricultura. Pamplona presenta una variedad de aspectos, con áreas orientadas hacia el norte, noroeste y suroeste, con un terreno montañoso que presenta desafíos y oportunidades para la agricultura y la construcción. En Bucaramanga, la orientación hacia el noreste y sureste afecta la distribución de vegetación y el desarrollo urbano.

10. Bibliografía

Lizarazo, I., 2025. Geomorphometric terrain attributes in R. Disponible en https://rpubs.com/ials2un/geomorphometric

sessionInfo()
## R version 4.4.2 (2024-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 22631)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: America/Bogota
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] exactextractr_0.10.0 MultiscaleDTM_0.9    terra_1.8-10        
## [4] leaflet_2.2.2        sf_1.0-19            elevatr_0.99.0      
## 
## loaded via a namespace (and not attached):
##  [1] s2_1.1.7           sass_0.4.9         generics_0.1.3     class_7.3-22      
##  [5] KernSmooth_2.23-24 lattice_0.22-6     digest_0.6.37      magrittr_2.0.3    
##  [9] rgl_1.3.17         evaluate_1.0.1     grid_4.4.2         fastmap_1.2.0     
## [13] jsonlite_1.8.9     e1071_1.7-16       DBI_1.2.3          promises_1.3.2    
## [17] purrr_1.0.2        scales_1.3.0       crosstalk_1.2.1    codetools_0.2-20  
## [21] jquerylib_0.1.4    cli_3.6.3          shiny_1.10.0       rlang_1.1.4       
## [25] units_0.8-5        munsell_0.5.1      base64enc_0.1-3    cachem_1.1.0      
## [29] yaml_2.3.10        raster_3.6-31      tools_4.4.2        dplyr_1.1.4       
## [33] colorspace_2.1-1   httpuv_1.6.15      png_0.1-8          vctrs_0.6.5       
## [37] R6_2.5.1           mime_0.12          proxy_0.4-27       lifecycle_1.0.4   
## [41] classInt_0.4-11    htmlwidgets_1.6.4  pkgconfig_2.0.3    progressr_0.15.1  
## [45] bslib_0.8.0        pillar_1.10.0      later_1.4.1        glue_1.8.0        
## [49] Rcpp_1.0.14        tidyselect_1.2.1   xfun_0.49          tibble_3.2.1      
## [53] rstudioapi_0.17.1  knitr_1.49         farver_2.1.2       xtable_1.8-4      
## [57] htmltools_0.5.8.1  rmarkdown_2.29     wk_0.9.4           compiler_4.4.2    
## [61] sp_2.1-4