Cartografía temática

El objetivo del actual informe es presentar, mediante la adpatación de una base de datos obtenida del Departamento Administrativo Nacional de Estadística que reúne los datos acerca de las Necesidades Básicas Insatisfechas del departamento del Meta, una serie de ilustraciones cartográficas temáticas, con la intención de representar la información de la base de datos mencionada anteriormente a través de mapas con cualidades estéticas de gran calidad, siguiendo como guía el siguiente cuaderno.

Aclaraciones de los datos usados para la realización de este informe.

  • El dataset descargado de la Base de Datos de del DANE, fue filtrado con el objetivo de reducirlo únicamente a los datos referentes al departamento del Meta a nivel de sus municipios.
  • Para realizar la representación de los datos .csv se usó el archivo .shp usado en cuadernos de R anteriores llamado MGN_MPIO_POLITICO para el departamento del Meta.

1. Llamando las librerías necesarias.

Inicialmente, es necesario realizar una limpieza de la memoria, así:

rm(list=ls())
knitr::opts_chunk$set(echo = TRUE)

Mediante la siguiente función se procede a descargar las ibrerías necesarias para el desarrollo del presente informe:

list.of.packages <- c("tidyverse", "rgeos", "sf", "raster", "cartography", "SpatialPosition")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)

Llamando la librerías anteriormente descargadas:

library(tidyverse)
## -- Attaching packages ------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.3     v dplyr   1.0.2
## v tidyr   1.1.2     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()
library(readxl)
library(rgeos)
## Loading required package: sp
## rgeos version: 0.5-5, (SVN revision 640)
##  GEOS runtime version: 3.8.0-CAPI-1.13.1 
##  Linking to sp version: 1.4-2 
##  Polygon checking: TRUE
library(raster)
## 
## Attaching package: 'raster'
## The following object is masked from 'package:dplyr':
## 
##     select
## The following object is masked from 'package:tidyr':
## 
##     extract
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(cartography)
## Warning: package 'cartography' was built under R version 4.0.3
library(SpatialPosition)
## Warning: package 'SpatialPosition' was built under R version 4.0.3

2. Cargando los datos de la Necesidades Básicas Insatisfechas del Meta.

Para esto, es necesario cargar el archivo .csv llamado NBI_META:

nbi <- read_excel("~/2020-2/Geomatica/INFORME_2/NBI_META.xlsx")

Revisando que datos hay en el objeto nbi:

head(nbi)

Ahora bien, la metodología NBI pretende determinar con ayuda de algunos indicadores simples si las necesidades básicas de la población se encuentran satisfechas. Esto permite identificar que grupos se encuentran en estado de pobreza a través de los indicadores que no alcanzen un umbral mínimo. Por lo tanto, para saber cual es municipio del departamento del Meta que tiene un mayor porcentaje de necesidades básicas insatisfechas, se procede de la siguiente forma:

nbi %>% 
    slice(which.max(NBI)) -> max_nbi

max_nbi

A parir de lo anterior se observa que Uribe es el municipio con las condiciones de vida más complicados del departamento del Meta, puesto que según los datos, el 53% de la población no tiene sus necesidades básicas satisfechas. Del mismo modo, a continuación se procede a identificar cúal es el municipio con mejor calidad de vida basado en la satisfacción de las necesidades básicas, es decir, el menor porcentaje de NBI:

nbi %>% 
    slice(which.min(NBI)) -> min_nbi

min_nbi

Segun lo anterior, El Calvario es el municipio en donde sus habitantes tienen la mayor cobertura de sus necesidades básicas del departamento del Meta. En adición, para tener una vista global del índice NBI de los municipios del Meta, se procede a reoganizarlos en orden descendente así:

nbi %>% 
  arrange(desc(NBI))  -> desc_nbi

desc_nbi

3. Combiando los datos NBI con el shpalefile de los municipios.

Ahora se va a realizar la combinación entre los datos de las necesidades básicas insatisfechas de los municipios del Meta con el Shapefile que reúne los datos de ubicación de los municipios del mismo departamaneto. Para ello, inicialmente, es necesario llamar a la interfaz de R al archivo .SHP:

