气象风场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;
}