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

时间:2015-05-12 23:51:24

标签: r image tiff type-conversion

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

例如:

输入:

MOD11A1_2009-04-01.LST_Day_1km.tiff

输出:

MOD11A1_2009-04-01.LST_Day_1km.img

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

如果R编程专家可以帮助我这样做,我将非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:4)

您可以使用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所指出的,我们可以使用filename函数的calc参数来简化此代码。

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包也是如此)

答案 1 :(得分:2)

这是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])
}