munic <- st_read("~/2020-2/Geomatica/INFORME_2/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
## Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\EQUIPO\Documents\2020-2\Geomatica\INFORME_2\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
## Simple feature collection with 29 features and 9 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -74.89921 ymin: 1.604238 xmax: -71.07753 ymax: 4.899101
## geographic CRS: WGS 84

Revisando que datos se encuentran almacenados en munic:

head(munic)

Se observa que el objeto munic* tiene un atributo llamado MPIO_CCDGO, este es común con el atribuo del mismo nombre del objeto nbi, por lo tanto, mediante la función left_join, se puede realizar la combinación entre ambos archivos, para, posteriormente, realizar los mapas temáticos:

 nbi_munic = left_join(munic, nbi, by="MPIO_CCDGO")
nbi_munic %>%
  dplyr::select(MUNICIPIO, MPIO_CCDGO, NBI)  ->  check_nbi_munic

head(check_nbi_munic)

El objeto check_nbi_munic es el resultado de la combinación realizada anteriormente. A partir de ahora, este objeto será la base para la realización de los mapas temáticos.

nbi_munic_new <- st_transform(nbi_munic, crs = 3116)

4. Graficación de mapas temáticos a partir de los datos NBI.

Para el desarrollo de este numeral del presente informe, se usará el paquete cartography, que permite graficar mapas con una calidad visual similar a los obtenidos meiante algun software GIS.

4.1 Mapa “open street map”.

Las funciones getTiles() y tilesLayer() permiten descargar y visualizar OpenStreepMaps. De igual forma, como complemento a las anteriores funciones, PropSymbolsLayer despliega símbolos como círculos, cuadrados barras, entre otros, con areas proporcionales a alguna variable cuantitativa definida, como es el caso de NBI. En el siguiente mapa, se representan el índice de NBI correspondiente de cada uno de los municipios del departamento del Meta.

mun.osm <- getTiles(
x = nbi_munic_new, 
type = "OpenStreetMap", 
zoom = 9,
cachedir = TRUE,
crop = TRUE
)
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## ellps WGS 84 in CRS definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0
## +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum WGS_1984 in CRS definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded datum Unknown based on GRS80 ellipsoid in CRS definition,
##  but +towgs84= values preserved

## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded datum Unknown based on GRS80 ellipsoid in CRS definition,
##  but +towgs84= values preserved
# Estableciendo márgenes
opar <- par(mar = c(0,0,1.2,0))
# Graficando OpenStreetMap
tilesLayer(x = mun.osm)
# Graficando municipios (Únicamnete los límites)
plot(st_geometry(nbi_munic_new), col = NA, border = "black", add=TRUE)
# Graficando NBI
propSymbolsLayer(
  x = nbi_munic_new, 
  var = "NBI", 
  inches = 0.15, 
  col = "DarkCyan",
  legend.pos = "topright",  
  legend.title.txt = "Total NBI",
  legend.frame = T,
  legend.style = "e"
)
# Convención
layoutLayer(title = " NBI Distribution in Meta",
            sources = "Sources: DANE, 2018\n© OpenStreetMap",
            author = " Samuel Ramírez ",
            frame = TRUE, north = FALSE, tabtitle = TRUE)
# Posición de la brújula
north(pos = "topleft")

4.2 Mapa Cloroplético.

Un mapa cloroplético, es un tipo de mapa temático en el que las áreas se sombrean de distintos colores, frecuentemente de la misma gama cromática, que representan distintos valores de una variable estadística característica de esa región geográfica (Slocum, 2009). A continuación se representan los datos NBI de los municipios del Meta, a trvés de un mapa cloroplético:

# Estableciendo márgenes
opar <- par(mar = c(0,0,1.2,0))
# Estableciendo color de fondo
par(bg="Gray90")
# Graficando municipios (Únicamnete los límites)
plot(st_geometry(nbi_munic_new), col = NA, border = NA, bg = "#aadaff")
# Graficando NBI
choroLayer(
  x = nbi_munic_new, 
  var = "NBI",
  method = "geom",
  nclass=5,
  col = carto.pal(pal1 = "wine.pal", n1 = 5),
  border = "DimGray", 
  lwd = 0.5,
  legend.pos = "topright", 
  legend.title.txt = "NBI",
  add = TRUE
)
# Convención
layoutLayer(title = "NBI Distribution in Meta", 
            sources = "Source: DANE, 2018",
            author = "Samuel Ramírez", 
            frame = TRUE, north = TRUE, tabtitle = TRUE, col="black") 
#Posición de la brújula
north(pos = "topleft")

4.3 Mapas tipológicos y símbolos proporcionales.

la función propSymbolsTypoLayer() genera un mapa de símbolos que son proporcionales a los valores de una primera variable y coloreados para representar los mismos de una segunda variable cualitativa. De modo que para realizar este precedimiento, se necesita crear la vriable cuantitativa, para ello se usa la función mutate():

nbi_munic_2 <- dplyr::mutate(nbi_munic_new, poverty = ifelse(MISERIA > 20, "Extreme", 
                                                         ifelse(HACINAMIENTO > 5, "High", "Intermediate")))

Se observa que el nuevo atributo se llama poverty. Su valor depende del límite definido en la función anterior. Revisando los datos almacenados en nbi_munic_2

head(nbi_munic_2)

Con todo esto, se observará que la gráfica respresentará el nivel de pobreza en los municipios del departamento del Meta resumido en tres niveles: “Extreme”, "“High, ”Intermidiate". Graficando:

library(sf)
library(cartography)
# Estableciendo márgenes
opar <- par(mar = c(0,0,1.2,0))
# Graficando los municipios
plot(st_geometry(nbi_munic_2), col="#f2efe9", border="#b38e43", bg = "#aadaff", 
     lwd = 0.5)
# Graficando los símbolos con la coloración cloroplética 
propSymbolsTypoLayer(
  x = nbi_munic_2, 
  var = "NBI", 
  inches = 0.3,
  symbols = "square",
  border = "white",
  lwd = .5,
  legend.var.pos = "topright", 
  legend.var.title.txt = "NBI",
  var2 = "poverty",
  legend.var2.values.order = c("Extreme", "High", 
                               "Intermediate"),
  col = carto.pal(pal1 = "turquoise.pal", n1 = 3),
  legend.var2.pos = "bottomright", 
  legend.var2.title.txt = "Poverty"
) 
# Convención
layoutLayer(title="NBI Distribution in Meta", 
            author = "Samuel Ramírez", 
            sources = "Source: DANE, 2018", 
            scale = 1, tabtitle = TRUE, frame = TRUE)
# Posición de la brújula
north(pos = "topleft")

4.4 Mapa cloroplético con los nombres de los municipios.

A continuación se presenta un mapa cloroplético de los datos NBI con los nombres de cada uno de los municipios del Meta. Este proceso se realiza mediante la combinación de las funciones choroLayer y labelLayer.

library(sf)
library(cartography)
opar <- par(mar = c(0,0,1.2,0))
par(bg="grey25")
plot(st_geometry(nbi_munic_2), col = "#e4e9de", border = "darkseagreen4", 
     bg = "#aadaff", lwd = 0.5)
choroLayer(
  x = nbi_munic_new, 
  var = "NBI",
  method = "geom",
  nclass=5,
  col = carto.pal(pal1 = "purple.pal", n1 = 5),
  border = "white", 
  lwd = 0.5,
  legend.pos = "topright", 
  legend.title.txt = "NBI",
  add = TRUE
) 
labelLayer(
  x = nbi_munic_2, 
  txt = "MUNICIPIO", 
  col= "white", 
  cex = 0.4, 
  font = 4,
  halo = TRUE, 
  bg = "grey25", 
  r = 0.1, 
  overlap = FALSE, 
  show.lines = FALSE
)
layoutLayer(
  title = "Municipalities of Meta",  
  sources = "Source: DANE, 2018",
  author = "Samuel Ramírez", 
  frame = TRUE,
  north = TRUE, 
  tabtitle = TRUE, 
  theme = "taupe.pal"
) 

4.4 Mapas de isopletas.

Un mapa de isopletas es la representación bidimensional de un volumen suavizado, o de una superficie estadística suavizada, mediante el uso de elementos lineales que unen puntos en donde la variable toma un valor constante tal y como ocurre en las curvas de nivel (Morato,2017). A continuación, para realizar un mapa de isopletas, se usarán unos datos referentes a la producción de palma de aceite en el departamento del Meta en el 2018, de modo que, es necesario llamar a la interfaz de R a dicho conjunto de datos:

crops <- read_csv("C:/Users/EQUIPO/Documents/2020-2/Geomatica/INFORME_2/ev_meta.CSV")
## Parsed with column specification:
## cols(
##   COD_DEP = col_double(),
##   DEPARTAMENTO = col_character(),
##   MPIO_CCDGO = col_double(),
##   MUNICIPIO = col_character(),
##   GRUPO = col_character(),
##   SUBGRUPO = col_character(),
##   CULTIVO = col_character(),
##   `DESAGREGACION _REGIONAL _Y _O_ SISTEMA _PRODUCTIVO` = col_character(),
##   YEAR = col_double(),
##   PERIODO = col_character(),
##   AREA_SEMBRADA = col_double(),
##   AREA_COSECHADA = col_double(),
##   PRODUCCION = col_double(),
##   RENDIMIENTO = col_double(),
##   ESTADO_FISICO_PRODUCCION = col_character(),
##   NOMBRE_CIENTIFICO = col_character(),
##   CICLO_DE_CULTIVO = col_character()
## )
head(crops)

Filtrando filas que solo contengan datos sobre la palma de aceite:

crops %>%
  filter(CULTIVO == "PALMA DE ACEITE") -> palma
palma %>%
  filter(PERIODO == "2018") -> palma2018

Revisando el objeto palma2018

head(palma2018)

Creando un nuevo objeto que combine palma2018 con munic

palma2018$MPIO_CCDGO <- as.character(palma2018$MPIO_CCDGO)
palma_munic = left_join(munic, palma2018, by="MPIO_CCDGO")

Revisando el objeto resultante de la combinación:

head(palma_munic)

Ahora, reproyectanto los minicipios:

rep_palma <- st_transform(palma_munic, crs = 3116)

Graficando:

opar <- par(mar = c(0,0,1.2,0))
plot(st_geometry(rep_palma), col = NA, border = "black", bg = "gray")
smoothLayer(
  x = rep_palma, 
  var = 'PRODUCCION',
  typefct = "exponential",
  span = 25000,
  beta = 2,
  nclass = 10,
  col = carto.pal(pal1 = 'blue.pal', n1 = 10),
  border = "grey",
  lwd = 0.1, 
  mask = rep_palma, 
  legend.values.rnd = -3,
  legend.title.txt = "Production",
  legend.pos = "topright", 
  add=TRUE
)
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded datum Unknown based on GRS80 ellipsoid in CRS definition,
##  but +towgs84= values preserved

## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded datum Unknown based on GRS80 ellipsoid in CRS definition,
##  but +towgs84= values preserved

## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded datum Unknown based on GRS80 ellipsoid in CRS definition,
##  but +towgs84= values preserved
layoutLayer(title = "Oil palm Production Distribution in Meta",
            sources = "Sources: DANE and MADR, 2018",
            author = "Samuel Ramírez",
            frame = FALSE, north = FALSE, tabtitle = TRUE, theme = "green.pal")
north(pos = "topleft")

Descragar y guardar mapas de la interfaz de R

Por último, se va a realizar un mapa tambien de la producción de palma de aceite en el Meta, pero esta vez se usarán símbolos proporcionales y mapas cloropléticos, y el resultado se guardará como un archivo .png. Para realizar este último paso, se usarán las herramientas propSymbolsLayer() y choroLayer(), además, el código presentado a continuación, no genera directamente un mapa, por el contrario, guarda el mapa en el archivo de nombre palma2018.png:

# Arbriendo el gráfico
png("C:/Users/EQUIPO/Documents/2020-2/Geomatica/INFORME_2/palma.png", width = 2048, height = 1526)
# Estableciendo márgenes
opar <- par(mar = c(0,0,6,6))
# graficando municipios
plot(st_geometry(rep_palma), col="SlateGray1", border="black",  
     bg = "white", lwd = 0.6)
# Graficando símbolos con coloración cloroplética
propSymbolsChoroLayer(x = rep_palma, var = "PRODUCCION", var2 = "RENDIMIENTO",
                      col = carto.pal(pal1 = "green.pal", n1 = 3,
                                      pal2 = "red.pal", n2 = 3),
                      inches = 0.8, method = "q6",
                      border = "grey50", lwd = 1,
                      legend.title.cex = 2,
                      legend.values.cex = 2,
                      legend.var.pos = "right", 
                      legend.var2.pos = "left",
                      legend.var2.values.rnd = 2,
                      legend.var2.title.txt = "Rendimiento\n(in Ton/Ha)",
                      legend.var.title.txt = "Oil Palm Production in 2018",
                      legend.var.style = "e")
# Graficando etiquetas de municipios
labelLayer(
  x = rep_palma, 
  txt = "MPIO_CNMBR", 
  col= "gray17", 
  cex = 2.0, 
  font = 15,
  halo = FALSE, 
  bg = "white", 
  r = 0.1, 
  overlap = FALSE, 
  show.lines = FALSE
)
# convención 
layoutLayer(title="Oil Palm Production & Yield in Meta, 2018",
            author = "Samuel Ramírez", 
            sources = "Sources: MADR & DANE, 2018", 
            scale = 30, tabtitle = FALSE, frame = TRUE)
# Posición de brújula
north(pos = "topleft")
#
title(main="Oil Palm Production & Yield in Meta, 2018", cex.main=4,
      sub= "Source: MADR & DANE, 2018", cex.sub=4)
graticule = TRUE
par(opar)
#Terminando
dev.off()
## png 
##   2

Oil Palm Production & Yield in Antioquia, 2018

REFERENCIAS

Morato-Moreno, Manuel (2017). «Orígenes de la representación topográfica del terreno en algunos mapas hispanoamericanos del s. XVI». Boletín de la Asociación de Geógrafos Españoles. SLOCUM, T. et al. (2009) Thematic Cartography and Geovisualization. 3rd edition, USA - Prentice Hall Series in Geographic Information Science.