title: “Cesar” output: Angelica Mrtinez Ariza

install.packages(c("tidyverse"))
install.packages(c("sf"))

Iniciamos instalando de librerias tidyverse y sf.

Posteriormente estas se deben ejecutar.

library(tidyverse)
library(sf)

La libreria sf describe cómo los objetos en el mundo real pueden representarse en computadoras, con énfasis en la geometría espacial de estos objetos. También describe cómo dichos objetos pueden almacenarse y recuperarse de las bases de datos, y qué operaciones geométricas deben definirse para ellos

  1. Lectura de datos vectoriales

Nos basamos en shapefiles bajados con antelacion de la pagina diva.gis .

deptos <- read_sf("./COL_adm1.shp")

El próximo paso es acceder a los datos mismos. Si los datos son muy numerosos,mostrarlos todos puede llevar un tiempo, por ello la función head() permite previsualizar los primeros 6 datos de la tabla. Cada fila tendrá un indice como etiqueta y cada columna un nombre de variable.

head(deptos)
st_crs(deptos)
  1. Visualizacion de datos espaciales usando ggplot

Se van a revisar algunas de las funciones de ggplot

Es posible utilizar cualquier sistema de referencia de coordenadas para trazar los datos. Se debe utilizar un sistema de referencia de coordenadas que se haya definido explícitamente para e país o región.

ggplot() + geom_sf(data = deptos) 

Se usa CRS un sistema usado en Canada y este es el resultado.

ggplot() + geom_sf(data = deptos) + coord_sf(crs=st_crs(3978))

Si se necesita usar CRS es necesario convertir el objeto espacial de EPSG4326 a EPSG:32618.

deptos_utm <- st_transform(deptos, crs = st_crs(32618))
deptos_utm
ggplot() + geom_sf(data = deptos_utm)

4 Filtrar datos geoespaciales basados en atributos.

Como fue relatado al inicio, solo estamos interesadosen el peratamento del Cesar. Y se puede filtar solamente la información que nos es util.

cesar <-  deptos %>%   filter(NAME_1 == "Cesar")

Para ver la grafica tenemos que usar el siguiente código

ggplot() + geom_sf(data = cesar)

Tambien se puede visualizar el grafico con los municipios del departamento.

munic <-  read_sf("./COL_adm2.shp")
mun_cesar <- munic %>% filter(NAME_1 == "Cesar")
ggplot() + geom_sf(data = mun_cesar) 

Para ciertas actividades mas adelante , es necesario conocer el centroide del departamento,que puede no ser exacto con la latitud y longitud.

mun_cesar
cesar_points<- st_centroid(mun_cesar)
cesar_points <- cbind(mun_cesar, st_coordinates(st_centroid(mun_cesar$geometry)))
ggplot(cesar) +
    geom_sf() +
    geom_sf(data = cesar_points, fill = "antiquewhite") + 
    geom_text(data = cesar_points, aes(x=X, y=Y,label = ID_2), size = 2) +
    coord_sf(xlim = c(-75, -72), ylim = c(7.6, 11), expand = FALSE)

Se adjunta la libreria scales

library(scales)

Y cada vez el mapa se puede mejorar mas.

ggplot(cesar) + 
  geom_sf(data=cesar_points, aes(x=X, y=Y, fill =       ID_2), color = "black", size = 0.55) +geom_text(data = cesar_points, aes(x=X, y=Y,label = ID_2), size = 2) +
  theme(aspect.ratio=2)+
  scale_fill_distiller(name="ID_2", palette = "YlGn", breaks = pretty_breaks(n = 12))+
  labs(title="Otro mapa del Cesar")
ggsave("cesar_municipios.pdf")
ggsave("map_cesar.png", width = 6, height = 6, dpi = "screen")

5.Visualizar datos usando leflet

Se instala el paquete leflet.

install.packages("leaflet")
library(leaflet)

Para usar la biblioteca, necesitamos convertir de características simples a puntos espaciales

ant_points <- as(cesar_points, 'Spatial')
head(ant_points)

Se puede hallar el area de los municipios, con el paquete lwgeom

