This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
On Wed, 21 Jul 2004, Doug Lindholm wrote: > Hi, > > Here's a question from Poornima that I'm not sure how to answer. My > first inclination is to tell her to focus on Eta data and OPeNDAP URLS. > But I suppose we need to handle the upper air stuff sometime. My > understanding of the perl servers is somewhat limited. I assumed that > the xml resulting from the url below does contain the data although I'm > not seeing much that looks like upper air data other than a "report" > that my mind can't parse, a time, a "T" value, and an empty "TD" value: > ugh... I haven't finished the upperair decoder to send back "XML". Actually the current code is just a place holder until i can finish the decoding part. The only good news is that the report is correct. What does Poornima expect? i'll include a list of the variables. robb... netcdf raob { dimensions: recNum = UNLIMITED ; manLevel = 22 ; sigTLevel = 150 ; sigWLevel = 76 ; mWndNum = 4 ; mTropNum = 4 ; staNameLen = 6 ; variables: long wmoStaNum (recNum) ; wmoStaNum:long_name = "WMO Station Number" ; wmoStaNum:reference = "Volume A of WMO publication 9" ; wmoStaNum:_FillValue = 99999 ; char staName (recNum, staNameLen) ; staName:long_name = "Station Identifier" ; float staLat (recNum) ; staLat:long_name = "Station Latitude" ; staLat:units = "degree_N" ; staLat:valid_range = 0.f, 90.f ; staLat:_FillValue = 99999.f ; float staLon (recNum) ; staLon:long_name = "Station Longitude" ; staLon:units = "degree_E" ; staLon:valid_range = -180.f, -50.f ; staLon:_FillValue = 99999.f ; float staElev (recNum) ; staElev:long_name = "Station Elevation" ; staElev:units = "meter" ; staElev:valid_range = -100.f, 3500.f ; staElev:_FillValue = 99999.f ; double synTime (recNum) ; synTime:long_name = "Synoptic Time" ; synTime:units = "seconds since (1970-1-1 00:00:0.0)" ; long numMand (recNum) ; numMand:long_name = "Number of Mandatory Levels" ; numMand:valid_range = 0, 22 ; long numSigT(recNum) ; numSigT:long_name = "Number of Significant Levels wrt T" ; numSigT:valid_range = 0, 150 ; long numSigW(recNum) ; numSigW:long_name = "Number of Significant Levels wrt W" ; numSigW:valid_range = 0, 76 ; long numMwnd(recNum) ; numMwnd:long_name = "Number of Maximum Wind Levels" ; numMwnd:valid_range = 0, 4 ; long numTrop(recNum) ; numTrop:long_name = "Number of Tropopause Levels" ; numTrop:valid_range = 0, 4 ; double relTime(recNum) ; relTime:long_name = "Sounding Release Time" ; relTime:units = "seconds since (1970-1-1 00:00:0.0)" ; relTime:_FillValue = -1.0e+38d; long sondTyp(recNum) ; sondTyp:long_name = "Instrument Type" ; sondTyp:reference = "Federal Meteorological Handbook No. 4" ; sondTyp:_FillValue = 99999 ; float prMan(recNum, manLevel) ; prMan:long_name = "Pressure - Mandatory level" ; prMan:units = "hectopascal" ; prMan:valid_range = 1.f, 1500.f ; prMan:_FillValue = 99999.f ; float htMan(recNum, manLevel) ; htMan:long_name = "Geopotential - Mandatory level" ; htMan:units = "meter" ; htMan:valid_range = -250.f, 60000.f ; htMan:_FillValue = 99999.f ; float tpMan(recNum, manLevel) ; tpMan:long_name = "Temperature - Mandatory level" ; tpMan:units = "kelvin" ; tpMan:valid_range = 173.f, 373.f ; tpMan:_FillValue = 99999.f ; float tdMan(recNum, manLevel) ; tdMan:long_name = "Dew Point Depression - Mandatory level" ; tdMan:units = "kelvin" ; tdMan:valid_range = 0.f, 60.f ; tdMan:_FillValue = 99999.f ; float wdMan(recNum, manLevel) ; wdMan:long_name = "Wind Direction - Mandatory level" ; wdMan:units = "degree_true" ; wdMan:valid_range = 0.f, 360.f ; wdMan:_FillValue = 99999.f ; float wsMan(recNum, manLevel) ; wsMan:long_name = "Wind Speed - Mandatory level" ; wsMan:units = "meter/sec" ; wsMan:valid_range = 0.f, 300.f ; wsMan:_FillValue = 99999.f ; float prSigT(recNum, sigTLevel) ; prSigT:long_name = "Pressure - Significant level wrt T" ; prSigT:units = "hectopascal" ; prSigT:valid_range = 1.f, 1500.f ; prSigT:_FillValue = 99999.f ; float tpSigT(recNum, sigTLevel) ; tpSigT:long_name = "Temperature - Significant level wrt T" ; tpSigT:units = "kelvin" ; tpSigT:valid_range = 173.f, 373.f ; tpSigT:_FillValue = 99999.f ; float tdSigT(recNum, sigTLevel) ; tdSigT:long_name = "Dew Point Depression - Significant level wrt T" ; tdSigT:units = "kelvin" ; tdSigT:valid_range = 0.f, 60.f ; tdSigT:_FillValue = 99999.f ; float htSigW(recNum, sigWLevel) ; htSigW:long_name = "Geopotential - Significant level wrt W" ; htSigW:units = "meter" ; htSigW:valid_range = -250.f, 60000.f ; htSigW:_FillValue = 99999.f ; float wdSigW(recNum, sigWLevel) ; wdSigW:long_name = "Wind Direction - Significant level wrt W" ; wdSigW:units = "degree_true" ; wdSigW:valid_range = 0.f, 360.f ; wdSigW:_FillValue = 99999.f ; float wsSigW(recNum, sigWLevel) ; wsSigW:long_name = "Wind Speed - Significant level wrt W" ; wsSigW:units = "meter/sec" ; wsSigW:valid_range = 0.f, 300.f ; wsSigW:_FillValue = 99999.f ; float prTrop(recNum, mTropNum) ; prTrop:long_name = "Pressure - Tropopause level" ; prTrop:units = "hectopascal" ; prTrop:valid_range = 1.f, 1500.f ; prTrop:_FillValue = 99999.f ; float tpTrop(recNum, mTropNum) ; tpTrop:long_name = "Temperature - Tropopause level" ; tpTrop:units = "kelvin" ; tpTrop:valid_range = 173.f, 373.f ; tpTrop:_FillValue = 99999.f ; float tdTrop(recNum, mTropNum) ; tdTrop:long_name = "Dew Point Depression - Tropopause level" ; tdTrop:units = "kelvin" ; tdTrop:valid_range = 0.f, 60.f ; tdTrop:_FillValue = 99999.f ; float wdTrop(recNum, mTropNum) ; wdTrop:long_name = "Wind Direction - Tropopause level" ; wdTrop:units = "degree_true" ; wdTrop:valid_range = 0.f, 360.f ; wdTrop:_FillValue = 99999.f ; float wsTrop(recNum, mTropNum) ; wsTrop:long_name = "Wind Speed - Tropopause level" ; wsTrop:units = "meter/sec" ; wsTrop:valid_range = 0.f, 300.f ; wsTrop:_FillValue = 99999.f ; float prMaxW(recNum, mWndNum) ; prMaxW:long_name = "Pressure - Maximum wind level" ; prMaxW:units = "hectopascal" ; prMaxW:valid_range = 1.f, 1500.f ; prMaxW:_FillValue = 99999.f ; float wdMaxW(recNum, mWndNum) ; wdMaxW:long_name = "Wind Direction - Maximum wind level" ; wdMaxW:units = "degree_true" ; wdMaxW:valid_range = 0.f, 360.f ; wdMaxW:_FillValue = 99999.f ; float wsMaxW(recNum, mWndNum) ; wsMaxW:long_name = "Wind Speed - Maximum wind level" ; wsMaxW:units = "meter/sec" ; wsMaxW:valid_range = 0.f, 300.f ; wsMaxW:_FillValue = 99999.f ; // global attributes: :comment0 = "First mandatory level is surface level" ; :version = "Forecast Systems Lab 1.4" ; } > <station name="SPIM"> > <parameter name="report" value="SPIM 2004072107Z TTDD 7107/ 84628 > 11948 761// 22881 753// 33819 701// 44662 701// 55588 607// 66492 599// > 77439 549// 88377 579// 99312 549// 11277 577// 22227 511// 33211 519// > 21212 11955 36019 22909 01022 33867 30009 44829 25014 55790 25015 66754 > 21516 77718 19011 88685 09006 99655 02007 11624 01004 22596 32011 33568 > 29521 44543 29527 55470 29523 66389 24523 77353 26523 88218 26019 > " /> > <parameter name="time" value="2004072107Z" /> > <parameter name="T" value="07" /> > <parameter name="TD" value="" /> > </station> > > And in some cases "T" and "TD" are missing. Anyone care to enlighten me? > > Thanks, > Doug > > -------- Original Message -------- > Subject: Re: THREDDS client > Date: Wed, 21 Jul 2004 11:21:21 -0500 (EST) > From: Poornima Venkatakrishnan <address@hidden> > Organization: UCAR/Unidata > To: Doug Lindholm <address@hidden> > CC: Beth A Plale <address@hidden>, Tom Baltzer > <address@hidden> > References: <008e01c4595e$2d3c2210$address@hidden> > <address@hidden> > <address@hidden> > <address@hidden> > <address@hidden> > <address@hidden> > <address@hidden> > > Hi, > > I have been able to construct a query and retrieve the URL for the xml > file which has details about the dataset for the query... > > say upper air data with stn=SPIM and time=all > > I am able to get back the url > http://motherlode.ucar.edu:8080/thredds/cgi-bin/UpperairServer.pl?format=xml&stn=SPIM&time=all > > But I am trying to find out how to access the URL for the actual data; > that > is the urlpath for the nested datasets in the xml file at the URL above. > It will be great if you can tell me which APIs will get me this detail... > Thanks in advance. > Poornima > ****************************************************************** > Poornima Venkatakrishnan > Masters student > Computer Science. > > -- > *----------------------------------------------------------------------* > | Doug Lindholm, Software Engineer | E-mail: address@hidden | > | Unidata Program Center | Phone: 303-497-8659 | > | UCAR Office of Programs | | > | P.O. Box 3000 | There's no place | > | Boulder, Colorado 80307-3000 | like $HOME | > *----------------------------------------------------------------------* > =============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research address@hidden WWW: http://www.unidata.ucar.edu/ ===============================================================================