基于另一个TIFF图像重新映射多个.TIFF图像

问题描述 投票:0回答:1

我有一个名为AOT的文件夹,图像名称范围为1:744。我有另一个名为FOG的文件夹,其中包含一个图像名称 - '01DEC2016_0000_L2C_FOG_FOG.tif'。我需要在AOT中使用FOG中的'01DEC2016_0000_L2C_FOG_FOG.tif'重新采样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)
r resampling
1个回答
0
投票

您不是在读取文件列表或一个文件,而是立即创建栅格对象。如果您想要对一个文件重新采样多个文件,这可能是一个解决方案:

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")
}

如果您想针对多个文件重新采样多个文件代码,但您必须确保flname1flname2包含相同数量的文件:

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")
}
© www.soinside.com 2019 - 2024. All rights reserved.