2015-01-17 3 views
1

Я новый пользователь R и прочитал 18 файлов Geotiff в R и замаскировал tiff в соответствии с моей интересующей областью. Теперь я не могу записать 18 файлов Geotiff в масках.Написание нескольких файлов GeoTiff в R

require(raster) 
raster_data <- list.files(path=getwd()) 
s <- stack(raster_data) 
spf<-readShapePoly("basin.shp") 
rc<-crop(s, extent(spf)) 
rm<-mask(rc, spf) 
rf <- writeRaster(rm, filename=outputFile, overwrite=TRUE) 

Я хочу 18 Geotiff файл маскируется формируют мой шейп, но выход только один TIF файл и он не открывается. Я использую опцию поиска в Интернете, но не могу найти подходящий ответ на мой запрос.

Спасибо

+0

Не могли бы вы описать ошибку вы получили с вашим подходом? –

+0

Вы можете попробовать добавить дополнительный шаг с 'u <- unstack (rm)' before 'rf <- writeRaster (u, filename = outputFile, overwrite = TRUE)' –

+0

или просто или просто 'writeRaster (rm, filename = outputFile , overwrite = TRUE, bylayer = T) ' –

ответ

1

Вы обязательно найдете ответ на свой вопрос на SO. Было задано до here и here и ответы предоставлены here, а также here с опцией bylayer, предоставленной writeRaster.

попробуйте bylayer = T, если вам не нужно отстегивать их в список.

что-то вроде

library(raster) 
r1 <- raster(ncol=10, nrow=10) 
r1[] <- 1:100 
s <- stack(r1, r1) 
writeRaster(s, '~:/r.tif', bylayer = T) 
+0

Если вы знаете, что это было задано до , вы должны помечать сообщение как дубликат. – jbaums

+0

Сообщение об ошибке: Ошибка в .local (x, filename, ...): Число имен файлов равно 1, но не равно количеству слоев – user3356873

+0

@ user3356873 - может быть проще использовать 'writeRaster (s, names (s), bylayer = T, format = 'GTiff') '. – jbaums

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