Determine the filename, given various combinations of inputs.
filename2
is optional, and is either
NULL (no writing of outputs to disk), or several options
for writing the object to disk. If
TRUE
(the default), it will give it a file name determined by
.prefix(basename(filename1), prefix)
. If
a character string, it will use this as its file name. See
determineFilename()
.
Character strings giving the file paths of
the input object (filename1
) filename1
is only used for messaging (i.e., the object itself is passed
in as x
) and possibly naming of output (see details
and filename2
).
Optional. If filename2
is a relative file path, then this
will be the directory of the resulting absolute file path.
Numeric, -1 silent (where possible), 0 being very quiet,
1 showing more messaging, 2 being more messaging, etc.
Default is 1. Above 3 will output much more information about the internals of
Caching, which may help diagnose Caching challenges. Can set globally with an
option, e.g., options('reproducible.verbose' = 0) to reduce to minimal
The character string to prepend to filename1
, if filename2
not provided.
Passed into writeTo()
The post processing workflow, which includes this function,
addresses several scenarios, and depending on which scenario, there are
several file names at play. For example, Raster
objects may have
file-backed data, and so possess a file name, whereas Spatial
objects do not. Also, if post processing is part of a prepInputs()
workflow, there will always be a file downloaded. From the perspective of
postProcess
, these are the "inputs" or filename1
.
Similarly, there may or may not be a desire to write an
object to disk after all post processing, filename2
.
This subtlety means that there are two file names that may be at play:
the "input" file name (filename1
), and the "output" filename (filename2
).
When this is used within postProcess
, it is straight forward.
However, when postProcess
is used within a prepInputs
call,
the filename1
file is the file name of the downloaded file (usually
automatically known following the downloading, and refered to as targetFile
)
and the filename2
is the file name of the of post-processed file.
If filename2
is TRUE
, i.e., not an actual file name, then the cropped/masked
raster will be written to disk with the original filenam1/targetFile
name, with prefix
prefixed to the basename(targetFile
).
If filename2
is a character string, it will be the path of the saved/written
object e.g., passed to writeOutput
. It will be tested whether it is an
absolute or relative path and used as is if absolute or
prepended with destinationPath
if relative.
If filename2
is logical
, then the output
filename will be prefix
prefixed to the basename(filename1
).
If a character string, it
will be the path returned. It will be tested whether it is an
absolute or relative path and used as is if absolute or prepended with
destinationPath
if provided, and if filename2
is relative.