How do I calculate current speed and direction from three beam ADCP velocity components?
FollowAn instrument will have as many velocity vectors as the number of beams. A three beam instrument will thus provide three velocity vectors, regardless of the chosen coordinate system. The preferred coordinate system may be specified in deployment software or converted to in post-processing. Each velocity vector represent one axis of the given coordinate system and we have the following possible velocity variables:
- Beam 1 or X-axis or East
- Beam 2 or Y-axis or North
- Beam 3 or Z-axis or Up
The velocity vectors in Beam coordinates describe movement of water along the individual beams, meaning that at a given depth they will represent velocity from three separate volumes of water (measurement cell). The current directions are always fixed to the directions that the transducers are pointing. The current speed along one beam is the magnitude of the relevant vector.
The vectors in both XYZ coordinates and ENU coordinates represent 3D velocity of one collected volume, after the assumption of horizontally homogeneity. The resulting speed and direction is determined based on the three vectors, but as the overall vertical velocity in the ocean averages out to zero, we are most often interested in horizontal currents. That is velocity in the EN-plane for ENU coordinates and in the XY-plane for XYZ coordinates (as long as the instrument is not tilted). The following calculations apply to the horizontal plane.
Speed is found by making use of the Pythagorean theorem. The unit is m/s.
ENU: Speed = sqrt(East^2 + North^2)
XYZ: Speed = sqrt(X^2 + Y^2)
Direction is calculated based on the familiar θ=arctan(X/Y). In order to know the correct quadrant that the computed angle belongs in, one has to use the four-quadrant inverse tangent arctan2. 180/pi converts from radians to degrees and modulo (mod) is taken in order to avoid negative degrees. The X,Y convention is reversed for Excel vs Matlab, both are shown here as examples.
Excel
ENU: MOD(ARCTAN2(East,North)*180/PI,360)
XYZ: MOD(ARCTAN2(X,Y)*180/PI,360)
Matlab
ENU: mod(atan2(North,East)*180/pi,360)
XYZ: mod(atan2(Y,N)*180/pi,360)
Note that current direction is defined towards. 0 degrees points towards North/positive Y, 90 degrees towards East/positive X, 180 degrees towards South/negative Y, and 270 towards West/negative X.
Comments
0 comments
Article is closed for comments.