【问题标题】:Proper workflow to manipulate a raster to match the extent, origin, and resolution of another操作栅格以匹配另一个栅格的范围、原点和分辨率的正确工作流程
【发布时间】:2016-12-16 05:46:39
【问题描述】:

我正在使用两个在来源、范围和分辨率方面不同的栅格。我有一个测深栅格,具有更高的分辨率(x=0.0008333333,y=0.0008333333)和很大的空间范围。我还有一个海面温度栅格,它的分辨率要粗得多(x=0.04166667,y=0.04166667)。两个栅格具有相同的投影 (longlat, datum=WGS84)。

我想操作测深栅格以匹配海面温度栅格的范围、来源和分辨率。但是,我的经验很少,我不确定“最佳做法”。

我已经尝试了两种不同的方法,我想知道哪种方法更好,也许可以解释一下它们在底层流程方面的不同之处。我也愿意接受其他可能更好地保存数据的方法。

方法一: 1)首先,我聚合了测深栅格,使其尽可能与SST栅格相似

library(raster)
bathycoarse<-aggregate(bathymetry, fact=c(48,50), fun=mean)

2) 其次,我通过 SST 栅格裁剪了测深栅格

bathycoarsecrop<-crop(bathycoarse,sst)

3) 第三,我使用 SST 栅格重新采样了测深栅格,得到了相同的原点和范围。

bathyresample<-resample(bathycoarsecrop, sst, method="bilinear")

方法2:我使用了函数projectRaster()

bathy2<-projectRaster(bathymetry, sst, method="bilinear")

显然,方法 2 要简单得多。但是我不太明白这个函数在做什么,所以我想确保我以正确的方法完成我的目标。

【问题讨论】:

    标签: r raster


    【解决方案1】:

    “projectRaster”函数使用与“resample”函数相同的重采样(重采样方法由您设置为“bilinear”的“method”参数定义 - 表示双线性插值,这可能是您在交易时想要的具有连续数值数据集)。 因此,使用该功能应该适合您。

    如果您想加快速度,您可以通过“beginCluster”函数启动集群,轻松使用“projectRaster”函数进行并行处理,然后使用“projectRaster”函数进行自动并行处理。

    beginCluster(4) # use the number of cores you want to use
    bathy2 <- projectRaster(bathymetry, sst, method="bilinear")
    endCluster()
    

    【讨论】:

    • 再次感谢您的回答!我使用了 projectRaster(),我发现了一些奇怪的东西。我制作了一个数据框,以便可以比较每个像素的海面温度值和测深值(现在两者具有相同的坐标系、范围和像元大小)。两个栅格都有对应于陆地的“NA”值。我注意到一些像素的水深测量值为“NA”,但 SST 为数值。怎么会这样?原始的测深栅格比 SST 栅格具有非常精细的分辨率,因此它的陆地轮廓应该是准确的
    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 2017-03-25
    相关资源
    最近更新 更多