このraster
パッケージを使用して、ASCII ラスターと ESRI シェープファイルの 2 つのデータセットを読み込みました。ラスターの (水温) データを、湖の海岸線であるシェープファイルの全範囲に抽出したいと考えています。
SpatialPolygonsDataFrame
関数を使用して読み込むと、ESRI シェープファイルは として扱われshapefile()
ます。
shapefile <- shapefile("shore.shp",verbose=TRUE)
関数を使用raster()
して ASCII ラスターを読み込みました。
raster <- raster("1995_001.asc",native=TRUE,crs="+proj=merc +datum=WGS84 +ellps=WGS84 +units=m")
シェープファイルの座標参照情報は次のとおりです。
+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0
ラスターのそれ (つまりcrs
、関数内の引数を使用して次のように強制されraster()
ます):
+proj=merc +datum=WGS84 +ellps=WGS84 +units=m +towgs84=0,0,0
次にspTransform()
、パッケージ内の関数を使用しrgdal
て、シェープファイルの空間参照をラスターの空間参照に強制しました。
spTransform(shapefile, CRS(projection(raster)))
最後に、以下を提出しました。
extract(raster,shapefile,method="simple",fun=mean,small=TRUE,na.rm=TRUE,df=FALSE)
ただし、型のオブジェクトをextract()
返すだけです。この問題は、座標参照の明示的な強制から生じていると思います。NULL
list
さらに、show()
各データセットで関数を使用した結果は次のとおりです。
> show(raster)
class : RasterLayer
dimensions : 1024, 1024, 1048576 (nrow, ncol, ncell)
resolution : 1800, 1800 (x, y)
extent : -10288022, -8444822, 4675974, 6519174 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : in memory
names : layer
values : -9999, 8.97 (min, max)
> show(shapefile)
class : SpatialPolygonsDataFrame
features : 1
extent : 597568.5, 998261.6, 278635.3, 668182.2 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0
variables : 3
names : AREA, PERIMETER, HECTARES
min values : 59682523455.695, 5543510.075, 5968252.346
max values : 59682523455.695, 5543510.075, 5968252.346
これらのフォーラムで解決策のない同様の質問を多数検索しました。誰か(仮想の)手を貸してくれませんか?
事前にどうもありがとうございました。