cmsaf.mul {cmsafops} | R Documentation |
Multiply the fields of two input NetCDF files.
Description
The function multiplies the fields of infile1 and infile2. Infiles have to have the same spatial and temporal dimension or one infile can contain only one timestep. The outfile uses the meta data of infile1.
Usage
cmsaf.mul(
var1,
var2,
infile1,
infile2,
outfile,
nc34 = 4,
overwrite = FALSE,
verbose = FALSE,
nc1 = NULL,
nc2 = NULL
)
Arguments
var1 |
Name of variable in infile1 (character). |
var2 |
Name of variable in infile2 (character). |
infile1 |
Filename of first input NetCDF file. This may include the directory (character). |
infile2 |
Filename of second input NetCDF file. This may include the directory (character). |
outfile |
Filename of output NetCDF file. This may include the directory (character). |
nc34 |
NetCDF version of output file. If |
overwrite |
logical; should existing output file be overwritten? |
verbose |
logical; if TRUE, progress messages are shown |
nc1 |
Alternatively to |
nc2 |
Alternatively to |
Value
A NetCDF file including the multiplied fields of infile1 and infile2 is written.
See Also
Other mathematical operators:
cmsaf.abs()
,
cmsaf.add()
,
cmsaf.addc()
,
cmsaf.div()
,
cmsaf.divc()
,
cmsaf.mulc()
,
cmsaf.sub()
,
cmsaf.subc()
,
divdpm()
,
muldpm()
Examples
## Create an example NetCDF file with a similar structure as used by CM
## SAF. The file is created with the ncdf4 package. Alternatively
## example data can be freely downloaded here: <https://wui.cmsaf.eu/>
library(ncdf4)
## create some (non-realistic) example data
lon <- seq(5, 15, 0.5)
lat <- seq(45, 55, 0.5)
time <- c(as.Date("2000-01-01"), as.Date("2001-02-01"))
origin <- as.Date("1983-01-01 00:00:00")
time <- as.numeric(difftime(time, origin, units = "hour"))
data1 <- array(250:350, dim = c(21, 21, 1))
data2 <- array(230:320, dim = c(21, 21, 1))
## create two example NetCDF files
x <- ncdim_def(name = "lon", units = "degrees_east", vals = lon)
y <- ncdim_def(name = "lat", units = "degrees_north", vals = lat)
t <- ncdim_def(name = "time", units = "hours since 1983-01-01 00:00:00",
vals = time[1], unlim = TRUE)
var1 <- ncvar_def("SIS", "W m-2", list(x, y, t), -1, prec = "short")
vars <- list(var1)
ncnew <- nc_create(file.path(tempdir(),"CMSAF_example_file_1.nc"), vars)
ncvar_put(ncnew, var1, data1)
ncatt_put(ncnew, "lon", "standard_name", "longitude", prec = "text")
ncatt_put(ncnew, "lat", "standard_name", "latitude", prec = "text")
nc_close(ncnew)
t <- ncdim_def(name = "time", units = "hours since 1983-01-01 00:00:00",
vals = time[2], unlim = TRUE)
ncnew <- nc_create(file.path(tempdir(),"CMSAF_example_file_2.nc"), vars)
ncvar_put(ncnew, var1, data2)
ncatt_put(ncnew, "lon", "standard_name", "longitude", prec = "text")
ncatt_put(ncnew, "lat", "standard_name", "latitude", prec = "text")
nc_close(ncnew)
## Multiply the fields of both example CM SAF NetCDF files and write the
## result into one output file.
cmsaf.mul(var1 = "SIS", var2 = "SIS", infile1 = file.path(tempdir(),
"CMSAF_example_file_1.nc"), infile2 = file.path(tempdir(),
"CMSAF_example_file_2.nc"), outfile = file.path(tempdir(),
"CMSAF_example_file_mul.nc"))
unlink(c(file.path(tempdir(),"CMSAF_example_file_1.nc"),
file.path(tempdir(),"CMSAF_example_file_2.nc"),
file.path(tempdir(),"CMSAF_example_file_mul.nc")))