我是一个全新的T R(工作室),并试图建立光栅堆栈。我的输入是大约600 jp 2文件,它们都在同一个目录下看起来像这样的图像文件在目录(https://i.stack.imgur.com/Mcvpn.png)
文件被排序,以便波段数2,3,4和8都在一行4。根据我的光栅堆栈应该总是包含这4个波段。我想做一个循环/函数,以便R采取4个文件,然后做光栅堆栈,然后采取下一个4个文件,并再次做光栅堆栈,等等。
因此,我尝试将所有文件存储在一个 Dataframe 中并将其拆分,以便在每个 Dataframe 中我正好有我需要的4个波段。这样做奏效了,我创建了一个包含所有 Dataframe 的列表(每个 Dataframe 有4个波段)。之后,我想使用lapply分配raster::stack,但问题来了。我必须为每个daataframe分配$以执行raster:stack。只要我这样做,结果就很好,但我必须一直编写相同的“代码”,只是更改$后面的值。我认为使用lapply时,一个列表中的所有 Dataframe 都将被分配。我如何一次调用所有 Dataframe (我尝试使用[])并分配函数raster::stack?我将添加一些图像,希望人们理解我的问题Using lapply, calling each data frame with $, d calling all data frames at once
That should be the result for all the images
Thats the result if i try to call all dfs at once with [], it just adds the ind
1条答案
按热度按时间jk9hmnmh1#
当问一个R问题时,你应该总是包括一些示例数据和代码。并且总是以文本的形式包括输出,而不是以图像的形式(当然,除非输出是一个图表)。
示例文件名
删除不需要的文件并按日期拆分
“terra”包已经取代了“raster”包,所以让我们使用它并列出SpatRasters。
但是您可以使用光栅包和
stack
执行等效的操作。