radvort −− compute approximate absolute vorticity flux and source
radvort un vn wn sxn syn lat gam0 gam1 bld cd
Radvort reads a Candis file containing synthesized radar data on the standard input and writes a Candis file to the standard output containing the original data plus certain derived fields, which will be described below. The first 5 command line arguments are names of input fields. Un, vn, and wn are the names of the x, y, and z components of the air motion, and should be 3-dimensional fields. Sxn and syn are scalar fields representing the x and y components of the assumed storm motion, such as used in radcart2(1). The next 5 arguments are parameters controlling the calculations. Lat is the latitude of the measurement, and is used to calculate the Coriolis parameter. Bld is the boundary layer depth, or actually, the depth over which surface drag is distributed. Cd is the drag coefficient, which should be of order 0.001.
The following derived fields are produced: The air density rho = 1.2*exp(-z/8.3), where z is in kilometers. The absolute vorticity vector, (ox, oy, oz) = (-d v_y /dz, d v_x /dz, f + d v_y /dx - dv_x/dy), where (v_x, v_y, v_z) are the components of the air velocity and f is the Coriolis parameter. The friction is (f_x, f_y) = -cd*(vmag*v_x, vmag*v_y)/bld, where vmag = pow(v_x*v_x + v_y*v_y, 0.5). The absolute vorticity flux is (avx, avy) = (vrel_x*oz - v_z*ox - fy, vrel_y*oz - v_z*oy + fx) where (vrel_x, vrel_y) = (v_x - s_x, v_y - s_y), the vector (s_x, s_y) being the storm motion. Thus, the flux is computed in the reference frame moving with the storm. (Remember that the flux of a scalar quantity is not Galilean-invariant.) The absolute vorticity source is soz = -d avx/dx - d avy/dy.
Before these computations are done, surface values of the air velocity are extrapolated down from values at the first level above the surface if necessary. (fx, fy) is only non-zero at and below the assumed depth of the boundary layer. The surface stress is assumed to be distributed uniformly over the boundary layer depth.
Calculations incorporating bad data lead to bad data results. Since centered derivatives are used, derivatives on the boundary of bad data are bad.
Radar data often have holes. Judicious use of cdffill(1) can help with this.
Cdffill(1), radcart2(1), radsynth(1).