<!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>Using sen2r() from the command line • 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="Using sen2r() from the command line">
<meta property="og:description" content="sen2r">
<!-- 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-article">
      <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 toc-ignore">
      <h1 data-toc-skip>Using sen2r() from the command line</h1>
            
      
      <small class="dont-index">Source: <a href="https://github.com/ranghetti/sen2r/blob/HEAD/vignettes/sen2r_cmd.Rmd" class="external-link"><code>vignettes/sen2r_cmd.Rmd</code></a></small>
      <div class="hidden name"><code>sen2r_cmd.Rmd</code></div>

    </div>

    
    
<p>Although the easiest way to set-up and launch a processing chain is
probably by setting parameters with the GUI and launching it right away,
it is often very useful to be able to launch a processing from the
command line without opening the GUI.</p>
<p>This allows using <span style="color:#5793dd;vertical-align:top;font-size:90%;font-weight:normal;">sen</span><span style="color:#6a7077;vertical-align:baseline;font-size:115%;font-weight:bolder;">2</span><span style="color:#2f66d5;vertical-align:baseline;font-size:90%;font-weight:bold;">r</span>
functionalities (provided both by the main function <code><a href="../reference/sen2r.html">sen2r()</a></code>
or other package functions) as part of more complex scripts, or
scheduling a processing so to automatically update a time series of S2
products.</p>
<p>Three main processing modes are available:</p>
<ol style="list-style-type: decimal">
<li>
<a href="#specify-all-processing-parameters-in-the-call-to-sen2r">specify
all processing parameters in the call to <code>sen2r()</code></a>;</li>
<li>
<a href="#load-processing-parameters-from-a-previously-saved-json-file">load
processing parameters from a previously saved JSON file</a>;</li>
<li>
<a href="#load-parameters-from-a-json-file-changing-some-of-them-in-the-call-to-sen2r">load
processing parameters from a previously saved JSON file, but change some
of them in the call to <code>sen2r()</code></a>.</li>
</ol>
<div class="section level2">
<h2 id="specify-all-processing-parameters-in-the-call-to-sen2r">Specify all processing parameters in the call to
<code>sen2r()</code><a class="anchor" aria-label="anchor" href="#specify-all-processing-parameters-in-the-call-to-sen2r"></a>
</h2>
<p>In this case, the user is expected to specify all arguments required
for processing within the call to <code><a href="../reference/sen2r.html">sen2r()</a></code> (see
<code><a href="../reference/sen2r.html">sen2r()</a></code> documentation for a detailed description of each
option – note that unspecified arguments will be set to default values,
when possible).</p>
<p>For example, the following code chunk would perform the following
operations:</p>
<ul>
<li>download all S2 images acquired over the area specified in the
<code>barbellino.geojson</code> spatial file between 1 and 15 July
2019;</li>
<li>process only dates for which the cloud mask derived from the SCL
dataset (type <code>"cloud_and_shadow"</code>, in this case) shows that
less than 10% of the area of interest was covered by clouds;</li>
<li>create the following output products:
<ol style="list-style-type: decimal">
<li>BOA reflectances;</li>
<li>Scene Classification Map (SCL);</li>
<li>spectral indices NDVI and MSAVI2;</li>
<li>true colour RGB obtained from BOA reflectances.</li>
</ol>
</li>
</ul>
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># Set paths</span></span>
<span><span class="va">out_dir_1</span>  <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempfile</a></span><span class="op">(</span>pattern <span class="op">=</span> <span class="st">"sen2r_out_1_"</span><span class="op">)</span> <span class="co"># output folder</span></span>
<span><span class="va">safe_dir</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempfile</a></span><span class="op">(</span>pattern <span class="op">=</span> <span class="st">"sen2r_safe_"</span><span class="op">)</span>  <span class="co"># folder to store downloaded SAFE</span></span>
<span></span>
<span><span class="va">myextent_1</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 class="st">"extdata/vector/barbellino.geojson"</span>, package <span class="op">=</span> <span class="st">"sen2r"</span><span class="op">)</span> </span>
<span></span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://sen2r.ranghetti.info" class="external-link">sen2r</a></span><span class="op">)</span></span>
<span><span class="va">out_paths_1</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/sen2r.html">sen2r</a></span><span class="op">(</span></span>
<span>  gui <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span>  step_atmcorr <span class="op">=</span> <span class="st">"l2a"</span>,</span>
<span>  extent <span class="op">=</span> <span class="va">myextent_1</span>,</span>
<span>  extent_name <span class="op">=</span> <span class="st">"Barbellino"</span>,</span>
<span>  timewindow <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/as.Date.html" class="external-link">as.Date</a></span><span class="op">(</span><span class="st">"2020-11-13"</span><span class="op">)</span>, <span class="fu"><a href="https://rdrr.io/r/base/as.Date.html" class="external-link">as.Date</a></span><span class="op">(</span><span class="st">"2020-11-25"</span><span class="op">)</span><span class="op">)</span>,</span>
<span>  list_prods <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="st">"BOA"</span>,<span class="st">"SCL"</span><span class="op">)</span>,</span>
<span>  list_indices <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="st">"NDVI"</span>,<span class="st">"MSAVI2"</span><span class="op">)</span>,</span>
<span>  list_rgb <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="st">"RGB432B"</span><span class="op">)</span>,</span>
<span>  mask_type <span class="op">=</span> <span class="st">"cloud_and_shadow"</span>,</span>
<span>  max_mask <span class="op">=</span> <span class="fl">10</span>, </span>
<span>  path_l2a <span class="op">=</span> <span class="va">safe_dir</span>,</span>
<span>  path_out <span class="op">=</span> <span class="va">out_dir_1</span></span>
<span><span class="op">)</span></span></code></pre></div>
<pre><code>[2020-11-27 16:59:58] #### Starting sen2r execution. ####
[2020-11-27 16:59:59] Searching for available SAFE products on SciHub...
[2020-11-27 17:00:10] Computing output names...
Linking to GEOS 3.7.1, GDAL 2.2.3, PROJ 4.9.3
[2020-11-27 17:00:11] Processing group 1 of 5...
[2020-11-27 17:00:11] Starting to download the required level-2A SAFE products.
[2020-11-27 17:00:11] Check if products are available for download...
[2020-11-27 17:00:11] Downloading Sentinel-2 image 1 of 1
           (S2A_MSIL2A_20201114T101301_N0214_R022_T32TNS_20201114T120346.SAFE)...
