注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

含权平均风向(按风玫瑰图原理,不能够有权的作用)  

2017-05-08 03:52:27|  分类: Scala |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

https://math.stackexchange.com/questions/44621/calculate-average-wind-direction

type AF1 = Array[Float]

def meanWD(ws : AF1,ds : AF1):Float = {
val n = ws.length
val wds = ws.zip(ds)
val u_east = wds.map(wd => wd._1 * sin(toRadians(wd._2))).sum / n
val u_north = wds.map(wd => wd._1 * cos(toRadians(wd._2))).sum / n
val unit_WD = toDegrees(atan2(u_east, u_north))
val md = (360 + unit_WD) % 360
md.toFloat
}

scala> val ws=Array(1f,1f)

ws: Array[Float] = Array(1.0, 1.0)

scala> val ds=Array(350f,45f)

ds: Array[Float] = Array(350.0, 45.0)

scala> meanWD(ws,ds)

res11: Float = 17.5

scala> val ds=Array(270f,90f)

ds: Array[Float] = Array(270.0, 90.0)

scala> meanWD(ws,ds)

res12: Float = 180.0


scala> val ds=Array(360f,180f)

ds: Array[Float] = Array(360.0, 180.0)

scala> meanWD(ws,ds)

res13: Float = 270.0

val ds=Array(0f,0f)

scala> meanWD(ws,ds)

res0: Float = 0.0

  评论这张
 
阅读(23)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017