如何在R中基于空间多边形裁剪光栅
我想基于如何在R中基于空间多边形裁剪光栅,r,crop,r-raster,sp,R,Crop,R Raster,Sp,我想基于空间多边形对象裁剪光栅。我知道我们可以在光栅包中使用裁剪功能 raster::crop(rasterFile, SpatialPolygonsObject) 但此函数基于空间多边形对象的范围,因此裁剪结果为矩形。然而,在某些情况下,空间多边形对象不是矩形,如何处理这些情况 您可以使用光栅::遮罩。下面是一个可复制的示例: library(raster) r = raster(vals = rnorm(400), nrows=20, ncols=20, ext= extent(c(0,
空间多边形
对象裁剪光栅。我知道我们可以在光栅
包中使用裁剪
功能
raster::crop(rasterFile, SpatialPolygonsObject)
但此函数基于
空间多边形
对象的范围
,因此裁剪结果为矩形。然而,在某些情况下,空间多边形
对象不是矩形,如何处理这些情况 您可以使用光栅::遮罩
。下面是一个可复制的示例:
library(raster)
r = raster(vals = rnorm(400), nrows=20, ncols=20, ext= extent(c(0, 20, 0, 20)))
p = Polygon(matrix(5, 5, 15, 12, 7, 16, 3, 10), ncol=2, byrow = T))
p = SpatialPolygons(list(Polygons(list(p), "p")))
plot(r)
lines(p)
如果您还需要剪裁光栅的范围以删除遮罩周围的空行和空列,则您可以在应用
遮罩之前使用裁剪
,也可以在应用遮罩之后使用修剪(r2,values=NA)
。谢谢您的回复。但是如何删除这些未包含在遮罩中的单元格?但是您可以在遮罩
之前执行裁剪
以尽可能多地删除单元格,或者使用修剪功能(从光栅包中)删除具有NA值的外部行和列:修剪(r2,values=NA)
r2 = mask(r,p)
plot(r2)