Este cuaderno corresponde al segundo informe técnico de la asignatura Geomatica Básica, fue realizado mediante la plataforma RStudio Cloud por una estudiante vinculada al programa de Ingeniería Agronómica de la Universidad Nacional de colombia. En este cuaderno, se aplican los conceptos de cartografia temática para plasmar datos de las Evaluaciones Agropecuarias Municipales y Necesidades Básicas insatisfechas (NBI) en el Departamento de Vichada
La cartografia temática , se basa en mapas que se encargan de representar un tema o fenómeno en particular empleando un lenguaje gráfico o visual. Los mapas temáticos se componen de un mapa base que provee la localización geográfica y la información de los atributos; El tipo de información que se desee transmitir y el publico al que está dirigido constituyen su propósito y a partir de el, se eligen los elementos y el tipo de mapa que usemos para representar dicha información.Dentro de los tipos de mapas se encuentran los mapas de coropletas , simbolos graduados , isolineas y puntos.
Este tipo de mapas se encarga de representar las variables cuantitativas en un área definida a través de una variable visual, principalmente a través del color,donde este ultimo puede corresponder a un rango de valores o a un valor en espécifico.En los mapas de coropletas los límites de las áreas no se relacionan con las variables y en la mayoria de casos se elige a los límites administrativos para este propósito
Se encarga de representar variables cuantitativas a través del tamaño de los símbolos ,es decir el tamaño del simbolo es proporcional al valor que toma el fenómeno que se quiere representar,la forma de los simbolos empleados en el mapa debe ser la misma , estos simbolos pueden estar representados por por diferentes figuras como cuadros o barras aunque generalmente se opta por el círculo
Este tipo de mapas utiliza isolíneas para plasmar variables cuantitativas y contínuas . El tipo de dato representado generalmente es escalar y proveniente de una medida , incluye valores tridimensionales como la elevación.Las isolíneas representan la unión de puntos que tienen el mismo valor de la variable y en los mapas isaritmicos se cumple que existen valores más altos y otros más bajos en comparación con la isolínea
Usa puntos para mostrar variables que representan algún tipo de cantidad .En este tipo de mapa, los puntos se reparten mediante un patrón espacial y cada uno de ellos representa una o varias unidades pero , todos tienen la misma forma y tamaño a lo largo de un mapa
Para realizar los mapas se usarán los datos correspondientes a las Necesidades Básicas Insatisfechas
NBI del censo nacional de población y vivienda en el año 2018 realizados por el Departamento Administrativo Nacional de Estadística , Algunos ejemplos de mapas temáticos,relacionados con variables demográficas a nivel nacional tambiém pueden encontrarse aqui.
El NBI es uno de los métodos multidimensionales de la medición de la pobreza , busca identificar cuales hogares son pobres en función de las necesidades básicas.Según el DANE ,las necesidades consideradas básicas se miden a través de indicadores simples los cuales son : Viviendas inadecuadas, Viviendas con hacinamiento crítico, Viviendas con servicios inadecuados, Viviendas con alta dependencia económica y Viviendas con niños en edad escolar que no asisten a la escuela.
Los datos disponibles para NBI , fueron descargados en formato .xlsx y por medio de Microsoft Excel se eliminaron los datos de los municipios que no correspondian al departamento de Vichada así como varias filas que no contenian información o que correspondían a imagenes institucionales
Luego , de los datos de NBI disponibles para los municipios de Vichada, se conservaron las columnas que se refieren a la totalidad del municipio, es decir ,también se eliminaron las columnas de “cabecera” y “zona rural” . Finalmente, se guardaron los datos resultantes como “NBI_VICHADA.xlsx” en el computador y fueron cargados al espacio de trabajo en RStudio Cloud en la carpeta “Vichada”
Primero, se limpia la memoria
rm(list=ls())
Posteriormente se instalan las librerias necesarias
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)
Luego, se cargan las ibrerias
library(pacman)
pacman::p_load(tidyverse, rgeos, raster, sf, cartography, SpatialPosition,readxl)
Mediante el siguiente código, se lee el archivo .xlsx que fue importado al espacio de trabajo
nbi <- read_excel("./NBI_VICHADA.xlsx")
Con la función “head” se puede ver los atributos de las primeras filas de la variable nbi
head(nbi)
Mediante el siguiente código se averiguará cual es el municipio con mayor porcentaje de NBI
nbi %>%slice(which.max(NBI)) -> nbi_max
nbi_max
Además , se usará “wich.min” para conocer cual es el municipio con menor porcentaje del NBI
nbi %>% slice(which.min(NBI)) -> nbi_min
nbi_min
Luego, se ordenan los municipios por NBI en orden descendente
nbi %>%arrange(desc(NBI)) -> nbi_ord
nbi_ord
En primera medida, se lee archivo Shapefile correspondiente a los municipios de Vichada con ayuda del paquete sf
Vichada_munic <- st_read("./ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
Reading layer `MGN_MPIO_POLITICO' from data source `/cloud/project/Vichada/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
Simple feature collection with 4 features and 9 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -71.07793 ymin: 2.737109 xmax: -67.4098 ymax: 6.324317
CRS: 4326
Se puede ver que hay en el objeto “Vichada Munic”, hay una columna llamada MPIO_CNMBR, para ver que hay dentro de este atributo se puede hacer uso de la función “head()”
head(Vichada_munic$MPIO_CNMBR)
[1] SANTA ROSALÍA PUERTO CARREÑO LA PRIMAVERA CUMARIBO
Levels: CUMARIBO LA PRIMAVERA PUERTO CARREÑO SANTA ROSALÍA
Para realizar la unión entre el objeto “Vichada_munic” y los datos de NBI se hace uso de la función left_join considerando que , la variable clave que corresponde al código de los municipios tiene diferente nombre en cada objeto
nbi_Vmunic = left_join(Vichada_munic, nbi, by=c("MPIO_CCDGO"="CODIGO"))
Se seleccionan las variables del nombre del municipio, el código , el nbi y se almacenan en el objeto “check_nbi_munic”
nbi_Vmunic %>%dplyr::select(MUNICIPIO, MPIO_CCDGO, NBI) -> check_nbi_munic
head(check_nbi_munic)
Simple feature collection with 4 features and 3 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -71.07793 ymin: 2.737109 xmax: -67.4098 ymax: 6.324317
CRS: 4326
MUNICIPIO MPIO_CCDGO NBI geometry
1 SANTA ROSALÍA 99624 36.52150 POLYGON ((-70.65378 5.37297...
2 PUERTO CARREÑO 99001 41.84217 POLYGON ((-67.80972 6.32431...
3 LA PRIMAVERA 99524 46.47443 POLYGON ((-69.03359 6.21869...
4 CUMARIBO 99773 87.37048 POLYGON ((-68.47074 5.55046...
Ahora, se reproyectan los municipios
nbi_munic_new <- st_transform(nbi_Vmunic, crs = 3116)
Para esta sección , se hará uso de la libreria Cartography , esta tiene como objetivo crear mapas temáticos con una calidad visual de aquellos que se construyen en su software GIS.Esta libreria cuenta con funciones intuitivas y es compatible con los flujos de trabajo comunes en R. La libreria Cartography usa elemetos sf o sp para producir gráficos base.La mayoria de los componentes internos de este paquete se basan en funcionalidades sf y por esto, se suelen usar los objetos espaciales en formato sf
Se usa la función getTiles() o tilesLayer para descargar y mostrar los mosaicos de OpenStreetMap. La función propSymbolsLayer() muestra simbolos con áreas proporcionales a una variable cuantitativa ; Se hace uso del argumento pulgadas para personalizar el tamaño de los simbolos, estos simbolos pueden ser circulos,cuadrados y barras, para este mapa en particular se usarán los circulos como simbolos
mapa_base <- getTiles(x = nbi_munic_new, type = "OpenStreetMap", zoom = 7, cachedir = TRUE, crop = FALSE)
En el siguiente código se establecen las márgenes y de forma posterior, se agregan diferentes opciones para la función propSymbolsLayer() , entre estas opciones se encuentra el tipo de simbolo, el color , el tamaño y la posición de la convención o leyenda que ayudará a interpretar el mapa . Con layoutLayer() se traza una capa de diseño , en esta se incluyen elementos como el título del mapa , la escala , el nombre del autor y las fuentes de información . Por último se agreg la flecha que indica el norte
opar <- par(mar = c(0,0,1.2,0))
tilesLayer(x = mapa_base)
plot(st_geometry(nbi_munic_new), col = NA, border = "gray20", add=TRUE)
propSymbolsLayer(x = nbi_munic_new, var = "NBI", inches = 0.21, col = "salmon3",legend.title.cex = 0.8,
legend.values.cex = 0.55, legend.pos = "right", legend.title.txt ="NBI", legend.style = "c",legend.frame = FALSE)
layoutLayer(title = " Distribución de NBI en Vichada",
sources = "Fuentes: DANE, 2018\n© OpenStreetMap",
author = " Angie Alejandra Juyo ",
frame = TRUE, north = FALSE, tabtitle = TRUE, scale = "auto")
north(pos = "topleft")
En los mapas de coropletas , las áreas se sombrean de acuerdo al cambio en una variable cuantitativa determinada , este tipo de mapas es usado para representar razones o indices y en este caso la varible cuantitativa a utilizar es el porcentaje de necesidades básicas insatisfechas
La función que permite realizar mapas de coropletas es choroLayer() .Los argumentos nclass , method y breaks permiten personalizar la clasificación de la variable, la función getbreaks() también permiten clasificar la variable fuera de choroLayer() . Las paletas de colores se definen con col y se puede crear un conjunto de colores con carto.pal()
opar <- par(mar = c(0,0,1.2,0))
par(bg="grey90")
plot(st_geometry(nbi_munic_new), col = NA, border = NA, bg = "white")
choroLayer(x = nbi_munic_new, var = "NBI",method = "geom",nclass=5,
col = carto.pal(pal1 = "red.pal", n1 = 5),
border = "gray20", lwd = 0.5,legend.pos = "topright", legend.title.txt = "NBI",add = TRUE)
layoutLayer(title = "Distribución NBI Vichada", sources = "Fuente: DANE, 2018",author = "Angie Alejaandra Juyo ", frame = TRUE, north = FALSE, tabtitle = TRUE, col="black")
north(pos = "topleft")
De los datos presentados con anterioridad y la información obtenida se concluye que en el departamento Vichada ,el municipio de Cumaribo tiene el porcentaje de NBI más alto .El objetivo de estos indicadores y , en esta stuación específica el catalogar la poblacion de este municipio como pobre , es permitir a los organismos a nivel nacional y departamental la toma de desiciones y el desarrollo de planes que busquen satisfacer el tipo de necesidades que presentan sus habitantes.
La función propSymbolsTypoLayer() permite representar variables cuantitativas y cualitativas de forma simultánea , se trata de un símbolo cuyo tamaño depende de la variable cuantitativa y cuyo color varía de acuerdo a la variable cualitativa, utilizando una combinación de los argumentos propSymbolsLayer() y typolayer().Para poder realizar este mapa se debe crear una función cualitativa con ayuda de la función mutate()
nbi_munic_p <- dplyr::mutate(nbi_munic_new, Pobreza = ifelse(MISERIA > 20, "Extrema", ifelse(HACINAMIENTO > 5, "Alta","Intermedia")))
El nuevo atributo pobreza , se almacenó en el objeto “nbi_munic_2” , y se clasificó a traves de los valores definidos a continuación : Si la variable MISERIA es mayor a 20, se catalogará como pobreza extrema ; Aquellos municipios que posean un valor de miseria menor a 20 se clasifican de acuerdo a los valores de HACINAMIENTO , si este último es mayor a 5 se clasificará como pobreza alta , de lo contrario será pobreza intermedia.Al usar la función head() , se ve la nueva columna con la variable pobreza clasificada con los parámetros definidos con anterioridad
head(nbi_munic_p)
Simple feature collection with 4 features and 21 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: 1332850 ymin: 794950.2 xmax: 1739856 ymax: 1195302
CRS: EPSG:3116
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
1 99 99624 SANTA ROSALÍA
2 99 99001 PUERTO CARREÑO
3 99 99524 LA PRIMAVERA
4 99 99773 CUMARIBO
MPIO_CRSLC MPIO_NAREA MPIO_NANO DPTO_CNMBR
1 Ordenanza 19 de Noviembre 26 de 1993 3898.569 2017 VICHADA
2 Decreto 1594 de Ago 5 de 1974 12205.614 2017 VICHADA
3 Decreto 676 de Abril13 de 1987 18361.979 2017 VICHADA
4 Ordenanza 66 de Noviembre 22 de 1996 65599.702 2017 VICHADA
Shape_Leng Shape_Area COD_DEP DEPARTAMENTO COD_MUN MUNICIPIO
1 3.296708 0.3167324 99 VICHADA 624 SANTA ROSALÍA
2 5.474851 0.9859169 99 VICHADA 001 PUERTO CARREÑO
3 7.572214 1.4894508 99 VICHADA 524 LA PRIMAVERA
4 18.794383 5.3085803 99 VICHADA 773 CUMARIBO
NBI MISERIA VIVIENDA SERVICIOS HACINAMIENTO INASISTENCIA
1 36.52150 14.47078 25.55127 5.209482 13.50606 2.122381
2 41.84217 24.00106 31.24307 16.326207 21.32489 7.785695
3 46.47443 19.44132 37.02410 8.965983 13.86574 4.201397
4 87.37048 73.55208 75.77214 71.607348 44.92416 12.619512
DEP_ECONOMICA geometry Pobreza
1 12.37596 POLYGON ((1379688 1086961, ... Alta
2 11.40143 POLYGON ((1694871 1195302, ... Extrema
3 12.02974 POLYGON ((1558915 1182093, ... Alta
4 19.81529 POLYGON ((1622218 1108477, ... Extrema
library(sf)
library(cartography)
opar <- par(mar = c(0,0,1.2,0))
plot(st_geometry(nbi_munic_p), col="#fafbff", border="#262624", bg = "#edf2ff", lwd = 0.5)
propSymbolsTypoLayer(x = nbi_munic_p, var = "NBI", inches = 0.7, symbols = "square", border = "white", lwd = .5,legend.var.pos = "left", legend.var.title.txt = "NBI",var2 = "Pobreza", legend.var2.values.order = c("Extrema", "Alta"),col = carto.pal(pal1 = "multi.pal", n1 = 2), legend.var2.pos = "right", legend.var2.title.txt = "Pobreza")
layoutLayer(title="Distribución del NBI en Vichada", author = "Angie Alejandra Juyo", sources = "Fuentes: DANE, 2018", scale = 1, tabtitle = TRUE, frame = TRUE)
north(pos = "topleft")
En el anterior mapa se puede ver que los municipios de Vichada son clasificados con pobreza alta y extrema , esto se debe a que Vichada es considerado como uno de los departamentos más pobres de acuerdo con la medida de Pobreza multidimensional, que es otro método aplicado por el DANE para la medición de la pobreza a nivel nacional con datos tomados de la encuesta nacional de calidad de vida:
En el índice de Viviendas con servicios inadecuados se toma en cuenta el acceso a condiciones sanitarias mínimas.Aunque en los ultimos años se ha ampliado la cobertura de acueducto y alcantarillado en el departamento
El IRCA (Índice de Riesgo de la Calidad del Agua) es un índice expresado a través de porcentajes , este determina el grado de riesgo a la salud relacionado con la calidad de agua para consumo humano a través de el análisis de características físicas , químicas y microbiológicas.El agua se considera apta para el consumo humano cuando este índice está entre 0 - 5 % ,y según los datos del estudio sectorial de los servicios públicos de acueducto y alcantarillado, realizado por la superintendencia de servicios públicos domiciliarios se ha clasificado el agua que llega a la población del Vichada como agua no apta para consumo humano por presentar un índice de 11.8% y 14.8% en los años 2017 y 2018 respectivamente
En el siguiente código se clasificarán las condiciones sanitarias de los municipios de Vichada de acuerdo con el valor que tomen en la variable “SERVICIOS”
nbi_munic_s <- dplyr::mutate(nbi_munic_new, Servicios_inadecuados= ifelse(SERVICIOS > 50, "Muy Bajas", ifelse(SERVICIOS > 16, "Bajas","Aceptables")))
Se comprueba que en el nuevo objeto aparezca la nueva variable cualitativa correctamente clasificada de acuerdo a los valores asignados
head(nbi_munic_s)
Simple feature collection with 4 features and 21 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: 1332850 ymin: 794950.2 xmax: 1739856 ymax: 1195302
CRS: EPSG:3116
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
1 99 99624 SANTA ROSALÍA
2 99 99001 PUERTO CARREÑO
3 99 99524 LA PRIMAVERA
4 99 99773 CUMARIBO
MPIO_CRSLC MPIO_NAREA MPIO_NANO DPTO_CNMBR
1 Ordenanza 19 de Noviembre 26 de 1993 3898.569 2017 VICHADA
2 Decreto 1594 de Ago 5 de 1974 12205.614 2017 VICHADA
3 Decreto 676 de Abril13 de 1987 18361.979 2017 VICHADA
4 Ordenanza 66 de Noviembre 22 de 1996 65599.702 2017 VICHADA
Shape_Leng Shape_Area COD_DEP DEPARTAMENTO COD_MUN MUNICIPIO
1 3.296708 0.3167324 99 VICHADA 624 SANTA ROSALÍA
2 5.474851 0.9859169 99 VICHADA 001 PUERTO CARREÑO
3 7.572214 1.4894508 99 VICHADA 524 LA PRIMAVERA
4 18.794383 5.3085803 99 VICHADA 773 CUMARIBO
NBI MISERIA VIVIENDA SERVICIOS HACINAMIENTO INASISTENCIA
1 36.52150 14.47078 25.55127 5.209482 13.50606 2.122381
2 41.84217 24.00106 31.24307 16.326207 21.32489 7.785695
3 46.47443 19.44132 37.02410 8.965983 13.86574 4.201397
4 87.37048 73.55208 75.77214 71.607348 44.92416 12.619512
DEP_ECONOMICA geometry Servicios_inadecuados
1 12.37596 POLYGON ((1379688 1086961, ... Aceptables
2 11.40143 POLYGON ((1694871 1195302, ... Bajas
3 12.02974 POLYGON ((1558915 1182093, ... Aceptables
4 19.81529 POLYGON ((1622218 1108477, ... Muy Bajas
library(sf)
library(cartography)
opar <- par(mar = c(0,0,1.2,0))
plot(st_geometry(nbi_munic_s), col="#dde0dc", border="#353635", bg ="white", lwd = 0.5)
propSymbolsTypoLayer(x = nbi_munic_s, var = "NBI", inches = 0.35, symbols = "circle", border = "black", lwd = .4, legend.var.pos = "left", legend.var.title.txt = "NBI",var2 = "Servicios_inadecuados", legend.var2.values.order = c("Muy Bajas", "Bajas", "Aceptables"),col = carto.pal(pal1 = "multi.pal", n1 = 3),
legend.var2.pos = "right", legend.var2.title.txt = "Condiciones Sanitarias")
layoutLayer(title="Distribución del NBI en Vichada",
author = "Angie Alejandra Juyo",
sources = "Fuentes: DANE, 2018",
scale = 1 , tabtitle = TRUE, frame = TRUE)
north(pos = "topleft")
En este mapa se combinan las funciones ChoroLayer() y labelLayer() para que se coloreen las áreas correspondientes a municipio de acuerdo con el porcentaje de NBI y además de eso , se pueda visualizar en el mapa el nombre del municipio al cual corresponde cada área
library(sf)
library(cartography)
opar <- par(mar = c(0,0,1.2,0))
par(bg="grey25")
plot(st_geometry(nbi_munic_p), col = "#e4e9de", border = "darkseagreen4",
bg = "grey75", lwd = 0.5)
choroLayer( x = nbi_munic_new, var = "NBI", method = "geom", nclass=5, col = carto.pal(pal1 = "wine.pal", n1 = 5), border = "white", lwd = 0.5, legend.pos = "topright", legend.title.txt = "NBI", add = TRUE)
labelLayer(x = nbi_munic_p, txt = "MUNICIPIO", col= "white", cex = 0.4, font = 4, halo = TRUE, bg = "grey25", r = 0.1, overlap = FALSE, show.lines = FALSE)
layoutLayer( title = "Municipios de Vichada",
sources = "Fuentes: DANE, 2018", author = "Angie Alejandra Juyo",
frame = TRUE,
north = TRUE,
tabtitle = TRUE,
theme = "taupe.pal")
Se realizará un mapa de isopletas para mostrar la distribución de la producción de Yuca en el departamento del Vichada.Los mapas de isopletas se basan en el supuesto de que el fenómeno a representar tiene una distribución continua y a diferencia de los mapas coropléticos los mapas de isopleatas no se rigen por la división territorial. Este tipo de mapas se realizan con ayuda de de la función smoothLayer() que depende en gran medida de la libreria Spatial position , para poder mostrar una capa de isopleta se le asignan una serie de parámetros a la función
Como ya se habia mencionado el mapa corresponderá a la distribución de la producción de Yuca ,por tanto se usará el archivo correspondiente a las evaluaciones agropecuarias municipales que se encuentra en el directorio de trabajo, pues fue usado en un cuaderno anterior para ilustrar las uniones basadas en atibutos.Se usa el siguiente código para leer el archivo “EVA_VICHADA” que se encuentra en formato .xlsx y que contiene estos datos para el año 2018
cultivos2018 <- read_excel("./EVA_VICHADA.xlsx")
Se usa de nuevo la función head para ver el contenido
head(cultivos2018)
Se filtra el cultivo de nuestro interés
cultivos2018 %>%
filter(Cultivo == "YUCA") -> Y2018
Se crea una nueva variable correspondiente al codigo del municipio donde se transforma a caracter y luego a factor para poder realizar de forma posterior la unión con los datos espaciales
Y2018$TEMP <- as.character(Y2018$COD_MUN)
Y2018$MPIO_CCDGO <- as.factor(paste(Y2018$TEMP))
Y_munic = left_join(Vichada_munic, Y2018, by="MPIO_CCDGO")
Se revisa el producto de la unión entre los atributos y la capa espacial
head(Y_munic)
Simple feature collection with 4 features and 24 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -71.07793 ymin: 2.737109 xmax: -67.4098 ymax: 6.324317
CRS: 4326
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
1 99 99624 SANTA ROSALÍA
2 99 99001 PUERTO CARREÑO
3 99 99524 LA PRIMAVERA
4 99 99773 CUMARIBO
MPIO_CRSLC MPIO_NAREA MPIO_NANO DPTO_CNMBR
1 Ordenanza 19 de Noviembre 26 de 1993 3898.569 2017 VICHADA
2 Decreto 1594 de Ago 5 de 1974 12205.614 2017 VICHADA
3 Decreto 676 de Abril13 de 1987 18361.979 2017 VICHADA
4 Ordenanza 66 de Noviembre 22 de 1996 65599.702 2017 VICHADA
Shape_Leng Shape_Area COD_DEP Departamento COD_MUN Municipio
1 3.296708 0.3167324 99 VICHADA 99624 SANTA ROSALIA
2 5.474851 0.9859169 99 VICHADA 99001 PUERTO CARREÑO
3 7.572214 1.4894508 99 VICHADA 99524 LA PRIMAVERA
4 18.794383 5.3085803 99 VICHADA 99773 CUMARIBO
Grupo Subgrupo Cultivo Periodo Area _Sembrada
1 TUBERCULOS Y PLATANOS YUCA YUCA 2018 40
2 TUBERCULOS Y PLATANOS YUCA YUCA 2018 105
3 TUBERCULOS Y PLATANOS YUCA YUCA 2018 90
4 TUBERCULOS Y PLATANOS YUCA YUCA 2018 540
Area_Cosechada Produccion Rendimiento Estado Ciclo TEMP
1 40 280 7.00 TUBERCULO FRESCO ANUAL 99624
2 105 1220 11.62 TUBERCULO FRESCO ANUAL 99001
3 90 1350 15.00 TUBERCULO FRESCO ANUAL 99524
4 540 5680 10.52 TUBERCULO FRESCO ANUAL 99773
geometry
1 POLYGON ((-70.65378 5.37297...
2 POLYGON ((-67.80972 6.32431...
3 POLYGON ((-69.03359 6.21869...
4 POLYGON ((-68.47074 5.55046...
Se reproyectan los municipios y por ultimo se ejecuta el codigo para visualizar el mapa
rep_Y <- st_transform(Y_munic, crs = 3116)
opar <- par(mar = c(0,0,1.2,0))
plot(st_geometry(rep_Y), col = NA, border = "black", bg = "white")
smoothLayer(x = rep_Y, var = 'Produccion', typefct = "exponential", span = 75000, beta = 2, nclass = 6, col = carto.pal(pal1 = 'blue.pal', n1 = 6), border = "grey", lwd = 0.5, mask = rep_Y, legend.values.rnd = -1, legend.title.txt = "Produccion", legend.pos = "topright", add=TRUE)
layoutLayer(title = "Distribución en la producción de Yuca en Vichada",sources = "Fuente: DANE y MADR, 2018",author = "Alejandra Juyo",frame = FALSE, north = FALSE, tabtitle = TRUE, theme = "blue.pal")
north(pos = "topleft")
Ahora se va a realizar otro mapa de producción de Yuca en Vichada para el año 2018. Esta vez se van a usar símbolos proporcionales y mapas de coropletas. La salida se guardará como un archivo .png en el directorio de trabajo.
propSymbolsChoroLaer() crea una mapa de símbolos que son proporcionales a los valores de una primera variable y coloreados para reflejar la clasificación de una segunda variable.
Se utiliza una combinación de argumentos propSymbolsLayer() y ChoroLayer(). El siguiente chunk no muestra un mapa. Para poder visualizarlo se intserta el archivo png con la síntaxis de RMarkdown
png("./yuca_2018.png", width = 2048, height = 1526)
opar <- par(mar = c(0,0,5,5))
plot(st_geometry(rep_Y), col="darkseagreen3", border="darkseagreen4", bg = "white", lwd = 0.6)
propSymbolsChoroLayer(x = rep_Y, var = "Produccion", var2 = "Rendimiento", col = carto.pal(pal1 = "blue.pal", n1 = 3, pal2 = "orange.pal", n2=3), inches = 1, 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(Ton/Ha)", legend.var.title.txt = "Producción de Yuca en 2018", legend.var.style = "e")
labelLayer(x = rep_Y, txt = "MPIO_CNMBR", col= "white", cex = 2.0, font = 4,halo = FALSE, bg = "white", r = 0.1, overlap = FALSE, show.lines = FALSE)
layoutLayer(title="Producción y Rendimiento de Platano 2018", author = "Angie Alejandra Juyo", sources = "Fuentes: MADR & DANE, 2018", scale = 85, tabtitle = FALSE, frame = TRUE)
north(pos = "topleft")
title(main="Cultivo de Yuca en Vichada, 2018", cex.main=3,
sub= "Fuentes: MADR & DANE, 2018", cex.sub=4)
graticule = TRUE
par(opar)
dev.off()
null device
1
.:
Como se habia mencionado de forma anterior el mapa de puntos es utilizado para representar variables que indiquen cantidad, la población es una de ellas , por esto el siguiente ejemplo de mapa temático corresponde a la representación del número de habitantes en los municipios de Vichada en el año 2018 a través de una mapa de puntos
Los datos fueron obtenidos del censo del 2018, se tomó los datos correspondientes a Población Total Censada en Hogares Particulares y en Lugares Especiales de Alojamiento (LEA) por área total en el departamento de interés y se almacenó en el archivo “CENSO.xlsx” ,el archico fue leido mediante la función “read_excel” y se realizó el procedimiento de unión de forma análoga a los mapas representados con aterioridad
poblacion <- read_excel("./CENSO.xlsx")
poblacion$TEMP <- as.character(poblacion$CODIGO)
poblacion$MPIO_CCDGO <- as.factor(paste(poblacion$TEMP))
V_pob = left_join(Vichada_munic, poblacion, by="MPIO_CCDGO")
Se revisa el Join de los atributos con la capa espacial
head(V_pob)
Simple feature collection with 4 features and 14 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -71.07793 ymin: 2.737109 xmax: -67.4098 ymax: 6.324317
CRS: 4326
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC MPIO_NAREA MPIO_NANO
1 99 99624 SANTA ROSALÍA Ordenanza 19 de Noviembre 26 de 1993 3898.569 2017
2 99 99001 PUERTO CARREÑO Decreto 1594 de Ago 5 de 1974 12205.614 2017
3 99 99524 LA PRIMAVERA Decreto 676 de Abril13 de 1987 18361.979 2017
4 99 99773 CUMARIBO Ordenanza 66 de Noviembre 22 de 1996 65599.702 2017
DPTO_CNMBR Shape_Leng Shape_Area CODIGO DEPARTAMENTO MUNICIPIO POBLACION TEMP
1 VICHADA 3.296708 0.3167324 99624 Vichada Santa Rosalía 4026 99624
2 VICHADA 5.474851 0.9859169 99001 Vichada Puerto Carreño 19788 99001
3 VICHADA 7.572214 1.4894508 99524 Vichada La Primavera 9690 99524
4 VICHADA 18.794383 5.3085803 99773 Vichada Cumaribo 43138 99773
geometry
1 POLYGON ((-70.65378 5.37297...
2 POLYGON ((-67.80972 6.32431...
3 POLYGON ((-69.03359 6.21869...
4 POLYGON ((-68.47074 5.55046...
rep_V <- st_transform(V_pob, crs = 3116)
Finalmente se ejecuta el codigo para realizar el mapa de puntos con la función “dotDensityLayer”, en los argumentos se le asignó a cada punto un total de 200 personas
opar <- par(mar = c(0,0,5,5))
plot(st_geometry(rep_V), col="#999999", border="black", bg = "white", lwd = 0.68)
dotDensityLayer(x = rep_V, var = "POBLACION", n=200, pch=1, cex = 0.28, type = "random", col="red", legend.pos = "right", legend.txt = "200 personas", legend.cex = 0.8, legend.col = "black", legend.frame = TRUE)
layoutLayer(title = "Población en Vichada en 2018",sources = "Fuente: DANE",author = "Alejandra Juyo",frame = FALSE, north = FALSE, tabtitle = TRUE)
north(pos = "topleft")
sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.6 LTS
Matrix products: default
BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0
LAPACK: /usr/lib/atlas-base/atlas/liblapack.so.3.0
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 LC_COLLATE=C.UTF-8
[5] LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 LC_PAPER=C.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] readxl_1.3.1 SpatialPosition_2.0.1 cartography_2.4.1 rgeos_0.5-2
[5] forcats_0.5.0 stringr_1.4.0 dplyr_0.8.5 purrr_0.3.3
[9] readr_1.3.1 tidyr_1.0.2 tibble_3.0.1 ggplot2_3.3.0
[13] tidyverse_1.3.0 pacman_0.5.1 sf_0.9-3 raster_3.0-12
[17] sp_1.4-1
loaded via a namespace (and not attached):
[1] Rcpp_1.0.4.6 lubridate_1.7.8 lattice_0.20-38 class_7.3-15 assertthat_0.2.1
[6] digest_0.6.25 R6_2.4.1 cellranger_1.1.0 backports_1.1.5 reprex_0.3.0
[11] evaluate_0.14 e1071_1.7-3 httr_1.4.1 pillar_1.4.3 rlang_0.4.5
[16] rstudioapi_0.11 rmarkdown_2.1 munsell_0.5.0 broom_0.5.5 compiler_3.6.0
[21] modelr_0.1.6 xfun_0.12 base64enc_0.1-3 pkgconfig_2.0.3 htmltools_0.4.0
[26] tidyselect_1.0.0 codetools_0.2-16 fansi_0.4.1 crayon_1.3.4 dbplyr_1.4.2
[31] withr_2.1.2 grid_3.6.0 nlme_3.1-139 jsonlite_1.6.1 gtable_0.3.0
[36] lifecycle_0.2.0 DBI_1.1.0 magrittr_1.5 units_0.6-6 scales_1.1.0
[41] KernSmooth_2.23-15 cli_2.0.2 stringi_1.4.6 fs_1.4.1 xml2_1.3.1
[46] ellipsis_0.3.0 generics_0.0.2 vctrs_0.2.4 tools_3.6.0 glue_1.4.1
[51] hms_0.5.3 yaml_2.2.1 colorspace_1.4-1 isoband_0.2.0 classInt_0.4-3
[56] rvest_0.3.5 knitr_1.28 haven_2.2.0