install.packages("lwgeom")
library(lwgeom)

Se puede calcular el área de cada municipio en metros cuadrados.

mun_cesar$area <- st_area(mun_cesar)

Ahora se va a calcular en kilometros cuadarados

mun_cesar$km2 <- mun_cesar$area/(1000000)

Revisemos la informacion que tenemos de las areas de los municipios.

mun_cesar$km2

Se necesita de nuevo una conversión de características simples a polígonos espaciales:

ces_mun <- as(mun_cesar, 'Spatial')
head(ces_mun)

Vamos a alistar la imagen

bins <- c(0, 50, 100, 200, 300, 500, 1000, 2000, Inf)
pal <- colorBin("YlOrRd", domain = ces_mun$km2, bins = bins)


labels <- mun_cesar$NAME_2

labels
m <- leaflet(ces_mun) %>%
  setView(-73.5, 10, 8)  %>% addPolygons(
  fillColor = ~pal(km2),
  weight = 2,
  opacity = 1,
  color = "white",
  dashArray = "3",
  fillOpacity = 0.7,
  highlight = highlightOptions(
    weight = 5,
    color = "#666",
    dashArray = "",
    fillOpacity = 0.7,
    bringToFront = TRUE),
  label = labels) %>%
  addLegend(pal = pal, values = ~km2, opacity = 0.7, title = NULL,
    position = "bottomright")
m

Se puede mejorar el mapa ya que se cuentan con muchos codigos para hacerlo.

leaflet() %>%
  addProviderTiles(providers$Esri.WorldImagery, options= providerTileOptions(opacity = 0.99)) %>%
  addPolygons(data = ces_mun, popup= ces_mun$NAME_2,
    stroke = TRUE, fillOpacity = 0.25, smoothFactor = 0.25
  )

Se subirá una foto panoramica de la ciudad de Valledupar,usando las utilidades addProvider

leaflet(amz_mun) %>%
  setView(-73.25,10,46,15) %>%
  addProviderTiles(providers$Esri.WorldImagery, options = providerTileOptions(opacity = 
  0.99))
  addPolygons (data = amz_mun, popup = amz_mun$NAME_2,
              stroke =TRUE, fillopacity = 0.25, smoothFactor = 0.25     )
  
