【问题标题】:Create raster stack for every single band raster in the directory为目录中的每个波段栅格创建栅格堆栈
【发布时间】:2021-03-23 16:50:38
【问题描述】:

我正在从单波段 geo-tiff 创建一个多波段栅格。这个想法是通过将单个图像堆叠三次来创建从单波段到多 (3) 波段的堆栈。我可以通过 -image1<-raster("image1.tif") 轻松地对单个图像执行此操作 stack_image1<- stack(image1,image1,image1)

如何运行此代码 sn-p 以在目录中的所有光栅图像上运行。

【问题讨论】:

    标签: for-loop gis raster r-raster


    【解决方案1】:

    你可以做这样的事情。 示例文件

    f  <- system.file("external/test.grd", package="raster")
    ff <- c(f,f,f)
    
    library(raster)
    x <- lapply(ff, function(i) stack(rep(i,3)))
    

    或者terra

    library(terra)
    x <- lapply(ff, function(i) rast(rep(i,3)))
    

    或者像这样

    y <- lapply(ff, function(i) rep(rast(i), 3))
    

    【讨论】:

    • 感谢 Robert 的建议,但我想逐个运行image1&lt;-raster("image1.tif") stack_image1&lt;- stack(image1,image1,image1),这意味着在图像 2、图像 3、图像 4 上运行相同的代码...... ......图像368,image2&lt;-raster("image2.tif")stack_image2&lt;- stack(image2,image2,image2)image3&lt;-raster("image3.tif")stack_image3&lt;- stack(image3,image3,image3)
    • 请编辑您的问题以澄清。显示一些输入代码并显示您期望得到的结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多