R中多个栅格的累积和

用户名

我在目录中存储了200个每天的气温栅格数据,我想对每一天进行累积温度求和,例如day1 = day1; 第2天=第1天+第2天;day3 = day1 + day2 + day3,依此类推。我尝试在raster程序包中执行此操作,但是该cumsum函数计算每个栅格中所有像元的累积总和,而不是单个栅格的累积总和(至少从我的结果看来这至少对我而言) 。我试图这样做:

library(raster)

setwd("C:/Air_temperatures/AT") # set working directory

AT.files <- list.files(pattern="AT") # list files with name AT
All.AT <- unique(AT.files) # unique files
  for (i in 1:200) {
    AT.i <- All.AT[i] # make i
    AT.raster.i<-raster(AT.i) # make rasters from files
    AT.sum.i <- cumsum(AT.raster.i) # ???calculate cumulative sum???
    writeRaster(AT.sum.i,
               paste(AT.i, "_cumsum.tif", sep = ""),
              datatype='FLT4S', overwrite=TRUE) # write new files and paste new name
  } 

例如,当我尝试向每个栅格添加常量等时,此循环有效,但是我不知道如何计算累积和。

本·巴恩斯

Reduce功能可能会有所帮助。此功能根据指定的功能顺序组合对象。由于存在+用于Raster*对象方法,因此可以将其用作函数并获得栅格值的累积和。

首先,在列表中创建200个栅格对象:

theATs <- lapply(All.AT, raster)

然后,使用Reduce功能与accumulate参数设置为TRUE

res <- Reduce("+", theATs, accumulate = TRUE)

然后将结果写入文件:

lapply(seq_along(res), function(x) {
    writeRaster(res[[x]],
# Apparently, using .tif files threw an error
#     paste(All.AT[x], "_cumsum.tif", sep = ""),
# Alternatively, omit file extension to write default type (usually .grd)
      paste(All.AT[x], "_cumsum", sep = ""),
      datatype = 'FLT4S', overwrite = TRUE)
    })

您在此处创建的栅格存储在内存中,因此,如果原始文件很大,可能会遇到问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从R中的数据帧创建栅格?

来自分类Dev

R中的累积曲线

来自分类Dev

从R中的栅格文件中获取数据

来自分类Dev

逆转累积和以确定R中的实际值

来自分类Dev

计算R中的相对累积和

来自分类Dev

R:更改栅格堆栈中图层的顺序

来自分类Dev

R中的栅格合并

来自分类Dev

如何在Python中为多个列按累积和计算组

来自分类Dev

jq中的累积和

来自分类Dev

R中的“累积差异”功能

来自分类Dev

从SpatialGridDataFrame和SpatialPolygonsDataFrame中的数据屏蔽栅格

来自分类Dev

在R中并行处理大栅格(Windows)

来自分类Dev

在R中创建栅格直方图

来自分类Dev

R中的栅格:给定像素大小的栅格图像子集

来自分类Dev

pyspark中的累积和

来自分类Dev

是什么原因导致R中的栅格计算中的calc和cellStats之间存在差异?

来自分类Dev

如何将R中矩阵的列(累积和)相加?

来自分类Dev

R累积和,但顺序相反

来自分类Dev

具有多个波段的R剪辑栅格

来自分类Dev

R中的累积曲线

来自分类Dev

R中矩阵和栅格的相对计算负担

来自分类Dev

从R中的栅格文件中获取数据

来自分类Dev

将坐标更改为R中具有多个图层的一系列栅格

来自分类Dev

改善R中的栅格操作

来自分类Dev

MySQL中的累积和

来自分类Dev

累积和:处理 R 中栅格数据中的 NA 像素

来自分类Dev

如何从多个请求中累积数据

来自分类Dev

在 R 中运行(累积)产品?

来自分类Dev

计算 R 中栅格堆栈中的点数