| grp.inq.nc | R Documentation | 
Inquire about a NetCDF group.
grp.inq.nc(ncid,grpname=NULL,ancestors=TRUE)| ncid | Object of class  | 
| grpname | By default, the inquiry relates to the group represented by  | 
| ancestors | If  | 
This function provides information about the structure of a NetCDF group or dataset. The results allow programs to explore a dataset without prior knowledge of the contents.
A list containing the following components:
| self | Object of class  | 
| parent | Object of class  | 
| grps | List of objects of class  | 
| name | Name of the NetCDF group. | 
| fullname | Full name of the NetCDF group, with ancestors listed in order from the root group of the dataset and separated by  | 
| dimids | Vector of dimension identifiers. If  | 
| unlimids | Vector of identifiers for unlimited dimensions. If  | 
| varids | Vector of identifiers for variables in the group. | 
| typeids | Vector of identifiers for types in the group. | 
| ngatts | Number of group attributes. | 
Pavel Michna, Milton Woods
https://www.unidata.ucar.edu/software/netcdf/
# Create a new NetCDF dataset:
file1 <- tempfile("grp.inq_", fileext=".nc")
nc <- create.nc(file1, format="netcdf4")
# Define groups in root group.
# (Any names can be used; hierarchical numbers are used here for clarity)
grp11 <- grp.def.nc(nc, "group1.1")
grp12 <- grp.def.nc(nc, "group1.2")
# Define group nested in group1.1:
grp111 <- grp.def.nc(grp11, "group1.1.1")
# Put some attributes in each group.
# (We could also define dimensions, types, and variables).
att.put.nc(nc, "NC_GLOBAL", "title", "NC_CHAR", "Group 1 (root)")
att.put.nc(grp11, "NC_GLOBAL", "title", "NC_CHAR", "Group 1.1")
att.put.nc(grp12, "NC_GLOBAL", "title", "NC_CHAR", "Group 1.2")
att.put.nc(grp111, "NC_GLOBAL", "title", "NC_CHAR", "Group 1.1.1")
## Examine contents of a group directly using its hierarchical name ...
mygrp <- grp.inq.nc(nc, "/group1.1/group1.1.1")
att.get.nc(mygrp$self, "NC_GLOBAL", "title")
## Recursively examine contents of nested groups ...
# (See also print.nc for a visual overview)
get_global_atts <- function(ncid) {
  inq <- grp.inq.nc(ncid)
  atts <- character(inq$ngatts)
  for (ii in seq_len(inq$ngatts)) {
    atts[ii] <- att.get.nc(ncid, "NC_GLOBAL", ii-1)
  }
  ngrps <- length(inq$grps)
  grps <- vector("list", ngrps + 1)
  grps[[1]] <- atts
  for (ii in seq_len(ngrps)) {
    grps[[ii + 1]] <- get_global_atts(inq$grps[[ii]])
  }
  return(grps)
}
get_global_atts(nc)
## Tidy up:
close.nc(nc)
unlink(file1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.