
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 }