readShapePoly
パッケージのmaptools
を使用してシェープファイルを読み取りましたが、readOGR
で同じファイルを読み取ることができません。誰かがreadOGR
でシェープファイルを読むのを手伝ってくれることを願っています。
ここからファイルorcounty.shp
をダウンロードしました: http://geography.uoregon.edu/geogr/topics/maps.htm
また、関連ファイルorcounty.shx
、orcounty.sbx
、orcounty.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
には明らかに違いがあります。
readOGR
でorcounty.shp
を読む方法についてアドバイスをありがとうございます。私の質問はここの質問に似ています: rgdal/readOGR-.Zipからシェープファイルを読み取ることができません
ファイルパスから最後の「/」を削除してみてください。
readOGR(dsn = 'c:/users/mark w miller/gis_in_R/shapefile_example',
layer = 'orcounty')
Linuxボックスでこのエラーが発生することになった人にとって、問題はホームパスのショートカットを使用していることに気づきました。つまり.
# Works
readOGR(dsn="/home/user/dir", layer="file")
# Doesn't work
readOGR(dsn="~/dir", layer="file")
理由がわかりません。
私はファイルne_110m_landを使用しました
これで試してください:
setwd('D:/JMSR/codes.R/mapas')
unzip("ne_110m_land.Zip")
ogrInfo(".", "ne_110m_land")
wmap <- readOGR(".", "ne_110m_land")
raster::shapefile
パスとチルダを処理するためにreadOGR
をラップアラウンドします。完全なファイル名を渡すだけです。
library(raster)
x <- shapefile("c:/users/orcounty.shp')
または
y <- shapefile("~/users/orcounty.shp")