Source code
for objective trough/jet in gridded data sets.
Info.
After
several requests, I’m putting the source code for the objective trough/jet
lines on the internet to allow anyone interested to have a look or even use
it.
The
code is written in Fortran 90 and because of my computing skills (or lack
thereof) it is quite long and clumsy. It reads data in GEMPAK format, although
it can be easily modified to read other gridded datasets (e.g. netCDF, binary files etc) with the addition of appropriate
read/write subroutines and libraries. The code has been successfully compiled
with pgf90 and ifort on Linux systems and Sun
f90 compiler on Sun systems.
Because
the code is unsophisticated the input data must be in cylindrical equidistant
projection (regular lat/lon) due to the way in
which the spatial derivatives are computed (simple centred
difference). The program can use streamfunction (computed externally) or
the meridional and zonal wind components and a simple smoother can be applied
to reduce noise before the fields are processed.
The
output consists of several fields including shear and curvature vorticity,
advection of curvature vorticity as well as trough and jet axes in both easterly
and westerly flow. The trough/jet axis fields consist of isolated zero contours
surrounded by missing data (assigned the value -9999.0), if only the zero
contour is plotted the axes are shown. Included in the code is a very simple
tracking subroutine that will output the trough/jet locations in separate
text files. This is still under development so the reliability is untested
in all situations.
The
code is commented throughout (with variable quality) and credits for parts
of the code must go to Profs. Anantha Aiyyer and Gary Lackmann at
Credit
for ideas behind this program is given to Tim Hewson
(UK Met Office), Chris Thorncroft and myself (SUNY Albany). This work is
discussed in our paper in Monthly Weather Review:
Berry, G. J., C. Thorncroft and T.Hewson (2007): African Easterly Waves during 2004 - Analysis using objective techniques Mon. Wea. Rev. 135, 1251-1267. Copyright 2007 American Meteorological Society.
Source Code download.
FAQ.
How is the curvature vorticity
computed?
Thanks
to Tim Hewson the answer is relatively simple.
In essence, we take advantage of the fact that:
Relative
vorticity = Shear Vorticity + Curvature vorticity.
Which,
rearranged gives:
Curvature
Vorticity = Relative Vorticity – Shear Vorticity.
Relative
vorticity can be computed directly from the NWP model meridional (v) and
zonal (u) wind components:
The
computation of shear vorticity is more involved, but essentially boils down
to computing components of a vector. This is best described schematically.
For an arbitrary wind field on a regular grid (grid spacing of Delta x and
Delta y), the computation at each grid point ‘n’ uses the four surrounding
grid points A, B, C and D:
The
red vector shows the wind for the grid point being computed and the blue
vectors are the winds at the surrounding points, which are used in the computation.
The grey x’s are other
grid points not used.
For
the computation, the wind vector at point ‘n’ is used as the reference vector
and the components of the wind relative to this are computed at points A-D
(red dotted lines):
The
components parallel to the reference vector (green vectors) are used to determine
the shear vorticity:
These
components are recast in grid relative coordinates to give the meridional
and zonal components (‘vs’ and ‘us’):
From
these we can the compute the shear vorticity:
Simple
subtraction of the two fields (relative and shear vorticity) gives us curvature
vorticity.
This material is based
upon work supported by the National Science Foundation under Grant No. 0507976.
Any opinions, findings, and conclusions or recommendations expressed in this
material are those of the author(s) and do not necessarily reflect the views
of the National Science Foundation.