Learn R Programming

terra (version 1.2-10)

writeCDF: Write raster data to a NetCDF file

Description

Write a SpatRaster or SpatRasterDataset to a NetCDF file.

When using a SpatRasterDataset, the varname, longname, and unit should be set in the object (see examples).

Always use the ".nc" or ".cdf" file extension to assure that the file can be properly read again by GDAL

Usage

# S4 method for SpatRaster
writeCDF(x, filename, varname, longname="", unit="", ...)

# S4 method for SpatRasterDataset writeCDF(x, filename, overwrite=FALSE, zname="time", missval=-9999, prec="float", compression=NA, ...)

Arguments

x

SpatRaster or SpatRasterDataset

filename

character. Output filename

varname

character. Name of the dataset

longname

character. Long name of the dataset

unit

character. Unit of the data

overwrite

logical. If TRUE, filename is overwritten

zname

character. The name of the "time" dimension

missval

numeric, the number used to indicate missing values

prec

character. One of "double", "float", "integer", "short", "byte" or "char"

compression

Can be set to an integer between 1 (least compression) and 9 (most compression)

...

additional arguments passed on to ncvar_def

Value

SpatRaster or SpatDataSet

See Also

see writeRaster for writing other file formats

Examples

Run this code
# NOT RUN {
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
fname <- paste0(tempfile(), ".nc")
rr <- writeCDF(r, fname, overwrite=TRUE, varname="alt", 
      longname="elevation in m above sea level", unit="m")

a <- rast(ncol=5, nrow=5, nl=50)
values(a) <- 1:prod(dim(a))
time(a) <- as.Date("2020-12-31") + 1:nlyr(a)
aa <- writeCDF(a, fname, overwrite=TRUE, varname="power", 
      longname="my nice data", unit="U/Pa")

b <- sqrt(a)
s <- sds(a, b)
names(s) <- c("temp", "prec")
longnames(s) <- c("temperature (C)", "precicpiation (mm)")
units(s) <- c("C", "mm")
ss <- writeCDF(s, fname, overwrite=TRUE)

# for CRAN
file.remove(fname)
# }

Run the code above in your browser using DataLab