Learn R Programming

raster (version 2.6-7)

rasterTmpFile: Temporary files

Description

Functions in the raster package create temporary files if the values of an output RasterLayer cannot be stored in memory (RAM). This can happen when no filename is provided to a function and in functions where you cannot provide a filename (e.g. when using 'raster algebra').

Temporary files are automatically removed at the start of each session. During a session you can use showTmpFiles to see what is there and removeTmpFiles to delete all the temporary files. rasterTmpFile returns a temporary filename. These can be useful when developing your own functions. These filenames consist of prefix_date_time_pid_rn where pid is the process id returned by Sys.getpid and rn is a 5 digit random number. This should make tempfiles unique if created at different times and also when created in parallel processes (different pid) that use set.seed and call rasterTmpFile at the same time. It is possible, however, to create overlapping names (see the examples), which is undesirable and can be avoided by setting the prefix argument.

Usage

rasterTmpFile(prefix='r_tmp_')
showTmpFiles()
removeTmpFiles(h=24)

Arguments

prefix

Character. Prefix to the filename (which will be followed by 10 random numbers)

h

Numeric. The minimum age of the files in number of hours (younger files are not deleted)

Value

rasterTmpFile returns a valid file name

showTmpFiles returns the names (.grd only) of the files in the temp directory

removeTmpFiles returns nothing

Details

The default path where the temporary files are stored is returned (can be changed with rasterOptions).

See Also

rasterOptions, tempfile

Examples

Run this code
# NOT RUN {
rasterTmpFile('mytemp_')
showTmpFiles()
removeTmpFiles(h=24)

# It is possible (but undesirable!) to create overlapping temp file names. 
for (i in 1:10) {
	set.seed(0)
	print(rasterTmpFile())
}
That can be avoided by using a prefix 
for (i in 1:10) {
	set.seed(0)
	print(rasterTmpFile(prefix=paste('i', i, '_', sep='')))
}

# }

Run the code above in your browser using DataLab