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.