我正在处理两个在起源,范围和分辨率上有所不同的栅格。我有一个测深光栅,具有更高的分辨率(x = 0.0008333333,y = 0.0008333333)和很大的空间范围。我还有一个海面温度栅格,它具有更粗糙的分辨率(x = 0.04166667,y = 0.04166667)。两个栅格都具有相同的投影(longlat,datum = WGS84)。
我想操纵水深测量光栅以匹配海面温度光栅的范围,原点和分辨率。但是,我的经验很少,而且我不确定最佳实践。'
我尝试了两种不同的方法,我想知道哪种方法更好,也许可以解释它们在底层流程方面的差异。我也对可能更好地保存数据的其他方法持开放态度。
方法1: 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要简单得多。但我真的不明白这个功能在做什么,所以我想确保用正确的方法完成我的目标。
答案 0 :(得分:1)
&#34; projectRaster&#34;函数使用与&#34; resample&#34;相同的重采样。函数(重新采样方法由&#34;方法&#34;参数设置为&#34; bilinear&#34; - 表示双线性插值,这可能是您处理连续数值数据集时所需要的)。 所以使用该功能应该适合你。
如果您想加快速度,可以轻松地使用&#34; projectRaster&#34;进行并行处理。通过使用&#34; beginCluster&#34;启动集群来实现功能。函数,然后允许自动并行处理&#34; projectRaster&#34;功能
beginCluster(4) # use the number of cores you want to use
bathy2 <- projectRaster(bathymetry, sst, method="bilinear")
endCluster()