4

我试图从这里获得净初级生产力的时间序列全球估计,将它们下载到远程的美国机器上(我在肯尼亚,手机互联网速度很慢),将它们从当前格式转换为ascii,使用如下函数粗化它们:

coarsen = function(input,size_out){
    if (dim(input)[1] != dim(input)[2]) {print("Matrix not square.")} else {    
    dimsize = dim(input)[1]
    fac = dimsize/size_out
    x = suppressWarnings(matrix(c(rep(1, fac), rep(0, dimsize)), dimsize, dimsize/fac))
    t(x) %*% input %*% x}
    }

然后下载它们,以便我可以使用它们。这是否可以使用 R 而不是专门构建的 GIS 程序来实现?如果是这样,我会怎么做?首选 R 的解决方案——我将使用无法安装程序的集群,但我可以安装 R 包。

4

1 回答 1

5

raster包具有出色的功能,可以读取和写入许多不同格式的网格数据,以及对此类数据执行各种操作。

使用它,您的情况(对于单个文件)的基本工作流程可能是这样的:

library(raster)
f <- "path/to/downloaded/file.tif"
r <- raster(f)
ra <- aggregate(r, fact=2)  ## By default aggregates using mean, but see fun=
writeRaster(ra, "path/to/outfile.asc", format="ascii")

该软件包有据可查。我建议从?"raster-package"and开始vignette(Raster)(加上 中列出的所有帮助文件help(package="raster")),然后在遇到严重障碍时返回这里。

于 2013-06-24T21:04:33.643 回答