计算后如何return同名栅格?

How to return the same name of raster after calculations?

我正在对栅格进行一些计算,然后我想重新编写它们。

我的真实数据可以读作:

dir2<- list.files("C:\Users", "*.img", full.names = TRUE)
> dir2
[1] "C:\Users\fg05102012H_MEAN.img"
........
stackS <- stack(dir2)

示例数据:

r1 <- r2 <- r3 <- raster(nrows=10, ncols=10);
# Populate them with some values
 r1 <- setValues(r1,runif(100,min=1,max=100));
 r2 <- setValues(r2,runif(100,min=1,max=100));
  r3 <- setValues(r3,runif(100,min=1,max=100));
  # Stack them
  st1 <- stack(r1,r2,r3)
  x <- st1 * 0.3
  d2 <- writeRaster(x, ' outputFile.envi ', bylayer=TRUE, overwrite=TRUE)

这将在我的当前目录中写入 outputFile_1.envi outputFile_2.envi 等文件。

对我来说,我想 return 与原始栅格的名称相同,但将扩展名从 .img to .envi 更改为并将它们全部放在不同的目录中:

    outputDir  <- "C:\data"
    outputFile <- file.path(outputDir, basename(dir2))

知道我们如何做到这一点吗?

你可以这样做

outputDir  <- "C:\data"
outputFile <- file.path(outputDir, basename(dir2))
extension(outputFile) <- '.envi'
d2 <- writeRaster(x, outputFile, bylayer=TRUE)