mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-09 08:11:38 +08:00
56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
netcdf foo { // an example netCDF specification in CDL
|
|
|
|
types:
|
|
ubyte enum enum_t {Clear = 0, Cumulonimbus = 1, Stratus = 2};
|
|
opaque(11) opaque_t;
|
|
int(*) vlen_t;
|
|
|
|
dimensions:
|
|
lat = 10 ;
|
|
lon = 5 ;
|
|
time = unlimited ; // (0) currently)
|
|
|
|
variables:
|
|
int lat(lat) ;
|
|
int lon(lon) ;
|
|
int time(time) ;
|
|
float Z(time, lat, lon) ;
|
|
float t(time, lat, lon) ;
|
|
double p(time,lat,lon);
|
|
long rh(time,lat,lon);
|
|
string country(time,lat,lon);
|
|
ubyte tag;
|
|
|
|
// variable attributes
|
|
lat:long_name = "latitude";
|
|
lat:units = "degrees_north";
|
|
lon:long_name = "longitude";
|
|
lon:units = "degrees_east";
|
|
time:units = "seconds since 1992-1-1 00:00:00";
|
|
|
|
// typed variable attributes
|
|
string Z:units = "geopotential meters";
|
|
float Z:valid_range = 0., 5000.;
|
|
double p:_FillValue = -9999.;
|
|
long rh:_FillValue = -1;
|
|
vlen_t :globalatt = {17, 18, 19};
|
|
data:
|
|
lat = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;
|
|
lon = -140, -118, -96, -84, -52;
|
|
|
|
group: g {
|
|
types:
|
|
compound cmpd_t { vlen_t f1; enum_t f2;};
|
|
} // group g
|
|
|
|
group: h {
|
|
variables:
|
|
/g/cmpd_t compoundvar;
|
|
data:
|
|
compoundvar = { {3,4,5}, Stratus } ;
|
|
} // group h
|
|
|
|
}//foo
|
|
|
|
|