[2020-11-27 17:00:59] Download of level-2A SAFE products terminated.

# (skipping most processing messages here)</code></pre>
<p>After subsequent messages describing the processing operations which
are being done, a report summarising the conducted processing is issued
at the end:</p>
<pre><code>╔══════════════════════════════════════════════════════════════════════════════
║ sen2r Processing Report
╟──────────────────────────────────────────────────────────────────────────────
║ Dates to be processed based on processing parameters: 5
║ Processing completed for: all expected dates.
╚══════════════════════════════════════════════════════════════════════════════
[2020-11-27 17:10:30] #### sen2r session terminated. ####
The processing chain can be re-launched with the command:
  sen2r("/home/lranghetti/.sen2r/proc_par/s2proc_20201127_165959.json")
</code></pre>
<p>In this case, it shows that all the 5 S2 images satisfying the
spatial-temporal query were downloaded and properly processed.
<!--However, outputs for two of those dates were not created because cloudiness %
over the spatial extent was above the specified threshold.--></p>
<p>S2 original SAFE images are stored in the folder specified by
<code>safe_dir</code>, and are not deleted after processing (unless the
user sets also the argument <code>rm_safe</code> to
<code>TRUE</code>).</p>
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/list.files.html" class="external-link">list.files</a></span><span class="op">(</span><span class="va">safe_dir</span><span class="op">)</span></span></code></pre></div>
<pre><code>[1] "S2A_MSIL2A_20201114T101301_N0214_R022_T32TNS_20201114T120346.SAFE"
[2] "S2A_MSIL2A_20201117T102321_N0214_R065_T32TNS_20201117T130408.SAFE"
[3] "S2A_MSIL2A_20201124T101341_N0214_R022_T32TNS_20201124T115339.SAFE"
[4] "S2B_MSIL2A_20201119T101319_N0214_R022_T32TNS_20201119T120649.SAFE"
[5] "S2B_MSIL2A_20201122T102339_N0214_R065_T32TNS_20201122T122607.SAFE"</code></pre>
<p>Outputs are automatically subsetted and masked over the study area,
and stored in appropriate subfolders of <code>out_dir</code>.</p>
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/list.files.html" class="external-link">list.files</a></span><span class="op">(</span><span class="va">out_dir_1</span><span class="op">)</span></span></code></pre></div>
<pre><code>[1] "BOA"     "MSAVI2"  "NDVI"    "RGB432B" "SCL"    </code></pre>
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/list.files.html" class="external-link">list.files</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/file.path.html" class="external-link">file.path</a></span><span class="op">(</span><span class="va">out_dir_1</span>, <span class="st">"NDVI"</span><span class="op">)</span><span class="op">)</span></span></code></pre></div>
<pre><code>[1] "S2A2A_20201114_022_Barbellino_NDVI_10.tif"
[2] "S2A2A_20201117_065_Barbellino_NDVI_10.tif"
[3] "S2A2A_20201124_022_Barbellino_NDVI_10.tif"
[4] "S2B2A_20201119_022_Barbellino_NDVI_10.tif"
[5] "S2B2A_20201122_065_Barbellino_NDVI_10.tif"
[6] "thumbnails"                               </code></pre>
<p><em>See <a href="outstructure.html">this vignette</a> for more info
about folder structure</em> <em>and naming conventions of
<code><a href="../reference/sen2r.html">sen2r()</a></code> outputs.</em></p>
</div>
<div class="section level2">
<h2 id="load-processing-parameters-from-a-previously-saved-json-file">Load processing parameters from a previously saved JSON file<a class="anchor" aria-label="anchor" href="#load-processing-parameters-from-a-previously-saved-json-file"></a>
</h2>
<p>Users can set the desired parameters with the GUI, export them to a
JSON file and run the command <code><a href="../reference/sen2r.html">sen2r()</a></code> specifying the JSON
path in the argument <code>param_list</code> to specify processing
options. For example, the command would launch <code><a href="../reference/sen2r.html">sen2r()</a></code>
using settings specified in file <code>"myparams.json"</code> (or
<code>"file30ac6089ea3_sen2r_params.json"</code> in the reproducible
case):</p>
<div class="sourceCode" id="cb10"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># set the path to an existing JSON file </span></span>
<span><span class="co"># (commented here, and substituted with an instruction that creates </span></span>
<span><span class="co"># a test JSON file)</span></span>
<span><span class="co"># json_path &lt;- "/path/to/myparams.json"</span></span>
<span><span class="va">json_path_2</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/build_example_param_file.html">build_example_param_file</a></span><span class="op">(</span><span class="op">)</span></span>
<span><span class="va">json_path_2</span></span></code></pre></div>
<pre><code>[1] "/tmp/RtmpHUtF1k/file9a625065871c_sen2r_params.json"</code></pre>
<div class="sourceCode" id="cb12"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">out_paths_2</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/sen2r.html">sen2r</a></span><span class="op">(</span>param_list <span class="op">=</span> <span class="va">json_path_2</span><span class="op">)</span></span></code></pre></div>
<pre><code>[2020-11-27 17:25:23] #### Starting sen2r execution. ####
[2020-11-27 17:25:23] Searching for available SAFE products on SciHub...
[2020-11-27 17:25:26] Computing output names...
[2020-11-27 17:25:28] Starting to download the required level-2A SAFE products.

