web-dev-qa-db-ja.com

readOGR()はファイルを開けません

wmap <- readOGR(dsn="~/R/funwithR/data/ne_110m_land", layer="ne_110m_land")

このコードは形状ファイルをロードしておらず、エラーが次のように生成されます

Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,  : 
Cannot open file

ディレクトリは正しいものであると確信しています。最後に/も存在せず、レイヤー名も正しいです。

Ne_110m_landディレクトリ内にあるファイルは次のとおりです。

ne_110m_land.dbf
ne_110m_land.prj
ne_110m_land.shp
ne_110m_land.shx
ne_110m_land.VERSION.txt
ne_110m_land.README.html
24

あなたは正しい道を持っていることを示すことができました:

list.files('~/R/funwithR/data/ne_110m_land', pattern='\\.shp$')
file.exists('~/R/funwithR/data/ne_110m_land/ne_110m_land.shp')

おそらく試してみてください:

readOGR(dsn=path.expand("~/R/funwithR/data/ne_110m_land"), layer="ne_110m_land")

またはそれを包むより単純な代替案:

library(raster)
s <- shapefile("~/R/funwithR/data/ne_110m_land/ne_110m_land.shp")
50
Robert Hijmans

私にとっては、dsnおよびlayerタグを含めると、コマンドは_Cannot open layer_エラーを返しました。

したがって、すべてをreadOGR('~/R/funwithR/data/ne_110m_land/ne_110m_land.shp')のように含めると、機能しました。

私のファイルはgjsonだったので、readOGR('~/R/funwithR/data/ne_110m_land/ne_110m_land.gjson')でしか見たことがないことに注意してください。

2
Tom Logan

ここに私のために働いたものがあります(実際の例で)

require(rgdal)
shape <- readOGR(dsn = "1259030001_ste11aaust_shape/STE11aAust.shp", layer = "STE11aAust")

正確なデータが利用可能です こちら (「State and Territory ASGC Ed 2011 Digital Boundaries in MapInfo Interchange Format」という.Zipファイルをダウンロードしてください)

0
user5783745

他の投稿でコメントしたように( シェープファイルを開くときのエラー )、file.choose()を使用して手動で選択すると、1つのファイル選択が必要な場合に役立ちます。どうやらNaturalEarthシェープファイルに関連しているようです