Cómo acceder a una Base de Datos (BD) Access a través de R y las librerías ODBC y DBI

Home / Ecología / Cómo acceder a una Base de Datos (BD) Access a través de R y las librerías ODBC y DBI
Cómo acceder a una Base de Datos (BD) Access a través de R y las librerías ODBC y DBI

En este artículo, vamos a ver cómo acceder a una Base de Datos (BD) Access a través de R y las librerías ODBC y DBI.

Vamos a utilizar una Base de Datos pública y de libre acceso, en este caso el Nomenclátor Geográfico Básico de España (NGBE).

El NGBE es un registro dinámico de información que recoge las denominaciones oficiales referenciadas geográficamente, que deben utilizarse en la cartografía oficial. Forma parte de la Información Geográfica de Referencia por lo que ha de ponerse a disposición de todos los usuarios de forma gratuita, legible e interoperable, según la Directiva Inspire, y la correspondiente Ley 14/2010, de 5 de julio.

El propósito del NGBE es comprender todas las denominaciones oficiales georreferenciadas sobre cartografía topográfica a escalas de 1:25.000 y menores, tanto en castellano como en las lenguas cooficiales correspondientes. Los distintos registros de topónimos se relacionan con sus correspondientes coordenadas y resto de atributos procedentes de la depuración de los topónimos previamente extraídos de la BCN25/BTN25. Las coordenadas se encuentran en el sistema geodésico de referencia ETRS89 tanto en coordenadas geográficas longitud y latitud como en coordenadas X, Y en proyección UTM en sus husos correspondientes 28, 29, 30 y 31.

La información se encuentra disponible en ficheros GML a través de los servicios de descarga WFS y ATOM y en formato mdb de Access en el Centro de Descargas del Centro Nacional de Información Geográfica (CNIG):

http://centrodedescargas.cnig.es/CentroDescargas/index.jsp

Vamos a acceder al NGBE pero también tenéis disponible el Nomenclátor Geográfico de Muncipios y Entidades de Población, también desde el enlace al CNIG.

#Librería ODBC – conectividad ODBC con Bases de Datos

install.packages(«odbc»)

library(odbc)

# Librería DBI – permite comunicación con BD relacional

install.packages(«DBI»)

library(DBI)

#Listar drivers

odbc::odbcListDrivers()

#Si no aparece «Microsoft Access dBASE Driver» tendréis que instalar el driver de DB Access:

#Windows — https://www.microsoft.com/en-us/download/confirmation.aspx?id=54920

#Ruta a la Base de datos de Access

file_NGBE = «E:/SHP/NGBE/NGBE.accdb»

#Conexión a BD Access. Indicamos encoding

con <- dbConnect(odbc::odbc(), .connection_string = paste0(«Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=»,file_NGBE,»;»),encoding = «latin1»)

#Listar tablas

dbListTables(con) #Debería devolver una relación de tablas, entre ellas NGBE

#Listar campos de la BD

dbListFields(con, «NGBE»)

Base de Datos

Base de Datos

#Leer tabla

dbReadTable(con, «NGBE»)

#Guardar BD en data.frame

NGBE <- dbReadTable(con, «NGBE»)

#Ver datos

head(NGBE)

#Eliminar columnas con NA en todos sus registros

NGBE <- NGBE[, colSums(is.na(NGBE)) != nrow(NGBE)]

#Listar código-texto NGBE únicos

unique(NGBE$codigo_ngbe_text)

Base de Datos

Base de Datos

#Librería dplyr

library(dplyr)

#Filtrar datos por texto con dplyr

Hidro <- dplyr::filter(NGBE, grepl(«Hidrografía»,codigo_ngbe_text))

View(head(Hidro))

#Representar registros a través de coordenadas

plot(Hidro$long_etrs89_regcan95,Hidro$lat_etrs89_regcan95, xlab=«longitud», ylab=«latitud»))

Base de Datos

Base de Datos

#Filtrar datos por coordenadas

Canarias <- subset(NGBE, NGBE$lat_etrs89_regcan95<30 & NGBE$long_etrs89_regcan95<10)

#Representar registros filtrados

plot(Canarias$long_etrs89_regcan95, Canarias$lat_etrs89_regcan95, xlab=«longitud», ylab=«latitud»))

#Recuperar datos a BD con consulta SQL

query_p20 <- dbGetQuery(con, «SELECT * FROM NGBE WHERE provincias_id = ’20′») #Guipuzkoa

plot(query_p20$long_etrs89_regcan95, query_p20$lat_etrs89_regcan95, xlab=«longitud», ylab=«latitud»)

Esperamos que hayas puesto en práctica todos los pasos. Si quieres aprender más, apúntate en nuestros cursos de Análisis espacial con R y Análisis de regresión y modelado espacial en R.

Autor: RemOT Technologies.

Fuente

Leave a Reply

Your email address will not be published.