0
我在一個文件夾中有大約40個.tiff格式的空間柵格。我試圖從R中的每個柵格生成直方圖,並將每個直方圖保存爲一個jpeg在一個單獨的文件夾中。我寫了代碼循環遍歷每個柵格,創建一個直方圖並使用'jpeg'包保存它。如何從R中的柵格數據保存多個jpeg?
setwd("G:/Research/MODIS Albedo Oct 08-July 09/Test")
library(raster)
library(jpeg)
files <- list.files(path="G:/Research/MODIS Albedo Oct 08-July 09/Test", pattern=".tif",all.files=T, full.names=F, no.. = T) #generate a list of rasters in the folder
number<-length(files) #count the number of rasters
for(r in 1:number) #loop over each raster in the folder
{
x<-raster(files[r], header=F) #load one raster file
jpeg("G:/Research/MODIS Albedo Oct 08-July 09/test_histplots/r.jpg") #create jpeg using the name 'r' generated by loop
hist(x) #generate histogram
dev.off()
}
我希望每個生成的jpeg具有不同的名稱,理想情況下是原始柵格名稱的子集。例如,如果光柵的原始名稱是'MODIS101_265',那麼jpeg的名稱應該是265.這裏,265是該年的Julian日期。我假設這可能涉及使用格式說明符像%d在C中,但我不知道這是如何工作在R.
當我運行上面的代碼,我只得到一個直方圖。看起來代碼正在循環遍歷原始柵格,但將所有結果直方圖保存爲單個jpeg。
任何意見將有所幫助!謝謝!
在'jpeg'調用中生成文件名時使用'sprintf'或'paste'。即'jpeg(sprintf(「G:/ Research/MODIS Albedo Oct 08-July 09/test_histplots/r%04d.jpg」,r))' – hrbrmstr
謝謝,這很奏效! –