
Radians are converted to degrees by multiplying by DperR (180/pi = 57.29578), and degrees are converted to radians by multiplying by RperD (pi/180 = 0.01745329).
This document uses the two-argument arc tangent function, atan2(y,x), which returns the arc tangent of y/x in the range -pi to pi radians, -180 to 180 degrees. Fortran, C/C++, Java, IDL and Splus all follow this convention.
Warning: Microsoft Excel switches the arguments, so that atan2(x,y) is the arc tangent of y/x.
To check your software, compute atan2(1,-1). If it equals 2.36 radians (135 degrees) then your software uses the normal convention and you can use these formulas unchanged.
If it equals -0.79 radians (-45 degrees) then your software follows the Excel convention and you must switch the atan2 arguments in the following equations.
Note that the two-argument arc tangent function may be called simply "atan" in some compilers and data analysis software.
Using a one argument atan function restricts the returned angle to a range of 180 degrees. Consequently one must test the sign of x and y to determine the full 360 degree range of directions.
A positive Umet component represents wind blowing to the East. +Vmet is wind to the North. This is right handed with respect to an upward +Wmet.
Dirmet = atan2(-Umet,-Vmet) * DperR = 270 - ( atan2(Vmet,Umet) * DperR ) Spd = sqrt(Umet2 + Vmet2) Umet = -Spd * sin(Dirmet * RperD) Vmet = -Spd * cos(Dirmet * RperD)
Determine the angle with respect to true north, (0=N,90=E) of the +Vsonic direction. Call this angle Vaz. Looking from above, the sonic coordinate system is therefore rotated Vaz degrees clockwise from meteorological coordinates.
Dirsonic = atan2(-Usonic,-Vsonic) * DperR Dirmet = Dirsonic + Vaz
For ATI and Campbell CSAT3 sonics, Vaz is the direction relative to true north, straight into the array from the un-obstructed direction, minus 90 degrees.
For Gill R2 sonics, if the sign of V is flipped, then Vaz is the angle of the N arrow + 60. If the sign of U is flipped, then Vaz is the N arrow direction + 240.
For Gill R3s, Vaz is the N arrow direction + 240 degrees.
Umet = Usonic * cos(Vaz*RperD) + Vsonic * sin(Vaz*RperD) Vmet = -Usonic * sin(Vaz*RperD) + Vsonic * cos(Vaz*RperD)
Usonic = Umet * cos(Vaz*RperD) - Vmet * sin(Vaz*RperD) Vsonic = Umet * sin(Vaz*RperD) + Vmet * cos(Vaz*RperD)
The U axis (Ustream) of streamwise coordinates is defined to be the mean wind direction. To rotate wind vectors to streamwise coordinates, first determine the the average wind vector,Uav, Vav, in the same coordinate system as the data to be rotated, which could be sonic or meteorological coordinates. The rotation angle is the angle of this wind vector from the U axis, measured positive counter-clockwise.
D = atan2(Vav,Uav) * DperR Ustream = U * cos(D*RperD) + V * sin(D*RperD) Vstream = -U * sin(D*RperD) + V * cos(D*RperD)
As expected, if U=Uav and V=Vav then Ustream = Spd, and Vstream = 0.