R中矩阵和/或空间数据(邻域统计)的高效移动窗口统计

R中矩阵和/或空间数据(邻域统计)的高效移动窗口统计,r,spatial,moving-average,R,Spatial,Moving Average,我正在使用R中的光栅和相关软件包来做一些遥感工作。对于我正在编写的许多函数,我喜欢快速计算邻域/移动窗口统计信息。不幸的是,我或其他人编写的任何R实现都非常非常慢 我知道caTools软件包提供了用C编写的向量/时间序列功能,可以节省10倍以上的时间。是否有人熟悉为矩阵和空间数据提供此功能的类似软件包或函数 快速示例: # Generate a raster with random values r <- raster(nrows=100, ncols=100) values(r) <

我正在使用R中的光栅和相关软件包来做一些遥感工作。对于我正在编写的许多函数,我喜欢快速计算邻域/移动窗口统计信息。不幸的是,我或其他人编写的任何R实现都非常非常慢

我知道caTools软件包提供了用C编写的向量/时间序列功能,可以节省10倍以上的时间。是否有人熟悉为矩阵和空间数据提供此功能的类似软件包或函数

快速示例:

# Generate a raster with random values
r <- raster(nrows=100, ncols=100)
values(r) <- rbinom(dim(r)[1] * dim(r)[2], 1, 0.1)

# Now generate a raster highlighting the original values plus immediate neighbors
# (By default ngb yields a queen-esque weighting system)
r.neighbor <- focal(r, ngb=3, fun=max)

# system.time() of the above function for a 100x100 raster takes 0.8 seconds on my laptop
# and takes over 15 seconds for a 1000x1000 raster
#使用随机值生成光栅

r一个示例案例会很有用。有多种方法可以做到这一点,从使用
embed()
到更具体的包。但是你必须给我们更多的细节,因为最佳的方法在很大程度上取决于你到底想做什么。奇怪的是,德克没有在这里加入RCPPP。欢迎提供更多细节。不过,目前还不太清楚,你为什么对你的案例中的移动平均线感兴趣。你是不是想(1)对空间数据进行平滑处理或(2)密度估计(或等角线)?这很公平。抱歉,这不清楚——上面更新了一些我正在尝试做的额外细节。