我有一个包含365个tif图像的目录。使用R,我需要读取它们然后在它们上使用新投影然后将它们写为tif文件。基本上我有一个充满图像的文件,我需要读取它们,对它们进行某种处理然后将它们发送到另一个文件位置。
到目前为止我所拥有的是
newproj <- '+init=epsg:4326 +proj=longlat +ellps=WGS84 +datum=WGS84
+no_defs +towgs84=0,0,0'
x <- dir(path='c:/users/JDD/desktop/process', pattern='.tif')
for(i in 1:length(x)){
temp_i <- raster(x[i])
temp_i <- projectRaster(temp_i, crs=newproj)
writeRaster(temp_i, '2013_i.tif', GTiff)
}
我知道使用栅格通常会在GIS网站上询问,但我的问题是编码所以我希望它在这里很好。任何建议都会很棒。谢谢!
答案 0 :(得分:1)
一种方法是创建一个函数并使用工作目录中的所有文件。
change.proj <- function(x) {
require(rgdal)
temp <- raster(x)
temp <- spTransform(x, crs=CRS(newproj))
writeRaster(temp, paste0("new",x), GTiff)
}
setwd("your folder with all the tif files")
files = list.files(pattern="*.tif")
lapply(files, function(x) change.proj(x))
我认为spTransform
包中有一个名为rgdal
的函数也应该可以解决问题。我不熟悉projectRaster
函数。