<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Create RGB images from S2 reflectance products. — s2_rgb • sen2r</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/yeti/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Create RGB images from S2 reflectance products. — s2_rgb"><meta property="og:description" content="Function to create RGB images from Sentinel-2 reflectances."><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
    

    <div class="container template-reference-topic">
      <header><div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">sen2r</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.6.0</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav"></ul><ul class="nav navbar-nav navbar-right"><li>
  <a href="../index.html">
    <span class="fa fa-home fa-lg"></span>
     
  </a>
</li>
<li>
  <a href="../reference/index.html">
    <span class="fa fa-file-code"></span>
     
     Reference
  </a>
</li>
<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="fa fa-book"></span>
     
     Articles
     
    <span class="caret"></span>
  </a>
  <ul class="dropdown-menu" role="menu"><li>
      <a href="../articles/installation.html">Installation</a>
    </li>
    <li>
      <a href="../articles/docker.html">Run in a Docker container</a>
    </li>
    <li>
      <a href="../articles/sen2r_gui.html">Using sen2r() from the GUI</a>
    </li>
    <li>
      <a href="../articles/sen2r_cmd.html">Using sen2r() from the command line</a>
    </li>
    <li>
      <a href="../articles/outstructure.html">Output file structure</a>
    </li>
  </ul></li>
<li>
  <a href="../news/index.html">
    <span class="fa fa-newspaper"></span>
     
     Changelog
  </a>
</li>
<li>
  <a href="http://luigi.ranghetti.info" class="external-link">
    <span class="fa fa-user"></span>
     
  </a>
</li>
<li>
  <a href="https://github.com/ranghetti/sen2r/" class="external-link">
    <span class="fa fa-github fa-lg"></span>
     
  </a>
</li>
      </ul></div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header><div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Create RGB images from S2 reflectance products.</h1>
    <small class="dont-index">Source: <a href="https://github.com/ranghetti/sen2r/blob/HEAD/R/s2_rgb.R" class="external-link"><code>R/s2_rgb.R</code></a></small>
    <div class="hidden name"><code>s2_rgb.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>Function to create RGB images from Sentinel-2 reflectances.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">s2_rgb</span><span class="op">(</span></span>
<span>  <span class="va">infiles</span>,</span>
<span>  prod_type <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  rgb_bands <span class="op">=</span> <span class="fl">4</span><span class="op">:</span><span class="fl">2</span>,</span>
<span>  scaleRange <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  outdir <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  subdirs <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  format <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  compress <span class="op">=</span> <span class="st">"DEFLATE"</span>,</span>
<span>  bigtiff <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span>  tmpdir <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  rmtmp <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  proc_mode <span class="op">=</span> <span class="st">"raster"</span>,</span>
<span>  parallel <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  overwrite <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span>  .log_message <span class="op">=</span> <span class="cn">NA</span>,</span>
<span>  .log_output <span class="op">=</span> <span class="cn">NA</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>infiles</dt>
<dd><p>A vector of input filenames. Input files are paths
of products already converted from SAFE format to a
format managed by GDAL (use <a href="s2_translate.html">s2_translate</a> to do it);
their names must be in the sen2r naming convention
(<a href="safe_shortname.html">safe_shortname</a>).</p></dd>


<dt>prod_type</dt>
<dd><p>(optional) Output product (see <a href="safe_shortname.html">safe_shortname</a> for the
list of accepted products). If not provided, it is retrieved from the
file name.</p></dd>


<dt>rgb_bands</dt>
<dd><p>(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 <a href="https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/resolutions/spatial" class="external-link">actual number name of the bands</a>:
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).</p></dd>


