Ich versuche, eine Tabelle direkt aus einer ESRI-File-Geodatabase in R zu lesen. Eine Beispieldatendatei kann hier heruntergeladen werden . Die Datenbank enthält eine Point-Feature-Class (Zone9_2014_01_Broadcast) und zwei verknüpfte Tabellen (Zone9_2014_01_Vessel und Zone9_2014_01_Voyage). Sie können das Shapefile in R mit dem folgenden Befehl readOGR
aus dem rgeos
Paket lesen :
library(rgeos)
library(downloader)
download("https://coast.noaa.gov/htdata/CMSP/AISDataHandler/2014/01/Zone9_2014_01.zip", dest="Zone9_2014_01.zip", mode="wb")
unzip("Zone9_2014_01.zip", exdir = ".")
# Not Run (loads large point file)
# broadcast <- readOGR(dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Broadcast")
Die beiden verknüpften Tabellen zeigen auch, wann Sie ogrListLayers
oder verwenden ogrInfo
. Es ogrInfo
gibt jedoch eine Warnung:
Warnmeldung: In ogrInfo ("Zone9_2014_01.gdb", Layer = "Zone9_2014_01_Vessel"): ogrInfo: Alle Funktionen NULL
Und wenn Sie versuchen, readOGR
auf den Tabellen zu verwenden, erhalten Sie eine Fehlermeldung:
vessel <- readOGR(dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Vessel")
Fehler in readOGR (dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Vessel"): Keine Features gefunden Zusätzlich: Warnmeldung: In ogrInfo (dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,: ogrInfo: Alle Funktionen NULL
Somit scheint es, dass nur geografische Merkmale von readOGR gelesen werden können. Gibt es eine Möglichkeit, die Tabellen direkt in R zu importieren, oder ist dies die einzige Lösung, um sie zuerst aus ArcGIS als * .dbf- (oder * .txt-) Dateien zu exportieren, wie in dieser Antwort angegeben?
Wenn außerdem jemand Aufrufe von R an ein Python-Skript senden kann, das den Export von * csv- (vorzugsweise) oder * .dbf-Dateien automatisiert, ist dies eine akzeptable Lösung. Die Lösung muss nur skalierbar und automatisiert sein.
arcgisbbinding
in R verwenden. Die Funktion arc.open()
öffnet die Tabelle als arc.dataset-class object
. data.table
Verwenden Sie die Funktion, um direkt als zu öffnen arc.select
.