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.

Re: grib, cdl

NOTE: The decoders mailing list is no longer active. The list archives are made available for historical reasons.

Dave,

I am just starting to look at this, it might take a couple of days.  I'm
busy getting an LDM workshop together.  I just looked at the new GRIB
documentation, it has info on ruc2.  It's located at:

I noticed there is a new version of the GRIB document (Office Note 388)
dated >March 10, 1998 in ftp://nic.fb4.noaa.gov/pub/doc/nws/nmc/gribed1.
Thought you >might be interested.

There might need to be some changes to the gribtonc source code.  I would
use gribdump and the comment out method of the offending variables in the
cdl file until  gribtonc can process the file. Since I'm not a
meteorologist, I have to depend on help from my cohorts.  Keep me abreast
of your progress also.

Thanks,
Robb...


On Mon, 24 Aug 1998 laps@xxxxxxxxxxxxxxxxxxxxx wrote:

robb,

i am trying to use 'gribtonc' to convert the ruc2 native 40km model
from the oso server to netcdf.  fsl gave me a cdl file they use for
this model. i dont know why this is so difficult.  i am not sure
that they us the gribtonc program to accomplish their convertion, but
this cdl convention should work with this model. right?   here is my
command line stuff:

cyclone[bennett]291>ncgen -o ruc2.nc ruc2.cdl

cyclone[bennett]292>gribtonc -l log -v ruc2.nc < ruc2.T12Z.bgrbanl

