<!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>Trace functions which create files — start_trace • 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="Trace functions which create files — start_trace"><meta property="og:description" content="Some functions create output files during their execution;
some of them are slow, so the probability that something goes wrong
during their execution is not null, with the consequence that output
files are incomplete, or that undesired temporary files are left on
the filesystem.
This functions is though to manage these situations.
trace_function runs a function and checks if errors occur during its execution;
in this case, the files created by it are deleted (only if the timestamp
of the files is subsequent to the time of execution of the function).
If the code interrupts before the function ends, the paths of the files
intended to be created by the function are saved within the package, so that
they can be easily deleted in a second time; to do it, simply
run clean_traces.
Other intermediate functions are used internally:
start_trace saves the paths of the files intended to be created within
a text file;
end_trace deletes this text file (it is used by trace_function when
a function stops without errors);
clean_trace deletes this text file and the intended output files (it is
used by trace_function when a function stops with errors)."><!-- 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>Trace functions which create files</h1>
    <small class="dont-index">Source: <a href="https://github.com/ranghetti/sen2r/blob/HEAD/R/trace_functions.R" class="external-link"><code>R/trace_functions.R</code></a></small>
    <div class="hidden name"><code>trace_function.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>Some functions create output files during their execution;
some of them are slow, so the probability that something goes wrong
during their execution is not null, with the consequence that output
files are incomplete, or that undesired temporary files are left on
the filesystem.</p>
<p>This functions is though to manage these situations.</p>
<p>trace_function runs a function and checks if errors occur during its execution;
in this case, the files created by it are deleted (only if the timestamp
of the files is subsequent to the time of execution of the function).
If the code interrupts before the function ends, the paths of the files
intended to be created by the function are saved within the package, so that
they can be easily deleted in a second time; to do it, simply
run clean_traces.</p>
<p>Other intermediate functions are used internally:
start_trace saves the paths of the files intended to be created within
a text file;
end_trace deletes this text file (it is used by trace_function when
a function stops without errors);
clean_trace deletes this text file and the intended output files (it is
used by trace_function when a function stops with errors).</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">start_trace</span><span class="op">(</span><span class="va">trace_files</span>, <span class="va">trace_funname</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">end_trace</span><span class="op">(</span><span class="va">tracename</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">clean_trace</span><span class="op">(</span><span class="va">tracename</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">trace_function</span><span class="op">(</span><span class="va">trace_fun</span>, <span class="va">trace_files</span>, trace_funname <span class="op">=</span> <span class="cn">NA</span>, <span class="va">...</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">clean_traces</span><span class="op">(</span>trace_funname <span class="op">=</span> <span class="cn">NA</span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>trace_files</dt>
<dd><p>Vector of the files intended to be created by <code>fun</code>
(for now, providing it is mandatory). Also temporary files can be indicated
here.</p></dd>


<dt>trace_funname</dt>
<dd><p>The name of the function to be run (in start_trace) or
to be cleaned (in clean_traces; if NA, all the traces are cleaned).</p></dd>


<dt>tracename</dt>
<dd><p>The path of the text file containing the log information
generated by start_trace.</p></dd>


<dt>trace_fun</dt>
<dd><p>The function to be run.</p></dd>


<dt>...</dt>
<dd><p>Arguments of the function <code>fun</code></p></dd>

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

<p>NULL (the function is called for its side effects)</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>
  <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>

