Este cuaderno muestra cómo agregar atributos a una característica espacial simple.

Primero, insertamos la libreria “sf”

library(sf)

Entonces, leamos un shapefile de los municipios en el Departamento Vichada:

(mun_vich <- read_sf("VICH_mun.shp"))
Simple feature collection with 6 features and 6 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: -71.0978 ymin: 2.7081 xmax: -67.42111 ymax: 6.301989
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs

Ahora, identidicamos la clase de esa variable que se llama ‘mun_Vich’:

class(mun_vich)
[1] "sf"         "tbl_df"     "tbl"        "data.frame"

Ahora, identidicamos los atributos de ‘mun_Vich’:

attributes(mun_vich)
$names
[1] "ISO"       "NAME_0"    "NAME_1"    "NAME_2"    "TYPE_2"    "ENGTYPE_2" "geometry" 

$row.names
[1] 1 2 3 4 5 6

$class
[1] "sf"         "tbl_df"     "tbl"        "data.frame"

$sf_column
[1] "geometry"

$agr
      ISO    NAME_0    NAME_1    NAME_2    TYPE_2 ENGTYPE_2 
     <NA>      <NA>      <NA>      <NA>      <NA>      <NA> 
Levels: constant aggregate identity

Vamos a conocer el sistema de referencia de cooordenadas (CRS):

st_crs(mun_vich)
Coordinate Reference System:
  EPSG: 4326 
  proj4string: "+proj=longlat +datum=WGS84 +no_defs"

Vamos a recuperar los limites (caja envolvente):

st_bbox(mun_vich)
      xmin       ymin       xmax       ymax 
-71.097801   2.708100 -67.421112   6.301989 

Vamos a instalar dos paquetes “lwgeom” y “units”:

install.packages("lwgeom")
Error in install.packages : Updating loaded packages
install.packages("units")
Error in install.packages : Updating loaded packages
#estas librerias nos permiten hacer operaciones geometricas
library(lwgeom)
library(units)

###Calculo de Area nombre de mi variable, peso

library(sf)
(mun_vich$area <- st_area(mun_vich))
Units: [m^2]
[1] 21531911464 20596228439  9857561057 25241785154 19206968858  4320376233

Cambio de area de m^2 a km^2:

set_units(mun_vich$area, km^2)
Units: [km^2]
[1] 21531.911 20596.228  9857.561 25241.785 19206.969  4320.376

Lectura de datos de Censo Agrario:

library(readxl)
#xls files
(my_data <- read_excel("CensoAgropecuario.xls"))
New names:
* `` -> ...6
* `` -> ...7
* `` -> ...8

Unir los datos de censo a una función simple

library(tidyverse)
(vich_data <- my_data %>% 
  filter(DEP == "Vichada"))

Renombrar los datos que se acaban de obtener, y en la columna que corresponde a los municipios, NOMBRE_MUN, colocarle NAME_2

(vich_data <- rename(vich_data, NAME_2=NOMBRE_MUN))

Ahora, es tiempo de hacer una unión “left_join”, se toma el objeto espacial y en la parte derecha se busca los datos y se juntan:

(vich_censo <- left_join(mun_vich, vich_data))
Joining, by = "NAME_2"
Simple feature collection with 6 features and 14 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: -71.0978 ymin: 2.7081 xmax: -67.42111 ymax: 6.301989
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs

Visualizar

vich_censo %>% mapview(zcol="NAME_2", legend=TRUE, col.regions=sf.colors)

Ordenar los datos

Vamos a ordenar los municipios basados en las hectarias de bosque(primero, el que tiene area de bosque mas grande):

