gpt4 book ai didi

r - 使用 lapply 或 ifelse 从风的 U 和 V 分量计算风向

转载 作者:行者123 更新时间:2023-12-04 16:23:27 24 4
gpt4 key购买 nike

由于罗盘航向的范围为 0-360 度,平均标量风向数据会产生不准确的值,因此我已经将我的列表从幅度和风向角度转换为 u 和 v 分量。

为了恢复正确的风向,出于平均目的,我需要为以下 3 个场景开发某种应用、ifelse、函数:

V > 0...((180 / pi) * atan((Ucomp/Vcomp)) + 180)
U and V < 0...((180 / pi) * atan((Ucomp/Vcomp)) + 0)
U > 0 and V < 0...((180 / pi) * atan((Ucomp/Vcomp)) + 360)

在我要分析的数据集中,Ucomp 大于 0 且 Vcomp 小于零,但毫无疑问会出现所有 3 种情况都会出现的情况,所以我需要一个函数来解析和迭代计算并应用正确的每个时间步长的公式。我以前没有使用过 lapply 或函数,所以我玩它们没有用。

我在下面提供了一个数据样本...
  DateTime Wind.Spd Wind.Direction Air.Density   Temp.C GEP.GE16XLE GCF.GE16XLE    Ucomp      Vcomp
1 1981 7.662370 248.3395 0.9148207 11.28967 597.7513 37.35946 5.253453 -0.7404972
2 1982 8.199412 251.6763 0.9172176 10.12751 678.8595 42.42872 5.867979 -0.6191475
3 1983 8.188782 251.7889 0.9162767 10.30619 667.9461 41.74663 5.777208 -1.0473982
4 1984 7.942632 246.7908 0.9174074 10.05093 642.6374 40.16484 5.415773 -0.6796723
5 1985 8.016558 252.7305 0.9171721 10.38414 654.2588 40.89117 5.649406 -0.9999082
6 1986 7.739984 249.6431 0.9158740 10.99859 607.0542 37.94089 5.305971 -0.9118965

最佳答案

你应该看看使用 atan2函数,它可能会消除对所有 if 语句和额外计算的需要。

如果您在指导方面做了很多工作,那么您还应该查看 circularCircStats为您处理许多这些细节的软件包(有些与您所做的类似,只是更加自动化)。

关于r - 使用 lapply 或 ifelse 从风的 U 和 V 分量计算风向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8673137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com