netcdf sao { // NUWG SAO netCDF definition dimensions: record = UNLIMITED ; stn_name_len = 4; //; stn_type_len = 1; //; rep_type_len = 2; //; WX_len = 40; cloud_layers = 5; CC_len = 8; cloudtype_len = 1; SAO_len = 256; variables: long wmo_id (record); wmo_id:long_name = "Numeric WMO Identifier"; //wmo_id:_FillValue = 99999; //; wmo_id:reference = "Volume A of WMO Publication 9"; char stn_name (record, stn_name_len); //stn_name:long_name = "Station name"; //stn_name:_FillValue = '\0'; //stn_name:reference = "city_sfc.dat "; float lat (record); //lat:long_name = "Station latitude"; //lat:_FillValue = ; //lat:valid_range = ; //lat:units = ; float lon (record); //lon:long_name = "Station longitude"; //lon:_FillValue = ; //lon:valid_range = ; //lon:units = ; float elev (record); //elev:long_name = "Station elevation"; //elev:_FillValue = ; //elev:units = ; double time_obs(record); //time_obs:long_name = "Time of observation"; //time_obs:_FillValue = ; //time_obs:units = "seconds since "; double time_nominal(record); //time_nominal:long_name = "Nominal time of observation"; //time_nominal:_FillValue = ; //time_nominal:units = "seconds since "; float T (record); //T:long_name = "Temperature"; //T:_FillValue = ; //T:units = ; float TD (record); //TD:long_name = "Dewpoint"; //TD:_FillValue = ; //TD:units = ; float P (record); //P:long_name = "Station pressure"; //P:_FillValue = ; //P:units = ; float DIR (record); //DIR:long_name = "Wind direction"; //DIR:_FillValue = ; //DIR:units = ; float SPD (record); //SPD:long_name = "Wind speed"; //SPD:_FillValue = ; //SPD:units = ; float GUST (record); //GUST:long_name = "Wind gusts"; //GUST:_FillValue = ; //GUST:units = ; float ALTIM (record); //ALTIM:long_name = "Altimeter setting"; //ALTIM:_FillValue= ; //ALTIM:units = ; float VIS (record); //VIS:long_name = "Visibility"; //VIS:_FillValue = ; //VIS:units = ; short WX (record, WX_len); //WX:long_name = "Weather"; //WX:_FillValue = ; //WX:reference = "FMH-1, Table 9-8"; char stn_type(record, stn_type_len); //stn_type:long_name = "Station type"; //stn_type:_FillValue = ; //stn_type:reference = "FMH-1"; char rep_type(record, rep_type_len); //rep_type:long_name = "Report type"; //rep_type:_FillValue = ; //rep_type:reference = "FMH-1, Table 9-2"; short Ptend (record); //Ptend:long_name = "Pressure tendency"; //Ptend:_FillValue = ; //Ptend:reference = "FMH-1, Table 9-14"; short delP (record); //delP:long_name = "Pressure change"; //delP:_FillValue = ; //delP:units = ; float PRECIP_1 (record); //PRECIP_1:long_name = "1-hourly precipitation amount"; //PRECIP_1:_FillValue = ; //PRECIP_1:units = ; //PRECIP_1:reference = "ASOS Users Guide"; float PRECIP_3 (record); //PRECIP_3:long_name = "3-hourly precipitation amount"; //PRECIP_3:_FillValue = ; //PRECIP_3:units = ; //PRECIP_3:reference = "ASOS Users Guide"; float PRECIP_6 (record); //PRECIP_6:long_name = "6-hourly precipitation amount"; //PRECIP_6:_FillValue = ; //PRECIP_6:units = ; //PRECIP_6:reference = "ASOS Users Guide"; float PRECIP_24 (record); //PRECIP_24:long_name = "24-hourly precipitation amount"; //PRECIP_24:_FillValue = ; //PRECIP_24:units = ; //PRECIP_24:reference = "ASOS Users Guide"; float Tmax_24(record); //Tmax_24:long_name = "24 hour maximum temperature"; //Tmax_24:_FillValue = ; //Tmax_24:units = ; //Tmax_24:reference = "FMH-1"; float Tmin_24(record); //Tmin_24:long_name = "24 hour minimum temperature"; //Tmin_24:_FillValue = ; //Tmin_24:units = ; //Tmin_24:reference = "FMH-1"; char CC (record, cloud_layers, CC_len); //CC:long_name = "Cloud cover"; //CC:_FillValue = '\0'; //CC:reference = "FMH-1 and ASOS Users Guide"; float ZCL (record, cloud_layers); //ZCL:long_name = "Cloud base height"; //ZCL:_FillValue = ; char cloudtype (record, cloud_layers, cloudtype_len); //cloudtype:long_name = "Cloud measurement type"; //cloudtype:_FillValue = '\0'; //cloudtype:reference = "FMH-1, Table 9-6"; char message(record, SAO_len); //message:long_name = "Original undecoded message."; //message:_FillValue = '\0'; :title = "NUWG SAO definition"; :version = 1.0; // In general: // // There are two time fields, one as the actual observation time and the // other the nominal time of the observation. In other words, the actual // observation time may be 10 minutes before the hour but the nominal // time of the observation is actually on the hour. Time units follow // the UDUNITS convention of "seconds since" the data supplier defined // base time. // // The actual names chosen for the netCDF variables are still up to the // data supplier. The agreement amongst this group is that all the // code that reads in the data will NOT be variable name dependent. Code // will be written generically using the netCDF inquire functions or // will employ some sort of table look-up algorithm. The names I've // included for illustration purposes were mainly borrowed from the // conventions document to offer somewhat "generic" names for these // fields. Long names are data supplier defined, but should be included // and descriptive for self-documentation purposes. // // 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. // // Again, these will be the MINIMUM variables required in files used // for surface observation data exchange. Any data supplier can add extra // variables needed to further identify a station and/or its observations. }