操作栅格以匹配另一个栅格的范围、原点和分辨率的正确工作流程
Proper workflow to manipulate a raster to match the extent, origin, and resolution of another
我正在处理两个在原点、范围和分辨率方面不同的栅格。我有一个测深栅格,具有更高的分辨率(x=0.0008333333,y=0.0008333333)和更大的空间范围。我还有一个海面温度栅格,它的分辨率要粗得多 (x=0.04166667,y=0.04166667)。两个栅格具有相同的投影 (longlat, datum=WGS84)。
我想操纵测深栅格以匹配海面温度栅格的范围、原点和分辨率。但是,我经验很少,不确定'best practices.'
我尝试了两种不同的方法,我想知道哪种更好,也许可以解释一下它们在底层流程方面的差异。我也对其他可能更好地保存数据的方法持开放态度。
方法一:
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")
方法二:我使用了函数projectRaster()
bathy2<-projectRaster(bathymetry, sst, method="bilinear")
显然,方法2要简单得多。但是我真的不明白这个函数在做什么,所以我想确保我以正确的方法实现了我的目标。
"projectRaster"函数使用与"resample"函数相同的重采样(重采样方法由您设置为"bilinear"的"method"参数定义——表示双线性插值,这可能是您在处理连续数字数据集时想要的)。
因此,使用该功能应该对您来说很好。
如果你想加快速度,你可以很容易地使用 "projectRaster" 函数的并行处理,方法是使用 "beginCluster" 函数启动一个集群,然后允许使用 "projectRaster"函数。
beginCluster(4) # use the number of cores you want to use
bathy2 <- projectRaster(bathymetry, sst, method="bilinear")
endCluster()
我正在处理两个在原点、范围和分辨率方面不同的栅格。我有一个测深栅格,具有更高的分辨率(x=0.0008333333,y=0.0008333333)和更大的空间范围。我还有一个海面温度栅格,它的分辨率要粗得多 (x=0.04166667,y=0.04166667)。两个栅格具有相同的投影 (longlat, datum=WGS84)。
我想操纵测深栅格以匹配海面温度栅格的范围、原点和分辨率。但是,我经验很少,不确定'best practices.'
我尝试了两种不同的方法,我想知道哪种更好,也许可以解释一下它们在底层流程方面的差异。我也对其他可能更好地保存数据的方法持开放态度。
方法一: 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")
方法二:我使用了函数projectRaster()
bathy2<-projectRaster(bathymetry, sst, method="bilinear")
显然,方法2要简单得多。但是我真的不明白这个函数在做什么,所以我想确保我以正确的方法实现了我的目标。
"projectRaster"函数使用与"resample"函数相同的重采样(重采样方法由您设置为"bilinear"的"method"参数定义——表示双线性插值,这可能是您在处理连续数字数据集时想要的)。 因此,使用该功能应该对您来说很好。
如果你想加快速度,你可以很容易地使用 "projectRaster" 函数的并行处理,方法是使用 "beginCluster" 函数启动一个集群,然后允许使用 "projectRaster"函数。
beginCluster(4) # use the number of cores you want to use
bathy2 <- projectRaster(bathymetry, sst, method="bilinear")
endCluster()