如何使用 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])
}
我的工作目录中有数百张 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])
}