1. Introducción

Este es un cuaderno de R en el cual se ilustra como leer un archivo de texto con coordenadas geográficas, convertirlas en objetos con características espaciales, y crear un mapa. Está realizado por un estudiante de geomática básica de la Universidad Nacional de Colombia, como actividad introductoria a los cuadernos de . Es fundamental instalar las librerías “c(”tidyverse“,”sf“)”, y llamarlas

library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(tidyverse)
## -- Attaching packages ------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.2     v dplyr   1.0.0
## v tidyr   1.1.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.5.0
## -- Conflicts ---------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

2.Leer los datos

## seleccionar y observar el directorio de trabajo
departamentos <- read_sf("C:/Users/JUAN PABLO/Documents/geo maps/COL_adm1.shp")
###
## Observar los primeros datos presnetes en el archivo
head(departamentos)
###
## La función st_crs permite observar l¿el sistema de referencias de coordenadas de los datos utilizados
st_crs(departamentos)
## Coordinate Reference System:
##   User input: WGS 84 
##   wkt:
## GEOGCRS["WGS 84",
##     DATUM["World Geodetic System 1984",
##         ELLIPSOID["WGS 84",6378137,298.257223563,
##             LENGTHUNIT["metre",1]]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433]],
##     CS[ellipsoidal,2],
##         AXIS["latitude",north,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433]],
##         AXIS["longitude",east,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433]],
##     ID["EPSG",4326]]
###

3. Usar ggplot para visualizar los datos geoespaciales

De esta forma, podemos representar los datos coordenados en un mapa de la región a estudiar, además del sistema de coordenadas de referencia (para Colombia, el 32618)

###
ggplot() + geom_sf(data = departamentos) + coord_sf(crs=st_crs(32618))

##

4. Atributos de los datos geoespaciales

Es posible filtrar el departamento requerido en el estudio. Para el presnete caso, se trabajará con el departamento de Casanare

###
casanare <-  departamentos %>%   filter(NAME_1 == "Casanare")
##

Ahora es posible determinar el mapa exclusivamente para el departamento de Casanare

###
munic <-  read_sf("C:/Users/JUAN PABLO/Documents/geo maps/COL_adm2.shp")
mun_casanare <- munic %>% filter(NAME_1 == "Casanare")
casanare_points <- cbind(mun_casanare, st_coordinates(st_centroid(mun_casanare$geometry)))
## Warning in st_centroid.sfc(mun_casanare$geometry): st_centroid does not give
## correct centroids for longitude/latitude data
ggplot(casanare) +
    geom_sf() +
    geom_sf(data = casanare_points, fill = "antiquewhite") + 
    geom_text(data = casanare_points, aes(x=X, y=Y,label = ID_2), size = 2) +
    coord_sf(xlim = c(-73.5, -69.6), ylim = c(4, 6.5), expand = FALSE)

##

5. Usar leaft para visualizar los datos

Lo obtenido anteriormente es una representación del municipio de cordoba; sin embargo, siempre es conveniente representar la zona de estudio sobre un mapa que presneta características como la geomorfología, es decir, observar sobre una vista real de la tierra, como se distribuyen los datos analizados

Para esto, es neceasio carbar la slibrerías necesarias, como lo es “leaflet”

Posterior a esto, para el manejo de los datos es necesarios implementarlos como puntos espaciales

Por otra parte, la librería “lwgeom” permite obtener el área de los municipios presentes en la base de datos

NOTA: Es necesario cersiorarse de que los datos se presenten en las unidades deseadas, siendo en este caso, kilómetros cuadrados (km2) (en la salida de R se menciona que son m^2, pero la convrsión de unidades ya se ha realizado)

###
cas_points <- as(casanare_points, 'Spatial')
mun_casanare$area <- st_area(mun_casanare)
mun_casanare$km2 <- mun_casanare$area/(1000000)
mun_casanare$km2
## Units: [m^2]
##  [1]  1433.3676   328.6694  5063.0322   152.3924  3862.1055   720.9689
##  [7]  1046.8378  4742.7239 12435.9210   784.1395   179.3627   278.6638
## [13]   495.2043  3238.2907  1105.4737  2441.8742  3037.4892   755.1099
## [19]  2520.3069
##

Para realizar el gráfico deseado, es necesario especificar los datos con los cuales se pretende realizar

###
cas_mun <- as(mun_casanare, 'Spatial')
##

Es posiuble utilizar diferntes proveedores para la información espacial:

###
library(leaflet)
leaflet() %>%
  addProviderTiles(providers$Esri.WorldImagery, options= providerTileOptions(opacity = 0.99)) %>%
  addPolygons(data = cas_mun, popup= cas_mun$NAME_2,
    stroke = TRUE, fillOpacity = 0.25, smoothFactor = 0.25)
##
###
leaflet() %>%
  addProviderTiles(providers$Esri.WorldPhysical, options= providerTileOptions(opacity = 0.99)) %>%
  addPolygons(data = cas_mun, popup= cas_mun$NAME_2,
    stroke = TRUE, fillOpacity = 0.25, smoothFactor = 0.25)
##
###
leaflet() %>%
  addProviderTiles(providers$Esri.NatGeoWorldMap, options= providerTileOptions(opacity = 0.99)) %>%
  addPolygons(data = cas_mun, popup= cas_mun$NAME_2,
    stroke = TRUE, fillOpacity = 0.25, smoothFactor = 0.25)
##