2015-01-26 141 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