Learn R Programming

RNetCDF (version 2.11-1)

att.get.nc: Get a NetCDF Attribute

Description

Get an attribute from a NetCDF dataset.

Usage

att.get.nc(ncfile, variable, attribute, rawchar=FALSE, fitnum=FALSE)

Value

Vector with a data type that depends on the NetCDF variable. For NetCDF variables of type NC_CHAR, the R type is either character or raw, as specified by argument rawchar. For NC_STRING, the R type is character. Numeric variables are read as double precision by default, but the smallest R type that exactly represents each external type is used if fitnum is TRUE.

Valid attribute ID numbers range from 0 to the number of attributes minus 1. The number of attributes of a file, group, or variable can be found using the relevant inquiry function (file.inq.nc, grp.inq.nc, or var.inq.nc).

Arguments

ncfile

Object of class NetCDF which points to the NetCDF dataset (as returned from open.nc).

variable

ID or name of the variable from which the attribute will be read, or "NC_GLOBAL" for a global attribute.

attribute

Attribute name or ID.

rawchar

This option only relates to NetCDF attributes of type NC_CHAR. When rawchar is FALSE (default), a NetCDF attribute of type NC_CHAR is converted to a character string in R. If rawchar is TRUE, the bytes of NC_CHAR data are read into an R raw vector.

fitnum

By default, all numeric variables are read into R as double precision values. When fitnum==TRUE, the smallest R numeric type that can exactly represent each external type is used, as follows:

NC_BYTEinteger
NC_UBYTEinteger
NC_SHORTinteger
NC_USHORTinteger
NC_INTinteger
NC_UINTdouble
NC_FLOATdouble
NC_DOUBLEdouble
NC_INT64integer64
NC_UINT64integer64

Author

Pavel Michna, Milton Woods

Details

This function returns the value of the attribute.

References

https://www.unidata.ucar.edu/software/netcdf/

Examples

Run this code
##  Create a new NetCDF dataset and define two dimensions
file1 <- tempfile("att.get_", fileext=".nc")
nc <- create.nc(file1)

dim.def.nc(nc, "station", 5)
dim.def.nc(nc, "time", unlim=TRUE)

##  Create two variables, one as coordinate variable
var.def.nc(nc, "time", "NC_INT", "time")
var.def.nc(nc, "temperature", "NC_DOUBLE", c(0,1))

##  Put some attributes
att.put.nc(nc, "temperature", "_FillValue", "NC_DOUBLE", -99999.9)
att.put.nc(nc, "temperature", "long_name", "NC_CHAR", "air temperature")
att.put.nc(nc, "NC_GLOBAL", "title", "NC_CHAR", "Data from Foo")
att.put.nc(nc, "NC_GLOBAL", "history", "NC_CHAR", paste("Created on", date()))

##  Get these attributes
att.get.nc(nc, "temperature", "_FillValue")
att.get.nc(nc, "temperature", "long_name")
att.get.nc(nc, "NC_GLOBAL", "title")
att.get.nc(nc, "NC_GLOBAL", "history")

close.nc(nc)
unlink(file1)

Run the code above in your browser using DataLab