将许多.tif文件从rstudio中的未压缩文件或压缩文件上载到rasterbrick

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

请原谅我,因为我是编码和使用r的新手。我正在尝试将许多.tif文件导入从WorldClim获得的rstudio(历史每月天气数据2010-2018)。我解压缩后的压缩文件夹中有120个.tif文件。我试图将它们导入到rasterbrick中,但看起来只是一个光栅图层

brk1 <- do.call(brick, lapply(list.files(path = 
         "/Classes F2020/ES 232/tmin_tmax/wc.2.1_2.5m_tmax_2010-2018", 
         pattern = "Band*.*tif"), raster))
View(brk1)
brk

#class      : RasterBrick 
#dimensions : 180, 360, 64800, 1  (nrow, ncol, ncell, layers)
#resolution : 1, 1  (x, y)
#extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
#crs        : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
r raster tiff cdo-climate
2个回答
0
投票

在您对lapply的呼叫中,您使用raster,这只会给您一层。我认为您正在寻找的是符合这些原则的东西(逐步执行操作总是更好,这样您就可以检查沿途情况)]

library(raster)
f <- list.files(pattern = "tif$")
x <- lapply(f, brick)
s <- stack(x)

0
投票

有很多方法可以做到这一点,但这是一个简单的方法。它不是最有效的,但是我认为对于新用户而言,实现起来非常简单:

rb<-brick() #create an empty brick

for(i in 1:length(list.files)){
  tif.name<- list.files(pattern="*tif$", full.names=F, recursive=FALSE)
  print(tif.name) #check name of tif file
  tif<-raster(tif.name) #assign tif file to raster object
  tif.c<-tif*mask.AOI #crop layer to AOI; mask.AOI is a raster where 1 = your study area, NA is all other values

  rb<-addLayer(rb, tif.c) #add cropped tif file to brick
}
© www.soinside.com 2019 - 2024. All rights reserved.