气象风场UV,风向说明

1、0-360表示:

用角度表示风向,是把圆周分成360度,北风(N)是0度(即360度),东风(E)是90度,南风(S)是180度,西风(W)是270度,其余的风向都可以由此计算出来。


2、U和V表示:

U是东西风上的分量,西风为正。V是南北风上的分量,南风为正。
               if(u>=0&&v>=0)
                {
                    r='西南风';
                }
                else if(u<=0&&v>=0)
                {
                    r='东南风';
                }
                else if(u>=0&&v<=0)
                {
                    r='西北风';
                }
                else if(u<=0&&v<=0)
                {
                    r='东北风';
                }

 

 

 3、风向汉字的计算


public static Map<String,Object> getWindSpeed(float u,float v)
{
float speed=(float)Math.sqrt(u*u+v*v);
float direction=0;
String direct="";

double angle = Math.atan2(u,v);
double angles= 180+angle*180/Math.PI;
if(angles<0)
{
angles=angles+360;
}
direction=(float)angles;

if(angles>=15&&angles<75)
{
direct="东北风";
}
else if(angles>=75&&angles<105)
{
direct="东风";
}
else if(angles>=105&&angles<165)
{
direct="东南风";
}
else if(angles>=165&&angles<195)
{
direct="南风";
}
else if(angles>=195&&angles<255)
{
direct="西南风";
}

else if(angles>=255&&angles<285)
{
direct="西风";
}
else if(angles>=285&&angles<345)
{
direct="西北风";
}
else
{
direct="北风";
}

Map<String, Object> item = new HashMap<String, Object>();
item.put("direct",direct);
item.put("speed",speed);
item.put("direction",direction);

return item;
}
 




 
原文地址:https://www.cnblogs.com/tiandi/p/4994479.html