在R中如何选取单个栅格单元并生成对应RasterBrick?
从RasterBrick中提取单个栅格单元生成新的RasterBrick
可以通过以下几种方法实现,确保得到的结果仍是RasterBrick格式,而非向量或其他类型:
方法1:通过行列号直接提取
利用栅格对象的行列索引,加上drop=FALSE参数保留栅格结构:
# 提取第1行第1列的栅格单元(可按需修改row和col值) single_cell_brick <- prec_stack[1, 1, drop = FALSE]
方法2:通过单元格编号提取
先确定目标单元的编号,再提取并保留栅格结构:
# 指定目标单元格编号(示例为第3个单元) cell_num <- 3 single_cell_brick <- prec_stack[[cell_num, drop = FALSE]]
方法3:通过裁剪单元范围提取
先获取目标单元的空间范围,再用crop函数裁剪:
# 获取第1行第2列单元的空间范围 target_cell <- cellFromRowCol(prec_stack, row = 1, col = 2) cell_extent <- extent(prec_stack, cell = target_cell) # 裁剪得到仅包含该单元的RasterBrick single_cell_brick <- crop(prec_stack, cell_extent)
验证结果
执行上述任意方法后,查看结果结构:
single_cell_brick
输出会显示维度为1, 1, 1, 366,符合单个单元的RasterBrick要求。
内容的提问来源于stack exchange,提问作者Shunrei
相关产品推荐
相关产品推荐

