Va a ser un post rápido: estoy usando bastantes datos geográficos y necesitaba la forma de conectarme al servicio de mapas de INDEC.
Acá va un snippet rápido para hacerlo
1. Traemos las librerías a usar:
library(tidyverse)
library(sf)
library(gdalUtils)
2. Definimos la URL del WFS y vemos qué información hay:
wfs <- "WFS:https://geoservicios.indec.gov.ar/geoserver/ows?service=wfs&version=1.0.0&request=GetCapabilities"
info <- ogrinfo(wfs, so = TRUE)
Vemos que hay capas a nivel provincia, departamento y provincia.
3. Elegimos las que queremos traer: en este caso, traemos la tabla de Necesidades Básicas Insatisfechas a nivel departamento:
# Definimos el nombre de la capa tal y como figura en servidor
lay <- "geocenso2010:nbi_dpto"
# Definimos una ruta y un nombre para un archivo
file <- "../../data/nbi_dpto.geojson"
# Ejecutamos la consulta:
ogr2ogr(
src_datasource_name = wfs,
layer = lay,
dst_datasource_name = file ,
f = "geojson",
t_srs = "EPSG:4326",
verbose = TRUE
)
# Leemos el archivo
ind_radio <- st_read(file, stringsAsFactors = TRUE)
## Reading layer `geocenso2010:nbi_dpto' from data source `~\data\nbi_dpto.geojson' using driver `GeoJSON'
## Simple feature collection with 527 features and 11 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: -74.02985 ymin: -90 xmax: -25.02314 ymax: -21.74506
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
El archivo quedó salvado como un geojson y con proyección 4326. Filtremos la Antártida y las Islas del Atlántico Sur y ploteemos el porcentaje de personas en hogares con NBI para cada departamento
ind_filtrado<-ind_dpto %>%
filter(departamento!="Antártida Argentina" & departamento!="Islas del Atlántico Sur")
ggplot() +
geom_sf(data=ind_filtrado, color=NA, aes(fill=personas_con_nbi_porc)) +
scale_fill_viridis_c() +
labs(title = "Porcantaje de personas en hogares con NBI",
subtitle = "Total de departamentos",
fill = "% NBI") +
theme_minimal()
Podemos ver que el mapa está muy bonito:
Y eso es todo, amigos.
Seguimos en breve con nuestra programación habitual (y con la
introducción al tydyverse
).
library(tidyverse)
library(sf)
library(gdalUtils)
wfs <- "WFS:https://geoservicios.indec.gov.ar/geoserver/ows?service=wfs&version=1.0.0&request=GetCapabilities"
info <- ogrinfo(wfs, so = TRUE)
lay <- "geocenso2010:nbi_dpto"
file <- "../../data/nbi_dpto.geojson"
# Ejecutamos la consulta:
ogr2ogr(
src_datasource_name = wfs,
layer = lay,
dst_datasource_name = file ,
f = "geojson",
t_srs = "EPSG:4326",
verbose = TRUE
)
# Salvamos el archivo
ind_radio <- st_read(file, stringsAsFactors = TRUE)
ind_filtrado<-ind_dpto %>%
filter(departamento!="Antártida Argentina" & departamento!="Islas del Atlántico Sur")
ggplot() +
geom_sf(data=ind_filtrado, color=NA, aes(fill=personas_con_nbi_porc)) +
scale_fill_viridis_c() +
labs(title = "Porcantaje de personas en hogares con NBI",
subtitle = "Total de departamentos",
fill = "% NBI") +
theme_minimal()