LS0tCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0CiAgaHRtbF9kb2N1bWVudDogZGVmYXVsdAotLS0KdGl0bGU6ICJDZXNhciIKb3V0cHV0OiBBbmdlbGljYSBNcnRpbmV6IEFyaXphCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKGMoInRpZHl2ZXJzZSIpKQpgYGAKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoYygic2YiKSkKYGBgCgpJbmljaWFtb3MgaW5zdGFsYW5kbyBkZSBsaWJyZXJpYXMgdGlkeXZlcnNlIHkgc2YuCgpQb3N0ZXJpb3JtZW50ZSBlc3RhcyBzZSBkZWJlbiBlamVjdXRhci4KYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKYGBge3J9CmxpYnJhcnkoc2YpCmBgYAogTGEgbGlicmVyaWEgc2YgZGVzY3JpYmUgY8OzbW8gbG9zIG9iamV0b3MgZW4gZWwgbXVuZG8gcmVhbCBwdWVkZW4gcmVwcmVzZW50YXJzZSBlbiBjb21wdXRhZG9yYXMsIGNvbiDDqW5mYXNpcyBlbiBsYSBnZW9tZXRyw61hIGVzcGFjaWFsIGRlIGVzdG9zIG9iamV0b3MuIFRhbWJpw6luIGRlc2NyaWJlIGPDs21vIGRpY2hvcyBvYmpldG9zIHB1ZWRlbiBhbG1hY2VuYXJzZSB5IHJlY3VwZXJhcnNlIGRlIGxhcyBiYXNlcyBkZSBkYXRvcywgeSBxdcOpIG9wZXJhY2lvbmVzIGdlb23DqXRyaWNhcyBkZWJlbiBkZWZpbmlyc2UgcGFyYSBlbGxvcwogCiAKMi4gTGVjdHVyYSBkZSBkYXRvcyB2ZWN0b3JpYWxlcwoKTm9zIGJhc2Ftb3MgZW4gc2hhcGVmaWxlcyBiYWphZG9zIGNvbiBhbnRlbGFjaW9uIGRlIGxhIHBhZ2luYSBkaXZhLmdpcyAuCgoKYGBge3J9CmRlcHRvcyA8LSByZWFkX3NmKCIuL0NPTF9hZG0xLnNocCIpCmBgYApFbCBwcsOzeGltbyBwYXNvIGVzIGFjY2VkZXIgYSBsb3MgZGF0b3MgbWlzbW9zLiBTaSBsb3MgZGF0b3Mgc29uIG11eSBudW1lcm9zb3MsbW9zdHJhcmxvcyB0b2RvcyBwdWVkZSBsbGV2YXIgdW4gdGllbXBvLCBwb3IgZWxsbyBsYSBmdW5jacOzbiBoZWFkKCkgcGVybWl0ZSBwcmV2aXN1YWxpemFyIGxvcyBwcmltZXJvcyA2IGRhdG9zIGRlIGxhIHRhYmxhLiBDYWRhIGZpbGEgdGVuZHLDoSB1biBpbmRpY2UgY29tbyBldGlxdWV0YSB5IGNhZGEgY29sdW1uYSB1biBub21icmUgZGUgdmFyaWFibGUuCmBgYHtyfQpoZWFkKGRlcHRvcykKYGBgCmBgYHtyfQpzdF9jcnMoZGVwdG9zKQpgYGAKCjMuIFZpc3VhbGl6YWNpb24gZGUgZGF0b3MgZXNwYWNpYWxlcyB1c2FuZG8gZ2dwbG90CgoKU2UgdmFuIGEgcmV2aXNhciBhbGd1bmFzIGRlIGxhcyBmdW5jaW9uZXMgZGUgZ2dwbG90CgpFcyBwb3NpYmxlIHV0aWxpemFyIGN1YWxxdWllciBzaXN0ZW1hIGRlIHJlZmVyZW5jaWEgZGUgY29vcmRlbmFkYXMgcGFyYSB0cmF6YXIgbG9zIGRhdG9zLiBTZSBkZWJlICB1dGlsaXphciB1biBzaXN0ZW1hIGRlIHJlZmVyZW5jaWEgZGUgY29vcmRlbmFkYXMgcXVlIHNlIGhheWEgZGVmaW5pZG8gZXhwbMOtY2l0YW1lbnRlIHBhcmEgZSBwYcOtcyBvIHJlZ2nDs24uCmBgYHtyfQpnZ3Bsb3QoKSArIGdlb21fc2YoZGF0YSA9IGRlcHRvcykgCmBgYAoKU2UgdXNhIENSUyB1biBzaXN0ZW1hIHVzYWRvIGVuIENhbmFkYSB5IGVzdGUgZXMgZWwgcmVzdWx0YWRvLgoKYGBge3J9CmdncGxvdCgpICsgZ2VvbV9zZihkYXRhID0gZGVwdG9zKSArIGNvb3JkX3NmKGNycz1zdF9jcnMoMzk3OCkpCmBgYApTaSBzZSBuZWNlc2l0YSB1c2FyIENSUyBlcyBuZWNlc2FyaW8gY29udmVydGlyIGVsIG9iamV0byBlc3BhY2lhbCBkZSBFUFNHNDMyNiBhIEVQU0c6MzI2MTguCgoKYGBge3J9CmRlcHRvc191dG0gPC0gc3RfdHJhbnNmb3JtKGRlcHRvcywgY3JzID0gc3RfY3JzKDMyNjE4KSkKYGBgCgpgYGB7cn0KZGVwdG9zX3V0bQpgYGAKCmBgYHtyfQpnZ3Bsb3QoKSArIGdlb21fc2YoZGF0YSA9IGRlcHRvc191dG0pCmBgYAo0IEZpbHRyYXIgZGF0b3MgZ2VvZXNwYWNpYWxlcyBiYXNhZG9zIGVuIGF0cmlidXRvcy4KCkNvbW8gZnVlIHJlbGF0YWRvIGFsIGluaWNpbywgc29sbyBlc3RhbW9zIGludGVyZXNhZG9zZW4gZWwgcGVyYXRhbWVudG8gZGVsIENlc2FyLgpZIHNlIHB1ZWRlIGZpbHRhciBzb2xhbWVudGUgbGEgaW5mb3JtYWNpw7NuIHF1ZSBub3MgZXMgdXRpbC4KYGBge3J9CmNlc2FyIDwtICBkZXB0b3MgJT4lICAgZmlsdGVyKE5BTUVfMSA9PSAiQ2VzYXIiKQpgYGAKClBhcmEgdmVyIGxhIGdyYWZpY2EgdGVuZW1vcyBxdWUgdXNhciBlbCBzaWd1aWVudGUgY8OzZGlnbwpgYGB7cn0KZ2dwbG90KCkgKyBnZW9tX3NmKGRhdGEgPSBjZXNhcikKYGBgCgpUYW1iaWVuIHNlIHB1ZWRlIHZpc3VhbGl6YXIgZWwgZ3JhZmljbyBjb24gbG9zIG11bmljaXBpb3MgZGVsIGRlcGFydGFtZW50by4KCmBgYHtyfQptdW5pYyA8LSAgcmVhZF9zZigiLi9DT0xfYWRtMi5zaHAiKQptdW5fY2VzYXIgPC0gbXVuaWMgJT4lIGZpbHRlcihOQU1FXzEgPT0gIkNlc2FyIikKZ2dwbG90KCkgKyBnZW9tX3NmKGRhdGEgPSBtdW5fY2VzYXIpIAoKYGBgCgpQYXJhIGNpZXJ0YXMgYWN0aXZpZGFkZXMgbWFzIGFkZWxhbnRlICwgZXMgbmVjZXNhcmlvIGNvbm9jZXIgIGVsIGNlbnRyb2lkZSBkZWwgZGVwYXJ0YW1lbnRvLHF1ZSBwdWVkZSBubyBzZXIgZXhhY3RvIGNvbiBsYSBsYXRpdHVkIHkgbG9uZ2l0dWQuCgpgYGB7cn0KbXVuX2Nlc2FyCmBgYApgYGB7cn0KY2VzYXJfcG9pbnRzPC0gc3RfY2VudHJvaWQobXVuX2Nlc2FyKQpgYGAKCmBgYHtyfQpjZXNhcl9wb2ludHMgPC0gY2JpbmQobXVuX2Nlc2FyLCBzdF9jb29yZGluYXRlcyhzdF9jZW50cm9pZChtdW5fY2VzYXIkZ2VvbWV0cnkpKSkKYGBgCgpgYGB7cn0KZ2dwbG90KGNlc2FyKSArCiAgICBnZW9tX3NmKCkgKwogICAgZ2VvbV9zZihkYXRhID0gY2VzYXJfcG9pbnRzLCBmaWxsID0gImFudGlxdWV3aGl0ZSIpICsgCiAgICBnZW9tX3RleHQoZGF0YSA9IGNlc2FyX3BvaW50cywgYWVzKHg9WCwgeT1ZLGxhYmVsID0gSURfMiksIHNpemUgPSAyKSArCiAgICBjb29yZF9zZih4bGltID0gYygtNzUsIC03MiksIHlsaW0gPSBjKDcuNiwgMTEpLCBleHBhbmQgPSBGQUxTRSkKYGBgCgoKU2UgYWRqdW50YSBsYSBsaWJyZXJpYSBzY2FsZXMgCgpgYGB7cn0KbGlicmFyeShzY2FsZXMpCmBgYAoKIFkgY2FkYSB2ZXogZWwgbWFwYSBzZSBwdWVkZSBtZWpvcmFyIG1hcy4KIApgYGB7cn0KZ2dwbG90KGNlc2FyKSArIAogIGdlb21fc2YoZGF0YT1jZXNhcl9wb2ludHMsIGFlcyh4PVgsIHk9WSwgZmlsbCA9ICAgICAgIElEXzIpLCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAwLjU1KSArZ2VvbV90ZXh0KGRhdGEgPSBjZXNhcl9wb2ludHMsIGFlcyh4PVgsIHk9WSxsYWJlbCA9IElEXzIpLCBzaXplID0gMikgKwogIHRoZW1lKGFzcGVjdC5yYXRpbz0yKSsKICBzY2FsZV9maWxsX2Rpc3RpbGxlcihuYW1lPSJJRF8yIiwgcGFsZXR0ZSA9ICJZbEduIiwgYnJlYWtzID0gcHJldHR5X2JyZWFrcyhuID0gMTIpKSsKICBsYWJzKHRpdGxlPSJPdHJvIG1hcGEgZGVsIENlc2FyIikKYGBgCmBgYHtyfQpnZ3NhdmUoImNlc2FyX211bmljaXBpb3MucGRmIikKYGBgCgoKYGBge3J9Cmdnc2F2ZSgibWFwX2Nlc2FyLnBuZyIsIHdpZHRoID0gNiwgaGVpZ2h0ID0gNiwgZHBpID0gInNjcmVlbiIpCmBgYAoKCjUuVmlzdWFsaXphciBkYXRvcyB1c2FuZG8gbGVmbGV0CgoKU2UgaW5zdGFsYSBlbCBwYXF1ZXRlIGxlZmxldC4KCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygibGVhZmxldCIpCmBgYApgYGB7cn0KbGlicmFyeShsZWFmbGV0KQpgYGAKCgpQYXJhIHVzYXIgbGEgYmlibGlvdGVjYSwgbmVjZXNpdGFtb3MgY29udmVydGlyIGRlIGNhcmFjdGVyw61zdGljYXMgc2ltcGxlcyBhIHB1bnRvcyBlc3BhY2lhbGVzCgpgYGB7cn0KYW50X3BvaW50cyA8LSBhcyhjZXNhcl9wb2ludHMsICdTcGF0aWFsJykKCgpgYGAKCmBgYHtyfQpoZWFkKGFudF9wb2ludHMpCmBgYAoKU2UgcHVlZGUgaGFsbGFyIGVsIGFyZWEgZGUgbG9zIG11bmljaXBpb3MsIGNvbiBlbCBwYXF1ZXRlIGx3Z2VvbQoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoImx3Z2VvbSIpCmBgYAoKCmBgYHtyfQpsaWJyYXJ5KGx3Z2VvbSkKYGBgCgpTZSBwdWVkZSBjYWxjdWxhciBlbCDDoXJlYSBkZSBjYWRhIG11bmljaXBpbyBlbiBtZXRyb3MgY3VhZHJhZG9zLgpgYGB7cn0KbXVuX2Nlc2FyJGFyZWEgPC0gc3RfYXJlYShtdW5fY2VzYXIpCmBgYAoKQWhvcmEgc2UgdmEgYSBjYWxjdWxhciBlbiBraWxvbWV0cm9zIGN1YWRhcmFkb3MKYGBge3J9Cm11bl9jZXNhciRrbTIgPC0gbXVuX2Nlc2FyJGFyZWEvKDEwMDAwMDApCmBgYAoKUmV2aXNlbW9zIGxhIGluZm9ybWFjaW9uIHF1ZSB0ZW5lbW9zIGRlIGxhcyBhcmVhcyBkZSBsb3MgbXVuaWNpcGlvcy4KCmBgYHtyfQptdW5fY2VzYXIka20yCmBgYApTZSBuZWNlc2l0YSBkZSBudWV2byAgdW5hIGNvbnZlcnNpw7NuIGRlIGNhcmFjdGVyw61zdGljYXMgc2ltcGxlcyBhIHBvbMOtZ29ub3MgZXNwYWNpYWxlczoKYGBge3J9CmNlc19tdW4gPC0gYXMobXVuX2Nlc2FyLCAnU3BhdGlhbCcpCmBgYAoKYGBge3J9CmhlYWQoY2VzX211bikKYGBgCgpWYW1vcyBhIGFsaXN0YXIgbGEgaW1hZ2VuCmBgYHtyfQpiaW5zIDwtIGMoMCwgNTAsIDEwMCwgMjAwLCAzMDAsIDUwMCwgMTAwMCwgMjAwMCwgSW5mKQpwYWwgPC0gY29sb3JCaW4oIllsT3JSZCIsIGRvbWFpbiA9IGNlc19tdW4ka20yLCBiaW5zID0gYmlucykKCgpsYWJlbHMgPC0gbXVuX2Nlc2FyJE5BTUVfMgoKbGFiZWxzCmBgYApgYGB7cn0KbSA8LSBsZWFmbGV0KGNlc19tdW4pICU+JQogIHNldFZpZXcoLTczLjUsIDEwLCA4KSAgJT4lIGFkZFBvbHlnb25zKAogIGZpbGxDb2xvciA9IH5wYWwoa20yKSwKICB3ZWlnaHQgPSAyLAogIG9wYWNpdHkgPSAxLAogIGNvbG9yID0gIndoaXRlIiwKICBkYXNoQXJyYXkgPSAiMyIsCiAgZmlsbE9wYWNpdHkgPSAwLjcsCiAgaGlnaGxpZ2h0ID0gaGlnaGxpZ2h0T3B0aW9ucygKICAgIHdlaWdodCA9IDUsCiAgICBjb2xvciA9ICIjNjY2IiwKICAgIGRhc2hBcnJheSA9ICIiLAogICAgZmlsbE9wYWNpdHkgPSAwLjcsCiAgICBicmluZ1RvRnJvbnQgPSBUUlVFKSwKICBsYWJlbCA9IGxhYmVscykgJT4lCiAgYWRkTGVnZW5kKHBhbCA9IHBhbCwgdmFsdWVzID0gfmttMiwgb3BhY2l0eSA9IDAuNywgdGl0bGUgPSBOVUxMLAogICAgcG9zaXRpb24gPSAiYm90dG9tcmlnaHQiKQpgYGAKYGBge3J9Cm0KYGBgCgoKU2UgIHB1ZWRlIG1lam9yYXIgZWwgbWFwYSB5YSBxdWUgc2UgY3VlbnRhbiBjb24gbXVjaG9zIGNvZGlnb3MgcGFyYSBoYWNlcmxvLgoKYGBge3J9CmxlYWZsZXQoKSAlPiUKICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRFc3JpLldvcmxkSW1hZ2VyeSwgb3B0aW9ucz0gcHJvdmlkZXJUaWxlT3B0aW9ucyhvcGFjaXR5ID0gMC45OSkpICU+JQogIGFkZFBvbHlnb25zKGRhdGEgPSBjZXNfbXVuLCBwb3B1cD0gY2VzX211biROQU1FXzIsCiAgICBzdHJva2UgPSBUUlVFLCBmaWxsT3BhY2l0eSA9IDAuMjUsIHNtb290aEZhY3RvciA9IDAuMjUKICApCmBgYAoKU2UgIHN1Ymlyw6EgdW5hIGZvdG8gcGFub3JhbWljYSBkZSBsYSBjaXVkYWQgZGUgVmFsbGVkdXBhcix1c2FuZG8gIGxhcyB1dGlsaWRhZGVzIGFkZFByb3ZpZGVyCgoKYGBge3J9CmxlYWZsZXQoYW16X211bikgJT4lCiAgc2V0VmlldygtNzMuMjUsMTAsNDYsMTUpICU+JQogIGFkZFByb3ZpZGVyVGlsZXMocHJvdmlkZXJzJEVzcmkuV29ybGRJbWFnZXJ5LCBvcHRpb25zID0gcHJvdmlkZXJUaWxlT3B0aW9ucyhvcGFjaXR5ID0gCiAgMC45OSkpCiAgYWRkUG9seWdvbnMgKGRhdGEgPSBhbXpfbXVuLCBwb3B1cCA9IGFtel9tdW4kTkFNRV8yLAogICAgICAgICAgICAgIHN0cm9rZSA9VFJVRSwgZmlsbG9wYWNpdHkgPSAwLjI1LCBzbW9vdGhGYWN0b3IgPSAwLjI1ICAgICApCiAgCgoKCgoKCgo=