2015-01-26 105 views
1

我有一个包含365个tif图像的目录。使用R,我需要读取它们,然后在它们上使用新的投影,然后将它们写为tif文件。基本上我有一个文件全是图像,我需要阅读它们,对它们做一些处理,然后将它们发送到另一个文件位置。将多个文件读入R

我有什么到目前为止

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

一种方法是通过工作目录中的所有文件生成一个函数并使用lapply。

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)) 

我认为这是一个从rgdal包,也应该做的伎俩被称为spTransform功能。我不熟悉projectRaster函数。

+0

谢谢!这做了我所需要的。我认为spTransform也比projectRaster更好 – user2113499 2015-01-28 18:51:54