1:Introduccion. A través de herramientas de visualización y manipulación espacial, se procesan datos geográficos para explorar la distribución municipal, calcular áreasy asi obtener información altimétrica (elevación del terreno) y representar todo esto en un mapa interactivo. Se emplean paquetes como sf, terra, leaflet y elevatr para cargar, transformar y visualizar la información de manera clara y accesible al final permite comprender mejor las características físicas y administrativas del territorio guaviarense, facilitando su análisis para fines académicos, ambientales o de planificación territorial.
2. Se cargar los paquetes necesarios elevatr: Este permite descargar modelos de elevación digital (alturas del terreno).
sf: Se usa par trabaja con datos espaciales vectoriales (como mapas de municipios o países).
leaflet: Crea mapas interactivos que puedes mover y explorar como en Google Maps.
terra: este maneja datos raster, que son como imágenes de mapas donde cada píxel tiene un valor (como la altura).
library(elevatr)
## Warning: package 'elevatr' was built under R version 4.4.3
## elevatr v0.99.0 NOTE: Version 0.99.0 of 'elevatr' uses 'sf' and 'terra'. Use
## of the 'sp', 'raster', and underlying 'rgdal' packages by 'elevatr' is being
## deprecated; however, get_elev_raster continues to return a RasterLayer. This
## will be dropped in future versions, so please plan accordingly.
library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.4.3
library(terra)
## Warning: package 'terra' was built under R version 4.4.3
## terra 1.8.54
3. Ver qué archivos hay en la carpeta de trabajo Esto muestra una lista de archivos dentro de la carpeta donde se gaurdo los datos. Es importante verificar que los archivos que necesitas estén ahí antes de usarlos.
list.files("C:/Users/yorhl/Downloads/DATOS")
## [1] "aguas de guaviare.gpkg"
## [2] "Base agrícola 2023.csv"
## [3] "cities.gpkg"
## [4] "citis.gpkg"
## [5] "COL_AGUA"
## [6] "COL_ELEVACION"
## [7] "COL_msk_alt_tif"
## [8] "COL_rVIAS"
## [9] "colores poblacion.gpkg"
## [10] "DCD-POBLA.csv"
## [11] "dps-2.csv"
## [12] "Evaluaciones_Agropecuarias_Municipales_EVA.csv"
## [13] "guaviare"
## [14] "Guaviare.gpkg"
## [15] "Guaviare.tif"
## [16] "mapa de color.gpkg"
## [17] "MGN2023_DPTO_POLITICO"
## [18] "MGN2023_MPIO_POLITICO"
## [19] "mipo.gpkg"
## [20] "MPM"
## [21] "Mun-2023.csv"
## [22] "puntos_poblacion.gpkg"
## [23] "simplemaps_worldcities_basicv1.77"
## [24] "Vias.gpkg"
## [25] "worldcities.csv"
## [26] "ytree.gpkg"
4. Cargar el archivo de los municipios del Guaviare. Este código lee un archivo .gpkg, que contiene la forma de los municipios del Guaviare. Este archivo tiene información como,lista de municipio,nombre
(munic <- sf::st_read("C:/Users/yorhl/Downloads/DATOS/Guaviare.gpkg"))
## Reading layer `mipio' from data source
## `C:\Users\yorhl\Downloads\DATOS\Guaviare.gpkg' using driver `GPKG'
## Simple feature collection with 4 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -73.66391 ymin: 0.6554126 xmax: -69.99511 ymax: 2.924987
## Geodetic CRS: MAGNA-SIRGAS
5. Revisar el sistema de coordenadas. Todos los mapas deben tener un sistema de referencia de coordenadas (CRS). Esto define cómo están ubicados los puntos en la Tierra. Aquí estamos revisando qué CRS tiene el archivo del Guaviare.
Guaviare.gpkg_crs = st_crs(st_geometry(munic))
6:Calcular el área de cada municipio. Se calcula el área de cada municipio en metros cuadrados usando las geometrías del mapa. Es útil si queremos saber qué tan grande es cada uno.
munic$area_m2 = sf::st_area(munic)
7. Convertir el área a kilómetros cuadrados. Se convierte Como 1 km² = 1,000,000 m², hacemos esta conversión. Luego usamos signif para redondear el resultado a 6 cifras significativas, que es suficiente para un análisis general.
munic$area = munic$area_m2/1000000
munic$area = signif(munic$area, digits = 6)
8. Ver los resultados. Aquí se imprime el objeto para verificar que las columnas se hayan añadido correctamente. Verás los nombres de los municipios, su forma y su área.
munic
9. Obtener los centros de cada municipio. Los centroides son puntos centrales dentro de cada municipio. Son útiles para colocar etiquetas con los nombres sobre el mapa.
(centers <- st_centroid(munic))
## Warning: st_centroid assumes attributes are constant over geometries
10. Obtener las coordenadas X y Y Aquí lo que se hace es extraer las coordenadas longitud (X) y latitud (Y) para cada centroide.
centers$x = st_coordinates(centers)[,1]
centers$y = st_coordinates(centers)[,2]
En esta funcion Centers representa los centroides de cada municipio. Un centroide es el punto central de una forma geográfica (como un municipio). Es como el “centro de gravedad” del polígono.
centers
11. Descargar el modelo de elevación digital (DEM).
Esta es una parte clave ya que Descargamos un raster que contiene la elevación del terreno del Guaviare. Cada píxel tiene un valor de altura en metros.
El parámetro z = 10 indica el nivel de zoom o resolución Un número más alto da más detalle en este caso solo se produjo con 10 por que con 11 daba error .
elevation <- get_elev_raster(munic, z = 10)
## Mosaicing & Projecting
## Note: Elevation units are in meters.
12. Ver el raster de elevación. Este paso muestra las características del raster descargado: tamaño, resolución, proyección entre otras .
elevation
## class : RasterLayer
## dimensions : 4094, 5633, 23061502 (nrow, ncol, ncell)
## resolution : 0.00068651, 0.00068651 (x, y)
## extent : -73.82812, -69.96101, 0.3518836, 3.162456 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
## source : filede6487a5150.tif
## names : filede6487a5150
13. Guardar el raster en tu computadora. Guardamos el archivo de elevación como .tif en la carpeta de trabajo, por si se desea usar después en otro programa como QGIS.
writeRaster(elevation, "C:/Users/yorhl/Downloads/datos/Guaviare.tif", overwrite = TRUE)
14. Convertir raster al formato de terra. Esto convierte el raster al formato adecuado para trabajar con funciones del paquete terra.
(elevation2 <- terra::rast(elevation))
## class : SpatRaster
## size : 4094, 5633, 1 (nrow, ncol, nlyr)
## resolution : 0.00068651, 0.00068651 (x, y)
## extent : -73.82812, -69.96101, 0.3518836, 3.162456 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
## source : filede6487a5150.tif
## name : filede6487a5150
15. Crear una paleta de colores para el mapa de elevación. Aquí se define los colores que representarán las diferentes alturas del terreno. Es como crear una “leyenda visual” para saber qué colores son montañas, valles.
pal <- colorNumeric(c("cyan", "forestgreen","yellow","tan","orange", "brown"), values(elevation),
na.color = "transparent")
16. Reducir la resolución del raster para que no pese tanto. Este paso reducimos el detalle del raster para que se cargue más rápido en el navegador Se agrupan bloques de 2x2 píxeles en uno solo.
elevation3 <- terra::aggregate(elevation2,fact = 2)
## |---------|---------|---------|---------|=========================================
17. Recortar el raster al área de Guaviare. Recortamos el raster para que solo contenga el área dentro de los límites municipales del Guaviare.
elevation4 <- terra::crop(elevation3, munic, mask=TRUE)
18. Crear un mapa interactivo con Leaflet. Este código crea un mapa interactivo del Guaviare. Agrega un fondo tipo Google Maps, centra la vista, dibuja los límites municipales, coloca etiquetas con nombres, muestra la elevación del terreno con colores y añade una leyenda para interpretar la altitud. Permite explorar visualmente la geografía y altura del departamento.
leaflet(munic) %>% addTiles() %>% setView(-75.9, 8.7, 9) %>%
addPolygons(color = "white", weight = 1.0, smoothFactor = 0.5,
opacity = 0.25, fillOpacity = 0.15,
popup = paste("Municipio: ", munic$mpio_cnmbr, "<br>",
"Km2: ", munic$area, "<br>")) %>%
addLabelOnlyMarkers(data = centers,
lng = ~x, lat = ~y, label = ~mpio_cnmbr,
labelOptions = labelOptions(noHide = TRUE, direction = 'top', textOnly = TRUE, textsize = "10px")) %>%
addRasterImage(elevation4, colors = pal, opacity = 0.9) %>%
addLegend(pal = pal, values = values(elevation),
title = "Elevation data for Guaviare (mts)")
## 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'
19: Resumen del trabajo. El comando sessionInfo() en R muestra un resumen del entorno actual de trabajo. Es muy útil para documentar las versiones de R y de los paquetes que estás usando, especialmente a publicaciones ( RPubs), ya que asegura la reproducibilidad.
sessionInfo()
## R version 4.4.1 (2024-06-14 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 22631)
##
## Matrix products: default
##
##
## locale:
## [1] LC_COLLATE=Spanish_Colombia.utf8 LC_CTYPE=Spanish_Colombia.utf8
## [3] LC_MONETARY=Spanish_Colombia.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Colombia.utf8
##
## time zone: America/Bogota
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] terra_1.8-54 leaflet_2.2.2 sf_1.0-21 elevatr_0.99.0
##
## loaded via a namespace (and not attached):
## [1] s2_1.1.7 sass_0.4.9 class_7.3-22 KernSmooth_2.23-24
## [5] lattice_0.22-6 hms_1.1.3 digest_0.6.37 magrittr_2.0.3
## [9] evaluate_1.0.1 grid_4.4.1 fastmap_1.2.0 jsonlite_1.8.9
## [13] progress_1.2.3 e1071_1.7-16 DBI_1.2.3 httr_1.4.7
## [17] purrr_1.0.2 crosstalk_1.2.1 scales_1.3.0 slippymath_0.3.1
## [21] codetools_0.2-20 jquerylib_0.1.4 cli_3.6.3 rlang_1.1.4
## [25] crayon_1.5.3 units_0.8-5 munsell_0.5.1 cachem_1.1.0
## [29] yaml_2.3.10 tools_4.4.1 raster_3.6-32 colorspace_2.1-1
## [33] curl_5.2.3 mime_0.12 png_0.1-8 vctrs_0.6.5
## [37] R6_2.5.1 proxy_0.4-27 lifecycle_1.0.4 classInt_0.4-10
## [41] htmlwidgets_1.6.4 pkgconfig_2.0.3 progressr_0.15.1 bslib_0.8.0
## [45] glue_1.8.0 Rcpp_1.0.13 xfun_0.49 rstudioapi_0.17.1
## [49] knitr_1.49 farver_2.1.2 htmltools_0.5.8.1 rmarkdown_2.29
## [53] wk_0.9.4 compiler_4.4.1 prettyunits_1.2.0 sp_2.2-0