关于风向的u、v分量,及根据uv计算风向公式

风向是按正北方向起算的,0度表示北风。90度表示东风。
u表示经度方向上的风,v表示纬度方向上的风。
u为正,表示西风,从西边吹来的风。v为正,表示南风,从南边从来的风。假如u为1,v为1,则表示西南风。
关于风向的u、v分量,及根据uv计算风向公式_第1张图片
根据uv计算风向的公式:
function fun(u,v) {
if (u > 0 & v > 0) {
  fx = 270 - Math.atan(v / u) * 180 / Math.PI;
}
else if (u < 0 & v > 0) {
  fx = 90 - Math.atan(v / u) * 180 / Math.PI;
}
else if (u < 0 & v < 0) {
  fx = 90 - Math.atan(v / u) * 180 / Math.PI;
}
else if (u > 0 & v < 0) {
  fx = 270 - Math.atan(v / u) * 180 / Math.PI;
}
else if (u == 0 & v > 0) {
  fx = 180;
}
else if (u == 0 & v < 0) {
  fx = 0;
}
else if (u > 0 & v == 0) {
  fx = 270;
}
else if (u < 0 & v == 0) {
  fx = 90;
}
else if (u == 0 & v == 0) {
  fx = 999.9;
}
}

或者:var dir=180+Math.atan2(u,v)*180/Math.PI
但这个公式在JavaScript代码执行时不完善,不足在于:1、当uv均为0时,dir计算出180度,但实际dir应该无效值;2、当u为0,v<0时,应该是0度,但计算结果为360(虽然也表示0度)

参考: http://colaweb.gmu.edu/dev/clim301/lectures/wind/wind-uv
https://www.cnblogs.com/yanjinliang/p/7879312.html

你可能感兴趣的:(气象知识)