使用R读取文件地理数据库?


12

文件地理数据库(fgdb)包含许多文件地理数据库表。据我所知,它们以dbf文件形式存在,但是在内Database.gdb

在ArcCatalog中,文件路径类似于C:\Users\...\Database.gdb\Stats_AA

如何将所有这些dbf文件读入R(统计软件)?正确的供应途径是什么?使用的函数是read.dbf(在外部软件包中)。

的变体

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

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

不工作 要使用的文件名的正确“形式”是什么,或者,我是否需要将所有文件地理数据库表导出到其他形式或位置?


1
地理数据库将几何存储在blob字段中,而不是dbf中(但shapefile确实)。
Mapperz

1
我本来建议对文件地理数据库使用Esri的oledb提供程序,但是似乎R无法读取oledb。可能想支持这个问题,还有这个问题。
Kirk Kuykendall

Answers:


4

一个简单的解决方案是使用Table to dBase(多个)导出表(右键单击FGDB> Export> To dBase(多个)。也可以使用此工具导出FGDB要素类中包含的属性表。和/或要素类进入工具并指定一个输出文件夹,当然,您可以使用R循环浏览包含新dBase文件的文件夹。

在此处输入图片说明

在此处输入图片说明


此方法有效-我的下拉菜单看起来不一样(对不起,我对ArcMap文件系统不完全了解),但是我发现可以通过右键单击目录中的表项本身来导出表,并且生成一个可读的.dbf文件。谢谢!

9

文件地理数据库不像dbf那样存储其数据,shapefile则存储。FGDB使用自己的内部存储方法。

ESRI发布了一个API,如果使用它来编译具有文件地理数据库支持的GDAL,则您可以使用R的gdal插件以这种方式访问​​您的数据。但是,最简单的解决方案可能是将数据转换为shapefile,然后可以使用R的dbf工具。


或者只是将属性表导出为dbf,而不是转换整个要素类。
巴尔托克

1
哦,是真的!您也可以使用Xtools工具栏将属性表直接导出到Excel。工具栏的免费版本包括Excel导出功能。 xtoolspro.com
HeyOverThere

@HeyOverThere-感谢您指出,您是正确的-这些表是“文件地理数据库表”,它解释了为什么我找不到它们为.dbf文件的原因。我将使用Aaron的导出方法,但是,将我的所有数据转换为shapefile会更加耗时。

API链接似乎已失效。你能更新一下吗?
亚伦

看起来ESRI做了一些大扫除。链接已更新为指向新位置
HeyOverThere 2015年

4

我遇到了同样的问题。我认为使用ArcMap不方便。相反,我使用以下代码从R调用了python。不幸的是,它要求您拥有Arcpy。

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)

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

上面的代码将从地理数据库输出一个shapefile,然后您必须将其导入R。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.