Function to create RGB images from Sentinel-2 reflectances.

s2_rgb(
infiles,
prod_type = NA,
rgb_bands = 4:2,
scaleRange = NA,
outdir = NA,
subdirs = NA,
format = NA,
compress = "DEFLATE",
bigtiff = FALSE,
tmpdir = NA,
rmtmp = TRUE,
proc_mode = "raster",
parallel = TRUE,
overwrite = FALSE,
.log_message = NA,
.log_output = NA
)

## Arguments

infiles A vector of input filenames. Input files are paths of products already converted from SAFE format to a format managed by GDAL (use s2_translate to do it); their names must be in the sen2r naming convention (safe_shortname). (optional) Output product (see safe_shortname for the list of accepted products). If not provided, it is retrieved from the file name. (optional) 3-length integer vector, which the number of the bands to be used respectively for red, green and blue. Default is 4:2 (true colours). It is also possible to pass a list of 3-length integer vectors in order to create multiple RGB types for each input file. Notice that this is the actual number name of the bands: so, to use i.e. BOA band 11 (1610nm) use the number 11, even if band 11 is the 10th band of a BOA product (because band 10 is missing). (optional) Range of valid values. If can be a 2-length integer vector (min-max for all the 3 bands) or a 6-length vector or 3x2 matrix (min red, min green, min blue, max red, max green, max blue). Default is to use c(0,2500) for bands 1-5; c(0,7500) bands 6-12. (optional) Full name of the existing output directory where the files should be created. Default is the same directory of input reflectance files. (optional) Logical: if TRUE, different indices are placed in separated outfile subdirectories; if FALSE, they are placed in outfile directory; if NA (default), subdirectories are created only if more than a single spectral index is required. (optional) Format of the output file (in a format recognised by GDAL). Default is the same format of input images (or "GTiff" in case of VRT input images). (optional) In the case a GTiff format is present, the compression indicated with this parameter is used. (optional) Logical: if TRUE, the creation of a BigTIFF is forced (default is FALSE). This option is used only in the case a GTiff format was chosen. (optional) Path where intermediate files (VRT) will be created. Default is a temporary directory. If tmpdir is a non-empty folder, a random subdirectory will be used. (optional) Logical: should temporary files be removed? (Default: TRUE) (optional) Character: if "gdal_calc", gdal_calc routines are used to compute indices; if "raster" or "stars", R functions are instead used (using respectively raster or stars routines). Note: default value ("raster") is the only fully supported mode. "gdal_calc" can be used only if a runtime GDAL environment can be properly configured (no assistance is provided in case of GDAL-related problems). "raster" mode is experimental. See s2_calcindices() for further details. (optional) Logical: if TRUE, the function is run using parallel processing, to speed-up the computation for large rasters. The number of cores is automatically determined; specifying it is also possible (e.g. parallel = 4). If FALSE (default), single core processing is used. (optional) Logical value: should existing thumbnails be overwritten? (default: TRUE) (optional) Internal parameter (it is used when the function is called by sen2r()). (optional) Internal parameter (it is used when the function is called by sen2r()).

## Value

A vector with the names of the created images.

## References

L. Ranghetti, M. Boschetti, F. Nutini, L. Busetto (2020). "sen2r": An R toolbox for automatically downloading and preprocessing Sentinel-2 satellite data. Computers & Geosciences, 139, 104473. doi: 10.1016/j.cageo.2020.104473 , URL: https://sen2r.ranghetti.info/.

## Author

Luigi Ranghetti, phD (2019) luigi@ranghetti.info

## Examples

# \donttest{
# Define file names
ex_in <- system.file(
"extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif",
package = "sen2r"
)

# Run function
ex_out <- s2_rgb(
infiles = ex_in,
rgb_bands = list(c(11,8,4),c(9,5,4)),
scaleRange = list(c(0,7500), matrix(c(rep(0,3),8500,6000,4000),ncol=2)),
outdir = tempdir(),
compress = 50
)
#> [2021-06-27 20:50:15] Generating image
#>        S2A2A_20190723_022_Barbellino_RGBb84B_10.tif...#> [2021-06-27 20:50:22] Generating image
#>        S2A2A_20190723_022_Barbellino_RGB954B_10.tif...#> 2 output RGB files were correctly created.ex_out
#> [1] "C:\\Users\\LRANGH~1\\AppData\\Local\\Temp\\Rtmpg3YD2j/RGBb84B/S2A2A_20190723_022_Barbellino_RGBb84B_10.tif"
#> [2] "C:\\Users\\LRANGH~1\\AppData\\Local\\Temp\\Rtmpg3YD2j/RGB954B/S2A2A_20190723_022_Barbellino_RGB954B_10.tif"
# Show output
oldpar <- par(mfrow = c(1,3), mar = rep(0,4))
image(stars::read_stars(ex_in), rgb = 4:2, maxColorValue = 3500, useRaster = TRUE)
image(stars::read_stars(ex_out[1]), rgb = 1:3, useRaster = TRUE)
image(stars::read_stars(ex_out[2]), rgb = 1:3, useRaster = TRUE)
par(oldpar)
# }