如何删除 R 中 DEM 像素值的设定范围?
How to remove set range of pixel values of DEM in R?
我有一个特定区域的 DEM tiff 文件:
> imported_raster
class : RasterLayer
dimensions : 28034, 53030, 1486643020 (nrow, ncol, ncell)
resolution : 0.0008333334, 0.0008333334 (x, y)
extent : 60.85375, 105.0454, 15.95708, 39.31875 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : C:\XX.tif
names : XX
values : -27, 8806 (min, max)
attributes :
ID OBJECTID Value Count
from: 0 1 -27 2
to : 8528 8529 8806 1
我想将一系列像素值设置为 NULL。例如,如果我想删除从 -27 到 0 以及从 0 到 1000 到 NULL 的高程像素值。我如何在 R 中携带它?
在你的情况下,这应该很有效:
library(raster)
library(terra)
# with raster -------------------------------------------------------------
r <- raster()
r[] <- -27:(ncell(r)-28)
new.r <- clamp(r,lower=1000,useValues=F)
# with terra --------------------------------------------------------------
t <- rast(r)
new.t <- clamp(t,lower=1000,values=F)
但是,有几种方法可以做到这一点,例如 raster::reclassify
、terra::classify
,还有 r[r<1000] <- NA
我有一个特定区域的 DEM tiff 文件:
> imported_raster
class : RasterLayer
dimensions : 28034, 53030, 1486643020 (nrow, ncol, ncell)
resolution : 0.0008333334, 0.0008333334 (x, y)
extent : 60.85375, 105.0454, 15.95708, 39.31875 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : C:\XX.tif
names : XX
values : -27, 8806 (min, max)
attributes :
ID OBJECTID Value Count
from: 0 1 -27 2
to : 8528 8529 8806 1
我想将一系列像素值设置为 NULL。例如,如果我想删除从 -27 到 0 以及从 0 到 1000 到 NULL 的高程像素值。我如何在 R 中携带它?
在你的情况下,这应该很有效:
library(raster)
library(terra)
# with raster -------------------------------------------------------------
r <- raster()
r[] <- -27:(ncell(r)-28)
new.r <- clamp(r,lower=1000,useValues=F)
# with terra --------------------------------------------------------------
t <- rast(r)
new.t <- clamp(t,lower=1000,values=F)
但是,有几种方法可以做到这一点,例如 raster::reclassify
、terra::classify
,还有 r[r<1000] <- NA