使用SpatialPolygonDataFrame裁剪rasterLayer会遗漏目标区域R

时间:2016-02-05 20:36:49

标签: r maps raster map-projections

library(raster)
library(ncdf4)
library(rgdal)

我正在尝试基于多边形裁剪栅格图层:示例数据(~45MB)可在此处找到sample data for illustration

dat<- raster('data.nc')# make a subset 
dat
class       : RasterLayer 
dimensions  : 824, 935, 770440  (nrow, ncol, ncell)
resolution  : 10000, 10000  (x, y)
extent      : -5000, 9345000, -5000, 8235000  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
data source : C:\Users\data.nc 
names       : Total.Precipitation 
zvar        : Total.Precipitation 

作为coord. ref is = NA,我根据来自数据提供者的website的信息分配极坐标立体投影。

projj=CRS("+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-100 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs")
proj4string(dat) <- projj
    #rx <- projectRaster(from=dat, crs=wgs84.p4s)

然后将bbox shapefile转换为projj

    shgrid <- spTransform(Prairie.Boundaries, projj)# transform to dat spat reference
    plot(dat)
    plot(shgrid,add=T)# this gives

enter image description here

裁剪

    cr <- crop(dat, extent(shgrid)) 
    plot(cr)
    fr <- rasterize(shgrid, cr) 
    dat1<- mask(x=cr, mask=fr)
    levelplot(dat1)

输出:

裁剪后的图像仅显示加拿大的一部分,但我想要加拿大的全部。

我的代码中错过了什么?这可能是投影吗?

此外,我更喜欢latlon坐标中的轴标签。

有什么建议吗?

image

0 个答案:

没有答案