<dt>scaleRange</dt>
<dd><p>(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.</p></dd>


<dt>outdir</dt>
<dd><p>(optional) Full name of the existing output directory
where the files should be created. Default is the same directory of
input reflectance files.</p></dd>


<dt>subdirs</dt>
<dd><p>(optional) Logical: if TRUE, different indices are
placed in separated <code>outfile</code> subdirectories; if FALSE, they are placed in
<code>outfile</code> directory; if NA (default), subdirectories are created only if
more than a single spectral index is required.</p></dd>


<dt>format</dt>
<dd><p>(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).</p></dd>


<dt>compress</dt>
<dd><p>(optional) In the case a GTiff format is
present, the compression indicated with this parameter is used.</p></dd>


<dt>bigtiff</dt>
<dd><p>(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.</p></dd>


<dt>tmpdir</dt>
<dd><p>(optional) Path where intermediate files (VRT) will be created.
Default is a temporary directory.
If <code>tmpdir</code> is a non-empty folder, a random subdirectory will be used.</p></dd>


<dt>rmtmp</dt>
<dd><p>(optional) Logical: should temporary files be removed?
(Default: TRUE)</p></dd>


<dt>proc_mode</dt>
<dd><p>(optional) Character: if <code>"gdal_calc"</code>,
<code>gdal_calc</code> routines are used to compute indices;
if <code>"raster"</code> or <code>"stars"</code>, R functions are instead used
(using respectively <code>raster</code> or <code>stars</code> routines).
<strong>Note</strong>: default value (<code>"raster"</code>) is the only fully supported mode.
<code>"gdal_calc"</code> can be used only if a runtime GDAL environment can be properly
configured (no assistance is provided in case of GDAL-related problems).
<code>"raster"</code> mode is experimental.
See <code><a href="s2_calcindices.html">s2_calcindices()</a></code> for further details.</p></dd>


<dt>parallel</dt>
<dd><p>(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. <code>parallel = 4</code>).
If FALSE (default), single core processing is used.</p></dd>


<dt>overwrite</dt>
<dd><p>(optional) Logical value: should existing thumbnails be
overwritten? (default: TRUE)</p></dd>


<dt>.log_message</dt>
<dd><p>(optional) Internal parameter
(it is used when the function is called by <code><a href="sen2r.html">sen2r()</a></code>).</p></dd>


<dt>.log_output</dt>
<dd><p>(optional) Internal parameter
(it is used when the function is called by <code><a href="sen2r.html">sen2r()</a></code>).</p></dd>

</dl></div>
    <div id="value">
    <h2>Value</h2>
    

<p>A vector with the names of the created images.</p>
    </div>
    <div id="note">
    <h2>Note</h2>
    <p>License: GPL 3.0</p>
    </div>
    <div id="references">
    <h2>References</h2>
    <p>L. Ranghetti, M. Boschetti, F. Nutini, L. Busetto (2020).
"sen2r": An R toolbox for automatically downloading and preprocessing
Sentinel-2 satellite data. <em>Computers &amp; Geosciences</em>, 139, 104473.
<a href="https://doi.org/10.1016/j.cageo.2020.104473" class="external-link">doi:10.1016/j.cageo.2020.104473</a>
, URL: <a href="https://sen2r.ranghetti.info/" class="external-link">https://sen2r.ranghetti.info/</a>.</p>
    </div>
    <div id="author">
    <h2>Author</h2>
    <p>Luigi Ranghetti, phD (2019)</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="co"># \donttest{</span></span></span>
<span class="r-in"><span><span class="co"># Define file names</span></span></span>
<span class="r-in"><span><span class="va">ex_in</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span></span></span>
<span class="r-in"><span>  <span class="st">"extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif"</span>,</span></span>
<span class="r-in"><span>  package <span class="op">=</span> <span class="st">"sen2r"</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Run function</span></span></span>
<span class="r-in"><span><span class="va">ex_out</span> <span class="op">&lt;-</span> <span class="fu">s2_rgb</span><span class="op">(</span></span></span>
<span class="r-in"><span>  infiles <span class="op">=</span> <span class="va">ex_in</span>,</span></span>
<span class="r-in"><span>  rgb_bands <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">11</span>,<span class="fl">8</span>,<span class="fl">4</span><span class="op">)</span>,<span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">9</span>,<span class="fl">5</span>,<span class="fl">4</span><span class="op">)</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>  scaleRange <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">0</span>,<span class="fl">7500</span><span class="op">)</span>, <span class="fu"><a href="https://rdrr.io/r/base/matrix.html" class="external-link">matrix</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/rep.html" class="external-link">rep</a></span><span class="op">(</span><span class="fl">0</span>,<span class="fl">3</span><span class="op">)</span>,<span class="fl">8500</span>,<span class="fl">6000</span>,<span class="fl">4000</span><span class="op">)</span>,ncol<span class="op">=</span><span class="fl">2</span><span class="op">)</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>  outdir <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempdir</a></span><span class="op">(</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>  compress <span class="op">=</span> <span class="fl">50</span></span></span>
<span class="r-in"><span><span class="op">)</span></span></span>
<span class="r-msg co"><span class="r-pr">#&gt;</span> [2023-11-09 22:27:20] Generating image</span>
<span class="r-msg co"><span class="r-pr">#&gt;</span>        S2A2A_20190723_022_Barbellino_RGBb84B_10.tif...</span>
<span class="r-msg co"><span class="r-pr">#&gt;</span> [2023-11-09 22:27:20] Generating image</span>
<span class="r-msg co"><span class="r-pr">#&gt;</span>        S2A2A_20190723_022_Barbellino_RGB954B_10.tif...</span>
<span class="r-msg co"><span class="r-pr">#&gt;</span> 2 output RGB files were correctly created.</span>
<span class="r-in"><span><span class="va">ex_out</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "/tmp/RtmpFvTjNK/RGBb84B/S2A2A_20190723_022_Barbellino_RGBb84B_10.tif"</span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [2] "/tmp/RtmpFvTjNK/RGB954B/S2A2A_20190723_022_Barbellino_RGB954B_10.tif"</span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Show output</span></span></span>
<span class="r-in"><span><span class="va">oldpar</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/graphics/par.html" class="external-link">par</a></span><span class="op">(</span>mfrow <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">1</span>,<span class="fl">3</span><span class="op">)</span>, mar <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/rep.html" class="external-link">rep</a></span><span class="op">(</span><span class="fl">0</span>,<span class="fl">4</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/graphics/image.html" class="external-link">image</a></span><span class="op">(</span><span class="fu">stars</span><span class="fu">::</span><span class="fu"><a href="https://r-spatial.github.io/stars/reference/read_stars.html" class="external-link">read_stars</a></span><span class="op">(</span><span class="va">ex_in</span><span class="op">)</span>, rgb <span class="op">=</span> <span class="fl">4</span><span class="op">:</span><span class="fl">2</span>, maxColorValue <span class="op">=</span> <span class="fl">3500</span>, useRaster <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/graphics/image.html" class="external-link">image</a></span><span class="op">(</span><span class="fu">stars</span><span class="fu">::</span><span class="fu"><a href="https://r-spatial.github.io/stars/reference/read_stars.html" class="external-link">read_stars</a></span><span class="op">(</span><span class="va">ex_out</span><span class="op">[</span><span class="fl">1</span><span class="op">]</span><span class="op">)</span>, rgb <span class="op">=</span> <span class="fl">1</span><span class="op">:</span><span class="fl">3</span>, useRaster <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/graphics/image.html" class="external-link">image</a></span><span class="op">(</span><span class="fu">stars</span><span class="fu">::</span><span class="fu"><a href="https://r-spatial.github.io/stars/reference/read_stars.html" class="external-link">read_stars</a></span><span class="op">(</span><span class="va">ex_out</span><span class="op">[</span><span class="fl">2</span><span class="op">]</span><span class="op">)</span>, rgb <span class="op">=</span> <span class="fl">1</span><span class="op">:</span><span class="fl">3</span>, useRaster <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></span>
<span class="r-plt img"><img src="s2_rgb-1.png" alt="" width="700" height="433"></span>
<span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/graphics/par.html" class="external-link">par</a></span><span class="op">(</span><span class="va">oldpar</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="co"># }</span></span></span>
</code></pre></div>
    </div>
  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
    </nav></div>
</div>


      <footer><div class="copyright">
  <p></p><p>Developed by Luigi Ranghetti, Lorenzo Busetto.</p>
</div>

<div class="pkgdown">
  <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>

      </footer></div>

  


  

  </body></html>

