使用R将geoTIFF转换为ascii / text?

时间:2013-06-24 18:43:18

标签: r image-processing geospatial

我试图从here获取净初级生产力的时间序列全球估算值,将它们下载到美国的远程机器,机器(我在肯尼亚,手机上网速度慢) ),将它们从当前格式转换为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软件包。

1 个答案:

答案 0 :(得分:5)

光栅软件包具有出色的工具,可以读取和编写多种不同格式的网格化数据,并对此类数据执行各种操作。

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

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"vignette(Raster)(以及help(package="raster")中列出的所有帮助文件)开始,然后如果遇到严重的障碍,请回到此处。