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.