在R中编辑高于某个值的所有栅格像元值

ryoqjall  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(139)

我正在使用包含11617*11617个像元的北冰洋测深图,每个像元都有一个相对于海平面的高度值(从-5573到5921米)。我希望将值大于0米的所有像素编辑为负10米,然后保存此栅格。

bath=raster ('C:/Users/ls15g11/Desktop/IBCAO_V3_500m_RR_editinR.grd')
bath

class       : RasterLayer 
dimensions  : 11617, 11617, 134954689  (nrow, ncol, ncell)
resolution  : 500, 500  (x, y)
extent      : -2904250, 2904250, -2904250, 2904250  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
data source : C:\Users\ls15g11\Desktop\IBCAO_V3_500m_RR_editinR.grd 
names       : z 
zvar        : z

我对R非常缺乏经验,所以非常感谢任何帮助来实现这一点。

jq6vz3qz

jq6vz3qz1#

首先,让我们创建一些虚拟数据作为10x10栅格(使其成为reproducible example

bath <- raster(nrows=10, ncols=10, vals=rnorm(100))

那么我们就可以

bath[bath>0] <- -10

或者,对于较大的栅格

bath <- reclassify(bath, cbind(0, Inf, -10))
olmpazwi

olmpazwi2#

下面是dww的答案的一个内存安全变体:

bath <- raster(nrows=10, ncols=10, vals=rnorm(100))

rbath <- reclassify(bath, cbind(0, Inf, -10), filename='file.grd')

相关问题