Re: Creating a new vertical domain

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!"
*************************************************************