(vich_clean <- vich_censo %>% arrange(desc(HA_BOSQUE)))
Simple feature collection with 6 features and 14 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: -71.0978 ymin: 2.7081 xmax: -67.42111 ymax: 6.301989
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
LS0tDQp0aXRsZTogIkV4cGxvcmF0aW9uIGF0cmlidXRlIGRhdGEgb3BlcmF0aW9ucyINCmF1dGhvcjogTGl6ZXRoIENhc3Rybw0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KRXN0ZSBjdWFkZXJubyBtdWVzdHJhIGPDs21vIGFncmVnYXIgYXRyaWJ1dG9zIGEgdW5hIGNhcmFjdGVyw61zdGljYSBlc3BhY2lhbCBzaW1wbGUuDQoNClByaW1lcm8sIGluc2VydGFtb3MgbGEgbGlicmVyaWEgInNmIg0KDQpgYGB7cn0NCmxpYnJhcnkoc2YpDQpgYGANCkVudG9uY2VzLCBsZWFtb3MgdW4gc2hhcGVmaWxlIGRlIGxvcyBtdW5pY2lwaW9zIGVuIGVsIERlcGFydGFtZW50byBWaWNoYWRhOg0KYGBge3J9DQoobXVuX3ZpY2ggPC0gcmVhZF9zZigiVklDSF9tdW4uc2hwIikpDQpgYGANCkFob3JhLCBpZGVudGlkaWNhbW9zIGxhIGNsYXNlIGRlIGVzYSB2YXJpYWJsZSBxdWUgc2UgbGxhbWEgJ211bl9WaWNoJzoNCmBgYHtyfQ0KY2xhc3MobXVuX3ZpY2gpDQpgYGANCkFob3JhLCBpZGVudGlkaWNhbW9zIGxvcyBhdHJpYnV0b3MgZGUgJ211bl9WaWNoJzoNCmBgYHtyfQ0KYXR0cmlidXRlcyhtdW5fdmljaCkNCmBgYA0KVmFtb3MgYSBjb25vY2VyIGVsIHNpc3RlbWEgZGUgcmVmZXJlbmNpYSBkZSBjb29vcmRlbmFkYXMgKENSUyk6DQpgYGB7cn0NCnN0X2NycyhtdW5fdmljaCkNCmBgYA0KVmFtb3MgYSByZWN1cGVyYXIgbG9zIGxpbWl0ZXMgKGNhamEgZW52b2x2ZW50ZSk6DQpgYGB7cn0NCnN0X2Jib3gobXVuX3ZpY2gpDQpgYGANClZhbW9zIGEgaW5zdGFsYXIgZG9zIHBhcXVldGVzICJsd2dlb20iIHkgInVuaXRzIjoNCmBgYHtyfQ0KaW5zdGFsbC5wYWNrYWdlcygibHdnZW9tIikNCmluc3RhbGwucGFja2FnZXMoInVuaXRzIikNCmBgYA0KYGBge3J9DQojZXN0YXMgbGlicmVyaWFzIG5vcyBwZXJtaXRlbiBoYWNlciBvcGVyYWNpb25lcyBnZW9tZXRyaWNhcw0KbGlicmFyeShsd2dlb20pDQpsaWJyYXJ5KHVuaXRzKQ0KYGBgDQojIyNDYWxjdWxvIGRlIEFyZWENCm5vbWJyZSBkZSBtaSB2YXJpYWJsZSwgcGVzbw0KYGBge3J9DQpsaWJyYXJ5KHNmKQ0KKG11bl92aWNoJGFyZWEgPC0gc3RfYXJlYShtdW5fdmljaCkpDQpgYGANCkNhbWJpbyBkZSBhcmVhIGRlIG1eMiBhIGttXjI6DQpgYGB7cn0NCnNldF91bml0cyhtdW5fdmljaCRhcmVhLCBrbV4yKQ0KYGBgDQojIyMgTGVjdHVyYSBkZSBkYXRvcyBkZSBDZW5zbyBBZ3JhcmlvOg0KYGBge3J9DQpsaWJyYXJ5KHJlYWR4bCkNCiN4bHMgZmlsZXMNCihteV9kYXRhIDwtIHJlYWRfZXhjZWwoIkNlbnNvQWdyb3BlY3VhcmlvLnhscyIpKQ0KYGBgDQojIyMgVW5pciBsb3MgZGF0b3MgZGUgY2Vuc28gYSB1bmEgZnVuY2nDs24gc2ltcGxlDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQpgYGB7cn0NCih2aWNoX2RhdGEgPC0gbXlfZGF0YSAlPiUgDQogIGZpbHRlcihERVAgPT0gIlZpY2hhZGEiKSkNCmBgYA0KUmVub21icmFyIGxvcyBkYXRvcyBxdWUgc2UgYWNhYmFuIGRlIG9idGVuZXIsIHkgZW4gbGEgY29sdW1uYSBxdWUgY29ycmVzcG9uZGUgYSBsb3MgbXVuaWNpcGlvcywgTk9NQlJFX01VTiwgY29sb2NhcmxlIE5BTUVfMg0KYGBge3J9DQoodmljaF9kYXRhIDwtIHJlbmFtZSh2aWNoX2RhdGEsIE5BTUVfMj1OT01CUkVfTVVOKSkNCmBgYA0KQWhvcmEsIGVzIHRpZW1wbyBkZSBoYWNlciB1bmEgdW5pw7NuICJsZWZ0X2pvaW4iLCBzZSB0b21hIGVsIG9iamV0byBlc3BhY2lhbCB5IGVuIGxhIHBhcnRlIGRlcmVjaGEgc2UgYnVzY2EgbG9zIGRhdG9zIHkgc2UganVudGFuOg0KYGBge3J9DQoodmljaF9jZW5zbyA8LSBsZWZ0X2pvaW4obXVuX3ZpY2gsIHZpY2hfZGF0YSkpDQpgYGANCg0KDQoNCg0KIyMjIFZpc3VhbGl6YXINCmBgYHtyfQ0KdmljaF9jZW5zbyAlPiUgbWFwdmlldyh6Y29sPSJOQU1FXzIiLCBsZWdlbmQ9VFJVRSwgY29sLnJlZ2lvbnM9c2YuY29sb3JzKQ0KYGBgDQojIyMgT3JkZW5hciBsb3MgZGF0b3MNClZhbW9zIGEgb3JkZW5hciBsb3MgbXVuaWNpcGlvcyBiYXNhZG9zIGVuIGxhcyBoZWN0YXJpYXMgZGUgYm9zcXVlKHByaW1lcm8sIGVsIHF1ZSB0aWVuZSBhcmVhIGRlIGJvc3F1ZSBtYXMgZ3JhbmRlKToNCmBgYHtyfQ0KKHZpY2hfY2xlYW4gPC0gdmljaF9jZW5zbyAlPiUgYXJyYW5nZShkZXNjKEhBX0JPU1FVRSkpKQ0KYGBg