¿Leer la geodatabase de archivos usando R?

12

La geodatabase de archivos (fgdb) incluye numerosas tablas de geodatabase de archivos. Hasta donde yo sé, existen como dbfarchivos, pero están dentro de a Database.gdb.

En ArcCatalog, la ruta del archivo se parece C:\Users\...\Database.gdb\Stats_AA.

¿Cómo leer todos estos dbfarchivos en R(un software estadístico)? ¿Cuál es el camino correcto para el suministro? La función utilizada es read.dbf(en el paquete externo).

Variantes de

test<-read.dbf(file="C:/Users..Database.gdb/Stats_AA.dbf") 

y

test<-read.dbf(file="C:/Users..Database/Stats_AA.dbf") 

no trabajes ¿Cuál es la "forma" correcta del nombre del archivo que se va a usar o si necesito exportar todas las tablas de geodatabase de archivos a otra forma o ubicación?

Yaya
fuente
1
Las geodatabases almacenan geometría en campos de blob no dbf (pero sí el shapefile).
Mapperz
1
Iba a sugerir usar el proveedor oledb de Esri para geodatabases de archivos , sin embargo, parece que R no puede leer oledb . Podría querer votar esa pregunta, y también esta .
Kirk Kuykendall

Respuestas:

4

Una solución simple es usar Table to dBase (multiple) para exportar sus tablas (haga clic con el botón derecho en FGDB> Exportar> To dBase (multiple). También puede usar esta herramienta para exportar tablas de atributos contenidas dentro de las clases de entidad FGDB. Simplemente arrastre y suelte las tablas y / o clases de entidad en la herramienta y especifique una carpeta de salida. Por supuesto, entonces puede recorrer la carpeta que contiene los nuevos archivos dBase usando R.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Aaron
fuente
Esto funciona: mi menú desplegable no se ve igual (lo siento, no entiendo completamente los sistemas de archivos ArcMap) pero descubrí que puedo exportar tablas haciendo clic derecho en la entrada de la tabla en la Tabla de contenido, y generar un archivo .dbf legible. ¡Gracias!
Nan
9

Las geodatabases de archivos no almacenan sus datos como un dbf, lo hacen los shapefiles. Los FGDB usan su propio método de almacenamiento interno.

ESRI ha publicado una API , si la usa para compilar GDAL con soporte de geodatabase de archivos, puede usar los complementos gdal de R para obtener acceso a sus datos de esa manera. Sin embargo, la solución más fácil probablemente sea convertir sus datos a shapefile, luego puede usar las herramientas dbf de R.

HeyOverThere
fuente
O simplemente exporte la tabla de atributos como un dbf en lugar de convertir toda la clase de entidad.
Baltok 01 de
1
Oh eso es verdad! También puede usar la barra de herramientas Xtools para exportar la tabla de atributos directamente a Excel. La versión gratuita de la barra de herramientas incluye la capacidad de exportación de Excel. xtoolspro.com
HeyOverThere
@ HeyOverThere- gracias por señalarlo, estás en lo correcto- estas tablas son "Tablas de geodatabase de archivos", lo que explica por qué no pude encontrarlas como archivos .dbf. Voy con el enfoque de exportación de Aaron, sin embargo, convertir todos mis datos en archivos shape requeriría más tiempo.
Nan
El enlace API parece estar muerto. ¿Podrías actualizarlo?
Aaron
Parece que ESRI hizo un poco de limpieza de la casa. El enlace se actualizó para apuntar a la nueva ubicación
HeyOverThere
4

Tuve el mismo problema. Es inconveniente usar ArcMap, en mi opinión. En cambio, invoqué a Python desde R usando el siguiente código. Requiere que tengas Arcpy, desafortunadamente.

Script de Python:

import os,sys
import arcpy
from arcpy import env
from sys import argv ### This is needed to import variables

script, featureClass, inFeatures, outLocation, outFeatureClass = argv
env.workspace = featureClass ### set working directory
arcpy.FeatureClassToFeatureClass_conversion(inFeatures, outLocation,outFeatureClass)

Código R:

script = "./Path To Python Script/Example.py"
featureClass = './Path To Geodatabase/Example.gdb'
inFeatures = "featureClass"
outLocation = "./Path To Outfile Location"
outFeatureClass = "test.shp"
system2('python', args = c(shQuote(script),shQuote(featureClass),shQuote(inFeatures),shQuote(outLocation),shQuote(outFeatureClass))) 

Lo anterior generará un archivo shape desde una geodatabase, luego deberá importar a R.

usuario44796
fuente