如何在计算后返回相同名称的栅格?

时间:2015-03-18 14:19:21

标签: r raster

我正在为栅格做一些计算然后我想再写一次。

我的真实数据可以理解为:

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等。

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

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

关于我们如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:2)

你可以这样做

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