Years ago, I did lots of work on this with Don Johnson and grad
students...since Prof Johnson wanted to do all his work in isentropic
coordinates.
The customary practices are to label the vertical axis in K (values of
theta) with linear values. In the situation where a super-adiabatic
layer exists, we normally took the "middle" crossing to be the value to
use; if it's the first layer, then use the first crossing.
Complicating this: the correct way to compute the altitude is to use the
hypsometric equation and to integrate up from the lower pressure level
used to interpolate the data at the theta level. Further, the values
of the other parameters were interpolated from the original pressure
coordinates to isentropic coordinates using linear variation with log p.
And then there's the computation of the stream function....this must be
done correctly to insure the balance of the computed geostrophic wind...
tom
Bill Hibbard wrote:
Hi Don,
Well, theta doesn't always increase with decreasing pressure.
Even where it does, the grid boxes may be so distorted that
the Gridded3DSet constructor rejects them.
If your (lat, lon, press) doesn't have a reference, then
it can be a reference for a CS to (lat, lon, theta) and
you can resample your (((lat,lon,theta) -> altitude) Field
to a grid defined in (lat, lon, theta). But of course
defining the CS requires you to invert the
((lat,lon,press) -> theta) to a ((lat, lon, theta) -> press).
As a last resort, you can do a 1-D computation along the
vertical line above each (lat, lon) grid point, interpolating
altitude values for each of your theta levels. If there are
no theta "inversions", you might be able to do this with
resample() calls on a bunch of derived 1-D Fields.
Good luck,
Bill
On Tue, 12 Apr 2005, Don Murray wrote:
Hi-
I have a field of potential temperature of the form:
(lat,lon,press) -> theta
and a corresponding field for altitude:
(lat,lon,press) -> altitude
What I'd like to have is a field of:
(lat,lon,theta) -> altitude
but where the theta values are at specific levels (e.g. every
5K between 280 and 320) so I can resample to a specific slice.
Basically, I'd like to take slices through the 3D theta volume,
getting the corresponding lat,lon and (interpolated) altitude
values at each lat,lon,press point on the theta temperature slice.
I tried just replacing press with theta and then creating a
new sampling set with my desired values, but it I got complaints
from Gridded3DSet about not the samples not being a valid grid.
Anyone have a suggestion on a different way to do this?
Thanks.
Don
*************************************************************
Don Murray UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000
(303) 497-8628 Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
"Time makes everyone interesting, even YOU!"
*************************************************************