Para iniciar, se usaran las librerias “Tidyverse” y “Sf” por lo tanto se procede con cargarlas como se muesttra a continuacion:
library(tidyverse)
library(sf)
Una vez cargadas las librerias, se escribe un codigo con el que se busca obtener un mapa en el que se le haran pequeños ajustes para optimizar la visualizacion de la variable que se desea mostrar, en este caso la variable “BIR74”.
system.file("gpkg/nc.gpkg", package = "sf") %>% #se obtuvo un dato del package "sf"
read_sf() %>% # se esta leyendo el dato obtenido del paquete "sf"
st_transform(32119) %>% # se transformaron los datos
select(BIR74) %>% # se selecciono un atributo: nacimientos en 1974
plot(graticule= TRUE, axes= TRUE)# se coloco la rejilla y los ejes
Ahora se desea ver el contenido de toda la base de datos que contiene la libreria “Sf” respecto al estado utilizado para el mapa de ejemplo, ya que la visualizacion del mapa anterior corresponte a un filtro de datos con fines de visualizacion de una variable en especifico.
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
Pero como no vivimos en Estados Unidos, los mapas de ese pais no tienen relevancia en cuanto a lo que se desea aplicar en este documento, por tal motivo se usara la libreria “GADMTools” para obtener informacion de Colombia, por tanto se procede a cargar la libreria:
library(GADMTools)
Loading required package: sp
Loading required package: tidyverse
Registered S3 method overwritten by 'dplyr':
method from
print.rowwise_df
[30m-- [1mAttaching packages[22m --------------------------------------- tidyverse 1.2.1 --[39m
[30m[32mv[30m [34mggplot2[30m 3.2.1 [32mv[30m [34mpurrr [30m 0.3.2
[32mv[30m [34mtibble [30m 2.1.3 [32mv[30m [34mdplyr [30m 0.8.3
[32mv[30m [34mtidyr [30m 1.0.0 [32mv[30m [34mstringr[30m 1.4.0
[32mv[30m [34mreadr [30m 1.3.1 [32mv[30m [34mforcats[30m 0.4.0[39m
[30m-- [1mConflicts[22m ------------------------------------------ tidyverse_conflicts() --
[31mx[30m [34mdplyr[30m::[32mfilter()[30m masks [34mstats[30m::filter()
[31mx[30m [34mdplyr[30m::[32mlag()[30m masks [34mstats[30m::lag()[39m
Loading required package: classInt
Loading required package: sf
Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
Loading required package: rgdal
rgdal: version: 1.4-6, (SVN revision 841)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
Path to GDAL shared files: C:/Users/Oscar/Documents/R/win-library/3.6/rgdal/gdal
GDAL binary built with GEOS: TRUE
Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
Path to PROJ.4 shared files: C:/Users/Oscar/Documents/R/win-library/3.6/rgdal/proj
Linking to sp version: 1.3-1
Attaching package: 㤼㸱GADMTools㤼㸲
The following object is masked from 㤼㸱package:utils㤼㸲:
vignette
Ahora se procede con obtener informacion de Colombia como se muestra en el siguiente codigo:
(COL= gadm_sf_loadCountries(c("COL"), level = 0, basefile= "./"))
$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"
gadm_plot(COL)
Se muestra el codigo con el que se muestran los departamentos (se cambia “level” de 0 a 1).
(DEPTOS= gadm_sf_loadCountries(c("COL"), level = 1, basefile= "./"))
$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
1 COL Colombia Amazonas Comisaría Commissiary
12 COL Colombia Antioquia Departamento Department
23 COL Colombia Arauca Intendencia Intendancy
27 COL Colombia Atlántico Departamento Department
28 COL Colombia Bolívar Departamento Department
29 COL Colombia Boyacá Departamento Department
30 COL Colombia Caldas Departamento Department
31 COL Colombia Caquetá Intendencia Intendancy
32 COL Colombia Casanare Intendencia Intendancy
2 COL Colombia Cauca Departamento Department
geometry
1 MULTIPOLYGON (((-69.43138 -...
12 MULTIPOLYGON (((-76.99986 8...
23 MULTIPOLYGON (((-69.92316 6...
27 MULTIPOLYGON (((-74.8816 10...
28 MULTIPOLYGON (((-75.79681 1...
29 MULTIPOLYGON (((-74.2158 5....
30 MULTIPOLYGON (((-75.3569 4....
31 MULTIPOLYGON (((-73.88365 -...
32 MULTIPOLYGON (((-72.6363 4....
2 MULTIPOLYGON (((-77.97681 2...
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
gadm_plot(DEPTOS)
Se muestra el codigo con el que se muestran los departamentos (se cambia “level” de 1 a 2).
(MUNICIP= gadm_sf_loadCountries(c("COL"), level = 2, basefile= "./"))
$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(MUNICIP)
(boyaca = gadm_subset(DEPTOS, level = 1, regions = "Boyacá"))
$basename
[1] "./"
$sf
Simple feature collection with 1 feature and 5 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -74.6743 ymin: 4.642001 xmax: -71.98309 ymax: 7.0275
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1 geometry
29 COL Colombia Boyacá Departamento Department MULTIPOLYGON (((-74.2158 5....
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
gadm_plot(boyaca) %>% gadm_showNorth("tl") %>% gadm_showScale("bl")
Si se cambia el dataframe de DEPTOS a MUNICIP salen los municipios
(boyaca = gadm_subset(MUNICIP, level = 1, regions = "Boyacá"))
$basename
[1] "./"
$sf
Simple feature collection with 123 features and 6 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -74.6743 ymin: 4.642001 xmax: -71.98309 ymax: 7.0275
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 NAME_2 TYPE_2 ENGTYPE_2
14856 COL Colombia Boyacá Almeida Municipio Municipality
14675 COL Colombia Boyacá Aquitania Municipio Municipality
14607 COL Colombia Boyacá Arcabuco Municipio Municipality
14528 COL Colombia Boyacá Belén <NA> <NA>
14784 COL Colombia Boyacá Berbeo Municipio Municipality
14561 COL Colombia Boyacá Beteitiva Municipio Municipality
14419 COL Colombia Boyacá Boavita Municipio Municipality
14730 COL Colombia Boyacá Boyacá Municipio Municipality
14655 COL Colombia Boyacá Briceño Municipio Municipality
14711 COL Colombia Boyacá Buenavista Municipio Municipality
geometry
14856 MULTIPOLYGON (((-73.3883 4....
14675 MULTIPOLYGON (((-73.0553 5....
14607 MULTIPOLYGON (((-73.4648 5....
14528 MULTIPOLYGON (((-72.8194 5....
14784 MULTIPOLYGON (((-73.0639 5....
14561 MULTIPOLYGON (((-72.8499 5....
14419 MULTIPOLYGON (((-72.6702 6....
14730 MULTIPOLYGON (((-73.4572 5....
14655 MULTIPOLYGON (((-73.9081 5....
14711 MULTIPOLYGON (((-73.9409 5....
$level
[1] 2
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
gadm_plot(boyaca) %>% gadm_showNorth("tl") %>% gadm_showScale("bl")
Si se desea saber el nombre de los departamentos o monucipios de la base de datos nacional con la que se esta trabajando, se usa el siguiente codigo (en este caso se usara para mostrar el nombre de los departamentos de Colombia).
listNames(DEPTOS, level = 1)
[1] "Amazonas" "Antioquia"
[3] "Arauca" "Atlántico"
[5] "Bolívar" "Boyacá"
[7] "Caldas" "Caquetá"
[9] "Casanare" "Cauca"
[11] "Cesar" "Chocó"
[13] "Córdoba" "Cundinamarca"
[15] "Guainía" "Guaviare"
[17] "Huila" "La Guajira"
[19] "Magdalena" "Meta"
[21] "Nariño" "Norte de Santander"
[23] "Putumayo" "Quindío"
[25] "Risaralda" "San Andrés y Providencia"
[27] "Santander" "Sucre"
[29] "Tolima" "Valle del Cauca"
[31] "Vaupés" "Vichada"
Si se desea saber los limites de un territorio que se esta manejando en la base de datos, se usa el siguietne Codigo (en este acaso se usa de ejemplo el departamento de Boyacá).
sbox=gadm_getBbox(boyaca)
sbox
xmin ymin xmax ymax
-74.674301 4.642001 -71.983086 7.027500
Para conocer la estructura de la caja obtenida con el codigo anterior se escribe el siguiente codigo:
str(sbox)
'bbox' Named num [1:4] -74.67 4.64 -71.98 7.03
- 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"
Si se desea utilizar las coordenadas de un territorio en terminos de ejes “x” y “y” se usa el siguiente codigo:
area_estudio = gadm_crop(DEPTOS, xmin=-75, ymin=4.5, xmax= -71.5, ymax= 7.3)
although coordinates are longitude/latitude, st_intersection assumes that they are planar
attribute variables are assumed to be spatially constant throughout all geometries
area_estudio
$basename
[1] "./"
$sf
Simple feature collection with 11 features and 5 fields
geometry type: GEOMETRY
dimension: XY
bbox: xmin: -75 ymin: 4.5 xmax: -71.5 ymax: 7.3
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
First 10 features:
ISO NAME_0 NAME_1 TYPE_1 ENGTYPE_1
12 COL Colombia Antioquia Departamento Department
23 COL Colombia Arauca Intendencia Intendancy
28 COL Colombia Bolívar Departamento Department
29 COL Colombia Boyacá Departamento Department
30 COL Colombia Caldas Departamento Department
32 COL Colombia Casanare Intendencia Intendancy
6 COL Colombia Cundinamarca Departamento Department
13 COL Colombia Meta Departamento Department
15 COL Colombia Norte de Santander Departamento Department
20 COL Colombia Santander Departamento Department
geometry
12 POLYGON ((-74.42666 7.3, -7...
23 POLYGON ((-71.5 6.176146, -...
28 POLYGON ((-74.2617 6.985301...
29 POLYGON ((-74.2158 5.4613, ...
30 POLYGON ((-75 5.710153, -74...
32 POLYGON ((-72.9527 4.5, -72...
6 POLYGON ((-73.1357 4.647601...
13 MULTIPOLYGON (((-73.73243 4...
15 POLYGON ((-72.5813 6.8853, ...
20 POLYGON ((-72.6433 6.419401...
$level
[1] 1
$hasBGND
[1] FALSE
attr(,"class")
[1] "gadm_sf"
En la consola aparecen los datos de los departamentos presentes en el recuadro obtenido a partir de las coordenadas escritas en terminos de “x” y “y”, departamentos que se pueden observar si se grafican esas coordenadas como se muestra a continuacion: ### Graficando
gadm_plot(area_estudio)
Si se desea saber el contenido presente en la variable “sf” del conjunto de datos “DEPTOS” se escribe lo siguiente (notese que se puede obtener cada departamento con sus limites en terminos de “x” y “y”):
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
1 COL Colombia Amazonas Comisaría Commissiary
12 COL Colombia Antioquia Departamento Department
23 COL Colombia Arauca Intendencia Intendancy
27 COL Colombia Atlántico Departamento Department
28 COL Colombia Bolívar Departamento Department
29 COL Colombia Boyacá Departamento Department
30 COL Colombia Caldas Departamento Department
31 COL Colombia Caquetá Intendencia Intendancy
32 COL Colombia Casanare Intendencia Intendancy
2 COL Colombia Cauca Departamento Department
geometry
1 MULTIPOLYGON (((-69.43138 -...
12 MULTIPOLYGON (((-76.99986 8...
23 MULTIPOLYGON (((-69.92316 6...
27 MULTIPOLYGON (((-74.8816 10...
28 MULTIPOLYGON (((-75.79681 1...
29 MULTIPOLYGON (((-74.2158 5....
30 MULTIPOLYGON (((-75.3569 4....
31 MULTIPOLYGON (((-73.88365 -...
32 MULTIPOLYGON (((-72.6363 4....
2 MULTIPOLYGON (((-77.97681 2...
A continuacion se muestra la instalacion de un paquete util para obtener mapas con otra forma de visualizacion.
install.packages("mapview")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into 㤼㸱C:/Users/Oscar/Documents/R/win-library/3.6㤼㸲
(as 㤼㸱lib㤼㸲 is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.6/mapview_2.7.0.zip'
Content type 'application/zip' length 2947829 bytes (2.8 MB)
downloaded 2.8 MB
package ‘mapview’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\Oscar\AppData\Local\Temp\RtmpgV327p\downloaded_packages
Utilizando el conjunto de datos “DEPTOS” se puede obtener e siguiente mapa:
suppressPackageStartupMessages(library(mapview))
DEPTOS$sf %>% mapview(zcol="NAME_1",legend=TRUE, col.regions= sf.colors)
Una vez visualizado el mapa de Colombia con departamentos a partir de la libreria mapview, se procedió con la elaboracion del mapa del departamento de Boyacá y sus municipios como se muestra a continuacion (se cambio el conjunto de datos “DEPTOS” por “boyaca” y “NAME_1” por “NAME_2”):
suppressPackageStartupMessages(library(mapview))
boyaca$sf %>% mapview(zcol= "NAME_2",legend=TRUE, col.regions= sf.colors)
Para concluir, se pudo observar como se pueden extraaer datos geoespacioales de diferentes bancos de informacion, ademas se mostraron varias formas de graficar la informcion obtenida de estas bancos de datos.