在 R 中编辑高于特定值的所有栅格像元值
Editing all raster cell values above a certain value in R
我正在使用包含 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 非常缺乏经验,因此非常感谢任何帮助实现这一目标的方法。
首先,让我们创建一些虚拟数据作为 10x10 栅格(使其成为 reproducible example)
bath <- raster(nrows=10, ncols=10, vals=rnorm(100))
那么我们可以简单地做
bath[bath>0] <- -10
这是 dww 答案的内存安全变体:
bath <- raster(nrows=10, ncols=10, vals=rnorm(100))
rbath <- reclassify(bath, cbind(0, Inf, -10), filename='file.grd')
我正在使用包含 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 非常缺乏经验,因此非常感谢任何帮助实现这一目标的方法。
首先,让我们创建一些虚拟数据作为 10x10 栅格(使其成为 reproducible example)
bath <- raster(nrows=10, ncols=10, vals=rnorm(100))
那么我们可以简单地做
bath[bath>0] <- -10
这是 dww 答案的内存安全变体:
bath <- raster(nrows=10, ncols=10, vals=rnorm(100))
rbath <- reclassify(bath, cbind(0, Inf, -10), filename='file.grd')