7 votos

¿Cómo leer una clase de característica en una base de datos geográfica personal de Esri utilizando R?

Tengo clases de características en una geodatabase personal en una máquina Win 8.1 (r 3.4.2, rgdal 1.2-15) y, como se ha mencionado aquí , es necesario que los usuarios de Access también interactúen con ellos.

He ajustado el ejemplo de código encontrado aquí (que funciona perfectamente para una geodatabase de archivos):

require(rgdal)

# The input personal geodatabase
pgdb <- "C:/path/to/your/personalgeodatabase.mdb"

# Confirm the PGeo driver is available
subset(ogrDrivers(), grepl("PGeo", name))

Que vuelve:

   name                 long\_name write  copy isVector
49 PGeo ESRI Personal GeoDatabase FALSE FALSE     TRUE

Entonces, en este punto, ogrListLayers(dsn) falla:

# List all feature classes in a personal geodatabase
fc_list <- ogrListLayers(pgdb)

Error en ogrListLayers(pgdb) : No se puede abrir la fuente de datos

He probado a añadir path.expand:

fc_list <- ogrListLayers(path.expand(pgdb))

Y también he confirmado que para gdal (y así rgdal), que

Para acceder a las bases de datos geográficos personales, introduzca el nombre del archivo .mdb al que desea acceder como nombre de la fuente de datos. En Windows, no se requiere un DSN ODBC.

He accedido con éxito a las clases de características utilizando R-ArcGIS pero requiere una licencia de ArcGIS, por lo que no resuelve realmente el problema.

¿Sugerencias?

0 votos

¿Puede utilizar ogrinfo en la línea de comandos? Veo más errores informativos de que a partir de rgdal::ogrInfo , pero estoy en Linux así que creo que mi problema con un PGeo de prueba está relacionado con ODBC.

0 votos

¡¡¡@spacedman gracias por la sugerencia, corrí ogrInfo y funcionó, luego volvió y corrió orgListLarers y sorprendentemente también funcionó!!! (¡argh!) Sólo puedo sospechar que la instalación de R-ArcGIS cambió algo durante la instalación, ya que creo que es lo único que cambió entre la composición de la pregunta y ahora. Me estoy planteando pedir que se cierre esta pregunta...

0 votos

Retrasa esa opción tan cercana.. Acabo de instalar R en otra máquina (por supuesto ahora @ r 3.4.2, rgdal 1.2-16), y corrió el código de prueba y de nuevo ogrListLayers, y ogrInfo, falló - No voy a instalar R-ArcGIS en este otro (Win 7) máquina por ahora y he añadido una etiqueta para r-puente a esta pregunta. @Spacedman como se sugiere corrí ogrinfo desde la línea de comandos y falló, pero sospecho que este resultado puede enviarnos fuera de tema desde que tuve este éxito impar con rgdal::ogrInfo (ver comentario anterior)

6voto

sgwill Puntos 2444

EDITAR: esta respuesta está desfasada, ya existe un soporte de 64 bits para Access, y rgdal va a desaparecer en un año o así.

Usted está en Windows, así que voy a suponer que está en una máquina de 64 bits, ejecutando R de 64 bits por defecto.

Pruebe a utilizar rgdal::ogrListLayers de la versión de 32 bits de R, puede encontrarlo en la carpeta x86 de la carpeta /bin/ - paralela a la de x64 uno que supongo que estás ejecutando. (Haga clic con el botón derecho del ratón en el acceso directo de R para buscar Propiedades, o utilice R.home y rastrear a partir de ahí. )

Estoy seguro de que es necesario para este controlador, siempre tengo que ejecutar este modo de R para RODBC para estos archivos. Es algo "conocido" en ese modo sólo para expertos en estas cosas :)

0 votos

Bingo - eso es lo que cambió cuando instalé R-ArcGIS, me cambié a R de 32 bits para la plena compatibilidad w/ArcGIS 10.x! muchas gracias @mdsumner

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X