Re: [Fwd: Re: THREDDS client]

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 <pvenkata@xxxxxxxxxxxxxx>
> Organization: UCAR/Unidata
> To: Doug Lindholm <lind@xxxxxxxx>
> CC: Beth A Plale <plale@xxxxxxxxxxxxxx>,        Tom Baltzer
> <tbaltzer@xxxxxxxxxxxxxxxx>
> References: <008e01c4595e$2d3c2210$a98c7580@xxxxxxxxxxxxxxxx>
> <Pine.GSO.4.58.0406240958490.27132@xxxxxxxxxxxxxxxxxxxxxxx>
> <Pine.GSO.4.51.0406241341120.15060@xxxxxxxxxxxxxxxxxxxxxxxx>
> <Pine.GSO.4.58.0407071012570.17966@xxxxxxxxxxxxxxxxxxxxxxx>
> <40F416D6.7080009@xxxxxxxx>
> <Pine.GSO.4.58.0407152029090.13779@xxxxxxxxxxxxxxxxxxxxxxx>
> <Pine.GSO.4.58.0407152350230.14385@xxxxxxxxxxxxxxxxxxxxxxx>
>
> 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: lind@xxxxxxxx   |
> | 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
rkambic@xxxxxxxxxxxxxxxx                   WWW: http://www.unidata.ucar.edu/
==============================================================================


  • 2004 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the thredds archives: