R kullanarak Dosya Coğrafi Veritabanı Okuma?


12

Dosya coğrafi veritabanı (fgdb), çok sayıda dosya coğrafi veritabanı tablosu içerir. Bildiğim kadarıyla onlar dbfdosya olarak var , ama içinde Database.gdb.

ArcCatalog'da dosya yolu benzer C:\Users\...\Database.gdb\Stats_AA.

Tüm bu dbfdosyalar nasıl okunur R(istatistiksel bir yazılım)? Tedarik etmek için doğru yol nedir? Kullanılan işlev read.dbf(yabancı pakette).

Çeşitleri

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

ve

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

çalışma. Kullanılacak dosya adının doğru "formu" nedir veya tüm dosya coğrafi veritabanı tablolarını başka bir form veya konuma dışa aktarmam gerekir mi?


1
geodatabases geometri dbf değil blob alanlarında saklar (ancak shapefile yapar).
Mapperz

1
Esri'nin oledb sağlayıcısını dosya coğrafi veri tabanları için kullanmanızı önerecektim , ancak R'nin oledb okuyamayacağı anlaşılıyor . Bu soruyu ve ayrıca bu soruyu kaldırmak isteyebilir .
Kirk Kuykendall

Yanıtlar:


4

Basit bir çözüm tabloları dışa aktarmak için dBase (çoklu) Tablo kullanmaktır (sağ tıklayın FGDB> Dışa Aktar> dBase (çoklu) .FGDB özellik sınıflarında bulunan öznitelik tablolarını dışa aktarmak için de bu aracı kullanabilirsiniz. ve / veya sınıfları araca ekleyin ve bir çıktı klasörü belirtin Tabii ki, R kullanarak yeni dBase dosyalarını içeren klasörde döngü yapabilirsiniz.

resim açıklamasını buraya girin

resim açıklamasını buraya girin


Bu çalışır- açılır menüm aynı görünmüyor (Üzgünüm, ArcMap dosya sistemlerini tam olarak anlamıyorum), ancak İçindekiler tablosundaki tablo girişine sağ tıklayarak tabloları dışa aktarabildiğimi ve okunabilir bir .dbf dosyası oluşturun. Teşekkürler!
Nan

9

Dosya coğrafi veritabanları verilerini dbf olarak saklamaz, şekil dosyaları yapar. FGDB'ler kendi dahili depolama yöntemlerini kullanır.

ESRI'lar bir API yayınladı , GDAL'yi dosya coğrafi veritabanı desteği ile derlemek için kullanırsanız, verilerinize bu şekilde erişmek için R'nin gdal eklentilerini kullanabilirsiniz. Ancak, en kolay çözüm muhtemelen verilerinizi şekil dosyasına dönüştürmektir, o zaman R'nin dbf araçlarını kullanabilirsiniz.


Veya tüm özellik sınıfını dönüştürmek yerine öznitelik tablosunu bir dbf olarak dışa aktarın.
Baltok

1
Ah bu doğru! Öznitelik tablosunu doğrudan Excel'e vermek için Xtools araç çubuğunu da kullanabilirsiniz. Araç çubuğunun ücretsiz sürümü Excel dışa aktarma özelliğini içerir. xtoolspro.com
HeyOverThere

@ HeyOverThere- işaret ettiğiniz için teşekkürler, haklısınız- bu tablolar neden .dbf dosyaları olarak bulamadığımı açıklayan "Dosya Coğrafi Veritabanı Tabloları" dır. Aaron'un dışa aktarma yaklaşımıyla devam ediyorum, ancak tüm verilerimi şekil dosyalarına dönüştürmek daha fazla zaman alacaktır.
Nan

API bağlantısı ölü gibi görünüyor. Lütfen güncelleyebilir misiniz?
Aaron

Görünüşe göre ESRI ev temizliği yaptı. Bağlantı yeni konumu işaret edecek şekilde güncellendi
HeyOverThere

4

Ben de aynı problemle karşılaştım. Bence ArcMap'i kullanmak sakıncalı. Bunun yerine, aşağıdaki kodu kullanarak R'den python çağırdı. Ne yazık ki Arcpy'ye sahip olmanızı gerektirir.

Python betiği:

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 kodu:

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

Yukarıdaki, bir coğrafi veritabanından bir şekil dosyası çıktılar, sonra R'ye içe aktarmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.