我有两个光栅堆栈文件ur
和vr
分别带有u和v分量的风速。如何计算每个网格单元的平均风速和方向?我知道我可以用下面的等式计算风向
windir<-calc(atan2(vwind, uwind) * 360/2/pi) + 180
和平均风使用
winav<- ((mean.u^2 + mean.v^2)^0.5)
我的问题是如何在ur
和vr
的每个网格单元上实现这些方程式我提到this question和其他链接,但仍然存储在此计算中。
与RasterStack
s vr
和ur
vr <- stack(system.file("external/rlogo.grd", package="raster"))
ur <- flip(vr, 'y')
你确实可以使用你的公式:
windir <- atan2(vr, ur) * 180/pi + 180
winav <- (ur^2 + vr^2)^0.5
或者,您可以使用overlay
windir2 <- overlay(vr, ur, fun=function(x,y) atan2(x,y) *180/pi + 180)
winav2 <- overlay(vr, ur, fun=function(x, y) (x^2 + y^2)^0.5 )