如何使用 R 编程将 Tiff 转换为 IMG (ERDAS) 格式?

How to convert Tiff to IMG (ERDAS) format using R programming?

我的工作目录中有数百张 Tiff 格式的卫星图像,首先必须乘以 2 ,然后转换为 IMG (ERDAS) 格式,但 与输入文件同名.

例如:

输入:

MOD11A1_2009-04-01.LST_Day_1km.tiff

输出:

MOD11A1_2009-04-01.LST_Day_1km.img

所以,第一步是乘以2 然后将图像从 tiff 格式转换为 IMG 格式。

如果有 R 编程专家能帮助我这样做,我将不胜感激。

提前致谢。

您可以使用 raster

library(raster)
input <- "MOD11A1_2009-04-01.LST_Day_1km.tif"
output <- gsub("tif", "img", input)

r <- raster(input)
r <- r * 2
writeRaster(r, output, format = "HFA")

你也可以用一个循环来处理所有的一百个文件

编辑

正如@RobertH 所指出的,我们可以使用 calc 函数的 filename 参数来简化这段代码。

library(raster)
input <- "MOD11A1_2009-04-01.LST_Day_1km.tif"
output <- gsub("tif", "img", input)
r <- raster(input)
r <- calc(r, fun = function(x) x * 2, filename = output)

非常感谢@RobertH(也感谢 raster 包)

这里是 dickoa 在循环中的解决方案:

library(raster)
input <- list.files(pattern='tif$')
output <- gsub("tif", "img", input)

for (i in seq(along=input)) {
   r <- raster(input[i])
   # using "2 byte unsigned integer" data type
   r <- calc(r, fun = function(x) x * 2, datatype='INT2U', filename = output[i])
}