gpt4 book ai didi

R:更改 rasterstack 中图层的顺序

转载 作者:行者123 更新时间:2023-12-02 15:30:18 25 4
gpt4 key购买 nike

我有两组光栅堆栈(每组都有几百个光栅层)——第一组是包含一组传感时间序列图像(带间隙)的光栅堆栈,第二组是用于第一组间隙的时间插值图像放。每组图层的命名是根据它们测量/或插值的日期,从第 1 天开始....n

我现在想将这两组组合成一个有序的(根据图层名称从 1 到 n)rasterstack。我已经研究过执行此操作的不同方法,但未能获得结果;

  • 一种在栅格堆栈中对层进行排序的方法(例如使用类似这样的东西(comb_r 是我下面可重现示例中的栅格堆栈)。这会重新排序名称而不是整个层:

    names(comb_r)<-comb_r[order(names(comb_r))]
  • 使用 unstack 函数在两个堆栈中创建两个层列表,然后创建一个组合的有序列表作为新堆栈操作的输入(没有让它起作用)。

  • 最后我想我可以将所有层保存到硬盘上,而不是从那里重新组合堆栈(考虑到许多层可能不是最好的前进方式)。

欢迎就如何进行提出任何建议。我在这里添加了我的问题的玩具示例:

library(raster)

r1 <- raster(matrix(runif(9), ncol = 3))
r2 <- raster(matrix(runif(9), ncol = 3))
r3 <- raster(matrix(runif(9), ncol = 3))
r4 <- raster(matrix(runif(9), ncol = 3))
r5 <- raster(matrix(runif(9), ncol = 3))

r <- stack(r1, r2, r3,r4,r5)
names(r)<-c(1,4,6,8,10)

r6 <- raster(matrix(runif(9), ncol = 3))
r7 <- raster(matrix(runif(9), ncol = 3))
r8 <- raster(matrix(runif(9), ncol = 3))
r9 <- raster(matrix(runif(9), ncol = 3))
r10 <- raster(matrix(runif(9), ncol = 3))

rr <- stack(r6,r7,r8,r9,r10)

names(rr)<-c(2,3,5,7,9)

comb_r<-stack(r,rr)

最佳答案

你能不能只以不同的顺序获取“子集”:

subset(comb_r, order(c(1,4,6,8,10,2,3,5,7,9)))

您可以选择“子集”的第二个参数来反射(reflect)您想要的顺序 - 您给出的参数有点奇怪,因为它从 r 中获取一个,然后从 rr 中获取 两个,然后从 r 和 rr 交替。

关于R:更改 rasterstack 中图层的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com