NCL Home >
Documentation >
Functions >
Group creators,
File I/O
filegrpdef
Defines a list of group (names), for a supported file, or group.
Available in version 6.1.0 and later.
Prototype
procedure filegrpdef ( thefile [1] : file, grp_names [*] : string )
Description
This procedure defines one or more groups in a netCDF(4) or HDF(5) file to be created. grp_names can contain multiple names of groups.
See Also
getfilegrpnames, fileattdef, filedimdef, filevarattdef
Examples
Example 1
Create groups in a HDF5 file named "myfile.h5".
f = addfile("myfile.h5","c") grpnames = (/"grp1", "group2", "g3"/) filegrpdef(f, grpnames)"h5dump myfile.h5" produces the following output:
HDF5 "myfile.h5" {
GROUP "/" {
GROUP "g3" {
}
GROUP "group2" {
}
GROUP "grp1" {
}
}
}
Write one 2D array and two 3D arrays (with dimension names "lev", "lat", and "lon") to a netCDF file called "myfile.nc" under group "grp1":
f = addfile("myfile.nc","c") grpnames = (/"grp1", "group2", "g3"/) filegrpdef(f, grpnames) g = f=>grp1 filedimdef(g,(/"lev","lat","lon"/),(/2,2,3/),(/False,False,False/)) var_names2D = (/ "PS" /) var_names3D = (/ "T", "Q" /) varvar_types2D = (/ "float" /) varvar_types3D = (/ "float", "float" /) filevardef(g, (/"lev"/), (/"float"/), (/"lev"/) ) filevardef(g, (/"lat"/), (/"float"/), (/"lat"/) ) filevardef(g, (/"lon"/), (/"float"/), (/"lon"/) ) filevardef(g, var_names2D, varvar_types2D, (/ "lat", "lon" /) ) filevardef(g, var_names3D, varvar_types3D, (/ "lev", "lat", "lon" /) ) lev = fspan(1, 2, 2) lat = fspan(3, 4, 2) lon = fspan(5, 7, 3) ps = new((/2,3/), float) t = new((/2,2,3/), float) q = new((/2,2,3/), float) ps = 1000.0 t = 273.15 q = 0.015 g->lev = lev g->lat = lat g->lon = lon g->PS = ps g->T = t g->Q = q"ncdump myfile.nc" produces the following output:
netcdf myfile {
group: grp1 {
dimensions:
lev = 2 ;
lat = 2 ;
lon = 3 ;
variables:
float lev(lev) ;
float lat(lat) ;
float lon(lon) ;
float PS(lat, lon) ;
PS:_FillValue = 9.96921e+36f ;
float T(lev, lat, lon) ;
T:_FillValue = 9.96921e+36f ;
float Q(lev, lat, lon) ;
Q:_FillValue = 9.96921e+36f ;
data:
lev = 1, 2 ;
lat = 3, 4 ;
lon = 5, 6, 7 ;
PS =
1000, 1000, 1000,
1000, 1000, 1000 ;
T =
273.15, 273.15, 273.15,
273.15, 273.15, 273.15,
273.15, 273.15, 273.15,
273.15, 273.15, 273.15 ;
Q =
0.015, 0.015, 0.015,
0.015, 0.015, 0.015,
0.015, 0.015, 0.015,
0.015, 0.015, 0.015 ;
} // group grp1
group: group2 {
} // group group2
group: g3 {
} // group g3
}