Lesen von File-Geodatabase mit R?


12

File-Geodatabase (fgdb) enthält zahlreiche File-Geodatabase-Tabellen. Soweit ich weiß, existieren sie als dbfDateien, befinden sich aber innerhalb eines Database.gdb.

In ArcCatalog ähnelt der Dateipfad C:\Users\...\Database.gdb\Stats_AA.

Wie lese ich all diese dbfDateien ein R(eine Statistiksoftware)? Was ist der richtige Weg, um zu versorgen? Die verwendete Funktion ist read.dbf(im Fremdpaket).

Varianten von

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

und

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

arbeite nicht Wie lautet die richtige "Form" des zu verwendenden Dateinamens oder muss ich alle File-Geodatabase-Tabellen in eine andere Form oder einen anderen Speicherort exportieren?


1
Geodatabases speichern Geometrie in Blobfeldern, nicht in DBF (Shapefile jedoch).
— Mapperz

1
Ich wollte vorschlagen, den Oledb-Provider von Esri für File-Geodatabases zu verwenden , es scheint jedoch, dass R Oledb nicht lesen kann . Vielleicht möchten Sie diese und auch diese Frage beantworten .
— Kirk Kuykendall

Antworten:


4

Eine einfache Lösung besteht darin, Ihre Tabellen mit Table to dBase (multiple) zu exportieren (Klicken Sie mit der rechten Maustaste auf FGDB> Exportieren> To dBase (multiple). Mit diesem Tool können Sie auch Attributtabellen exportieren, die in FGDB-Feature-Classes enthalten sind. Ziehen Sie die Tabellen einfach per Drag & Drop und / oder Feature-Classes in das Tool ein und geben Sie einen Ausgabeordner an. Natürlich können Sie dann den Ordner mit den neuen dBase-Dateien mit R durchlaufen.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben


Dies funktioniert - mein Dropdown-Menü sieht nicht gleich aus (es tut mir leid, ich verstehe ArcMap-Dateisysteme nicht vollständig), aber ich habe festgestellt, dass ich Tabellen exportieren kann, indem ich im Inhaltsverzeichnis mit der rechten Maustaste auf den Tabelleneintrag selbst klicke Generieren Sie eine lesbare DBF-Datei. Vielen Dank!
— Nan

9

File-Geodatabases speichern ihre Daten nicht wie Shapefiles als DBF. FGDBs verwenden ihre eigene interne Speichermethode.

ESRI hat eine API veröffentlicht. Wenn Sie sie zum Kompilieren von GDAL mit File-Geodatabase-Unterstützung verwenden, können Sie möglicherweise die GDAL-Plugins von R verwenden, um auf diese Weise auf Ihre Daten zuzugreifen. Die einfachste Lösung ist jedoch wahrscheinlich die Konvertierung Ihrer Daten in Shapefile. Dann können Sie die dbf-Tools von R verwenden.


Oder exportieren Sie einfach die Attributtabelle als DBF, anstatt die gesamte Feature-Class zu konvertieren.
— Baltok

1
Oh das stimmt! Sie können auch die Xtools-Symbolleiste verwenden, um die Attributtabelle direkt nach Excel zu exportieren. Die kostenlose Version der Symbolleiste enthält die Excel-Exportfunktion. xtoolspro.com
— HeyOverThere

@ HeyOverThere- danke, dass Sie darauf hingewiesen haben, dass Sie richtig liegen. Diese Tabellen sind "File Geodatabase Tables", was erklärt, warum ich sie nicht als DBF-Dateien gefunden habe. Ich gehe zum Exportansatz von Aaron über, aber das Konvertieren aller meiner Daten in Shapefiles wäre zeitaufwändiger.
— Nan

Der API-Link scheint nicht mehr zu funktionieren. Könnten Sie es bitte aktualisieren?
— Aaron

Sieht so aus, als hätte ESRI Hausputz gemacht. Der Link wurde aktualisiert, um auf den neuen Ort zu verweisen
— HeyOverThere

4

Ich bin auf dasselbe Problem gestoßen. Meiner Meinung nach ist es unbequem, ArcMap zu verwenden. Stattdessen habe ich Python aus R mit dem folgenden Code aufgerufen. Leider müssen Sie Arcpy haben.

Python-Skript:

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)

R-Code:

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))) 

Mit dem obigen Befehl wird ein Shapefile aus einer Geodatabase ausgegeben. Anschließend müssen Sie es in R importieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.