<!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>Convert absolute from/to relative paths in a virtual file — gdal_abs2rel • 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="Convert absolute from/to relative paths in a virtual file — gdal_abs2rel"><meta property="og:description" content="The two functions read the content of a GDAL virtual
file (VRT) and check the presence of paths to linked files.
gdal_abs2rel scans the presence of absolute paths: when an
absolute path has a common parent directory with the path in which
the VRT is, this is replaced with a relative. This is useful when
VRT are on a remote driver, which can be mounted to several points.
gdal_rel2abs checks the presence of relative paths,
and replace them with the corresponding absolute path (symbolic
links are followed). This is useful to grant that VRT can be moved
(if the files they link to are not moved)."><!-- 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>Convert absolute from/to relative paths in a virtual file</h1>
    <small class="dont-index">Source: <a href="https://github.com/ranghetti/sen2r/blob/HEAD/R/gdal_abs2rel.R" class="external-link"><code>R/gdal_abs2rel.R</code></a></small>
    <div class="hidden name"><code>gdal_abs2rel_rel2abs.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>The two functions read the content of a GDAL virtual
file (VRT) and check the presence of paths to linked files.</p>
<p>gdal_abs2rel scans the presence of absolute paths: when an
absolute path has a common parent directory with the path in which
the VRT is, this is replaced with a relative. This is useful when
VRT are on a remote driver, which can be mounted to several points.</p>
<p>gdal_rel2abs checks the presence of relative paths,
and replace them with the corresponding absolute path (symbolic
links are followed). This is useful to grant that VRT can be moved
(if the files they link to are not moved).</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">gdal_abs2rel</span><span class="op">(</span><span class="va">in_vrt</span>, out_vrt <span class="op">=</span> <span class="cn">NA</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">gdal_rel2abs</span><span class="op">(</span><span class="va">in_vrt</span>, out_vrt <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>in_vrt</dt>
<dd><p>The path of the VRT to be read.</p></dd>


<dt>out_vrt</dt>
<dd><p>(optional) The path of the output VRT file (default
is to overwrite <code>in_vrt</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 id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="co"># Load a VRT containing a relative path</span></span></span>
<span class="r-in"><span><span class="va">ex_vrt</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_RGB432B_10.vrt"</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 class="va">abs_vrt</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>fileext <span class="op">=</span> <span class="st">"_abs.vrt"</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">rel_vrt</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>fileext <span class="op">=</span> <span class="st">"_rel.vrt"</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">gdal_rel2abs</span><span class="op">(</span><span class="va">ex_vrt</span>, <span class="va">abs_vrt</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="fu">gdal_abs2rel</span><span class="op">(</span><span class="va">ex_vrt</span>, <span class="va">rel_vrt</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Show differences</span></span></span>
<span class="r-in"><span><span class="va">ex_vrt_content</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/readLines.html" class="external-link">readLines</a></span><span class="op">(</span><span class="va">ex_vrt</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">abs_vrt_content</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/readLines.html" class="external-link">readLines</a></span><span class="op">(</span><span class="va">abs_vrt</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">rel_vrt_content</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/readLines.html" class="external-link">readLines</a></span><span class="op">(</span><span class="va">rel_vrt</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">ex_vrt_content</span><span class="op">[</span><span class="va">ex_vrt_content</span> <span class="op">!=</span> <span class="va">abs_vrt_content</span><span class="op">]</span> <span class="co"># Original line</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "    &lt;SourceDataset relativeToVRT=\"1\"&gt;S2A2A_20190723_022_Barbellino_RGB432B_10.tif&lt;/SourceDataset&gt;"</span>
<span class="r-in"><span><span class="va">abs_vrt_content</span><span class="op">[</span><span class="va">ex_vrt_content</span> <span class="op">!=</span> <span class="va">abs_vrt_content</span><span class="op">]</span> <span class="co"># Modified line</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "    &lt;SourceDataset relativeToVRT=\"0\"&gt;/tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/out/S2A2A_20190723_022_Barbellino_RGB432B_10.tif&lt;/SourceDataset&gt;"</span>
<span class="r-in"><span><span class="va">rel_vrt_content</span><span class="op">[</span><span class="va">ex_vrt_content</span> <span class="op">!=</span> <span class="va">rel_vrt_content</span><span class="op">]</span> <span class="co"># No edits</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> character(0)</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>

