Este es un cuaderno elaborado con RMarkdown. Cuando ejecutas algún código en este cuaderno, los resultados aparecen debajo del código.
Intenta ejecutar este bloque de código dando click en el botón Run en el bloque de código o poniendo el cursor sobre este y presionando Ctrl+Shift+Enter.
library(GADMTools)
library(tidyverse)
library(sf)
x11()
system.file("gpkg/nc.gpkg", package = "sf") %>%
read_sf()%>%
st_transform(32119) %>%
select(BIR74)%>%
plot(graticule=T, axes = T)
Con este código descargarmos las librerías GADMTools, tidyverse y sf las cuales se usan para obtener la información administrativa de los países, uso y organización de listas y uso de “spatial data frames”, repectivamente. Al emplear estas librerías y seleccionar las funciones necesarias logramos visualizar el mapa de “North Caroline”o Carolina del norte, uno de los estados de estados unidos, pero este mapa también representamos la información del número de nacimientos por condado que se dieron en 1974 en este estado.
Ahora, para leer un “simple feature” que muestre las características asociadas al lugar además de la geomatría utilizamos la siguiente línea de código:
read_sf(system.file("gpkg/nc.gpkg", package = "sf"))
Simple feature collection with 100 features and 14 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
epsg (SRID): 4267
proj4string: +proj=longlat +datum=NAD27 +no_defs
Como se observa, visualizamos la tabla de atributos del spatial data frame cargado con anterioridad, en donde nos muestra inclusive la geometría del mapa elaborado (multipolígono en este caso).
Existen diversas librerías para acceder a diversos conjuntos de datos geoespaciales, como en este caso la librería “GADMTools” la cual se utliza para obterner los datos administrativos de un país.
library(GADMTools)
Ahora que ya tenemos activada la librería GADMTools, podemos obtener la data geoespacial de Colombia a nivel general (Todo el país) usando la función “gadm_sf_loadCountries” como se observa a continuación:
COL<-gadm_sf_loadCountries(c("COL"),level = 0,
basefile = "./")
trying URL 'https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_COL_0_sf.rds'
Content type '' length 533640 bytes (521 KB)
downloaded 521 KB
COL
$basename
[1] "./"
$sf
Simple feature collection with 1 feature and 2 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
ISO NAME_0 geometry
1 COL Colombia MULTIPOLYGON (((-78.97958 1...
$level
[1] 0
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
Al correr este código obtenemos la información referente a los datos geoespaciales de Colombia a nivel general (level=0), en donde muestra los extremos norte (ymax), sur(ymin), oriente(xmin) y occidente (xmax), el tipo de geometría entre otros atributos.
Ahora que ya tenemos la nformación del país que queremos visualizar podemos graficarla con la función “gadm_plot” como se muestra a continuación:
gadm_plot(COL)
De igual manera, podemos visulizar Colombia a niveles mas detallados como por Departamentos y Municipios como se muestra a continuación:
(DEPTOS<-gadm_sf_loadCountries(c("COL"),level = 1,
basefile = "./"))
trying URL 'https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_COL_1_sf.rds'
Content type '' length 782954 bytes (764 KB)
downloaded 764 KB
$basename
[1] "./"
$sf
Simple feature collection with 32 features and 5 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1 geometry
1 COL Colombia Amazonas ComisarÃa Commissiary MULTIPOLYGON (((-69.43138 -...
12 COL Colombia Antioquia Departamento Department MULTIPOLYGON (((-76.99986 8...
23 COL Colombia Arauca Intendencia Intendancy MULTIPOLYGON (((-69.92316 6...
27 COL Colombia Atlántico Departamento Department MULTIPOLYGON (((-74.8816 10...
28 COL Colombia BolÃvar Departamento Department MULTIPOLYGON (((-75.79681 1...
29 COL Colombia Boyacá Departamento Department MULTIPOLYGON (((-74.2158 5....
30 COL Colombia Caldas Departamento Department MULTIPOLYGON (((-75.3569 4....
31 COL Colombia Caquetá Intendencia Intendancy MULTIPOLYGON (((-73.88365 -...
32 COL Colombia Casanare Intendencia Intendancy MULTIPOLYGON (((-72.6363 4....
2 COL Colombia Cauca Departamento Department MULTIPOLYGON (((-77.97681 2...
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
DEPTOS
$basename
[1] "./"
$sf
Simple feature collection with 32 features and 5 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1 geometry
1 COL Colombia Amazonas ComisarÃa Commissiary MULTIPOLYGON (((-69.43138 -...
12 COL Colombia Antioquia Departamento Department MULTIPOLYGON (((-76.99986 8...
23 COL Colombia Arauca Intendencia Intendancy MULTIPOLYGON (((-69.92316 6...
27 COL Colombia Atlántico Departamento Department MULTIPOLYGON (((-74.8816 10...
28 COL Colombia BolÃvar Departamento Department MULTIPOLYGON (((-75.79681 1...
29 COL Colombia Boyacá Departamento Department MULTIPOLYGON (((-74.2158 5....
30 COL Colombia Caldas Departamento Department MULTIPOLYGON (((-75.3569 4....
31 COL Colombia Caquetá Intendencia Intendancy MULTIPOLYGON (((-73.88365 -...
32 COL Colombia Casanare Intendencia Intendancy MULTIPOLYGON (((-72.6363 4....
2 COL Colombia Cauca Departamento Department MULTIPOLYGON (((-77.97681 2...
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
gadm_plot(DEPTOS)
(MUNC<-gadm_sf_loadCountries(c("COL"),level = 2,
basefile = "./"))
trying URL 'https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_COL_2_sf.rds'
Content type '' length 1092557 bytes (1.0 MB)
downloaded 1.0 MB
$basename
[1] "./"
$sf
Simple feature collection with 1065 features and 6 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 NAME_2 TYPE_2
15629 COL Colombia Amazonas El Encanto Corregimiento Departamento
15634 COL Colombia Amazonas La Chorrera Corregimiento Departamento
15699 COL Colombia Amazonas La Pedrera Corregimiento Departamento
16578 COL Colombia Amazonas Leticia Municipio
15505 COL Colombia Amazonas MiritÃ-Paraná Corregimiento Departamento
16577 COL Colombia Amazonas Puerto Nariño Municipio
15494 COL Colombia Amazonas Puerto Santander Corregimiento Departamento
16055 COL Colombia Amazonas Tarapacá Corregimiento Departamento
14570 COL Colombia Antioquia Abejorral Municipio
14343 COL Colombia Antioquia Abriaquà Municipio
ENGTYPE_2 geometry
15629 Corregimiento Departamento MULTIPOLYGON (((-73.43552 -...
15634 Corregimiento Departamento MULTIPOLYGON (((-71.9802 -1...
15699 Corregimiento Departamento MULTIPOLYGON (((-72.61586 -...
16578 Municipality MULTIPOLYGON (((-70.0579 -4...
15505 Corregimiento Departamento MULTIPOLYGON (((-70.2188 -0...
16577 Municipality MULTIPOLYGON (((-70.28952 -...
15494 Corregimiento Departamento MULTIPOLYGON (((-71.4002 -0...
16055 Corregimiento Departamento MULTIPOLYGON (((-70.1296 -3...
14570 Municipality MULTIPOLYGON (((-75.5753 5....
14343 Municipality MULTIPOLYGON (((-76.0697 6....
$level
[1] 2
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
MUNC
$basename
[1] "./"
$sf
Simple feature collection with 1065 features and 6 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 NAME_2 TYPE_2
15629 COL Colombia Amazonas El Encanto Corregimiento Departamento
15634 COL Colombia Amazonas La Chorrera Corregimiento Departamento
15699 COL Colombia Amazonas La Pedrera Corregimiento Departamento
16578 COL Colombia Amazonas Leticia Municipio
15505 COL Colombia Amazonas MiritÃ-Paraná Corregimiento Departamento
16577 COL Colombia Amazonas Puerto Nariño Municipio
15494 COL Colombia Amazonas Puerto Santander Corregimiento Departamento
16055 COL Colombia Amazonas Tarapacá Corregimiento Departamento
14570 COL Colombia Antioquia Abejorral Municipio
14343 COL Colombia Antioquia Abriaquà Municipio
ENGTYPE_2 geometry
15629 Corregimiento Departamento MULTIPOLYGON (((-73.43552 -...
15634 Corregimiento Departamento MULTIPOLYGON (((-71.9802 -1...
15699 Corregimiento Departamento MULTIPOLYGON (((-72.61586 -...
16578 Municipality MULTIPOLYGON (((-70.0579 -4...
15505 Corregimiento Departamento MULTIPOLYGON (((-70.2188 -0...
16577 Municipality MULTIPOLYGON (((-70.28952 -...
15494 Corregimiento Departamento MULTIPOLYGON (((-71.4002 -0...
16055 Corregimiento Departamento MULTIPOLYGON (((-70.1296 -3...
14570 Municipality MULTIPOLYGON (((-75.5753 5....
14343 Municipality MULTIPOLYGON (((-76.0697 6....
$level
[1] 2
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
gadm_plot(MUNC)
Además de las anteriores funciones, también es posible visualizar mapas un poco más específicos. A continuación mostramos como, mediante la función “gadm_subset”, se pueden pueden extraer los datos para visualizar solo el departamento de interés, que en este caso es el Huila:
HUILA<-gadm_subset(DEPTOS, level = 1, regions = "Huila")
gadm_plot(HUILA) %>% gadm_showNorth("tl") %>% gadm_showScale("bl")
Este mismo proceso lo podemos realizar para extraer y visualizar los municipios del departamento como se muestra a continuación:
HUMUN$sf$NAME_2
[1] "Acevedo" "Agrado" "Aipe" "Algeciras" "Altamira"
[6] "Baraya" "Campoalegre" "Colombia" "ElÃas" "Garzón"
[11] "Gigante" "Guadalupe" "Hobo" "Iquira" "Isnos"
[16] "La Argentina" "La Plata" "Nátaga" "Neiva" "Oporapa"
[21] "Paicol" "Palermo" "Palestina" "Pital" "Pitalito"
[26] "Rivera" "Saladoblanco" "San AgustÃn" "Santa MarÃa" "Suaza"
[31] "TarquÃ" "Tello" "Teruel" "Tesalia" "Timaná"
[36] "Villavieja" "Yaguará"
Cuando usamos este tipo de datos resulta útil conocer distintos componentes que constituyen nuestro objeto de interés, por lo que a continuación mostramos con ejemplos como generar estas listas, ya sea usando una función (“listNames” en este caso) o llamanndo específicamente al componente deseado:
LDEPTOS<-listNames(DEPTOS,1);LDEPTOS
[1] "Amazonas" "Antioquia" "Arauca"
[4] "Atlántico" "BolÃvar" "Boyacá"
[7] "Caldas" "Caquetá" "Casanare"
[10] "Cauca" "Cesar" "Chocó"
[13] "Córdoba" "Cundinamarca" "GuainÃa"
[16] "Guaviare" "Huila" "La Guajira"
[19] "Magdalena" "Meta" "Nariño"
[22] "Norte de Santander" "Putumayo" "QuindÃo"
[25] "Risaralda" "San Andrés y Providencia" "Santander"
[28] "Sucre" "Tolima" "Valle del Cauca"
[31] "Vaupés" "Vichada"
LMUNC<- HUMUN$sf$NAME_2;LMUNC
[1] "Acevedo" "Agrado" "Aipe" "Algeciras" "Altamira"
[6] "Baraya" "Campoalegre" "Colombia" "ElÃas" "Garzón"
[11] "Gigante" "Guadalupe" "Hobo" "Iquira" "Isnos"
[16] "La Argentina" "La Plata" "Nátaga" "Neiva" "Oporapa"
[21] "Paicol" "Palermo" "Palestina" "Pital" "Pitalito"
[26] "Rivera" "Saladoblanco" "San AgustÃn" "Santa MarÃa" "Suaza"
[31] "TarquÃ" "Tello" "Teruel" "Tesalia" "Timaná"
[36] "Villavieja" "Yaguará"
Con unos cuantos códigos adicionales es posible realizar un mapa mas elaborado. El siguiente bloque de códigos se usa para visualizar el mapa del departamento con los departamentos aledaños, todo visualizado en una cuadricula en la cual se pueden regular sus limites en función de los límites que presenta el mapa.
(sbox <- gadm_getBbox(HUILA))
xmin ymin xmax ymax
-76.640198 1.493471 -74.505402 3.807901
Este código sirve para exhibir los límites cardinales que presenta el departamento.
str(sbox)
'bbox' Named num [1:4] -76.64 1.49 -74.51 3.81
- attr(*, "names")= chr [1:4] "xmin" "ymin" "xmax" "ymax"
- attr(*, "crs")=List of 2
..$ epsg : int 4326
..$ proj4string: chr "+proj=longlat +datum=WGS84 +no_defs"
..- attr(*, "class")= chr "crs"
Aquí la función “str” es usada para obtener la información sobre el tipo de objeto que es el nuevo data frame generado anteriormente.
(STUDY_AREA<- gadm_crop(DEPTOS, xmin =-76.66, ymin = 1.49, xmax = -74.49, ymax = 3.81))
although coordinates are longitude/latitude, st_intersection assumes that they are planar
attribute variables are assumed to be spatially constant throughout all geometries
$basename
[1] "./"
$sf
Simple feature collection with 7 features and 5 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -76.66 ymin: 1.49 xmax: -74.49 ymax: 3.81
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1 geometry
31 COL Colombia Caquetá Intendencia Intendancy POLYGON ((-76.20522 1.49, -...
2 COL Colombia Cauca Departamento Department POLYGON ((-76.66 3.108991, ...
6 COL Colombia Cundinamarca Departamento Department POLYGON ((-74.49 3.655067, ...
9 COL Colombia Huila Departamento Department POLYGON ((-76.13251 1.49347...
13 COL Colombia Meta Departamento Department POLYGON ((-74.49 1.817293, ...
22 COL Colombia Tolima Departamento Department POLYGON ((-74.809 3.493, -7...
24 COL Colombia Valle del Cauca Departamento Department POLYGON ((-76.5175 3.282401...
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
Con la función “gadm_crop” se pueden establecer los límites que va a tener la cuadricula en la que se va a plasma el mapa a desarrollar.
gadm_plot(STUDY_AREA)
Finalmente, este es el mapa obtenido, en donde se puede observar al departamento del Huila rodeado por los departamentos vecinos.
Cuando se está trabajando con datos geográficos, resutla útil la obtención del simple feature, ya que este contiene la información general del mapa desarrollado.
DEPTOS$sf
Simple feature collection with 32 features and 5 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -81.84153 ymin: -4.228429 xmax: -66.87033 ymax: 15.91247
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1 geometry
1 COL Colombia Amazonas ComisarÃa Commissiary MULTIPOLYGON (((-69.43138 -...
12 COL Colombia Antioquia Departamento Department MULTIPOLYGON (((-76.99986 8...
23 COL Colombia Arauca Intendencia Intendancy MULTIPOLYGON (((-69.92316 6...
27 COL Colombia Atlántico Departamento Department MULTIPOLYGON (((-74.8816 10...
28 COL Colombia BolÃvar Departamento Department MULTIPOLYGON (((-75.79681 1...
29 COL Colombia Boyacá Departamento Department MULTIPOLYGON (((-74.2158 5....
30 COL Colombia Caldas Departamento Department MULTIPOLYGON (((-75.3569 4....
31 COL Colombia Caquetá Intendencia Intendancy MULTIPOLYGON (((-73.88365 -...
32 COL Colombia Casanare Intendencia Intendancy MULTIPOLYGON (((-72.6363 4....
2 COL Colombia Cauca Departamento Department MULTIPOLYGON (((-77.97681 2...
El paquete “mapview” es una herramienta útil que permite una visualización más dinámica de los mapas elaborados, permitiendo asignar colores a las divisiones que tenga el mapa o simplemente alejar o acercar el mapa. Como ejemplo se muestran los siguientes mapas:
install.packages("mapview")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.6/mapview_2.7.0.zip'
Content type 'application/zip' length 2947903 bytes (2.8 MB)
downloaded 2.8 MB
package âmapviewâ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\Nicolas Leon Perez\AppData\Local\Temp\RtmpaMsqf5\downloaded_packages
suppressPackageStartupMessages(library(mapview))
DEPTOS$sf %>% mapview(zcol="NAME_1", legend= T, col.regions=sf.colors)
HUMUN$sf %>% mapview(zcol="NAME_2", legend= T, col.regions=sf.colors)