Membaca File Geodatabase menggunakan R?

12

File geodatabase (fgdb) mencakup banyak tabel file geodatabase. Sejauh yang saya tahu mereka ada sebagai dbffile, tetapi berada dalam a Database.gdb.

Di ArcCatalog, path file menyerupai C:\Users\...\Database.gdb\Stats_AA.

Bagaimana cara membaca semua dbffile ini R(perangkat lunak statistik)? Apa jalur yang benar untuk memasok? Fungsi yang digunakan adalah read.dbf(dalam paket asing).

Varian dari

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

dan

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

tidak bekerja Apa "bentuk" yang benar dari nama file yang akan digunakan, atau, apakah saya perlu mengekspor semua tabel geodatabase file ke bentuk atau lokasi lain?

Nan
sumber
1
geodatabases menyimpan geometri dalam bidang gumpalan bukan dbf (tetapi shapefile tidak).
Mapperz
1
Saya akan menyarankan menggunakan penyedia oledb Esri untuk file geodatabases , tetapi tampaknya R tidak dapat membaca oledb . Mungkin ingin menjawab pertanyaan itu, dan juga yang ini .
Kirk Kuykendall

Jawaban:

4

Solusi sederhana adalah dengan menggunakan Tabel untuk dBase (beberapa) untuk mengekspor tabel Anda (Klik kanan FGDB> Ekspor> Untuk dBase (beberapa). Anda juga dapat menggunakan alat ini untuk mengekspor tabel atribut yang terdapat dalam kelas fitur FGDB. Cukup seret dan jatuhkan tabel dan atau kelas fitur ke dalam alat dan tentukan folder keluaran. Tentu saja, maka Anda dapat mengulangi folder yang berisi file dBase baru menggunakan R.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Harun
sumber
Ini berfungsi - menu dropdown saya tidak terlihat sama (Maaf, saya tidak sepenuhnya mengerti sistem file ArcMap) tetapi saya menemukan saya dapat mengekspor tabel dengan mengklik kanan pada entri tabel itu sendiri di Daftar Isi, dan menghasilkan file .dbf yang dapat dibaca. Terima kasih!
Nan
9

File geodatabases tidak menyimpan data mereka sebagai dbf, demikian halnya dengan shapefile. FGDB menggunakan metode penyimpanan internal mereka sendiri.

ESRI menerbitkan API , jika menggunakannya untuk mengkompilasi GDAL dengan dukungan geodatabase file, Anda mungkin dapat menggunakan plugin g's R untuk mendapatkan akses ke data Anda dengan cara itu. Namun, solusi termudah mungkin adalah mengubah data Anda ke shapefile, maka Anda dapat menggunakan alat dbf R's.

HeyOverThere
sumber
Atau cukup ekspor tabel atribut sebagai dbf daripada mengonversi seluruh kelas fitur.
Baltok
1
Oh itu benar! Anda juga dapat menggunakan bilah alat Xtools untuk mengekspor tabel atribut secara langsung ke Excel. Versi gratis dari bilah alat mencakup kemampuan ekspor Excel. xtoolspro.com
HeyOverThere
@ HeyOverThere- terima kasih untuk menunjukkan itu, Anda benar - tabel ini adalah "File Geodatabase Tables" yang menjelaskan mengapa saya tidak dapat menemukan mereka sebagai file .dbf. Saya akan menggunakan pendekatan ekspor Harun, namun, mengubah semua data saya menjadi shapefile akan lebih memakan waktu.
Nan
Tautan API tampaknya sudah mati. Bisakah Anda memperbaruinya?
Aaron
Sepertinya ESRI melakukan pembersihan rumah. Tautan ini diperbarui untuk menunjuk ke lokasi baru
HeyOverThere
4

Saya mengalami masalah yang sama. Tidak nyaman menggunakan ArcMap, menurut saya. Sebagai gantinya, saya memanggil python dari R menggunakan kode berikut. Sayangnya, Anda harus memiliki Arcpy.

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

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

Di atas akan menampilkan shapefile dari geodatabase, maka Anda harus mengimpor ke R.

pengguna44796
sumber