cyclone[bennett]293>more log
Aug 24 20:15:54 gribtonc[19142]: Starting Up
Aug 24 20:15:54 gribtonc[19142]: Error parsing units: Pascals / second
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: can't get units attribute for 
variable w
Aug 24 20:15:54 gribtonc[19142]: GRIB units `degK' not conformable with 
variable Tv:units
Aug 24 20:15:54 gribtonc[19142]: Error parsing units: WMO centers table
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: can't get units attribute for 
variable center_id
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: no datetimeid variable
Aug 24 20:15:54 gribtonc[19142]: make_ncfile failed
Aug 24 20:15:54 gribtonc[19142]: can't create output netCDF file ruc2.nc, 
exiting
Aug 24 20:15:54 gribtonc[19142]: Exiting
Aug 24 20:15:54 gribtonc[19142]: 0 WMO msgs, 0 GRIBs decoded, 0 written

i added the datetime variable but that didn't matter.  the center_id is 
actually in
the cdl file so that doesn't make sense to me.  the error about Tv:units is also
a mystery. Tv is tropopause v-winds which has units m/s so where does 'degK' 
come from?
your help here would be great if you have the time.  thanks...

dave bennett


================================== CDL FILE ==================================

netcdf ruc2_40km_hybridb.cdl
    {

    dimensions:
        record = unlimited;
        namelen = 132;
        nav = 1;
x = 151; y = 113;
        z = 40;

    variables:

 //  Geopotential Height

    float
        hgt(record, z, y, x) ;
        hgt:long_name = "geopotential height" ;
        hgt:units = "gp m" ;
        hgt:z = "isoLevel";
        hgt:record = "reftime, valtime" ;
        hgt:valid_range = -1000.f, 50000.f ;
        hgt:_FillValue = -9999.f ;
        hgt:navigation_var = "nav";


        //      u wind component

        float
            u(record, z, y, x);
            u:navigation_dim = "nav";
            u:z_dim = "vpt, p";
            u:record = "valtime, reftime";
            u:long_name = "u-component of wind";
            u:units = "meters / second";
            u:valid_range = -200.f, 200.f;
            u:_FillValue = -99999.f;

        //      v wind component

        float
            v(record, z, y, x);
            v:navigation_dim = "nav";
            v:z_dim = "vpt, p";
            v:record = "valtime, reftime";
            v:long_name = "v-component of wind";
            v:units = "meters / second";
            v:valid_range = -200.f, 200.f;
            v:_FillValue = -99999.f;

        //      montgomery stream function

        float
            msg(record, z, y, x);
            msg:navigation_dim = "nav";
            msg:z_dim = "vpt, p";
            msg:record = "valtime, reftime";
            msg:long_name = "montgomery stream function / gravity";
            msg:units = "meters";
            msg:valid_range = 20000.f, 50000.f;
            msg:_FillValue = -99999.f;

        //      atmospheric pressure

        float
            p(record, z, y, x);
            p:navigation_dim = "nav";
            p:z_dim = "vpt";
            p:record = "valtime, reftime";
            p:long_name = "pressure";
            p:units = "pascals";
            p:valid_range = 0.f, 110000.f;
            p:_FillValue = -99999.f;

        //      virtual potential temperature   

        float
            vpt(record, z, y, x);
            vpt:navigation_dim = "nav";
            vpt:z_dim = "p";
            vpt:record = "valtime, reftime";
            vpt:long_name = "virtual potential temperature";
            vpt:units = "degrees kelvin";
            vpt:valid_range = 0.f, 600.f;
            vpt:_FillValue = -99999.f;

        //      water vapor mixing ratio

        float
            qv(record, z, y, x);
            qv:navigation_dim = "nav";
            qv:z_dim = "vpt, p";
            qv:record = "valtime, reftime";
            qv:long_name = "water vapor mixing ratio";
            qv:units = "kg / kg";
            qv:valid_range = 0.f, 100.f;
            qv:_FillValue = -99999.f;

        //      cloud water mixing ratio

        float
            qc(record, z, y, x);
            qc:navigation_dim = "nav";
            qc:z_dim = "vpt, p";
            qc:record = "valtime, reftime";
            qc:long_name = "cloud water mixing ratio";
            qc:units = "kg / kg";
            qc:valid_range = 0.f, 100.f;
            qc:_FillValue = -99999.f;

        //      rain water mixing ratio

        float
            qr(record, z, y, x);
            qr:navigation_dim = "nav";
            qr:z_dim = "vpt, p";
            qr:record = "valtime, reftime";
            qr:long_name = "rain water mixing ratio";
            qr:units = "kg / kg";
            qr:valid_range = 0.f, 100.f;
            qr:_FillValue = -99999.f;

        //      ice mixing ratio

        float
            qi(record, z, y, x);
            qi:navigation_dim = "nav";
            qi:z_dim = "vpt, p";
            qi:record = "valtime, reftime";
            qi:long_name = "ice mixing ratio";
            qi:units = "kg / kg";
            qi:valid_range = 0.f, 100.f;
            qi:_FillValue = -99999.f;

        //      snow mixing ratio

        float
            qs(record, z, y, x);
            qs:navigation_dim = "nav";
            qs:z_dim = "vpt, p";
            qs:record = "valtime, reftime";
            qs:long_name = "snow mixing ratio";
            qs:units = "kg / kg";
            qs:valid_range = 0.f, 100.f;
            qs:_FillValue = -99999.f;

        //      graupel mixing ratio

        float
            qg(record, z, y, x);
            qg:navigation_dim = "nav";
            qg:z_dim = "vpt, p";
            qg:record = "valtime, reftime";
            qg:long_name = "graupel mixing ratio";
            qg:units = "kg / kg";
            qg:valid_range = 0.f, 100.f;
            qg:_FillValue = -99999.f;

        //      number concentration for ice particles

        float
            qin(record, z, y, x);
            qin:navigation_dim = "nav";
            qin:z_dim = "vpt, p";
            qin:record = "valtime, reftime";
            qin:long_name = "number concentration for ice particles";
            qin:units = "1 / m**3";
            qin:valid_range = 0.f, 100.f;
            qin:_FillValue = -99999.f;

        //      turbulent kinetic energy

        float
            tke(record, z, y, x);
            tke:navigation_dim = "nav";
            tke:z_dim = "vpt, p";
            tke:record = "valtime, reftime";
            tke:long_name = "turbulent kinetic energy";
            tke:units = "m**2 / s**2";
            tke:valid_range = 0.f, 10000.f;
            tke:_FillValue = -99999.f;

        //      vertical velocity

        float
            w(record, z, y, x);
            w:navigation_dim = "nav";
            w:z_dim = "vpt, p";
            w:record = "valtime, reftime";
            w:long_name = "vertical velocity";
            w:units = "Pascals / second";
            w:valid_range = -10000.f, 10000.f;
            w:_FillValue = -99999.f;

        //      MAPS Mean Sea Level Pressure

        float
            MMSP(record, y, x);
            MMSP:navigation_dim = "nav";
            MMSP:record = "valtime, reftime";
            MMSP:long_name = "MAPS mean sea level pressure";
            MMSP:units = "pascals";
            MMSP:valid_range = 80000.f, 110000.f;
            MMSP:_FillValue = -99999.f;

        //      Soil Temperature at surface

        float
            ST(record, y, x);
            ST:navigation_dim = "nav";
            ST:record = "valtime, reftime";
            ST:long_name = "soil temperature at surface";
            ST:units = "degrees kelvin";
            ST:valid_range = 150.f, 400.f;
            ST:_FillValue = -99999.f;

        //      Snow Temperature - snow or soil top level

        float
            STsnow(record, y, x);
            STsnow:navigation_dim = "nav";
            STsnow:record = "valtime, reftime";
            STsnow:long_name = "snow temperature - snow or top soil level";
            STsnow:units = "degrees kelvin";
            STsnow:valid_range = 150.f, 400.f;
            STsnow:_FillValue = -99999.f;

        //      Soil Temperature at level 1 below surface

        float
            ST1(record, y, x);
            ST1:navigation_dim = "nav";
            ST1:record = "valtime, reftime";
            ST1:long_name = "soil temperature at level 1 below surface";
            ST1:units = "degrees kelvin";
            ST1:valid_range = 150.f, 400.f;
            ST1:_FillValue = -99999.f;

        //      Soil Temperature at level 2 below surface

        float
            ST2(record, y, x);
            ST2:navigation_dim = "nav";
            ST2:record = "valtime, reftime";
            ST2:long_name = "soil temperature at level 2 below surface";
            ST2:units = "degrees kelvin";
            ST2:valid_range = 150.f, 400.f;
            ST2:_FillValue = -99999.f;

        //      Soil Temperature at level 3 below surface

        float
            ST3(record, y, x);
            ST3:navigation_dim = "nav";
            ST3:record = "valtime, reftime";
            ST3:long_name = "soil temperature at level 3 below surface";
            ST3:units = "degrees kelvin";
            ST3:valid_range = 150.f, 400.f;
            ST3:_FillValue = -99999.f;

        //      Soil Temperature at level 4 below surface

        float
            ST4(record, y, x);
            ST4:navigation_dim = "nav";
            ST4:record = "valtime, reftime";
            ST4:long_name = "soil temperature at level 4 below surface";
            ST4:units = "degrees kelvin";
            ST4:valid_range = 150.f, 400.f;
            ST4:_FillValue = -99999.f;

        //      Soil Temperature at the bottom

        float
            ST5(record, y, x);
            ST5:navigation_dim = "nav";
            ST5:record = "valtime, reftime";
            ST5:long_name = "soil temperature at the bottom";
            ST5:units = "degrees kelvin";
            ST5:valid_range = 150.f, 400.f;
            ST5:_FillValue = -99999.f;

        //      Soil volumetric moisture content at surface

        float
            SM(record, y, x);
            SM:navigation_dim = "nav";
            SM:record = "valtime, reftime";
            SM:long_name = "soil volumetric moisture content at surface";
            SM:units = "m**3 / m**3";
            SM:valid_range = 0.f, 1.f;
            SM:_FillValue = -99999.f;

        //      Soil volumetric moisture content at level 1 below surface

        float
            SM1(record, y, x);
            SM1:navigation_dim = "nav";
            SM1:record = "valtime, reftime";
            SM1:long_name = "soil volumetric moisture content at level 1";
            SM1:units = "m**3 / m**3";
            SM1:valid_range = 0.f, 1.f;
            SM1:_FillValue = -99999.f;

        //      Soil volumetric moisture content at level 2 below surface

        float
            SM2(record, y, x);
            SM2:navigation_dim = "nav";
            SM2:record = "valtime, reftime";
            SM2:long_name = "soil volumetric moisture content at level 2";
            SM2:units = "m**3 / m**3";
            SM2:valid_range = 0.f, 1.f;
            SM2:_FillValue = -99999.f;

        //      Soil volumetric moisture content at level 3 below surface

        float
            SM3(record, y, x);
            SM3:navigation_dim = "nav";
            SM3:record = "valtime, reftime";
            SM3:long_name = "soil volumetric moisture content at level 3";
            SM3:units = "m**3 / m**3";
            SM3:valid_range = 0.f, 1.f;
            SM3:_FillValue = -99999.f;

        //      Soil volumetric moisture content at level 4 below surface

        float
            SM4(record, y, x);
            SM4:navigation_dim = "nav";
            SM4:record = "valtime, reftime";
            SM4:long_name = "soil volumetric moisture content at level 4";
            SM4:units = "m**3 / m**3";
            SM4:valid_range = 0.f, 1.f;
            SM4:_FillValue = -99999.f;

        //      Soil volumetric moisture content at the bottom

        float
            SM5(record, y, x);
            SM5:navigation_dim = "nav";
            SM5:record = "valtime, reftime";
            SM5:long_name = "soil volumetric moisture content at the bottom";
            SM5:units = "m**3 / m**3";
            SM5:valid_range = 0.f, 1.f;
            SM5:_FillValue = -99999.f;

        //      Sensible heat flux

        float
            SHF(record, y, x);
            SHF:navigation_dim = "nav";
            SHF:record = "valtime, reftime";
            SHF:long_name = "sensible heat flux";
            SHF:units = "W / m**2";
            SHF:valid_range = -10000.f, 10000.f;
            SHF:_FillValue = -99999.f;

        //      Latent heat flux

        float
            LHF(record, y, x);
            LHF:navigation_dim = "nav";
            LHF:record = "valtime, reftime";
            LHF:long_name = "latent heat flux";
            LHF:units = "W / m**2";
            LHF:valid_range = -10000.f, 10000.f;
            LHF:_FillValue = -99999.f;

        //      Direct evaporation from bare soil

        float
            EDIR(record, y, x);
            EDIR:navigation_dim = "nav";
            EDIR:record = "valtime, reftime";
            EDIR:long_name = "direct evaporation from bare soil";
            EDIR:units = "W / m**2";
            EDIR:valid_range = -10000.f, 10000.f;
            EDIR:_FillValue = -99999.f;

        //      Evaporation of canopy water

        float
            EC(record, y, x);
            EC:navigation_dim = "nav";
            EC:record = "valtime, reftime";
            EC:long_name = "evaporation of canopy water";
            EC:units = "W / m**2";
            EC:valid_range = -10000.f, 10000.f;
            EC:_FillValue = -99999.f;

        //      Canopy water

        float
            CANWAT(record, y, x);
            CANWAT:navigation_dim = "nav";
            CANWAT:record = "valtime, reftime";
            CANWAT:long_name = "canopy water";
            CANWAT:units = "m";
            CANWAT:valid_range = 0.f, 1.f;
            CANWAT:_FillValue = -99999.f;

        //      Evapotranspiration flux

        float
            ETT(record, y, x);
            ETT:navigation_dim = "nav";
            ETT:record = "valtime, reftime";
            ETT:long_name = "evapotranspiration flux";
            ETT:units = "W / m**2";
            ETT:valid_range = -10000.f, 10000.f;
            ETT:_FillValue = -99999.f;

        //      Water condensation rate near surface

        float
            DEW(record, y, x);
            DEW:navigation_dim = "nav";
            DEW:record = "valtime, reftime";
            DEW:long_name = "water condensation rate near surface";
            DEW:units = "m / s";
            DEW:valid_range = -10000.f, 10000.f;
            DEW:_FillValue = -99999.f;

        //      Rate of water dropping from canopy to ground

        float
            DRIP(record, y, x);
            DRIP:navigation_dim = "nav";
            DRIP:record = "valtime, reftime";
            DRIP:long_name = "rate of water dropping from canopy to ground";
            DRIP:units = "m / s";
            DRIP:valid_range = -10000.f, 10000.f;
            DRIP:_FillValue = -99999.f;

        //      Net Longwave Radiation at Surface

        float
            LWNR(record, y, x);
            LWNR:navigation_dim = "nav";
            LWNR:record = "valtime, reftime";
            LWNR:long_name = "net longwave radiation at surface";
            LWNR:units = "W / m**2";
            LWNR:valid_range = -10000.f, 10000.f;
            LWNR:_FillValue = -99999.f;

        //      Net Shortwave Radiation at Surface

        float
            SWNR(record, y, x);
            SWNR:navigation_dim = "nav";
            SWNR:record = "valtime, reftime";
            SWNR:long_name = "net shortwave radiation at surface";
            SWNR:units = "W / m**2";
            SWNR:valid_range = -10000.f, 10000.f;
            SWNR:_FillValue = -99999.f;

        //      precipitation rate

        float
            PR(record, y, x);
            PR:navigation_dim = "nav";
            PR:record = "valtime, reftime";
            PR:long_name = "precipitation rate";
            PR:units = "kg / m**2 / s";
            PR:valid_range = 0.f, 0.1f;
            PR:_FillValue = -99999.f;

        //      resolvable scale precipitation - 1 hour

        float
            LgSP1h(record, y, x);
            LgSP1h:navigation_dim = "nav";
            LgSP1h:record = "valtime, reftime";
            LgSP1h:long_name = "resolvable scale precipitation - 1h";
            LgSP1h:units = "kg / m**2";
            LgSP1h:valid_range = 0.f, 1000.f;
            LgSP1h:_FillValue = -99999.f;

//      resolvable scale precipitation - 2 hour

        float
            LgSP2h(record, y, x);
            LgSP2h:navigation_dim = "nav";
            LgSP2h:record = "valtime, reftime";
            LgSP2h:long_name = "resolvable scale precipitation - 2h";
            LgSP2h:units = "kg / m**2";
            LgSP2h:valid_range = 0.f, 1000.f;
            LgSP2h:_FillValue = -99999.f;

//      resolvable scale precipitation - 3 hour

        float
            LgSP3h(record, y, x);
            LgSP3h:navigation_dim = "nav";
            LgSP3h:record = "valtime, reftime";
            LgSP3h:long_name = "resolvable scale precipitation - 3h";
            LgSP3h:units = "kg / m**2";
            LgSP3h:valid_range = 0.f, 1000.f;
            LgSP3h:_FillValue = -99999.f;

       // sub-grid scale precipitation - 1h

        float
            ConvP1h(record, y, x);
            ConvP1h:navigation_dim = "nav";
            ConvP1h:record = "valtime, reftime";
            ConvP1h:long_name = "sub-grid scale precipitation - 1h";
            ConvP1h:units = "kg / m**2";
            ConvP1h:valid_range = 0.f, 1000.f;
            ConvP1h:_FillValue = -99999.f;

              // sub-grid scale precipitation - 2h

        float
            ConvP2h(record, y, x);
            ConvP2h:navigation_dim = "nav";
            ConvP2h:record = "valtime, reftime";
            ConvP2h:long_name = "sub-grid scale precipitation - 2h";
            ConvP2h:units = "kg / m**2";
            ConvP2h:valid_range = 0.f, 1000.f;
            ConvP2h:_FillValue = -99999.f;
// sub-grid scale precipitation - 3h

        float
            ConvP3h(record, y, x);
            ConvP3h:navigation_dim = "nav";
            ConvP3h:record = "valtime, reftime";
            ConvP3h:long_name = "sub-grid scale precipitation - 3h";
            ConvP3h:units = "kg / m**2";
            ConvP3h:valid_range = 0.f, 1000.f;
            ConvP3h:_FillValue = -99999.f;

        
     //      Water equivalent of snow depth - 1h

        float
            SnwAcc1h(record, y, x);
            SnwAcc1h:navigation_dim = "nav";
            SnwAcc1h:record = "valtime, reftime";
            SnwAcc1h:long_name = "water equivalent of snow depth - 1h";
            SnwAcc1h:units = "kg / m**2";
            SnwAcc1h:valid_range = 0.f, 1000.f;
            SnwAcc1h:_FillValue = -99999.f;

        //      Water equivalent of snow depth - 2h

        float
            SnwAcc2h(record, y, x);
            SnwAcc2h:navigation_dim = "nav";
            SnwAcc2h:record = "valtime, reftime";
            SnwAcc2h:long_name = "water equivalent of snow depth - 2h";
            SnwAcc2h:units = "kg / m**2";
            SnwAcc2h:valid_range = 0.f, 1000.f;
            SnwAcc2h:_FillValue = -99999.f;

        //      Water equivalent of snow depth - 3h

        float
            SnwAcc3h(record, y, x);
            SnwAcc3h:navigation_dim = "nav";
            SnwAcc3h:record = "valtime, reftime";
            SnwAcc3h:long_name = "water equivalent of snow depth - 3h";
            SnwAcc3h:units = "kg / m**2";
            SnwAcc3h:valid_range = 0.f, 1000.f;
            SnwAcc3h:_FillValue = -99999.f;

       //      snow accumulation since last output

        float
            SnwAcc(record, y, x);
            SnwAcc:navigation_dim = "nav";
            SnwAcc:record = "valtime, reftime";
            SnwAcc:long_name = "snow accumulation";
            SnwAcc:units = "centimeters";
            SnwAcc:valid_range = 0.f, 1000.f;
            SnwAcc:_FillValue = -99999.f;


        //      surface runoff since last output

        float
            Rnoff(record, y, x);
            Rnoff:navigation_dim = "nav";
            Rnoff:record = "valtime, reftime";
            Rnoff:long_name = "surface runoff";
            Rnoff:units = "kg / m**2";
            Rnoff:valid_range = 0.f, 1000.f;
            Rnoff:_FillValue = -99999.f;

        //      sub-surface runoff since last output

        float
            SubRnoff(record, y, x);
            SubRnoff:navigation_dim = "nav";
            SubRnoff:record = "valtime, reftime";
            SubRnoff:long_name = "sub-surface runoff";
            SubRnoff:units = "kg / m**2";
            SubRnoff:valid_range = 0.f, 1000.f;
            SubRnoff:_FillValue = -99999.f;

        //      precipitable water

        float
            PW(record, y, x);
            PW:navigation_dim = "nav";
            PW:record = "valtime, reftime";
            PW:long_name = "precipitable water";
            PW:units = "kg / m**2";
            PW:valid_range = 0.f, 100.f;
            PW:_FillValue = -99999.f;

        //      atmospheric pressure at tropopause

        float
            Tp(record, y, x);
            Tp:navigation_dim = "nav";
            Tp:record = "valtime, reftime";
            Tp:long_name = "pressure at tropopause";
            Tp:units = "pascals";
            Tp:valid_range = 0.f, 110000.f;
            Tp:_FillValue = -99999.f;

        //      potential temperature at tropopause

        float
            Tpot(record, y, x);
            Tpot:navigation_dim = "nav";
            Tpot:record = "valtime, reftime";
            Tpot:long_name = "potential temperature at tropopause";
            Tpot:units = "degrees kelvin";
            Tpot:valid_range = 200.f, 500.f;
            Tpot:_FillValue = -99999.f;

        //      u wind component at tropopause

        float
            Tu(record, y, x);
            Tu:navigation_dim = "nav";
            Tu:record = "valtime, reftime";
            Tu:long_name = "u-component of wind at tropopause";
            Tu:units = "meters / second";
            Tu:valid_range = -200.f, 200.f;
            Tu:_FillValue = -99999.f;

        //      v wind component at tropopause

        float
            Tv(record, y, x);
            Tv:navigation_dim = "nav";
            Tv:record = "valtime, reftime";
            Tv:long_name = "v-component of wind at tropopause";
            Tv:units = "meters / second";
            Tv:valid_range = -200.f, 200.f;
            Tv:_FillValue = -99999.f;

        //      convective available potential energy - max parcel

        float
            CAPE(record, y, x);
            CAPE:navigation_dim = "nav";
            CAPE:record = "valtime, reftime";
            CAPE:long_name = "convective available potential energy";
            CAPE:units = "J / kg";
            CAPE:valid_range = 0.f, 20000.f;
            CAPE:_FillValue = -99999.f;

        //      convective inhibition for max parcel

        float
            CIn(record, y, x);
            CIn:navigation_dim = "nav";
            CIn:record = "valtime, reftime";
            CIn:long_name = "convective inhibition";
            CIn:units = "J / kg";
            CIn:valid_range = 0.f, 20000.f;
            CIn:_FillValue = -99999.f;

        //      storm-relative helicity

        float
            Helic(record, y, x);
            Helic:navigation_dim = "nav";
            Helic:record = "valtime, reftime";
            Helic:long_name = "storm-relative helicity";
            Helic:units = "m**2/s**2";
            Helic:valid_range = 0.f, 20000.f;
            Helic:_FillValue = -99999.f;

        //      snow depth

        float
            SnD(record, y, x);
            SnD:navigation_dim = "nav";
            SnD:record = "valtime, reftime";
            SnD:long_name = "snow depth";
            SnD:units = "meters";
            SnD:valid_range = 0.f, 20000.f;
            SnD:_FillValue = -99999.f;


        double
            valtime(record);
            valtime:long_name = "valid time";
            valtime:units = "seconds since (1970-1-1 00:00:00.0)";
// reference time of the process

        double
            reftime(record);
            reftime:long_name = "reference time";
            reftime:units = "seconds since (1970-1-1 00:00:00.0)";

        //      nice name for originating center

        char
            origin_name(namelen);
            origin_name:long_name = " ";

        //      nice name for process

        char
            process_name(namelen);
            process_name:long_name = " ";

        //      nice name for grid description instance
        char
            grid_name(namelen);
            grid_name:long_name = " ";

        //      basic assumption about earth shape
        char
            earth_shape(namelen);
            earth_shape:long_name = " ";

// navigation variables using // WMO FM 92-VIII Ext.GRIB specification names char grid_type(nav, namelen);
                grid_type:long_name = "GRIB-1 grid type";
char x_dim(nav, namelen);
                x_dim:long_name = "longitude dimension";
char y_dim(nav, namelen);
                y_dim:long_name = "latitude dimension";
short Nx(nav);
                Nx:long_name = "number of x points";
short Ny(nav);
                Ny:long_name =  "number of y points";
short Nz(nav);
                Nz:long_name =  "number of z points";
float La1(nav);
                La1:long_name = "first latitude";
                La1:units = "degrees_north";
float Lo1(nav);
                Lo1:long_name = "first longitude";
                Lo1:units = "degrees_east" ;
float Lov(nav);
                Lov:long_name = "orientation of grid" ;
                Lov:units = "degrees_east";
float Latin(nav);
                Latin:long_name = "conic tangent latitude" ;
                Latin:units = "degrees_north";
float Dx(nav);
                Dx:long_name = "x grid increment";
                Dx:units = "kilometers";
float Dy(nav);
                Dy:long_name = "y grid increment";
                Dy:units = "kilometers";
// end of navigation variables

        long    center_id;
                center_id:long_name = "center ID";
                center_id:units = "WMO centers table";
long process_id;
                process_id:long_name = "process ID";
                process_id:units = "(allocated by center)";
:Conventions = "NUWG";
        :history = "created by FSL Data Systems from the RUC2 Model Grids";
        :record = "valtime, reftime";
        :title = "Hybrid-B 40km Rapid Update Cycle";
        :version = 1.0;
//----------------------------------------------------------------------
        // overhead information used to query the NIMBUS data pool for data
        // this is specific to FSL data management systems
        //----------------------------------------------------------------------
        :query = "GDAM.NMC.RUC2.RUC240kmHyB.*";
        :age = 10800;

    data:

        Dx              = 40.63525;
        Dy              = 40.63525;
        La1             = 16.2810;
        Lo1             = 126.1378;
        Lov             = 265.0;
        Latin           = 25.0;
        Nx              = 151;
        Ny              = 113;
        Nz              = 40;
        center_id       = 7;                   // NMC
        earth_shape     = "oblate spheroid";
        grid_name       = "FSL Conus 40km";
        grid_type       = "lambert conformal";
        process_id      = 105;                    // RUC2 40km
        process_name    = "RUC2 40km Hybrid-b 3-d/2-d Grids";
        origin_name     = "National Weather Service";
        x_dim           = "x";
        y_dim           = "y";

    }






==============================================================================
Robb Kambic                                Unidata Program Center
Software Engineer III                      Univ. Corp for Atmospheric Research
rkambic@xxxxxxxxxxxxxxxx                   WWW: http://www.unidata.ucar.edu/
==============================================================================


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