Rを使用してファイルジオデータベースのフィーチャクラスを読み取りますか?


27

エクスポートされたシェープファイルとして2GBを超えるジオデータベースに含まれる機能があります。Rで抽出関数を実行して、ポリゴンをラスターファイルのデータに関連付ける必要があります。機能をテーブルとしてエクスポートすることは解決策ではありません。Esriファイルジオデータベース内に含まれるフィーチャクラスを読み取るにはどうすればよいですか?

回答:


38

rgdalを使用して、Esriファイルジオデータベースのフィーチャクラスにアクセスできます。

require(rgdal)

# The input file geodatabase
fgdb <- "C:/path/to/your/filegeodatabase.gdb"

# List all feature classes in a file geodatabase
subset(ogrDrivers(), grepl("GDB", name))
fc_list <- ogrListLayers(fgdb)
print(fc_list)

# Read the feature class
fc <- readOGR(dsn=fgdb,layer="some_featureclass")

# Determine the FC extent, projection, and attribute information
summary(fc)

# View the feature class
plot(fc)

2
以前は、ESRI filegeodatabase APIをダウンロードし、それに対してGDALをコンパイルした場合にのみこれを行うことができました。OSGeo4Wを使用してGDALをインストールする場合、これを自動的に行うオプションがあります。しかし、これはGDALの今後のリリースで変更された可能性があり、現在はネイティブである可能性があるため、間違っている場合は謝罪します。
ジェフリーエヴァンス

3
@JeffreyEvansこれは現在ネイティブです。
アーロン

4
Windowsネイティブですが、現在他のプラットフォーム(少なくともDebian Jessie)には含まれていないようです。
コットン。ロックウッド16

1
+1うまくいきます。layerGDBにフィーチャクラスが1つしかない場合、引数を省略できることを知っておくと役立ちます。
whuber

2
何も知らない人のためgdbのファイルを、fgdbここではこの答えではディレクトリであるogrListLayers()...このディレクトリに取り組んでいます
MichaelChirico

2

この回答ですでに投稿されているように、これは次のものでも非常にうまく機能しsfます:

require(sf)
fc <- sf::st_read("C:/path/to/your/filegeodatabase.gdb", layer = "some_featureclass")

しかし、(実装されていないfgdbイストへの書き込みはまだ?)は、ArcGIS / ArcMapのライセンスだけでなく、Rライブラリを持っている必要があるだろうarcgisbinding(参照https://github.com/R-ArcGIS/r-bridgeを

st_drivers()$write[st_drivers()$long_name == "ESRI FileGDB"]
#> [1] FALSE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.