2015-01-26 2 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) 

} 

Я знаю, работа с растрами обычно будет предложено на сайте ГИС, но мой вопрос с кодировкой, так что я надеюсь, что это нормально здесь. Любые предложения были бы замечательными. Благодаря!

ответ

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.

+0

Спасибо! Это сделало то, что мне было нужно. Я думаю, что spTransform работает лучше, чем projectRaster – user2113499

Смежные вопросы