r - r 中的平均风向
问题描述
我有每小时的 u 和 v 风分量,我无法将它聚合到每日级别。
原则上,我认为我可以只取 U 和 V 风分量的平均值并找到这些平均值的方向,但是使用此算法得到的结果与使用专用包 CircStat 时不同。在下面的代码中,变量 dir_rwind 是根据平均 U 和 V 分量计算的方向,而 dir_CircStat 是使用 CircStat 计算的平均方向。
set.seed(123)
uc <- rnorm(300,0,2)
vc <- rnorm(300,0,2)
df <- data.frame(uc=uc, vc=vc,id=1:10)
df <- cbind(df,as.data.frame(rWind::uv2ds(df$uc,df$vc)))
agg <- df %>%
group_by(id)%>%
summarise(mean_u10 = mean(uc),
mean_v10 = mean(vc),
dir_rwind = rWind::uv2ds(mean_u10, mean_v10)[1],
dir_CircStat = (180/pi)*CircStats::circ.mean(dir*pi/180))
agg
为什么我得到不同的平均风向?我是否应该使用我尝试过的第一个算法(取每个组件的平均值:如变量 dir_rwind)?如果是,我应该何时使用每种计算算法?
非常感谢
解决方案
这更像是一个数学问题,而不是一个r
问题。问题是你不能说 n 个向量的平均方向等于平均向量的方向。考虑例如两个向量:(1, 0)
和(0, 10000)
。第一个的角度是 0 度,第二个的角度是 90 度。所以,平均方向是45度。但是平均向量是(.5, 5000)
,它的角度实际上与 90 度几乎没有区别。
推荐阅读
- jquery - 提交动态生成的按钮
- c# - 我可以在同一接口的多个实现上“隐式”调用方法吗?
- java - Optaplanner VRPTW“验证该 sourceVariableName 变量的输入问题的一致性”
- android - Flutter:如何修复多行启用文本字段底部的 SuffixIcon?
- azure-web-app-service - 从 ASP.NET CORE WEB API 向应用程序洞察添加请求
- javascript - 如何立即更新子组件中的父状态
- salesforce - 无法在 SFCC Demandware 中保存用户选择的选项列表值
- c++ - 在 Linux 上将正在运行的应用程序中的共享对象热更新到新版本
- javascript - Cordova webview + 角度
- java - Spring Boot JPA:GetRequest 没有输出