更改栅格图层中的 NA 值并在多个图层中循环

Change NA values in raster layers and loop in several layers

我想使用 R 中的 raster 包将我的 ascii 层中的 -1 值更改为 NA 值 (-9999)。 我知道如何使用一个 ascii 层执行此操作,但想在多个层中重复此操作。我希望将输出文件命名为输入文件。 这是我的代码:

asc <- raster("DAAC_AWC_CLASS.asc")

NAvalue(asc) <- -1

writeRaster(asc, filename="C:/Users/xblajo/Desktop/New folder/2/DAAC_AWC_CLASS.asc", 
            format="ascii", na.value=-9999)

我对这个包一无所知,但你应该可以用一个循环做你想做的事:

setwd("C:/Users/xblajo/Desktop/New folder/2")
file_names <- list.files(pattern = '*.asc')

for (i in 1:length(file_names)){

    asc <- raster(file_names[i])

    NAvalue(asc) <- -1

    writeRaster(asc,
                filename = file_names[i], 
                format="ascii",
                na.value=-9999)
}