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
library(readxl)
#xls files
(my_data <- read_excel("CensoAgropecuario.xls"))
New names:
* `` -> ...6
* `` -> ...7
* `` -> ...8
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
vich_censo %>% mapview(zcol="NAME_2", legend=TRUE, col.regions=sf.colors)
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