将多个文件读入R中

时间:2015-01-26 19:13:03

标签: r file

我有一个包含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网站上询问,但我的问题是编码所以我希望它在这里很好。任何建议都会很棒。谢谢!

1 个答案:

答案 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函数。