R 使用行/列索引子集光栅
当对矩阵或DF进行子集设置时,可以引用行列,例如R 使用行/列索引子集光栅,r,gis,raster,R,Gis,Raster,当对矩阵或DF进行子集设置时,可以引用行列,例如df1[1:5,3:10],或df3[2:4,] 有没有办法用光栅来实现这一点?也就是说,是否可以仅从光栅对象中剪裁500:700行? 我尝试过使用rasterFromCells(),但它并没有给我想要的结果(考虑到R的其他巧妙的子集设置方法,似乎应该有一个更简单的解决方案) 示例: r <- raster(ncols = 50, nrow = 50) r[] <- 1:ncell(r) # I would like to subse
df1[1:5,3:10]
,或df3[2:4,]
有没有办法用光栅来实现这一点?也就是说,是否可以仅从光栅对象中剪裁500:700行?
我尝试过使用rasterFromCells()
,但它并没有给我想要的结果(考虑到R的其他巧妙的子集设置方法,似乎应该有一个更简单的解决方案)
示例:
r <- raster(ncols = 50, nrow = 50)
r[] <- 1:ncell(r)
# I would like to subset the bottom 50 rows of cells, but keep it as a raster.
# However, this returns a numeric object.
rSub <- r[30:50, 1:50]
r我觉得这个问题不是很清楚
然而,这就是你想要的吗
subR <- crop(r, extent(r, 30, 50, 1, 50))
plot(subR)
subR我更喜欢使用西摩所示的crop。还有另一种方法,使用drop=FALSE
library(raster)
r <- raster(ncols = 10, nrow = 10)
values(r) <- 1:ncell(r)
rSub <- r[3:5, 2:3, drop=FALSE]
rSub
#class : RasterLayer
#dimensions : 3, 2, 6 (nrow, ncol, ncell)
#resolution : 36, 18 (x, y)
#extent : -144, -72, 0, 54 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#source : memory
#names : layer
#values : 22, 43 (min, max)
库(光栅)
r请添加一个最小的可复制示例!您想要单元格值本身还是另一个光栅对象;我增加了一个小例子。我想把它作为一个光栅对象保存。它对我来说不够清晰。有了这个r[30:50,1:50],你就可以对最后20行进行子集划分了,对吗?这正是我想要的。当我最初在光栅文档中阅读它时,我使用“范围”来表示空间范围。对不起,质量问题。再次感谢。我非常确定您也可以使用空间坐标裁剪
。请注意范围(r,30,50,1,50))
返回一个空间范围。@gvan如果这是您问题的答案,您应该验证它