Este es el cuaderno de cuatro que los estudiantes de Geomatica Basica deben escribir para comenzar con R & RStudio. Su objetivo es aprender a unir atributos no espaciales con datos geoespaciales. Ilustraremos el tema uniendo una característica espacial que representa a los municipios de Valle del Cauca (es decir, un shapefile proporcionado por DANE, 2017) y un marco de datos no espaciales con estadísticas agrícolas (es decir, un csv proporcionado por el Ministerio de Agricultura y Desarrollo Rural, 2020). .
Comencemos a cargar varias bibliotecas, en particular dplyr:
library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
-- Attaching packages ---------------------------------- tidyverse 1.3.0 --
v ggplot2 3.3.3 v purrr 0.3.4
v tibble 3.0.6 v dplyr 1.0.5
v tidyr 1.1.3 v stringr 1.4.0
v readr 1.4.0 v forcats 0.5.1
-- Conflicts ------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
library(dplyr)
library(ggplot2)
library(sf)
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
Empezamos leyendo un archivo con estadísticas de EVA para Valle del Cauca .
eva_valle <- read_csv2(file = "C:/Users/LUISA CARRION/Documents/EVA_final.csv")
i Using ',' as decimal and '.' as grouping mark. Use `read_delim()` for more control.
-- Column specification ---------------------------------------------------
cols(
COD_DEPTO = col_double(),
DEPTO = col_character(),
COD_MUN = col_double(),
MUNICIPIO = col_character(),
GRUPO = col_character(),
SUBGRUPO = col_character(),
CULTIVO = col_character(),
DESAGRE = col_character(),
YEAR = col_double(),
PERIODO = col_character(),
Ha_Siembra = col_double(),
Ha_cosecha = col_double(),
ton_Prod = col_double(),
RENDIM = col_double(),
CICLO = col_character()
)
eva_valle
Utilizaremos el shapefile correspondiente a Marco Geoestadistico Departamental que se encuentra disponible en DANE Geoportal.
Comencemos a leer los datos usando la biblioteca sf:
mun_valle <- sf::st_read("C:/Users/LUISA CARRION/Downloads/76_VALLE_DEL_CAUCA/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\LUISA CARRION\Downloads\76_VALLE_DEL_CAUCA\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
Simple feature collection with 42 features and 9 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -77.54977 ymin: 3.091239 xmax: -75.70724 ymax: 5.047394
geographic CRS: WGS 84
mun_valle
Simple feature collection with 42 features and 9 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -77.54977 ymin: 3.091239 xmax: -75.70724 ymax: 5.047394
geographic CRS: WGS 84
First 10 features:
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC
1 76 76001 CALI 1536
2 76 76036 ANDALUCÍA Ordenanza 38 de Abril 25 de 1921
3 76 76041 ANSERMANUEVO Ordenanza 29 de 1925
4 76 76054 ARGELIA Ordenanza 15 de 1956
5 76 76111 BUGA 1555
6 76 76113 BUGALAGRANDE 1791
7 76 76122 CAICEDONIA Ordenanza 21 del 20 de Abril de 1923
8 76 76126 CALIMA Ordenanza 49 de Junio 23 de 1939
9 76 76130 CANDELARIA 1797
10 76 76147 CARTAGO 1863
MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area
1 563.04276 2017 VALLE DEL CAUCA 1.1636697 0.045733211
2 110.46042 2017 VALLE DEL CAUCA 0.6651004 0.008984851
3 305.45118 2017 VALLE DEL CAUCA 0.9460442 0.024871077
4 90.79604 2017 VALLE DEL CAUCA 0.4538261 0.007391017
5 825.86513 2017 VALLE DEL CAUCA 2.0063716 0.067157337
6 396.78132 2017 VALLE DEL CAUCA 1.0336063 0.032279294
7 166.98369 2017 VALLE DEL CAUCA 0.6465900 0.013590500
8 793.49323 2017 VALLE DEL CAUCA 1.5441977 0.064484981
9 296.46056 2017 VALLE DEL CAUCA 0.8709866 0.024086066
10 248.16005 2017 VALLE DEL CAUCA 0.8955580 0.020211481
geometry
1 MULTIPOLYGON (((-76.59175 3...
2 MULTIPOLYGON (((-76.22406 4...
3 MULTIPOLYGON (((-76.01558 4...
4 MULTIPOLYGON (((-76.14316 4...
5 MULTIPOLYGON (((-76.31608 3...
6 MULTIPOLYGON (((-76.15131 4...
7 MULTIPOLYGON (((-75.8539 4....
8 MULTIPOLYGON (((-76.51747 4...
9 MULTIPOLYGON (((-76.30455 3...
10 MULTIPOLYGON (((-75.94518 4...
Calculemos el área de cada municipio:
mun_valle$KM2 <- st_area(st_transform(mun_valle, 3116))/1E6
mun_valle$KM2 <- as.numeric(mun_valle$KM2)
mun_valle$KM2 <- round(mun_valle$KM2,3)
min(mun_valle$KM2)
[1] 41.861
max(mun_valle$KM2)
[1] 6292.414
Hagamos un mapa de municipios:
library(leaflet)
bins <- c(0, 150, 300, 450, 600, 750, 900, 1200, 1600)
pal <- colorBin("RdYlGn", domain = mun_valle$KM2, bins = bins)
mapa <- leaflet(data = mun_valle) %>%
addTiles() %>%
addPolygons(label = ~KM2,
popup = ~MPIO_CNMBR,
fillColor = ~pal(KM2),
color = "#444444",
weight = 1,
smoothFactor = 0.5,
opacity = 1.0,
fillOpacity = 0.5,
highlightOptions = highlightOptions(color = "white", weight = 2, bringToFront = TRUE)
) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addLegend("bottomright", pal = pal, values = ~KM2,
title = "Municipalities extent [Km2] (DANE, 2018)",
opacity = 1
)
Some values were outside the color scale and will be treated as NA
mapa
####5.1 La tarea de unión
Podemos usar la función left_join, proporcionada por el paquete dplyr, para unir los municipios y las estadísticas agrícolas.
Necesitamos un atributo común (o variable compartida) en el que basar la unión izquierda. El mejor atributo es una identificación. En mun_valle, el atributo MPIO_CCDGO parece estar bien. En eva_valle, el atributo correspondiente es COD_MUN.
Sin embargo, el atributo MPIO_CCDGO es una cadena:
class(mun_valle$MPIO_CCDGO)
[1] "character"
Y el atributo COD_MUN es numérico:
class(eva_valle$COD_MUN)
[1] "numeric"
Para poder hacer la unión, necesitamos cambiar tanto el tipo de datos como el contenido del código que identifica a cada municipio. Para esta tarea, es una buena idea crear una copia de los datos estadísticos originales. Con este enfoque, cualquier movimiento en falso no estropeará los datos originales.
Procedamos paso a paso:
mun_valle$COD_MUN <- as.double(mun_valle$MPIO_CCDGO)
class(mun_valle$COD_MUN)
[1] "numeric"
Vimos en un cuaderno anterior varias funciones para “editar” un tibble. Filtremos el tibble EVA por tipo de cultivo. Además, seleccionaremos varias columnas.
cafe_valle <- eva_valle %>% filter(CULTIVO == "CAFE") %>% dplyr::select(MUNICIPIO, COD_MUN, YEAR, PERIODO, ton_Prod, RENDIM)
cafe_valle
head(cafe_valle)
tail(cafe_valle)
unique(cafe_valle$YEAR)
[1] 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
unique(cafe_valle$PERIODO)
[1] "2007" "2008" "2009" "2010" "2011" "2012" "2013" "2014" "2015" "2016"
[11] "2017" "2018"
cafe_valle %>%
gather("YEAR", "PERIODO", "ton_Prod", "RENDIM" , key = variable, value = number)
head(cafe_valle)
tail(cafe_valle)
summary(cafe_valle)
MUNICIPIO COD_MUN YEAR PERIODO
Length:468 Min. : 761 Min. :2007 Length:468
Class :character 1st Qu.:76041 1st Qu.:2010 Class :character
Mode :character Median :76248 Median :2012 Mode :character
Mean :63721 Mean :2012
3rd Qu.:76616 3rd Qu.:2015
Max. :76892 Max. :2018
ton_Prod RENDIM
Min. : 14.0 Min. :0.2000
1st Qu.: 346.0 1st Qu.:0.7000
Median : 659.5 Median :0.8800
Mean : 1407.0 Mean :0.8841
3rd Qu.: 1544.8 3rd Qu.:1.0500
Max. :10154.0 Max. :1.8700
Antes de continuar, revisemos varias funciones proporcionadas por el paquete tidyr: - recopilar () hace que los datos “amplios” sean más largos - spread () hace que los datos “largos” sean más amplios - separar () divide una sola columna en varias columnas - unite () combina varias columnas en una sola columna
cafe_valle %>% replace(is.na(.), 0) -> cafe_valle2
cafe_valle %>% group_by(MUNICIPIO, COD_MUN, YEAR) %>%
summarize(ton_Prod=sum(ton_Prod)) -> cafe_valle2
`summarise()` has grouped output by 'MUNICIPIO', 'COD_MUN'. You can override using the `.groups` argument.
head(cafe_valle2)
tail(cafe_valle2)
cafe_valle2 %>%
group_by(COD_MUN) %>%
gather("ton_Prod", key = variable, value = number) %>%
unite(combi, variable, YEAR) %>%
pivot_wider(names_from = combi, values_from = number, values_fill = 0) -> cafe_valle3
head(cafe_valle3)
tail(cafe_valle3)
Ahora, podemos unir los atributos no espaciales al objeto de característica espacial simple:
mun_valle_cafe = left_join(mun_valle, cafe_valle3, by="COD_MUN")
summary(mun_valle_cafe)
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
Length:42 Length:42 Length:42
Class :character Class :character Class :character
Mode :character Mode :character Mode :character
MPIO_CRSLC MPIO_NAREA MPIO_NANO DPTO_CNMBR
Length:42 Min. : 41.86 Min. :2017 Length:42
Class :character 1st Qu.: 191.01 1st Qu.:2017 Class :character
Mode :character Median : 266.71 Median :2017 Mode :character
Mean : 492.04 Mean :2017
3rd Qu.: 431.81 3rd Qu.:2017
Max. :6292.50 Max. :2017
Shape_Leng Shape_Area KM2 COD_MUN
Min. :0.4538 Min. :0.003409 Min. : 41.86 Min. :76001
1st Qu.:0.7223 1st Qu.:0.015552 1st Qu.: 191.01 1st Qu.:76127
Median :0.9059 Median :0.021696 Median : 266.72 Median :76341
Mean :1.1602 Mean :0.039988 Mean : 492.04 Mean :76413
3rd Qu.:1.3207 3rd Qu.:0.035099 3rd Qu.: 431.81 3rd Qu.:76658
Max. :6.5953 Max. :0.510779 Max. :6292.41 Max. :76895
MUNICIPIO ton_Prod_2007 ton_Prod_2008 ton_Prod_2009
Length:42 Min. : 36.0 Min. : 85.0 Min. : 42.0
Class :character 1st Qu.: 215.2 1st Qu.: 365.5 1st Qu.: 297.2
Mode :character Median : 573.0 Median : 610.5 Median : 746.0
Mean :1346.8 Mean :1736.4 Mean :1655.5
3rd Qu.: 974.8 3rd Qu.:2106.8 3rd Qu.:1819.2
Max. :8284.0 Max. :8284.0 Max. :8764.0
NA's :10 NA's :10 NA's :10
ton_Prod_2010 ton_Prod_2011 ton_Prod_2012 ton_Prod_2013
Min. : 90.0 Min. : 86.0 Min. : 14.0 Min. : 75.0
1st Qu.: 452.5 1st Qu.: 450.2 1st Qu.: 433.2 1st Qu.: 351.0
Median : 869.5 Median : 987.0 Median : 772.0 Median : 548.5
Mean : 1984.4 Mean :1816.9 Mean :1697.7 Mean :1231.0
3rd Qu.: 2488.5 3rd Qu.:2137.0 3rd Qu.:2241.0 3rd Qu.:1457.2
Max. :10154.0 Max. :8377.0 Max. :8587.0 Max. :5161.0
NA's :10 NA's :10 NA's :10 NA's :10
ton_Prod_2014 ton_Prod_2015 ton_Prod_2016 ton_Prod_2017
Min. : 100.0 Min. : 138.0 Min. : 162.0 Min. : 142.0
1st Qu.: 382.2 1st Qu.: 463.5 1st Qu.: 482.0 1st Qu.: 419.8
Median : 614.0 Median : 750.5 Median : 786.5 Median : 668.0
Mean :1395.6 Mean :1587.9 Mean :1611.5 Mean :1402.8
3rd Qu.:1630.8 3rd Qu.:2210.2 3rd Qu.:2160.2 3rd Qu.:1928.2
Max. :5757.0 Max. :6108.0 Max. :5895.0 Max. :6212.0
NA's :10 NA's :10 NA's :10 NA's :10
ton_Prod_2018 geometry
Min. : 139.0 MULTIPOLYGON :42
1st Qu.: 438.0 epsg:4326 : 0
Median : 737.5 +proj=long...: 0
Mean :1386.5
3rd Qu.:1855.5
Max. :5906.0
NA's :10
head(mun_valle_cafe[,1:10])
Simple feature collection with 6 features and 10 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -76.70708 ymin: 3.273407 xmax: -75.8498 ymax: 4.888
geographic CRS: WGS 84
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC
1 76 76001 CALI 1536
2 76 76036 ANDALUCÍA Ordenanza 38 de Abril 25 de 1921
3 76 76041 ANSERMANUEVO Ordenanza 29 de 1925
4 76 76054 ARGELIA Ordenanza 15 de 1956
5 76 76111 BUGA 1555
6 76 76113 BUGALAGRANDE 1791
MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area KM2
1 563.04276 2017 VALLE DEL CAUCA 1.1636697 0.045733211 563.044
2 110.46042 2017 VALLE DEL CAUCA 0.6651004 0.008984851 110.460
3 305.45118 2017 VALLE DEL CAUCA 0.9460442 0.024871077 305.451
4 90.79604 2017 VALLE DEL CAUCA 0.4538261 0.007391017 90.796
5 825.86513 2017 VALLE DEL CAUCA 2.0063716 0.067157337 825.865
6 396.78132 2017 VALLE DEL CAUCA 1.0336063 0.032279294 396.781
geometry
1 MULTIPOLYGON (((-76.59175 3...
2 MULTIPOLYGON (((-76.22406 4...
3 MULTIPOLYGON (((-76.01558 4...
4 MULTIPOLYGON (((-76.14316 4...
5 MULTIPOLYGON (((-76.31608 3...
6 MULTIPOLYGON (((-76.15131 4...
tail(mun_valle_cafe[,1:10])
Simple feature collection with 6 features and 10 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -77.54977 ymin: 3.091239 xmax: -76.03081 ymax: 4.59646
geographic CRS: WGS 84
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC MPIO_NAREA
37 76 76400 LA UNIÓN Ordenanza 15 de 1890 120.8565
38 76 76377 LA CUMBRE 1913 255.4149
39 76 76364 JAMUNDÍ 1536 628.9328
40 76 76100 BOLÍVAR Ordenanza 2 de 1884 743.5721
41 76 76233 DAGUA Ordenanza 23 de 1918 916.3248
42 76 76109 BUENAVENTURA 1872 6292.5008
MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area KM2
37 2017 VALLE DEL CAUCA 0.5389192 0.009837728 120.875
38 2017 VALLE DEL CAUCA 1.0352627 0.020752137 255.415
39 2017 VALLE DEL CAUCA 1.6698163 0.051071669 628.933
40 2017 VALLE DEL CAUCA 1.5372119 0.060482648 743.572
41 2017 VALLE DEL CAUCA 1.7089016 0.074431347 916.325
42 2017 VALLE DEL CAUCA 6.5952727 0.510778519 6292.414
geometry
37 MULTIPOLYGON (((-76.06523 4...
38 MULTIPOLYGON (((-76.57613 3...
39 MULTIPOLYGON (((-76.70091 3...
40 MULTIPOLYGON (((-76.27584 4...
41 MULTIPOLYGON (((-76.79765 3...
42 MULTIPOLYGON (((-77.23178 4...
Carguemos las bibliotecas necesarias para hacer el mapa:
library(RColorBrewer)
library(leaflet)
Hagamos un mapa de la producción total de café en 2018:
bins <- c(0, 100, 300, 1000, 3000, 3500, 4000, 4500, 5000, 5500, 6000)
pal <- colorBin("PiYG", domain = mun_valle_cafe$ton_Prod_2018, bins = bins)
mapa2 <- leaflet(data = mun_valle_cafe) %>%
addTiles() %>%
addPolygons(label = ~ton_Prod_2018,
popup = ~MPIO_CNMBR,
fillColor = ~pal(ton_Prod_2018),
color = "#444444",
weight = 1,
smoothFactor = 0.5,
opacity = 1.0,
fillOpacity = 0.5,
highlightOptions = highlightOptions(color = "white", weight = 2, bringToFront = TRUE)
) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addLegend("bottomright", pal = pal, values = ~ton_Prod_2018,
title = "Producción de café en Valle del Cauca [Ton] (2018)",
opacity = 1
)
mapa2
Ahora vamos a repetir el proceso para hacer un mapa diferente, en este caso el área cosechada de cultivo de café en cada municipio.
Recordemos los nombres de las variables EVA:
summary(eva_valle)
COD_DEPTO DEPTO COD_MUN MUNICIPIO
Min. :76 Length:15774 Min. : 761 Length:15774
1st Qu.:76 Class :character 1st Qu.:76041 Class :character
Median :76 Mode :character Median :76275 Mode :character
Mean :76 Mean :62048
3rd Qu.:76 3rd Qu.:76622
Max. :76 Max. :76895
GRUPO SUBGRUPO CULTIVO
Length:15774 Length:15774 Length:15774
Class :character Class :character Class :character
Mode :character Mode :character Mode :character
DESAGRE YEAR PERIODO Ha_Siembra
Length:15774 Min. :2006 Length:15774 Min. : 0.0
Class :character 1st Qu.:2009 Class :character 1st Qu.: 6.0
Mode :character Median :2012 Mode :character Median : 16.0
Mean :2012 Mean : 102.7
3rd Qu.:2015 3rd Qu.: 50.0
Max. :2018 Max. :8781.0
Ha_cosecha ton_Prod RENDIM CICLO
Min. : 0.0 Min. : 0 Min. : 0.05 Length:15774
1st Qu.: 6.0 1st Qu.: 32 1st Qu.: 3.56 Class :character
Median : 16.0 Median : 112 Median : 8.39 Mode :character
Mean : 200.3 Mean : 13686 Mean : 20.87
3rd Qu.: 55.0 3rd Qu.: 360 3rd Qu.: 15.00
Max. :32932.0 Max. :4546116 Max. :92010.00
NA's :141
Ahora, aplique las funciones de filtro y selección para obtener el área cosechada en café:
cafe_valle <- eva_valle %>% filter(CULTIVO == "CAFE") %>% dplyr::select(MUNICIPIO, COD_MUN, YEAR, PERIODO, Ha_cosecha)
Luego, agreguemos los valores PERIODO en YEAR:
cafe_valle %>% group_by(MUNICIPIO, COD_MUN, YEAR) %>%
summarize(Ha_cosecha=sum(Ha_cosecha)) -> cafe_valle2
`summarise()` has grouped output by 'MUNICIPIO', 'COD_MUN'. You can override using the `.groups` argument.
Luego, cambiemos el formato de las estadísticas a un formato más amplio:
cafe_valle2 %>%
group_by(COD_MUN) %>%
gather("Ha_cosecha", key = variable, value = number) %>%
unite(combi, variable, YEAR) %>%
pivot_wider(names_from = combi, values_from = number, values_fill = 0) -> cafe_valle3
Ahora es el momento de hacer el join:
mun_cafe_valle = left_join(mun_valle, cafe_valle3, by="COD_MUN")
Revisemos el resultado:
mun_cafe_valle
Simple feature collection with 42 features and 24 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -77.54977 ymin: 3.091239 xmax: -75.70724 ymax: 5.047394
geographic CRS: WGS 84
First 10 features:
DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC
1 76 76001 CALI 1536
2 76 76036 ANDALUCÍA Ordenanza 38 de Abril 25 de 1921
3 76 76041 ANSERMANUEVO Ordenanza 29 de 1925
4 76 76054 ARGELIA Ordenanza 15 de 1956
5 76 76111 BUGA 1555
6 76 76113 BUGALAGRANDE 1791
7 76 76122 CAICEDONIA Ordenanza 21 del 20 de Abril de 1923
8 76 76126 CALIMA Ordenanza 49 de Junio 23 de 1939
9 76 76130 CANDELARIA 1797
10 76 76147 CARTAGO 1863
MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area KM2
1 563.04276 2017 VALLE DEL CAUCA 1.1636697 0.045733211 563.044
2 110.46042 2017 VALLE DEL CAUCA 0.6651004 0.008984851 110.460
3 305.45118 2017 VALLE DEL CAUCA 0.9460442 0.024871077 305.451
4 90.79604 2017 VALLE DEL CAUCA 0.4538261 0.007391017 90.796
5 825.86513 2017 VALLE DEL CAUCA 2.0063716 0.067157337 825.865
6 396.78132 2017 VALLE DEL CAUCA 1.0336063 0.032279294 396.781
7 166.98369 2017 VALLE DEL CAUCA 0.6465900 0.013590500 166.984
8 793.49323 2017 VALLE DEL CAUCA 1.5441977 0.064484981 793.497
9 296.46056 2017 VALLE DEL CAUCA 0.8709866 0.024086066 296.456
10 248.16005 2017 VALLE DEL CAUCA 0.8955580 0.020211481 248.224
COD_MUN MUNICIPIO Ha_cosecha_2007 Ha_cosecha_2008
1 76001 CALI 460 400
2 76036 ANDALUCIA 265 219
3 76041 ANSERMANUEVO 5992 5694
4 76054 ARGELIA 3365 2252
5 76111 BUGA 470 492
6 76113 BUGALAGRANDE 2323 23
7 76122 CAICEDONIA 5933 6119
8 76126 CALIMA EL DARIEN 600 633
9 76130 <NA> NA NA
10 76147 CARTAGO 695 495
Ha_cosecha_2009 Ha_cosecha_2010 Ha_cosecha_2011 Ha_cosecha_2012
1 414 424 544 505
2 174 184 231 231
3 5254 5366 5434 4633
4 1983 2103 1983 2022
5 489 493 530 530
6 2219 2219 248 248
7 4774 4854 4615 4549
8 577 597 895 760
9 NA NA NA NA
10 451 458 399 411
Ha_cosecha_2013 Ha_cosecha_2014 Ha_cosecha_2015 Ha_cosecha_2016
1 514 606 606 590
2 257 243 210 195
3 427 4249 4125 3961
4 2107 2143 2109 1995
5 422 453 451 435
6 159 1566 1586 1557
7 3846 3722 3578 3421
8 356 399 385 367
9 NA NA NA NA
10 289 339 343 308
Ha_cosecha_2017 Ha_cosecha_2018 geometry
1 616 614 MULTIPOLYGON (((-76.59175 3...
2 210 201 MULTIPOLYGON (((-76.22406 4...
3 3793 3283 MULTIPOLYGON (((-76.01558 4...
4 1931 1248 MULTIPOLYGON (((-76.14316 4...
5 430 415 MULTIPOLYGON (((-76.31608 3...
6 1535 1574 MULTIPOLYGON (((-76.15131 4...
7 3235 3174 MULTIPOLYGON (((-75.8539 4....
8 350 351 MULTIPOLYGON (((-76.51747 4...
9 NA NA MULTIPOLYGON (((-76.30455 3...
10 279 294 MULTIPOLYGON (((-75.94518 4...
Finalmente, se hace el mapa:
bins <- c(0, 100, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000)
pal <- colorBin("Paired", domain = mun_cafe_valle$Ha_cosecha_2018, bins = bins)
mapa3 <- leaflet(data = mun_cafe_valle) %>%
addTiles() %>%
addPolygons(label = ~Ha_cosecha_2018,
popup = ~MPIO_CNMBR,
fillColor = ~pal(Ha_cosecha_2018),
color = "#444444",
weight = 1,
smoothFactor = 0.5,
opacity = 1.0,
fillOpacity = 0.5,
highlightOptions = highlightOptions(color = "white", weight = 2, bringToFront = TRUE)
) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addLegend("bottomright", pal = pal, values = ~Ha_cosecha_2018,
title = "Área cosechada de café en Valle del Cauca [Ha] (2018)",
opacity = 1
)
mapa3