Re: 19990707: cdl file for 6-hr synoptic reports

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

Peter,

You are correct, "Buoy/Ship Speed", and "Buoy/SHip Direction" are missed
named, the should be "Wind SPD" and "Wind DIR".  The ships speed and
direction are in fields later in the CDL.

Robb...

netcdf synoptic  {                              // synoptic netCDF definition

dimensions:
        recNum = UNLIMITED ;
        rep_type_len = 4;
        stnName_len = 6;
        cloud_levels = 3;
        r_len = 256;

variables:

        char rep_type( recNum, rep_type_len ) ;
                rep_type:long_name = "Report type";
                rep_type:_FillValue = "\0";
                rep_type:reference = "WMO #306, FM 12-X";
        int wmoId( recNum ) ;
                wmoId:long_name = "WMO Identification number";
                wmoId:_FillValue = -99999;
                wmoId:reference = "systns_upc.tbl Table";
        char stnName( recNum, stnName_len ) ;
                stnName:long_name = "Station Name";
                stnName:_FillValue = "\0";
        long time_obs( recNum ) ;
                time_obs:long_name = "time of Observation";
                time_obs:_FillValue = -99999;
                time_obs:units = "seconds since 1970-01-01 00 UTC";
        long time_nominal( recNum ) ;
                time_nominal:long_name = "time nominal";
                time_nominal:_FillValue = -99999;
                time_nominal:units = "seconds since 1970-01-01 00 UTC";
        float Lat( recNum ) ;
                Lat:long_name = "Station latitude";
                Lat:_FillValue = -99999.f;
                Lat:valid_range = -90.0, 90.0;
                Lat:units = "degrees";
        float Lon( recNum ) ;
                Lon:long_name = "Station longitude";
                Lon:_FillValue = -99999.f;
                Lon:valid_range = -180.0, 180.0;
                Lon:units = "degrees";
        int elev( recNum ) ;
                elev:long_name = "Elevation of station";
                elev:_FillValue = -99999;
                elev:units = "meters";
        int stnType( recNum ) ;
                stnType:long_name = "Type of station operation";
                stnType:_FillValue = -99999;
                stnType:reference = "Table 1860";
        int meanWind( recNum ) ;
                meanWind:long_name = "Highest mean wind speed";
                meanWind:_FillValue = -99999;
                meanWind:reference = "Table 3778";
        int VIS( recNum ) ;
                VIS:long_name = "Horizontal visibility";
                VIS:_FillValue = -99999;
                VIS:reference = "Table 4377";
        int DIR( recNum ) ;
                DIR:long_name = "Wind Direction";
                DIR:_FillValue = -99999;
                DIR:valid_range = 0, 360;
                DIR:units = "degrees";
        float SPD( recNum ) ;
                SPD:long_name = "Wind Speed";
                SPD:_FillValue = -99999.f;
                SPD:units = "meters/sec";
        float T( recNum ) ;
                T:long_name = "Air Temperature to tenths";
                T:_FillValue = -99999.f;
                T:units = "Celsius";
        int humidity( recNum ) ;
                humidity:long_name = "Humidity";
                humidity:_FillValue = -99999;
                humidity:units = "percent";
        float TD( recNum ) ;
                TD:long_name = "Dew-point Air temperature to tenths";
                TD:_FillValue = -99999.f;
                TD:units = "Celsius";
        float PRES( recNum ) ;
                PRES:long_name = "Station level pressure";
                PRES:_FillValue = -99999.f;
                PRES:units = "millibars";
        float SLP( recNum ) ;
                SLP:long_name = "Sea level pressure";
                SLP:_FillValue = -99999.f;
                SLP:units = "millibars";
        int char_Ptend( recNum ) ;
                char_Ptend:long_name = "Character Pressure tendency";
                char_Ptend:_FillValue = -99999;
                char_Ptend:units = "0|1|2|3|4|5|6|7|8 Table 12-5";
        float Ptend( recNum ) ;
                Ptend:long_name = "Change in Pressure in past 3 hours";
                Ptend:_FillValue = -99999.f;
                Ptend:units = "millibars";
        float PRECIP_amt( recNum ) ;
                PRECIP_amt:long_name = "Precipitation amount";
                PRECIP_amt:_FillValue = -99999.f;
                PRECIP_amt:units = "mm";
                PRECIP_amt:reference = "Table 3590";
        int PRECIP_period( recNum ) ;
                PRECIP_period:long_name = "Precipitation Period";
                PRECIP_period:_FillValue = -99999;
                PRECIP_period:units = "hours";
                PRECIP_period:reference = "Table 4019";
        int WXpresent( recNum ) ;
                WXpresent:long_name = "Present weather";
                WXpresent:_FillValue = -99999;
                WXpresent:reference = "Manned stn Table 4677, auto Table 4680";
        int WXpast( recNum ) ;
                WXpast:long_name = "Past weather";
                WXpast:_FillValue = -99999;
                WXpast:reference = "Manned stn Table 4561, auto Table 4531";
        int cloudCover( recNum ) ;
                cloudCover:long_name = "Total cloud cover in oktas";
                cloudCover:_FillValue = -99999;
                cloudCover:reference = "Table 2700";
        int cloudLow( recNum ) ;
                cloudLow:long_name = "Lower level clouds";
                cloudLow:_FillValue = -99999;
                cloudLow:reference = "Table 0513";
        int cloudMiddle( recNum ) ;
                cloudMiddle:long_name = "Middle level clouds";
                cloudMiddle:_FillValue = -99999;
                cloudMiddle:reference = "Table 0515";
        int cloudHigh( recNum ) ;
                cloudHigh:long_name = "Higher level clouds";
                cloudHigh:_FillValue = -99999;
                cloudHigh:reference = "Table 0509";
        int shipTrueDIR( recNum ) ;
                shipTrueDIR:long_name = "Ship's True direction";
                shipTrueDIR:_FillValue = -99999;
                shipTrueDIR:reference = "Table 0700";
        int shipAvgSPD( recNum ) ;
                shipAvgSPD:long_name = "Ship's Avg speed";
                shipAvgSPD:_FillValue = -99999;
                shipAvgSPD:reference = "Table 4451";
        float Tw( recNum ) ;
                Tw:long_name = "Water Temperature to tenths";
                Tw:_FillValue = -99999.f;
                Tw:units = "Celsius";
        int Pwa( recNum ) ;
                Pwa:long_name = "Period of waves";
                Pwa:_FillValue = -99999;
                Pwa:units = "seconds";
        int Hwa( recNum ) ;
                Hwa:long_name = "Height of waves";
                Hwa:_FillValue = -99999;
                Hwa:units = "meters";
        float Hwa_tenths( recNum ) ;
                Hwa_tenths:long_name = "Height of waves";
                Hwa_tenths:_FillValue = -99999.f;
                Hwa_tenths:units = "meters";
        int swellDIR1( recNum ) ;
                swellDIR1:long_name = "Direction of swells";
                swellDIR1:_FillValue = -99999;
                swellDIR1:units = "degrees";
        float Ps1( recNum ) ;
                Ps1:long_name = "Period of swells";
                Ps1:_FillValue = -99999.f;
                Ps1:units = "seconds";
        float Hs1( recNum ) ;
                Hs1:long_name = "Height of swells";
                Hs1:_FillValue = -99999.f;
                Hs1:units = "meters";
        int swellDIR2( recNum ) ;
                swellDIR2:long_name = "Direction of swells";
                swellDIR2:_FillValue = -99999;
                swellDIR2:units = "degrees";
        float Ps2( recNum ) ;
                Ps2:long_name = "Period of swells";
                Ps2:_FillValue = -99999.f;
                Ps2:units = "seconds";
        float Hs2( recNum ) ;
                Hs2:long_name = "Height of swells";
                Hs2:_FillValue = -99999.f;
                Hs2:units = "meters";
        int iceType( recNum ) ;
                iceType:long_name = "Type of Ice build up";
                iceType:_FillValue = -99999;
                iceType:reference = "Table 1751";
        int iceThick( recNum ) ;
                iceThick:long_name = "Ice thickness";
                iceThick:_FillValue = -99999;
                iceThick:units = "centimeters";
        int iceRate( recNum ) ;
                iceRate:long_name = "Rate of Ice build up";
                iceRate:_FillValue = -99999;
                iceRate:reference = "Table 3551";
        float Tb( recNum ) ;
                Tb:long_name = "Web Bulb Temperature";
                Tb:_FillValue = -99999.f;
                Tb:units = "Celsius";
        int ICE( recNum ) ;
                ICE:long_name = "Sea ice or ice of land origin";
                ICE:_FillValue = -99999;
        int iceConcen( recNum ) ;
                iceConcen:long_name = "Ice concentration";
                iceConcen:_FillValue = -99999;
                iceConcen:reference = "Table 0639";
        int iceStage( recNum ) ;
                iceStage:long_name = "Stage of development";
                iceStage:_FillValue = -99999;
                iceStage:reference = "Table 3739";
        int iceLand( recNum ) ;
                iceLand:long_name = "Ice of Land origin";
                iceLand:_FillValue = -99999;
                iceLand:reference = "Table 0439";
        int iceEdge( recNum ) ;
                iceEdge:long_name = "True bearing of Ice Edge";
                iceEdge:_FillValue = -99999;
                iceEdge:reference = "Table 0739";
        int iceSituation( recNum ) ;
                iceSituation:long_name = "Present Ice Situation";
                iceSituation:_FillValue = -99999;
                iceSituation:reference = "Table 5239";
        float Tmax( recNum ) ;
                Tmax:long_name = "Max Air Temperature to tenths";
                Tmax:_FillValue = -99999.f;
                Tmax:units = "Celsius";
        float Tmin( recNum ) ;
                Tmin:long_name = "Min Air Temperature to tenths";
                Tmin:_FillValue = -99999.f;
                Tmin:units = "Celsius";
        int groundState( recNum ) ;
                groundState:long_name = "State of ground";
                groundState:_FillValue = -99999;
                groundState:reference = "Table 0975";
        int snowDepth( recNum ) ;
                snowDepth:long_name = "Snow depth";
                snowDepth:_FillValue = -99999;
                snowDepth:units = "Centimeters";
                snowDepth:reference = "Table 3889";
        float PRECIP_amt24( recNum ) ;
                PRECIP_amt24:long_name = "Precipitation amount last 24 hours";
                PRECIP_amt24:_FillValue = -99999.f;
                PRECIP_amt24:units = "mm";
        int cloudObsured( recNum, cloud_levels ) ;
                cloudObsured:long_name = "Total cloud cover in oktas";
                cloudObsured:_FillValue = -99999;
                cloudObsured:reference = "Table 2700";
        int cloudGenus( recNum, cloud_levels ) ;
                cloudGenus:long_name = "Cloud genus";
                cloudGenus:_FillValue = -99999;
                cloudGenus:reference = "Table 0500";
        int cloudHeight( recNum, cloud_levels ) ;
                cloudHeight:long_name = "Cloud Height in meters";
                cloudHeight:_FillValue = -99999;
                cloudHeight:reference = "Table 1677";
        char report( recNum, r_len ) ;
                report:long_name = "Originial report";
                report:_FillValue = "\0";
                report:reference = "max length 256";

        :title = "SYNOPTIC definition";
        :version = 1.0;

//      In general:
//      
// The syn2nc decoder is dependant on the netCDF variables names // because it reads the cdl file to determine the variables to be
//      included in the netcdf file.  A user can comment out or delete
//      variables not to be included in the output file with exceptions,
//      the variables 'rep_type', 'wmoId' must be included.
// The WMO Manual on Codes #306 FM 12-X and FM 18-IX was used for some // variable definitions and all tables references are also from the same // manual.
//      
// Units must be compatible with UDUNITS and consistent for a given // variable (ie. all temperatures written out in degrees C, even though
//      they are reported in C or F). That's why the "units" attribute is
//      critical for numeric variables that may be used in calculations.
//      
}

On Wed, 7 Jul 1999, Unidata Support wrote:

>To: support@xxxxxxxxxxxxxxxx
>From: Peter Neilley <neilley@xxxxxxxxxxxx>
>Subject: cdl file for 6-hr synoptic reports
>Organization: .
>Keywords: 199907072012.OAA01549

We downloaded a copy of a netcdf cdl file from the Unidata web
page.  Looking over it, it appears that wind speed and direction
are missing.  There are fields for the "Highest mean wind speed",
"Buoy/Ship Speed", and "Buoy/SHip Direction", but apparently no
provision for wind speed and direction.  Is it possible that the
ship direction/speed is misnamed for the wind direction and speed?

We are decoding synoptics into netcdf files using the Unidata
decoder and are decifering the output now.  Insight appreciated.

Peter Neilley, NCAR/RAP
neilley@xxxxxxxx
303-497-8446


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


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