Привожу код, которым выполняю конвертацию данных (U - меридиональная компонента, V - зональная):
Код: Выделить всё
def rect(u, v, deg=1): # radian if deg=0; degree if deg=1
from math import cos, sin, pi, sqrt , tan, atan, fabs
w=999.
alpha=999.
if (deg and u<>0 and v<>0):
w = sqrt(u*u+v*v)
if (u>0) and (v>0):
alpha = atan(v/u)
if (v<0) and (u>0):
alpha = 2*pi - fabs(atan(v/u))
if (v<0) and (u<0):
alpha = pi + fabs(atan(v/u))
if (v>0) and (u<0):
alpha = pi - fabs(atan(v/u))
#Convert rad to grad
alpha = alpha * 180./pi
if (u==0 and v==0) and deg:
w = 0.
alpha = 0.
if (u==0 and v>0) and deg:
w = v
alpha = 90.
if (v==0 and u>0) and deg:
w = u
alpha = 0.
if (u==0 and v<0) and deg:
w = fabs(v)
alpha = 270.
if (v==0 and u<0) and deg:
w = fabs(u)
alpha = 180.
return w, alpha