NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Rich- Rich Signell wrote: > I just discovered that IDV cannot plot ocean profile data correctly
when the vertical coordinate is pressure. Profiling instruments determine depth by measuring the hydrostatic pressure, so pressure relative to the sea surface is commonly used as the vertical coordinate for ocean profile data. The units of ocean pressure are nearly decibars, because they equate very nearly to meters. Here's an example table at 40 degrees north from "Data Analysis Methods in Physical Oceanography" by Emery and Thomson: Pressure Depth Difference (dbar) (m) (%) 0 0 0 100 99 1 1000 990 1 2000 1975 1.3 3000 2956 1.5 6000 5872 2.1 For the atmosphere, the IDV users guide says "the IDV displays pressure surfaces by converting the pressure to a height in some reference system. There are two reference systems that come standard with the IDV - the U.S. Standard Atmosphere and a logarithmic conversion (also used in Vis5D). The U.S. Standard Atmosphere only computes conversions for pressures up to about 80 km. The logarithmic coordinate system uses the following equations: P = 1012.5 * e^( H / -7.2 ) (^ denotes exponentiation) H = -7.2 * Ln( P / 1012.5 ) (Ln denotes natural log) so can be used for heights above 80 km."
There are hooks in the IDV for adding in your own vertical transformations. The two above are the only ones that have been implemented. Contact me offline if you are interested in developing one and implementing it.
For the ocean, we either simply use decibars as depth, or as in the atmophere, use a formula to convert pressure to depth. I know of two standard formulas (given here in Matlab syntax, but hopefully understandable): 1. the official UNESCO formula to derive depth from pressure: % Eqn 25, p26. Unesco 1983. % Unesco 1983. Algorithms for computation of fundamental properties of % seawater, 1983. _Unesco Tech. Pap. in Mar. Sci._, No. 44, 53 pp. % coded in Matlab by Phil Morgan, CSIRO %========================================================================= function DEPTHM = sw_dpth(P,LAT) % DEPTHM = depth in meters % P = pressure in decibars % LAT = latitude in decimal degrees north DEG2RAD = pi/180; c1 = +9.72659; c2 = -2.2512E-5; c3 = +2.279E-10; c4 = -1.82E-15; gam_dash = 2.184e-6; LAT = abs(LAT); X = sin(LAT*DEG2RAD); % convert to radians X = X.*X; bot_line = 9.780318*(1.0+(5.2788E-3+2.36E-5*X).*X) + gam_dash*0.5*P; top_line = (((c4*P+c3).*P+c2).*P+c1).*P; DEPTHM = top_line./bot_line; 2. the simpler version from Saunders, which produces depths within one meter of the more complex UNESCO formula: %Saunders, 1981, "Practical conversion of pressure to depth" % Journal of Physical Oceanography, April 1981, V11, p573-574. function DEPTHM = sw_depth(P,LAT) DEG2RAD=pi/180; X = sin(LAT*DEG2RAD); c1 = (5.92 + 5.25*X.*X)*1.e-3; c2 = 2.21E-6; DEPTHM = (1 - c1).*P - c2*P.*P; If it were me, I'd use the latter. Of course, how to determine whether we are in the ocean or not? Perhaps in IDV we could just use the ocean formula when the units are "decibars", "decibar", "dbar" or "dbars" until we have a CF convention (or do we already have one) to determine if we are in the ocean or not.
I'd rather not hardcode something like that. Since the IDV is uses in several geoscience disciplines, I could imagine someone else having data with a vertical dimension in units of dbar and wanting something different. I'll contact you offline about this. 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 *************************************************************
idvusers
archives: