att.get.nc: Get a NetCDF Attribute

View source: R/RNetCDF.R

att.get.ncR Documentation

Get a NetCDF Attribute

Description

Get an attribute from a NetCDF dataset.

Usage

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

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_BYTE integer
NC_UBYTE integer
NC_SHORT integer
NC_USHORT integer
NC_INT integer
NC_UINT double
NC_FLOAT double
NC_DOUBLE double
NC_INT64 integer64
NC_UINT64 integer64

Details

This function returns the value of the attribute.

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).

Note

NC_BYTE is always interpreted as signed.

Author(s)

Pavel Michna, Milton Woods

References

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

Examples

##  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)

RNetCDF documentation built on Oct. 23, 2023, 9:06 a.m.