[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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 <address@hidden>
> Organization: UCAR/Unidata
> To: Doug Lindholm <address@hidden>
> CC: Beth A Plale <address@hidden>,        Tom Baltzer
> <address@hidden>
> References: <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/
===============================================================================


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.