web-dev-qa-db-ja.com

readOGRとreadShapePolyを使用してシェープファイルを読み取ります

readShapePolyパッケージのmaptoolsを使用してシェープファイルを読み取りましたが、readOGRで同じファイルを読み取ることができません。誰かがreadOGRでシェープファイルを読むのを手伝ってくれることを願っています。

ここからファイルorcounty.shpをダウンロードしました: http://geography.uoregon.edu/geogr/topics/maps.htm

また、関連ファイルorcounty.shxorcounty.sbxorcounty.sbn、およびorcounty.dbfをダウンロードし、5つのファイルすべてをフォルダーc:/users/mark w miller/gis_in_R/shapefile_example/に配置しました。

次のコードは、シェープファイルを読み取り、いくつかの属性を表示します。

library(maptools)

setwd('c:/users/mark w miller/gis_in_R/shapefile_example/')

# Oregon county census data (polygons)
orcounty.poly <- readShapePoly('orcounty.shp', proj4string=CRS("+proj=longlat"))
orcounty.line <- readShapeLines('orcounty.shp', proj4string=CRS("+proj=longlat"))

# see projection
summary(orcounty.poly)

Object of class SpatialPolygonsDataFrame
Coordinates:
         min        max
x -124.55840 -116.46944
y   41.98779   46.23626
Is projected: FALSE 
proj4string : [+proj=longlat]
Data attributes:

ただし、次のコードを使用して同じシェープファイルを読み取ろうとすると、エラーが発生します。

library(rgdal)

# read shapefile
oregon.map <- readOGR(dsn="c:/users/mark w miller/gis_in_R/shapefile_example/", layer="orcounty")

# convert to dataframe
oregon.map_df <- fortify(oregon.map)

エラーメッセージは次のとおりです。

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

私はNaturalEarthを読むことができます http://www.naturalearthdata.com/ シェープファイルを使用して:

library(rgdal)

setwd("c:/users/mark w miller/gis_in_R/")

# read shapefile
wmap <- readOGR(dsn="ne_110m_physical", layer="ne_110m_land")

したがって、NaturalEarthシェープファイルとOregonシェープファイルorcounty.shpには明らかに違いがあります。

readOGRorcounty.shpを読む方法についてアドバイスをありがとうございます。私の質問はここの質問に似ています: rgdal/readOGR-.Zipからシェープファイルを読み取ることができません

12
Mark Miller

ファイルパスから最後の「/」を削除してみてください。

readOGR(dsn = 'c:/users/mark w miller/gis_in_R/shapefile_example',
        layer = 'orcounty')
13

Linuxボックスでこのエラーが発生することになった人にとって、問題はホームパスのショートカットを使用していることに気づきました。つまり.

# Works
readOGR(dsn="/home/user/dir", layer="file")

# Doesn't work
readOGR(dsn="~/dir", layer="file")

理由がわかりません。

3
MikeRSpencer

私はファイルne_110m_landを使用しました

これで試してください:

setwd('D:/JMSR/codes.R/mapas')
unzip("ne_110m_land.Zip")
ogrInfo(".", "ne_110m_land")
wmap <- readOGR(".", "ne_110m_land")
1
EdJo1924

raster::shapefileパスとチルダを処理するためにreadOGRをラップアラウンドします。完全なファイル名を渡すだけです。

 library(raster)
 x <- shapefile("c:/users/orcounty.shp')

または

 y <- shapefile("~/users/orcounty.shp")
0
Robert Hijmans