Czytasz geobazę plików za pomocą R?

12

Plikowa geobaza danych (fgdb) zawiera liczne tabele geobazy danych. O ile wiem, istnieją one jako dbfpliki, ale są w Database.gdb.

W ArcCatalog ścieżka pliku przypomina C:\Users\...\Database.gdb\Stats_AA.

Jak wczytać wszystkie te dbfpliki do R(oprogramowania statystycznego)? Jaka jest właściwa droga do dostarczenia? Używana funkcja to read.dbf(w pakiecie zagranicznym).

Warianty

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

i

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

nie działa. Jaka jest poprawna „forma” nazwy pliku, czy należy wyeksportować wszystkie tabele geobazy danych pliku do innej formy lub lokalizacji?

Nan
źródło
1
geobazy przechowują geometrię w polach obiektów blob, nie dbf (ale robi to plik shapefile).
Mapperz
1
Chciałem zasugerować użycie dostawcy oledb Esri do geobazy plików , jednak wydaje się, że R nie może odczytać oledb . Może chciałbym głosować za tym pytaniem, a także nad tym .
Kirk Kuykendall

Odpowiedzi:

4

Prostym rozwiązaniem jest użycie opcji Tabela do dBase (wiele), aby wyeksportować tabele (kliknij prawym przyciskiem myszy FGDB> Eksportuj> Do dBase (wiele). Możesz także użyć tego narzędzia do eksportu tabel atrybutów zawartych w klasach funkcji FGDB. Po prostu przeciągnij i upuść tabele i / lub klasy funkcji w narzędziu i określ folder wyjściowy. Oczywiście możesz następnie zapętlić folder zawierający nowe pliki dBase za pomocą R.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Aaron
źródło
To działa - moje menu rozwijane nie wygląda tak samo (przepraszam, nie do końca rozumiem systemy plików ArcMap), ale stwierdziłem, że mogę eksportować tabele, klikając prawym przyciskiem myszy samą pozycję tabeli w Spisie treści, i wygeneruj czytelny plik .dbf. Dzięki!
Nan
9

Geobazy plików nie przechowują swoich danych tak, jak dbf, tak jak robią to pliki kształtów. FGDB używają własnej metody pamięci wewnętrznej.

ESRI opublikował API , jeśli go użyjesz do kompilacji GDAL z obsługą geobazy plików, możesz użyć wtyczek gdal R, aby uzyskać dostęp do twoich danych w ten sposób. Jednak najłatwiejszym rozwiązaniem jest prawdopodobnie konwersja danych do pliku shapefile, wówczas można użyć narzędzi dbf R.

HeyOverThere
źródło
Lub po prostu wyeksportuj tabelę atrybutów jako plik dbf zamiast konwertować całą klasę funkcji.
Baltok
1
Och, to prawda! Możesz także użyć paska narzędzi Xtools, aby wyeksportować tabelę atrybutów bezpośrednio do Excela. Darmowa wersja paska narzędzi zawiera możliwość eksportu do Excela. xtoolspro.com
HeyOverThere
@ HeyOverThere - dziękuję za zwrócenie uwagi, że masz rację - te tabele są „Plikowymi tabelami geobazy”, co wyjaśnia, dlaczego nie mogłem ich znaleźć jako plików .dbf. Używam metody eksportowania Aarona, jednak konwersja wszystkich moich danych do plików kształtowych byłaby bardziej czasochłonna.
Nan
Link API wydaje się być martwy. Czy możesz to zaktualizować?
Aaron
Wygląda na to, że ESRI przeprowadził pewne sprzątanie domu. Link został zaktualizowany, aby wskazywał nową lokalizację
HeyOverThere
4

Natrafiłem na ten sam problem. Moim zdaniem korzystanie z ArcMap jest niewygodne. Zamiast tego wywołałem Python z R, używając następującego kodu. Niestety wymaga posiadania Arcpy.

Skrypt w języku 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)

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

Powyższe wygeneruje plik kształtu z geobazy, a następnie będziesz musiał zaimportować do R.

użytkownik44796
źródło