基于另一张 TIFF 图像重新采样多个 .TIFF 图像
RESAMPLING MULTIPLE .TIFF IMAGES BASED ON ANOTHER ONE TIFF IMAGE
我有一个名为 AOT 的文件夹,其图像名称范围为 1:744。我有另一个名为 FOG 的文件夹,其中有一个图像名称 - '01DEC2016_0000_L2C_FOG_FOG.tif'。我需要使用 FOG 中的“01DEC2016_0000_L2C_FOG_FOG.tif”对 AOT 中的 1.tif 进行重新采样,类似于 AOT 文件夹中的所有 744 个文件。我正在循环的帮助下进行重采样,但出现了一个错误。
我试过了:
> require(raster)
#reading files from folder AOT
> flname1 <- list.files(path = 'D:/mtech project/data/DEC
16/POLLUTANTS/OUTPUT_AOT/', pattern = '.tif')
> nfile1<- length(flname1)
#reading files from folder FOG
> flname2<- raster("D:/mtech project/data/DEC
16/FOG/EXTRACTED_IGP/01DEC2016_0000_L2C_FOG_FOG.tif")
#Resampling the data in AOT folder with the data in FOG folder.
> for (i in 1:nfile1) {
+ r1<-raster(flname1[[i]])
+ r2<-raster(flname2[[i]])
+ rs<-resample(r1,r2,method='ngb')
+ }
Error in .local(.Object, ...) :
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",
:
Cannot create a RasterLayer object from this file. (file does not exist)
您不是在读取文件列表或一个文件,而是立即创建一个光栅对象。
如果你想对一个文件重新采样多个文件,这可能是一个解决方案:
library(raster)
# reading files from folder AOT
flname1 <- list.files(path = "D:/mtech project/data/DEC 16/POLLUTANTS/OUTPUT_AOT/"),
pattern = ".tif",
full.names = TRUE)
nfile1 <- length(flname1)
# reading file from folder FOG
flname2 <- "D:/mtech project/data/DEC 16/FOG/EXTRACTED_IGP/01DEC2016_0000_L2C_FOG_FOG.tif"
# create raster
r2 <- raster(flname2)
# Resampling the data in AOT folder with the data in FOG folder.
for (i in 1:nfile1) {
r1 <- raster(flname1[i])
rs <- resample(r1, r2, method = "ngb")
}
如果您想针对多个文件对多个文件重新采样,代码将是,但您必须确保 flname1
和 flname2
包含相同数量的文件:
library(raster)
# reading files from folder AOT
flname1 <- list.files(path = "D:/mtech project/data/DEC 16/POLLUTANTS/OUTPUT_AOT/"),
pattern = ".tif",
full.names = TRUE)
nfile1 <- length(flname1)
# reading file from folder FOG
flname2 <- list.files(path = "D:/mtech project/data/DEC 16/FOG/EXTRACTED_IGP/"),
pattern = ".tif",
full.names = TRUE)
# R esampling the data in AOT folder with the data in FOG folder.
for (i in 1:nfile1) {
r1 <- raster(flname1[i])
r2 <- raster(flname2[i])
rs <- resample(r1, r2, method = "ngb")
}
我有一个名为 AOT 的文件夹,其图像名称范围为 1:744。我有另一个名为 FOG 的文件夹,其中有一个图像名称 - '01DEC2016_0000_L2C_FOG_FOG.tif'。我需要使用 FOG 中的“01DEC2016_0000_L2C_FOG_FOG.tif”对 AOT 中的 1.tif 进行重新采样,类似于 AOT 文件夹中的所有 744 个文件。我正在循环的帮助下进行重采样,但出现了一个错误。
我试过了:
> require(raster)
#reading files from folder AOT
> flname1 <- list.files(path = 'D:/mtech project/data/DEC
16/POLLUTANTS/OUTPUT_AOT/', pattern = '.tif')
> nfile1<- length(flname1)
#reading files from folder FOG
> flname2<- raster("D:/mtech project/data/DEC
16/FOG/EXTRACTED_IGP/01DEC2016_0000_L2C_FOG_FOG.tif")
#Resampling the data in AOT folder with the data in FOG folder.
> for (i in 1:nfile1) {
+ r1<-raster(flname1[[i]])
+ r2<-raster(flname2[[i]])
+ rs<-resample(r1,r2,method='ngb')
+ }
Error in .local(.Object, ...) :
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",
:
Cannot create a RasterLayer object from this file. (file does not exist)
您不是在读取文件列表或一个文件,而是立即创建一个光栅对象。 如果你想对一个文件重新采样多个文件,这可能是一个解决方案:
library(raster)
# reading files from folder AOT
flname1 <- list.files(path = "D:/mtech project/data/DEC 16/POLLUTANTS/OUTPUT_AOT/"),
pattern = ".tif",
full.names = TRUE)
nfile1 <- length(flname1)
# reading file from folder FOG
flname2 <- "D:/mtech project/data/DEC 16/FOG/EXTRACTED_IGP/01DEC2016_0000_L2C_FOG_FOG.tif"
# create raster
r2 <- raster(flname2)
# Resampling the data in AOT folder with the data in FOG folder.
for (i in 1:nfile1) {
r1 <- raster(flname1[i])
rs <- resample(r1, r2, method = "ngb")
}
如果您想针对多个文件对多个文件重新采样,代码将是,但您必须确保 flname1
和 flname2
包含相同数量的文件:
library(raster)
# reading files from folder AOT
flname1 <- list.files(path = "D:/mtech project/data/DEC 16/POLLUTANTS/OUTPUT_AOT/"),
pattern = ".tif",
full.names = TRUE)
nfile1 <- length(flname1)
# reading file from folder FOG
flname2 <- list.files(path = "D:/mtech project/data/DEC 16/FOG/EXTRACTED_IGP/"),
pattern = ".tif",
full.names = TRUE)
# R esampling the data in AOT folder with the data in FOG folder.
for (i in 1:nfile1) {
r1 <- raster(flname1[i])
r2 <- raster(flname2[i])
rs <- resample(r1, r2, method = "ngb")
}