# (skipping most processing messages here)

╔══════════════════════════════════════════════════════════════════════════════
║ sen2r Processing Report
╟──────────────────────────────────────────────────────────────────────────────
║ Dates to be processed based on processing parameters: 1
║ Processing completed for: all expected dates.
╚══════════════════════════════════════════════════════════════════════════════
[2020-11-27 17:26:43] #### sen2r session terminated. ####
The processing chain can be re-launched with the command:
  sen2r("/home/lranghetti/.sen2r/proc_par/s2proc_20201127_172523.json")</code></pre>
<p>This is for example particularly useful if a <code><a href="../reference/sen2r.html">sen2r()</a></code>
processing requires ordering images from the LTA archive.</p>
<p>The user can in fact, in that case:</p>
<ol style="list-style-type: decimal">
<li>set the processing parameters in the GUI and save them to JSON;</li>
<li>launch the processing a first time as shown above:
<code><a href="../reference/sen2r.html">sen2r()</a></code> will process all already online dates, and
automatically order the missing ones;</li>
<li>wait some time for the ordered images to be put back on line;</li>
<li>launch the processing again to complete the processing.</li>
</ol>
<p><em>See <a href="https://luigi.ranghetti.info/post/order-s2-lta/" class="external-link uri">https://luigi.ranghetti.info/post/order-s2-lta/</a> for a
more detailed</em> <em>discussion about how LTA orders are dealt with in
<code><a href="../reference/sen2r.html">sen2r()</a></code>.</em></p>
</div>
<div class="section level2">
<h2 id="load-parameters-from-a-json-file-changing-some-of-them-in-the-call-to-sen2r">Load parameters from a JSON file changing some of them in the call
to <code>sen2r()</code><a class="anchor" aria-label="anchor" href="#load-parameters-from-a-json-file-changing-some-of-them-in-the-call-to-sen2r"></a>
</h2>
<p>This allows users to use a previously saved JSON file as a “template”
for a processing, but changing “manually” any desired parameter.</p>
<p>For example, the following instructions would execute the same
processing as in the previous example, but changing both the extent and
time window of the analysis.</p>
<div class="sourceCode" id="cb14"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># use the previously saved JSON path</span></span>
<span><span class="va">json_path_2</span></span></code></pre></div>
<pre><code>[1] "/tmp/RtmpDLx7qh/file30ac6089ea3_sen2r_params.json"</code></pre>
<div class="sourceCode" id="cb16"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">out_dir_3</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempfile</a></span><span class="op">(</span>pattern <span class="op">=</span> <span class="st">"sen2r_out_3_"</span><span class="op">)</span>  <span class="co"># new output folder</span></span>
<span></span>
<span><span class="va">myextent_3</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 class="st">"extdata/vector/scalve.kml"</span>, package <span class="op">=</span> <span class="st">"sen2r"</span><span class="op">)</span></span>
<span></span>
<span><span class="va">out_paths_3</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/sen2r.html">sen2r</a></span><span class="op">(</span></span>
<span>  param_list <span class="op">=</span> <span class="va">json_path_2</span>, </span>
<span>  extent <span class="op">=</span> <span class="va">myextent_3</span>, </span>
<span>  extent_name <span class="op">=</span> <span class="st">"newxtent"</span>,</span>
<span>  timewindow <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/as.Date.html" class="external-link">as.Date</a></span><span class="op">(</span><span class="st">"2020-10-01"</span><span class="op">)</span>, <span class="fu"><a href="https://rdrr.io/r/base/as.Date.html" class="external-link">as.Date</a></span><span class="op">(</span><span class="st">"2020-10-30"</span><span class="op">)</span><span class="op">)</span>,</span>
<span>  path_out <span class="op">=</span> <span class="va">out_dir_3</span></span>
<span><span class="op">)</span></span></code></pre></div>
<p>This allows for example to easily run the same processing over
different spatial/temporal extents.</p>
</div>
  </div>

  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">

        <nav id="toc" data-toggle="toc"><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>
