有没有办法在R的tiff-layers中将false值(-9999)纠正为NA?

vmdwslir  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(89)

我正在尝试在ArcGIS Pro中创建一个气候模型,它将告诉我哪些环境变量对真菌群落的影响最大。然而,我尝试了探索性回归,环境变量的影响微不足道,这几乎是不可能的,因为已经做了大量的研究。
我的shapefile包含关于真菌丰富度的信息,它已经被检查过了。但是我的tif包含27个变量,似乎没有正确制作。我检查了R,实际上有-9999个值扰乱了建模。虽然我知道tif-file中有不正确的值,但我不知道如何纠正它们,而且我所做的一切似乎都不起作用。
我尝试了下面的代码,直接在光栅层中将-9999值替换为NA:

env <- terra::rast("EnvPredictor_1km_IK_norm.tif")

[1] "EnvPredictor_1km_IK_norm_1"  "EnvPredictor_1km_IK_norm_2"` 
[3] "EnvPredictor_1km_IK_norm_3"  "EnvPredictor_1km_IK_norm_4" 
[5] "EnvPredictor_1km_IK_norm_5"  

env$EnvPredictor_1km_IK_norm_1[env$EnvPredictor_1km_IK_norm_1 == -9999] <- NA
env$EnvPredictor_1km_IK_norm_2[env$EnvPredictor_1km_IK_norm_2 == -9999] <- NA
env$EnvPredictor_1km_IK_norm_3[env$EnvPredictor_1km_IK_norm_3 == -9999] <- NA
env$EnvPredictor_1km_IK_norm_4[env$EnvPredictor_1km_IK_norm_4 == -9999] <- NA
env$EnvPredictor_1km_IK_norm_5[env$EnvPredictor_1km_IK_norm_5 == -9999] <- NA

writeRaster(env, "D:/EIE_Macroecology/00_datasets/Updated_EnvPredictor_1km_IK_norm.tif", overwrite = TRUE)

代码似乎没有任何问题,但在ArcGIS中它不会改变。任何建议将不胜感激!

pexxcrt2

pexxcrt21#

你应该能够做

library(terra)
env <- terra::rast("EnvPredictor_1km_IK_norm.tif")
out <- subst(env, -9999, NA, filename="new_file.tif")

相关问题