Re: has anyone looked at using visad

Ray,

[has anyone looked at using visad ...] 
> for point set data? As near as I can tell, netCDF cannot be used for
> this. I have not yet looked at HDF, anyone know if it is a supported
> data structure there?

Both netCDF and HDF can be used for point set data, if I'm correctly
interpreting what you mean by that: values at each point for a set of
points that are not on a grid.  For a netCDF example, see the appended
CDL file.

--Russ
_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
russ@xxxxxxxxxxxxxxxx                     http://www.unidata.ucar.edu


netcdf metar
{
dimensions:

    maxAutoStaLen   = 6;    // Max automated station type length
    maxAutoWeather  = 5;    // Max num of auto weather codes
    maxAutoWeaLen   = 12;   // Max num of auto weather codes
    maxRepLen   = 6;        // Max report type length
    maxMETARLen   = 256;    // Max undecoded METAR length
    maxSkyCover = 6;        // Max num of sky cover groups
    maxSkyLen   = 8;        // Max length of sky cover word
    maxStaNamLen    = 5;    // Station name length
    maxWeatherNum   = 5;    // Max num of present weather codes
    maxWeatherLen   = 25;
    recNum    = UNLIMITED;

variables:
    // METAR ORIGIN INFO

        // This variable does not appear in METARs.
    long    wmoId(recNum);
        wmoId:long_name = "numeric WMO identification";
        wmoId:valid_range = 1, 89999;
        wmoId:reference = "station table";

    char    stationName(recNum, maxStaNamLen);
        stationName:long_name   = "alphanumeric station identification";
        stationName:reference = "station table";

        // This variable does not appear in METARs.
    float   latitude(recNum);
        latitude:long_name = "latitude";
        latitude:units      = "degree_north";
        latitude:reference  = "station table";

        // This variable does not appear in METARs.
    float   longitude(recNum);
        longitude:long_name = "longitude";
        longitude:units     = "degree_east";
        longitude:reference = "station table";

        // This variable does not appear in METARs.
    float   elevation(recNum);
        elevation:long_name = "elevation";
        elevation:units     = "meter";
        elevation:reference = "station table";

    // METAR DATE AND TIME
    double  timeObs(recNum);
        timeObs:long_name   = "time of observation";
        timeObs:units       = "seconds since 1-1-1970";

        // This variable does not appear in METARs.
    double  timeNominal(recNum);
        timeNominal:long_name   = "METAR hour";
        timeNominal:units   = "seconds since 1-1-1970";

    // REPORT TYPE
    char    reportType(recNum, maxRepLen);
        reportType:long_name    = "report type";
        reportType:reference    = "FMH-1";

    // AUTO STATION TYPE
    char    autoStationType(recNum, maxAutoStaLen);
        autoStationType:long_name = "automated station type";
        autoStationType:reference = "FMH-1";

    // SKY COVER GROUP
    char skyCover(recNum, maxSkyCover, maxSkyLen);
        skyCover:long_name  = "sky cover";
        skyCover:reference  = "FMH-1";

    float skyLayerBase(recNum, maxSkyCover);
        skyLayerBase:long_name  = "sky cover layer base";
        skyLayerBase:units  = "meter";
        skyLayerBase:valid_min  = 0;

    // VISIBILITY GROUP
    float   visibility(recNum);
        visibility:long_name = "visibility";
        visibility:units    = "meter";
        visibility:valid_min    = 0.0;

    // PRESENT WEATHER
    char  presWeather(recNum, maxWeatherLen);
      presWeather:long_name = "present weather";
      presWeather:reference = "FMH-1";

    // SEA LEVEL PRESSURE
    float   seaLevelPress(recNum);
        seaLevelPress:long_name = "sea level pressure";
        seaLevelPress:units = "pascal";

    // TEMPERATURE
    float   temperature(recNum);
        temperature:long_name = "temperature";
        temperature:units   = "kelvin";

    // TEMPERATURE TO TENTHS
    float   tempFromTenths(recNum);
        tempFromTenths:long_name = "temperature from tenths of a degree 
Celsius";
        tempFromTenths:units   = "kelvin";

    // DEWPOINT
    float   dewpoint(recNum);
        dewpoint:long_name = "dewpoint";
        dewpoint:units      = "kelvin";

    // DEWPOINT TO TENTHS
    float   dpFromTenths(recNum);
        dpFromTenths:long_name = "dewpoint from tenths of a degree Celsius";
        dpFromTenths:units      = "kelvin";

    // WIND GROUP
    float   windDir(recNum);
        windDir:long_name   = "wind direction";
        windDir:units       = "degree";
    float   windSpeed(recNum);
        windSpeed:long_name = "wind speed";
        windSpeed:units     = "meter/sec";
        windSpeed:valid_min = 0;
    float   windGust(recNum);
        windGust:long_name  = "wind gust";
        windGust:units      = "meter/sec";
        windGust:valid_min  = 0;

    // ALTIMETER
    float   altimeter(recNum);
        altimeter:long_name = "altimeter setting";
        altimeter:units     = "pascal";
        altimeter:valid_min = 0.0;

    // 24 HOUR TEMPERATURE
    float   minTemp24Hour(recNum);
        minTemp24Hour:long_name = "24 hour min temperature";
        minTemp24Hour:units = "kelvin";
    float   maxTemp24Hour(recNum);
        maxTemp24Hour:long_name = "24 hour max temperature";
        maxTemp24Hour:units = "kelvin";

    // 1 HOUR PRECIP
    float   precip1Hour(recNum);
        precip1Hour:long_name   = "1 hour precipitation";
        precip1Hour:units   = "meter";
        precip1Hour:valid_min   = 0.0;

    // 3 HOUR PRECIP
    float   precip3Hour(recNum);
        precip3Hour:long_name = "3 hour precipitation";
        precip3Hour:units   = "meter";
        precip3Hour:valid_min = 0.0;

    // 6 HOUR PRECIP
    float   precip6Hour(recNum);
        precip6Hour:long_name = "6 hour precipitation";
        precip6Hour:units   = "meter";
        precip6Hour:valid_min = 0.0;

    // 24 HOUR PRECIP
    float   precip24Hour(recNum);
        precip24Hour:long_name  = "24 hour precipitation";
        precip24Hour:units  = "meter";
        precip24Hour:valid_min  = 0.0;

    // 3 HOUR PRESSURE CHANGE GROUP
    short   pressChangeChar(recNum);
        pressChangeChar:long_name = "character of pressure change";
        pressChangeChar:reference = "FMH-1";

    float   pressChange3Hour(recNum);
        pressChange3Hour:long_name = "3 hour pressure change";
        pressChange3Hour:units  = "pascal";
        pressChange3Hour:valid_min = 0.0;

    // CORRECTION FLAG
    long correction(recNum);
        correction:long_name = "corrected METAR indicator";

    // RAW METAR MESSAGE
    char    rawMETAR(recNum, maxMETARLen);
        rawMETAR:long_name = "raw METAR message";

    // GLOBAL ATTRIBUTES
    :title = "METAR - Aviation Routine Weather Report";
}