You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2023/01/21 14:45:41 UTC

[sis-site] branch asf-staging updated: Add more items in the "How to" page.

This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/sis-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new f714d2e6 Add more items in the "How to" page.
f714d2e6 is described below

commit f714d2e6d0b6dcee53c2f5934ce0fa6645a05af6
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sat Jan 21 15:45:28 2023 +0100

    Add more items in the "How to" page.
---
 en/sitemap.xml                                     |  16 +-
 howto.html                                         |  14 +-
 ...ection.html => envelopes_in_different_crs.html} |  95 ++---
 howto/export_metadata_to_xml.html                  | 463 +++++++++++++++++++++
 ...rojection.html => geographic_bounding_box.html} | 106 +++--
 howto/index.xml                                    |  38 ++
 howto/raster_values_at_geographic_coordinates.html |   4 +-
 howto/transform_envelopes.html                     | 225 ++++++++++
 index.xml                                          |  38 ++
 sitemap.xml                                        |   2 +-
 10 files changed, 872 insertions(+), 129 deletions(-)

diff --git a/en/sitemap.xml b/en/sitemap.xml
index 54241706..6ef1eac6 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -35,9 +35,15 @@
                 hreflang="en"
                 href="https://sis.apache.org/faq.html"
                 />
+  </url><url>
+    <loc>https://sis.apache.org/howto/export_metadata_to_xml.html</loc>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
+  </url><url>
+    <loc>https://sis.apache.org/howto/geographic_bounding_box.html</loc>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
   </url><url>
     <loc>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</loc>
-    <lastmod>2023-01-21T00:15:54+01:00</lastmod>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
   </url><url>
     <loc>https://sis.apache.org/howto/lookup_crs_urn.html</loc>
     <lastmod>2023-01-21T00:15:54+01:00</lastmod>
@@ -46,7 +52,7 @@
     <lastmod>2023-01-21T00:15:54+01:00</lastmod>
   </url><url>
     <loc>https://sis.apache.org/howto.html</loc>
-    <lastmod>2023-01-21T00:15:54+01:00</lastmod>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
   </url><url>
     <loc>https://sis.apache.org/epsg.html</loc>
     <lastmod>2022-12-08T22:07:22+01:00</lastmod>
@@ -141,5 +147,11 @@
   </url><url>
     <loc>https://sis.apache.org/howto/transform_coordinates.html</loc>
     <lastmod>2023-01-21T00:15:54+01:00</lastmod>
+  </url><url>
+    <loc>https://sis.apache.org/howto/transform_envelopes.html</loc>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
+  </url><url>
+    <loc>https://sis.apache.org/howto/envelopes_in_different_crs.html</loc>
+    <lastmod>2023-01-21T14:16:36+01:00</lastmod>
   </url>
 </urlset>
diff --git a/howto.html b/howto.html
index 4fb233c1..0e23f7f3 100644
--- a/howto.html
+++ b/howto.html
@@ -110,6 +110,7 @@ The examples are grouped in the following sections:</p>
 <nav id="TableOfContents">
   <ul>
     <li><a href="#referencing">Referencing by coordinates   </a></li>
+    <li><a href="#metadata">Metadata   </a></li>
     <li><a href="#raster">Grid coverages (rasters)   </a></li>
   </ul>
 </nav>
@@ -117,9 +118,16 @@ The examples are grouped in the following sections:</p>
 <ul>
 <li><a href="howto/instantiate_utm_projection.html">Instantiate a Universal Transverse Mercator (UTM) projection</a></li>
 <li><a href="faq.html#google">Instantiate a Pseudo Mercator (a.k.a. Google) projection</a></li>
-<li><a href="howto/transform_coordinates.html">Transform coordinates between two reference systems</a></li>
-<li><a href="howto/lookup_crs_urn.html">Get the EPSG code or URN of an existing <abbr title="Coordinate Reference System">CRS</abbr></a></li>
-<li><a href="howto/crs_equality.html">Determine if two <abbr title="Coordinate Reference System">CRS</abbr> are functionally equal</a></li>
+<li><a href="howto/lookup_crs_urn.html">Get the EPSG code or URN of an existing reference system</a></li>
+<li><a href="howto/transform_coordinates.html">Transform points between two reference systems</a></li>
+<li><a href="howto/transform_envelopes.html">Transform envelopes between two reference systems</a></li>
+<li><a href="howto/envelopes_in_different_crs.html">Union or intersection of envelopes in different reference systems</a></li>
+<li><a href="howto/crs_equality.html">Determine if two reference systems are functionally equal</a></li>
+</ul>
+<h1 id="metadata">Metadata   </h1>
+<ul>
+<li><a href="howto/geographic_bounding_box.html">Get the geographic bounding box of a data file</a></li>
+<li><a href="howto/export_metadata_to_xml.html">Export metadata of a data file to standard XML</a></li>
 </ul>
 <h1 id="raster">Grid coverages (rasters)   </h1>
 <ul>
diff --git a/howto/instantiate_UTM_projection.html b/howto/envelopes_in_different_crs.html
similarity index 61%
copy from howto/instantiate_UTM_projection.html
copy to howto/envelopes_in_different_crs.html
index 3cf1e732..89e78020 100644
--- a/howto/instantiate_UTM_projection.html
+++ b/howto/envelopes_in_different_crs.html
@@ -3,7 +3,7 @@
 <head>
 
 
-  <title>Apache SIS - Instantiate a UTM projection</title>
+  <title>Apache SIS - Union or intersection of envelopes in different CRS</title>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
@@ -103,95 +103,66 @@
     <main class="container">
       <article>
         <img src="../images/logo.png" class="sis-logo" align="left"/>
-        <p class="page-title">Instantiate a UTM projection</p>
+        <p class="page-title">Union or intersection of envelopes in different CRS</p>
 
-  <p>The Universal Transverse Mercator (UTM) projection divides the world in 60 zones.
-If the UTM zone is unknown, an easy way to instantiate the projection
-is to invoke the <code>universal(…)</code> method on one of the <code>CommonCRS</code> predefined constants.
-That method receives in argument a geographic coordinate in (<em>latitude</em>, <em>longitude</em>) order and computes the UTM zone from it.
-It takes in account the special cases of Norway and Svalbard.</p>
-<p>An alternative, more standard, way using geographic coordinates is to format an &ldquo;AUTO&rdquo; authority code.
-The syntax is <code>&quot;AUTO2:​42001,​1,​&lt;longitude&gt;,​&lt;latitude&gt;&quot;</code>.
-However this approach works only for the WGS84 datum.</p>
-<p>If the UTM zone is known, another way is to use the &ldquo;EPSG&rdquo; authority factory.
-The EPSG code of some UTM projections can be determined as below, where <em>zone</em> is a number from 1 to 60 inclusive (unless otherwise specified):</p>
-<ul>
-<li>WGS 84 (northern hemisphere): 32600 + <em>zone</em></li>
-<li>WGS 84 (southern hemisphere): 32700 + <em>zone</em></li>
-<li>WGS 72 (northern hemisphere): 32200 + <em>zone</em></li>
-<li>WGS 72 (southern hemisphere): 32300 + <em>zone</em></li>
-<li>NAD 83 (northern hemisphere): 26900 + <em>zone</em> (zone 1 to 23 only)</li>
-<li>NAD 27 (northern hemisphere): 26700 + <em>zone</em> (zone 1 to 22 only)</li>
-<li>See the EPSG dataset for additional UTM definitions
-(WGS 72BE, SIRGAS 2000, SIRGAS 1995, SAD 69, ETRS 89, <em>etc.</em>).</li>
-</ul>
-<p>The code example below instantiates the same <abbr title="Coordinate Reference System">CRS</abbr> using the three approaches.</p>
+  <p>Before to compute the union or intersection of two or more envelopes (bounding boxes),
+all envelopes must be <a href="transform_envelopes.html">transformed</a> to the same Coordinate Reference System (CRS).
+But the choice of a common <abbr title="Coordinate Reference System">CRS</abbr> is not easy.
+We must verify that all envelopes are inside the domain of validity of the common <abbr title="Coordinate Reference System">CRS</abbr>,
+which may require to choose a common <abbr title="Coordinate Reference System">CRS</abbr> different than the <abbr title="Coordinate Reference System">CRS</abbr> of all envelopes.
+Apache <abbr title="Spatial Information System">SIS</abbr> can handle this task automatically.</p>
 <h1 id="direct-dependencies">Direct dependencies</h1>
 <table>
 <thead>
 <tr>
 <th>Maven coordinates</th>
 <th>Module info</th>
-<th>Remarks</th>
 </tr>
 </thead>
 <tbody>
 <tr>
 <td><code>org.apache.sis.storage:sis-referencing</code></td>
 <td><code>org.apache.sis.referencing</code></td>
-<td></td>
-</tr>
-<tr>
-<td><code>org.apache.sis.non-free:sis-embedded-data</code></td>
-<td><code>org.apache.sis.referencing.database</code></td>
-<td>Optional. Non-Apache license.</td>
 </tr>
 </tbody>
 </table>
-<p>The <a href="../epsg.html">EPSG dependency</a> is optional for examples using the <code>CommonCRS</code> enumeration
-or the &ldquo;AUTO&rdquo; authority, but is required for examples using the &ldquo;EPSG&rdquo; authority.</p>
 <h1 id="code-example">Code example</h1>
-<p>Note that all geographic coordinates below express latitude <em>before</em> longitude,
-except in &ldquo;AUTO2&rdquo; authority code.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="o">;</span>
+<p>Note that all geographic coordinates below express latitude <em>before</em> longitude.</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.geometry.Envelope</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.operation.TransformException</span><span class="o">;</span>
 </span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.util.FactoryException</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CRS</span><span class="o">;</span>
 </span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.util.Utilities</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.geometry.Envelopes</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.geometry.Envelope2D</span><span class="o">;</span>
 </span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">InstantiateUTM</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">UnionOfEnvelopes</span> <span class="o">{</span>
 </span></span><span class="line"><span class="cl">    <span class="cm">/**
 </span></span></span><span class="line"><span class="cl"><span class="cm">     * Demo entry point.
 </span></span></span><span class="line"><span class="cl"><span class="cm">     *
 </span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  args  ignored.
-</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws FactoryException if an error occurred while creating the Coordinate Reference System (CRS).
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws FactoryException   if an error occurred while creating a Coordinate Reference System (CRS).
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws TransformException if an error occurred while transforming coordinates to the target CRS.
 </span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
-</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">FactoryException</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Get UTM projection for whatever zone is valid for 40°N 14°E.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="kt">double</span> <span class="n">latitude</span>  <span class="o">=</span> <span class="n">40</span><span class="o">;</span>      <span class="c1">// Will determine the hemisphere.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="kt">double</span> <span class="n">longitude</span> <span class="o">=</span> <span class="n">14</span><span class="o">;</span>      <span class="c1">// Will determine the UTM zone.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromPoint</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">universal</span><span class="o">(</span><span class="n">latitude</span><span class="o">,</span> <span class="n">longitude</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromAUTO2</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">forCode</span><span class="o">(</span><span class="s">&#34;AUTO2:42001,1,&#34;</span> <span class="o">+</span> <span class="n">longitude</span> <span class="o">+</span> <span class="s">&#34;,&#34;</span> <span class="o">+</span> <span class="n">latitude</sp [...]
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Get the UTM projection for a specific zone.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="kt">int</span> <span class="n">zone</span> <span class="o">=</span> <span class="n">33</span><span class="o">;</span>              <span class="c1">// UTM zone 33.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="kt">int</span> <span class="n">code</span> <span class="o">=</span> <span class="n">32600</span> <span class="o">+</span> <span class="n">zone</span><span class="o">;</span>    <span class="c1">// For WGS84 northern hemisphere
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromCode</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">forCode</span><span class="o">(</span><span class="s">&#34;EPSG:&#34;</span> <span class="o">+</span> <span class="n">code</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Compare the results.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Are the CRS equivalent?&#34;</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;AUTO2: &#34;</span> <span class="o">+</span> <span class="n">Utilities</span><span class="o">.</span><span class="na">equalsIgnoreMetadata</span><span class="o">(</span><span class="n">crsFromPoint</span><span class="o">,</span> <span class="n">crsFromAU [...]
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;EPSG:  &#34;</span> <span class="o">+</span> <span class="n">Utilities</span><span class="o">.</span><span class="na">equalsIgnoreMetadata</span><span class="o">(</span><span class="n">crsFromPoint</span><span class="o">,</span> <span class="n">crsFromCo [...]
+</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">FactoryException</span><span class="o">,</span> <span class="n">TransformException</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="n">CoordinateReferenceSystem</span> <span class="n">crs1</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">universal</span><span class="o">(</span><span class="n">40</span><span class="o">,</span> <span class="n">10</span><span class="o">);</span>     <span class="c1">// 40°N 10°E
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">CoordinateReferenceSystem</span> <span class="n">crs2</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">universal</span><span class="o">(</span><span class="n">40</span><span class="o">,</span> <span class="n">20</span><span class="o">);</span>     <span class="c1">// 40°N 20°E
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
+</span></span><span class="line"><span class="cl">        <span class="n">Envelope2D</span> <span class="n">bbox1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Envelope2D</span><span class="o">(</span><span class="n">crs1</span><span class="o">,</span> <span class="n">500_000</span><span class="o">,</span> <span class="n">400_000</span><span class="o">,</span> <span class="n">100_000</span><span class="o">,</span> <span class="n">100_000</span><span class="o" [...]
+</span></span><span class="line"><span class="cl">        <span class="n">Envelope2D</span> <span class="n">bbox2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Envelope2D</span><span class="o">(</span><span class="n">crs2</span><span class="o">,</span> <span class="n">400_000</span><span class="o">,</span> <span class="n">500_000</span><span class="o">,</span> <span class="n">100_000</span><span class="o">,</span> <span class="n">100_000</span><span class="o" [...]
+</span></span><span class="line"><span class="cl">        <span class="n">Envelope</span>   <span class="n">union</span> <span class="o">=</span> <span class="n">Envelopes</span><span class="o">.</span><span class="na">union</span><span class="o">(</span><span class="n">bbox1</span><span class="o">,</span> <span class="n">bbox2</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;First CRS:    &#34;</span> <span class="o">+</span> <span class="n">crs1</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Second CRS:   &#34;</span> <span class="o">+</span> <span class="n">crs2</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Selected CRS: &#34;</span> <span class="o">+</span> <span class="n">union</span><span class="o">.</span><span class="na">getCoordinateReferenceSystem</span><span class="o">().</span><span class="na">getName</span><span class="o">());</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Union result: &#34;</span> <span class="o">+</span> <span class="n">union</span><span class="o">);</span>
 </span></span><span class="line"><span class="cl">    <span class="o">}</span>
 </span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
 <h1 id="output">Output</h1>
-<pre tabindex="0"><code>Are the CRS equivalent?
-AUTO2: true
-EPSG:  true
+<pre tabindex="0"><code>First CRS:    EPSG:WGS 84 / UTM zone 32N
+Second CRS:   EPSG:WGS 84 / UTM zone 34N
+Selected CRS: EPSG:WGS 84
+Union result: BOX(3.6184285185271796 9, 5.428225419697392 21)
 </code></pre>
 
       </article>
diff --git a/howto/export_metadata_to_xml.html b/howto/export_metadata_to_xml.html
new file mode 100644
index 00000000..8fa2b717
--- /dev/null
+++ b/howto/export_metadata_to_xml.html
@@ -0,0 +1,463 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+
+  <title>Apache SIS - Geographic bounding box of a data file</title>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
+        rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
+  <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+  <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+</head>
+
+<body>
+
+<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+  <div class="container-fluid">
+    <a class="navbar-brand" href="../index.html"> Apache SIS™</a>
+    <ul class="navbar-nav me-auto mb-2 mb-md-0">
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuAbout" data-bs-toggle="dropdown" aria-expanded="false">About</a>
+        <ul class="dropdown-menu" aria-labelledby="menuAbout">
+          <li><a class="dropdown-item" href="http://www.apache.org/licenses/">License</a></li>
+          <li><a class="dropdown-item" href="../mail-lists.html">Mailing Lists</a></li>
+          <li><a class="dropdown-item" href="../team-list.html">Project Team</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuDownload" data-bs-toggle="dropdown" aria-expanded="false">Download</a>
+        <ul class="dropdown-menu" aria-labelledby="menuDownload">
+          <li><a class="dropdown-item" href="../downloads.html">Downloads</a></li>
+          <li><a class="dropdown-item" href="../source.html">Checkout Sources</a></li>
+          <li><a class="dropdown-item" href="../build.html">Build from Sources</a></li>
+          <li><a class="dropdown-item" href="../epsg.html">EPSG Database</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuDocumentation" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
+        <ul class="dropdown-menu" aria-labelledby="menuDocumentation">
+          <li><a class="dropdown-item" href="../apidocs/index.html">Online Javadoc</a></li>
+          <li><a class="dropdown-item" href="../book/en/developer-guide.html">Developer Guide</a></li>
+          <li><a class="dropdown-item" href="../howto.html">How to…</a></li>
+          <li><a class="dropdown-item" href="../formats.html">Supported formats</a></li>
+          <li><a class="dropdown-item" href="../tables/CoordinateReferenceSystems.html">Supported CRS</a></li>
+          <li><a class="dropdown-item" href="../tables/CoordinateOperationMethods.html">Map Projections</a></li>
+          <li><a class="dropdown-item" href="../code-patterns.html">Code Patterns</a></li>
+          <li><a class="dropdown-item" href="../faq.html">FAQ</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuContribute" data-bs-toggle="dropdown" aria-expanded="false">Contribute</a>
+        <ul class="dropdown-menu" aria-labelledby="menuContribute">
+          <li><a class="dropdown-item" href="../contributor.html">New Contributor</a></li>
+          <li><a class="dropdown-item" href="../coding-conventions.html">Coding Conventions</a></li>
+          <li><a class="dropdown-item" href="../mail-lists.html">Mailing Lists</a></li>
+          <li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
+          <li><a class="dropdown-item" href="https://github.com/apache/sis">GitHub mirror</a></li>
+          <li><a class="dropdown-item" href="https://cwiki.apache.org/confluence/display/SIS">Wiki</a></li>
+          <li><hr class="dropdown-divider"></li>
+          <li><a class="dropdown-item" href="../release-management.html">Release management</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuASF" data-bs-toggle="dropdown" aria-expanded="false">The Foundation</a>
+        <ul class="dropdown-menu" aria-labelledby="menuASF">
+          <li><a class="dropdown-item" href="http://www.apache.org">The Foundation</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/security/">Security</a></li>
+        </ul>
+      </li>
+    </ul>
+    <ul class="navbar-nav ml-auto mb-2 mb-md-0">
+      <li class="nav-item">
+        <a href="https://www.apache.org/events/current-event.html">
+           <img class="apache-con" src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon"/>
+        </a>
+      </li>
+    </ul>
+  </div>
+</nav>
+
+
+<div class="row flex-nowrap">
+  <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width:13rem; min-height:40rem">
+    <ul class="nav nav-pills flex-column mb-auto position-fixed">
+      <li><a class="nav-link  text-white " href="../index.html">Home</a></li>
+      <li><a class="nav-link text-white" href="http://www.apache.org/licenses/">License</a></li>
+      <li><a class="nav-link  text-white " href="../downloads.html">Downloads</a></li>
+      <li><a class="nav-link  active " href="../howto.html">How to…</a></li>
+      <li><a class="nav-link  text-white " href="../standards.html">Standards</a></li>
+      <li><a class="nav-link  text-white " href="../formats.html">Data formats</a></li>
+      <li><a class="nav-link  text-white " href="../epsg.html">EPSG Database</a></li>
+      <li><a class="nav-link  text-white " href="../javafx.html">Application (demo)</a></li>
+      <li><a class="nav-link text-white" href="../apidocs/index.html">Online Javadoc</a></li>
+      <li><a class="nav-link text-white" href="../book/en/developer-guide.html">Developer Guide</a></li>
+      <li><a class="nav-link  text-white " href="../code-patterns.html">Code patterns</a></li>
+      <li><a class="nav-link  text-white " href="../faq.html">FAQ</a></li>
+    </ul>
+  </div>
+  <div class="col">
+    <main class="container">
+      <article>
+        <img src="../images/logo.png" class="sis-logo" align="left"/>
+        <p class="page-title">Geographic bounding box of a data file</p>
+
+  <p>This example prints the metadata of a netCDF file in the XML format
+defined by the ISO 19115-3 international standard.
+The coverage values are not read, only the netCDF file header is read.</p>
+<h1 id="direct-dependencies">Direct dependencies</h1>
+<table>
+<thead>
+<tr>
+<th>Maven coordinates</th>
+<th>Module info</th>
+<th>Remarks</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>org.apache.sis.storage:sis-netcdf</code></td>
+<td><code>org.apache.sis.storage.netcdf</code></td>
+<td></td>
+</tr>
+<tr>
+<td><code>edu.ucar:cdm-core</code></td>
+<td></td>
+<td>For netCDF-4 or HDF5</td>
+</tr>
+</tbody>
+</table>
+<p>The <code>cdm-core</code> dependency can be omitted for netCDF-3 (a.k.a. &ldquo;classic&rdquo;),
+GeoTIFF or any other <a href="../formats.html">formats supported by Apache SIS</a>.
+For the dependencies required for reading GeoTIFF instead of netCDF files,
+see the <a href="geographic_bounding_box.html">geographic bounding box</a> code example.</p>
+<h1 id="code-example">Code example</h1>
+<p>The file name in following code need to be updated for yours data.</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.util.Map</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.io.File</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.io.StringWriter</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">javax.xml.bind.JAXBException</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">javax.xml.transform.stream.StreamResult</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.metadata.Metadata</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStore</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStores</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStoreException</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.xml.XML</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl">
+</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ExportMetadata</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">    <span class="cm">/**
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * Demo entry point.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     *
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  args  ignored.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws DataStoreException if an error occurred while reading the data file.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws JAXBException if an error occurred while marshalling metadata to XML.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
+</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">DataStoreException</span><span class="o">,</span> <span class="n">JAXBException</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="k">try</span> <span class="o">(</span><span class="n">DataStore</span> <span class="n">store</span> <span class="o">=</span> <span class="n">DataStores</span><span class="o">.</span><span class="na">open</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="s">&#34;CMEMS.nc&#34;</span><span class="o">)))</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="n">Metadata</span> <span class="n">metadata</span> <span class="o">=</span> <span class="n">store</span><span class="o">.</span><span class="na">getMetadata</span><span class="o">();</span>
+</span></span><span class="line"><span class="cl">            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">XML</span><span class="o">.</span><span class="na">marshal</span><span class="o">(</span><span class="n">metadata</span><span class="o">));</span>
+</span></span><span class="line"><span class="cl">            <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm">             * By default the XML schema is the most recent version of the standard supported
+</span></span></span><span class="line"><span class="cl"><span class="cm">             * by Apache SIS. But the legacy version published in 2007 is still in wide use.
+</span></span></span><span class="line"><span class="cl"><span class="cm">             * The legacy version can be requested with the `METADATA_VERSION` property.
+</span></span></span><span class="line"><span class="cl"><span class="cm">             */</span>
+</span></span><span class="line"><span class="cl">            <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">config</span> <span class="o">=</span> <span class="n">Map</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="n">XML</span><span class="o">.</span><span class="na">METADATA_VERSION</span><span class="o">,</spa [...]
+</span></span><span class="line"><span class="cl">            <span class="n">StringWriter</span> <span class="n">result</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StringWriter</span><span class="o">();</span>
+</span></span><span class="line"><span class="cl">            <span class="n">XML</span><span class="o">.</span><span class="na">marshal</span><span class="o">(</span><span class="n">metadata</span><span class="o">,</span> <span class="k">new</span> <span class="n">StreamResult</span><span class="o">(</span><span class="n">result</span><span class="o">),</span> <span class="n">config</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">            <span class="c1">// Result is in `result.toString()`.
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="o">}</span>
+</span></span><span class="line"><span class="cl">    <span class="o">}</span>
+</span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
+<h1 id="output">Output</h1>
+<p>The output depends on the data and the locale.
+Below is an example:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="cp">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;yes&#34;?&gt;</span>
+</span></span><span class="line"><span class="cl"><span class="nt">&lt;mdb:MD_Metadata</span> <span class="na">xmlns:cit=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/cit/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:gco=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/gco/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mcc=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mcc/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mdb=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mdb/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mrc=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mrc/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mrd=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mrd/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mri=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mri/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mrl=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mrl/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:mrs=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/mrs/1.0&#34;</span>
+</span></span><span class="line"><span class="cl">                 <span class="na">xmlns:msr=</span><span class="s">&#34;http://standards.iso.org/iso/19115/-3/msr/1.0&#34;</span><span class="nt">&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:metadataStandard&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="c">&lt;!-- Omitted for brevity --&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:metadataStandard&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:spatialRepresentationInfo&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;msr:MD_GridSpatialRepresentation&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:numberOfDimensions&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;gco:Integer&gt;</span>3<span class="nt">&lt;/gco:Integer&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:numberOfDimensions&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;msr:MD_DimensionNameTypeCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_DimensionNameTypeCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;column&#34;</span><span class="nt">&gt;</span>Column<span class="nt">&lt;/msr:MD_DimensionNameTypeCode&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:Integer&gt;</span>865<span class="nt">&lt;/gco:Integer&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;msr:MD_DimensionNameTypeCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_DimensionNameTypeCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;row&#34;</span><span class="nt">&gt;</span>Row<span class="nt">&lt;/msr:MD_DimensionNameTypeCode&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:Integer&gt;</span>1081<span class="nt">&lt;/gco:Integer&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;msr:MD_DimensionNameTypeCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_DimensionNameTypeCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;time&#34;</span><span class="nt">&gt;</span>Time<span class="nt">&lt;/msr:MD_DimensionNameTypeCode&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionName&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:Integer&gt;</span>96<span class="nt">&lt;/gco:Integer&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/msr:dimensionSize&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/msr:MD_Dimension&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:axisDimensionProperties&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:cellGeometry&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;msr:MD_CellGeometryCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_CellGeometryCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;area&#34;</span><span class="nt">&gt;</span>Area<span class="nt">&lt;/msr:MD_CellGeometryCode&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:cellGeometry&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;msr:transformationParameterAvailability&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;gco:Boolean&gt;</span>false<span class="nt">&lt;/gco:Boolean&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/msr:transformationParameterAvailability&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/msr:MD_GridSpatialRepresentation&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:spatialRepresentationInfo&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:referenceSystemInfo&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;mrs:MD_ReferenceSystem&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mrs:referenceSystemIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:CharacterString&gt;</span>time latitude longitude<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mrs:referenceSystemIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/mrs:MD_ReferenceSystem&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:referenceSystemInfo&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:identificationInfo&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;mri:MD_DataIdentification&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mri:citation&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;cit:CI_Citation&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:title&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:CharacterString&gt;</span>Ocean surface 15-minutes mean fields for the Iberia-Biscay-Ireland (IBI) region<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:title&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:identifier&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>CMEMS_v5r1_IBI_PHY_NRT_PdE_15minav_20220516_20220516_R20220516_FC01<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:identifier&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:citedResponsibleParty&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;cit:CI_Responsibility&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;cit:role&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;cit:CI_RoleCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#CI_RoleCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;originator&#34;</span><span class="nt">&gt;</span>Originator<span class="nt">&lt;/cit:CI_RoleCode&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/cit:role&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;cit:party&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;cit:CI_Organisation&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;cit:name&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>Puertos del Estado (PdE)<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/cit:name&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/cit:CI_Organisation&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/cit:party&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/cit:CI_Responsibility&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:citedResponsibleParty&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:otherCitationDetails&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:CharacterString&gt;</span>http://marine.copernicus.eu/<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:otherCitationDetails&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/cit:CI_Citation&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mri:citation&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mri:pointOfContact&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;cit:CI_Responsibility&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:role&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;cit:CI_RoleCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#CI_RoleCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;pointOfContact&#34;</span><span class="nt">&gt;</span>Point of contact<span class="nt">&lt;/cit:CI_RoleCode&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:role&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;cit:party&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;cit:CI_Organisation&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;cit:name&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>Puertos del Estado (PdE)<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/cit:name&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/cit:CI_Organisation&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/cit:party&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/cit:CI_Responsibility&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mri:pointOfContact&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mri:spatialRepresentationType&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mcc:MD_SpatialRepresentationTypeCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_SpatialRepresentationTypeCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;grid&#34;</span><span class="nt">&gt;</span>Grid<span class="nt">&lt;/mcc:MD_SpatialRepresentationTypeCode&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mri:spatialRepresentationType&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mri:resourceFormat&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mrd:MD_Format&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mrd:formatSpecificationCitation&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;cit:CI_Citation&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;cit:title&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>Hierarchical Data Format, version 5<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/cit:title&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;cit:alternateTitle&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>NetCDF-4<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/cit:alternateTitle&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/cit:CI_Citation&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mrd:formatSpecificationCitation&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/mrd:MD_Format&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mri:resourceFormat&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/mri:MD_DataIdentification&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:identificationInfo&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:contentInfo&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;mrc:MD_CoverageDescription&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mrc:attributeGroup&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mrc:MD_AttributeGroup&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>zos<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                        <span class="nt">&lt;gco:CharacterString&gt;</span>short[865][1081][96]<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;/gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>Sea surface height<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>sea_surface_height_above_geoid<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:units&gt;</span>m<span class="nt">&lt;/mrc:units&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.001<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.0<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>uo<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                        <span class="nt">&lt;gco:CharacterString&gt;</span>short[865][1081][96]<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;/gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>Eastward velocity<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>eastward_sea_water_velocity<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:units&gt;</span>m∕s<span class="nt">&lt;/mrc:units&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.001<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.0<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>vo<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                        <span class="nt">&lt;gco:CharacterString&gt;</span>short[865][1081][96]<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                      <span class="nt">&lt;/gco:aName&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;/gco:TypeName&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/gco:attributeType&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/gco:MemberName&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:sequenceIdentifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:CharacterString&gt;</span>Northward velocity<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:description&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                    <span class="nt">&lt;gco:CharacterString&gt;</span>northward_sea_water_velocity<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">                  <span class="nt">&lt;/mcc:code&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;/mcc:MD_Identifier&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:name&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:units&gt;</span>m∕s<span class="nt">&lt;/mrc:units&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.001<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:scaleFactor&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">                <span class="nt">&lt;gco:Real&gt;</span>0.0<span class="nt">&lt;/gco:Real&gt;</span>
+</span></span><span class="line"><span class="cl">              <span class="nt">&lt;/mrc:offset&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;/mrc:MD_SampleDimension&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mrc:attribute&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/mrc:MD_AttributeGroup&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mrc:attributeGroup&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/mrc:MD_CoverageDescription&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:contentInfo&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:resourceLineage&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;mrl:LI_Lineage&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mrl:source&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mrl:LI_Source&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;mrl:description&gt;</span>
+</span></span><span class="line"><span class="cl">            <span class="nt">&lt;gco:CharacterString&gt;</span>IBI-MFC (PdE Production Center)<span class="nt">&lt;/gco:CharacterString&gt;</span>
+</span></span><span class="line"><span class="cl">          <span class="nt">&lt;/mrl:description&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;/mrl:LI_Source&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mrl:source&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/mrl:LI_Lineage&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:resourceLineage&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;mdb:metadataScope&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;mdb:MD_MetadataScope&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;mdb:resourceScope&gt;</span>
+</span></span><span class="line"><span class="cl">        <span class="nt">&lt;mcc:MD_ScopeCode</span> <span class="na">codeList=</span><span class="s">&#34;(…snip…)#MD_ScopeCode&#34;</span> <span class="na">codeListValue=</span><span class="s">&#34;dataset&#34;</span><span class="nt">&gt;</span>Dataset<span class="nt">&lt;/mcc:MD_ScopeCode&gt;</span>
+</span></span><span class="line"><span class="cl">      <span class="nt">&lt;/mdb:resourceScope&gt;</span>
+</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/mdb:MD_MetadataScope&gt;</span>
+</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/mdb:metadataScope&gt;</span>
+</span></span><span class="line"><span class="cl"><span class="nt">&lt;/mdb:MD_Metadata&gt;</span></span></span></code></pre></div>
+
+
+      </article>
+    </main>
+    <footer class="footer">
+    <div class="container">
+      <p>
+        Copyright &copy; 2013-2023 The Apache Software Foundation, Licensed under the
+        <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
+        Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+</footer>
+  </div>
+</div>
+
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"
+    integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
+
+</body>
+</html>
diff --git a/howto/instantiate_UTM_projection.html b/howto/geographic_bounding_box.html
similarity index 53%
rename from howto/instantiate_UTM_projection.html
rename to howto/geographic_bounding_box.html
index 3cf1e732..278b84bd 100644
--- a/howto/instantiate_UTM_projection.html
+++ b/howto/geographic_bounding_box.html
@@ -3,7 +3,7 @@
 <head>
 
 
-  <title>Apache SIS - Instantiate a UTM projection</title>
+  <title>Apache SIS - Geographic bounding box of a data file</title>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
@@ -103,29 +103,11 @@
     <main class="container">
       <article>
         <img src="../images/logo.png" class="sis-logo" align="left"/>
-        <p class="page-title">Instantiate a UTM projection</p>
+        <p class="page-title">Geographic bounding box of a data file</p>
 
-  <p>The Universal Transverse Mercator (UTM) projection divides the world in 60 zones.
-If the UTM zone is unknown, an easy way to instantiate the projection
-is to invoke the <code>universal(…)</code> method on one of the <code>CommonCRS</code> predefined constants.
-That method receives in argument a geographic coordinate in (<em>latitude</em>, <em>longitude</em>) order and computes the UTM zone from it.
-It takes in account the special cases of Norway and Svalbard.</p>
-<p>An alternative, more standard, way using geographic coordinates is to format an &ldquo;AUTO&rdquo; authority code.
-The syntax is <code>&quot;AUTO2:​42001,​1,​&lt;longitude&gt;,​&lt;latitude&gt;&quot;</code>.
-However this approach works only for the WGS84 datum.</p>
-<p>If the UTM zone is known, another way is to use the &ldquo;EPSG&rdquo; authority factory.
-The EPSG code of some UTM projections can be determined as below, where <em>zone</em> is a number from 1 to 60 inclusive (unless otherwise specified):</p>
-<ul>
-<li>WGS 84 (northern hemisphere): 32600 + <em>zone</em></li>
-<li>WGS 84 (southern hemisphere): 32700 + <em>zone</em></li>
-<li>WGS 72 (northern hemisphere): 32200 + <em>zone</em></li>
-<li>WGS 72 (southern hemisphere): 32300 + <em>zone</em></li>
-<li>NAD 83 (northern hemisphere): 26900 + <em>zone</em> (zone 1 to 23 only)</li>
-<li>NAD 27 (northern hemisphere): 26700 + <em>zone</em> (zone 1 to 22 only)</li>
-<li>See the EPSG dataset for additional UTM definitions
-(WGS 72BE, SIRGAS 2000, SIRGAS 1995, SAD 69, ETRS 89, <em>etc.</em>).</li>
-</ul>
-<p>The code example below instantiates the same <abbr title="Coordinate Reference System">CRS</abbr> using the three approaches.</p>
+  <p>This example prints the bounding box of a GeoTIFF image.
+The pixel values are not read, only the GeoTIFF file header is read.
+If the file contains many images, the bounding box of each image is printed.</p>
 <h1 id="direct-dependencies">Direct dependencies</h1>
 <table>
 <thead>
@@ -137,8 +119,8 @@ The EPSG code of some UTM projections can be determined as below, where <em>zone
 </thead>
 <tbody>
 <tr>
-<td><code>org.apache.sis.storage:sis-referencing</code></td>
-<td><code>org.apache.sis.referencing</code></td>
+<td><code>org.apache.sis.storage:sis-geotiff</code></td>
+<td><code>org.apache.sis.storage.geotiff</code></td>
 <td></td>
 </tr>
 <tr>
@@ -148,50 +130,56 @@ The EPSG code of some UTM projections can be determined as below, where <em>zone
 </tr>
 </tbody>
 </table>
-<p>The <a href="../epsg.html">EPSG dependency</a> is optional for examples using the <code>CommonCRS</code> enumeration
-or the &ldquo;AUTO&rdquo; authority, but is required for examples using the &ldquo;EPSG&rdquo; authority.</p>
+<p>The <a href="../epsg.html">EPSG dependency</a> may or may not be needed,
+depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</p>
 <h1 id="code-example">Code example</h1>
-<p>Note that all geographic coordinates below express latitude <em>before</em> longitude,
-except in &ldquo;AUTO2&rdquo; authority code.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.util.FactoryException</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CRS</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.util.Utilities</span><span class="o">;</span>
+<p>The file name in following code need to be updated for yours data.</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.io.File</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.Aggregate</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStore</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStores</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.DataStoreException</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.metadata.iso.extent.Extents</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.storage.Resource</span><span class="o">;</span>
 </span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">InstantiateUTM</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">GetBBOX</span> <span class="o">{</span>
 </span></span><span class="line"><span class="cl">    <span class="cm">/**
 </span></span></span><span class="line"><span class="cl"><span class="cm">     * Demo entry point.
 </span></span></span><span class="line"><span class="cl"><span class="cm">     *
 </span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  args  ignored.
-</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws FactoryException if an error occurred while creating the Coordinate Reference System (CRS).
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws DataStoreException if an error occurred while reading the data file.
 </span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
-</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">FactoryException</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Get UTM projection for whatever zone is valid for 40°N 14°E.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="kt">double</span> <span class="n">latitude</span>  <span class="o">=</span> <span class="n">40</span><span class="o">;</span>      <span class="c1">// Will determine the hemisphere.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="kt">double</span> <span class="n">longitude</span> <span class="o">=</span> <span class="n">14</span><span class="o">;</span>      <span class="c1">// Will determine the UTM zone.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromPoint</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">universal</span><span class="o">(</span><span class="n">latitude</span><span class="o">,</span> <span class="n">longitude</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromAUTO2</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">forCode</span><span class="o">(</span><span class="s">&#34;AUTO2:42001,1,&#34;</span> <span class="o">+</span> <span class="n">longitude</span> <span class="o">+</span> <span class="s">&#34;,&#34;</span> <span class="o">+</span> <span class="n">latitude</sp [...]
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Get the UTM projection for a specific zone.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="kt">int</span> <span class="n">zone</span> <span class="o">=</span> <span class="n">33</span><span class="o">;</span>              <span class="c1">// UTM zone 33.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="kt">int</span> <span class="n">code</span> <span class="o">=</span> <span class="n">32600</span> <span class="o">+</span> <span class="n">zone</span><span class="o">;</span>    <span class="c1">// For WGS84 northern hemisphere
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">CoordinateReferenceSystem</span> <span class="n">crsFromCode</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">forCode</span><span class="o">(</span><span class="s">&#34;EPSG:&#34;</span> <span class="o">+</span> <span class="n">code</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="cm">/*
-</span></span></span><span class="line"><span class="cl"><span class="cm">         * Compare the results.
-</span></span></span><span class="line"><span class="cl"><span class="cm">         */</span>
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Are the CRS equivalent?&#34;</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;AUTO2: &#34;</span> <span class="o">+</span> <span class="n">Utilities</span><span class="o">.</span><span class="na">equalsIgnoreMetadata</span><span class="o">(</span><span class="n">crsFromPoint</span><span class="o">,</span> <span class="n">crsFromAU [...]
-</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;EPSG:  &#34;</span> <span class="o">+</span> <span class="n">Utilities</span><span class="o">.</span><span class="na">equalsIgnoreMetadata</span><span class="o">(</span><span class="n">crsFromPoint</span><span class="o">,</span> <span class="n">crsFromCo [...]
+</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">DataStoreException</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="k">try</span> <span class="o">(</span><span class="n">DataStore</span> <span class="n">store</span> <span class="o">=</span> <span class="n">DataStores</span><span class="o">.</span><span class="na">open</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="s">&#34;Airport.tiff&#34;</span><span class="o">)))</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;For the whole file&#34;</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">Extents</span><span class="o">.</span><span class="na">getGeographicBoundingBox</span><span class="o">(</span><span class="n">store</span><span class="o">.</span><span class="na">getMetadata</span><span class="o">()));</span>
+</span></span><span class="line"><span class="cl">            <span class="k">if</span> <span class="o">(</span><span class="n">store</span> <span class="k">instanceof</span> <span class="n">Aggregate</span> <span class="n">agg</span><span class="o">)</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">                <span class="k">for</span> <span class="o">(</span><span class="n">Resource</span> <span class="n">component</span> <span class="o">:</span> <span class="n">agg</span><span class="o">.</span><span class="na">components</span><span class="o">())</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">                    <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;For component &#34;</span> <span class="o">+</span> <span class="n">component</span><span class="o">.</span><span class="na">getIdentifier</span><span class="o">());</span>
+</span></span><span class="line"><span class="cl">                    <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">Extents</span><span class="o">.</span><span class="na">getGeographicBoundingBox</span><span class="o">(</span><span class="n">component</span><span class="o">.</span><span class="na">getMetadata</span><span class="o">()));</span>
+</span></span><span class="line"><span class="cl">                <span class="o">}</span>
+</span></span><span class="line"><span class="cl">            <span class="o">}</span>
+</span></span><span class="line"><span class="cl">        <span class="o">}</span>
 </span></span><span class="line"><span class="cl">    <span class="o">}</span>
 </span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
 <h1 id="output">Output</h1>
-<pre tabindex="0"><code>Are the CRS equivalent?
-AUTO2: true
-EPSG:  true
+<p>The output depends on the data and the locale.
+Below is an example:</p>
+<pre tabindex="0"><code>For the whole file
+Geographic bounding box
+  ├─West bound longitude…… 2°31′33.51153867218″E
+  ├─East bound longitude…… 2°34′15.75923342244″E
+  ├─South bound latitude…… 48°59′20.7793385101″N
+  ├─North bound latitude…… 49°01′07.5236778991″N
+  └─Extent type code……………… True
+
+For component Optional[Airport:1]
+Geographic bounding box
+  ├─West bound longitude…… 2°31′33.51153867218″E
+  ├─East bound longitude…… 2°34′15.75923342244″E
+  ├─South bound latitude…… 48°59′20.7793385101″N
+  ├─North bound latitude…… 49°01′07.5236778991″N
+  └─Extent type code……………… True
 </code></pre>
 
       </article>
diff --git a/howto/index.xml b/howto/index.xml
index 4eb4e7e9..edcad466 100644
--- a/howto/index.xml
+++ b/howto/index.xml
@@ -16,6 +16,26 @@
 In some cases, equals­Ignore­Metadata(…) may fail to see that two reference systems are equal. It may happen for example when two map projections are defined with different parameters, but are mathematically equivalent.</description>
     </item>
 
+    <item>
+      <title>Geographic bounding box of a data file</title>
+      <link>https://sis.apache.org/howto/export_metadata_to_xml.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/export_metadata_to_xml.html</guid>
+      <description>This example prints the metadata of a netCDF file in the XML format defined by the ISO 19115-3 international standard. The coverage values are not read, only the netCDF file header is read.
+Direct dependencies    Maven coordinates Module info Remarks     org.apache.sis.storage:sis-netcdf org.apache.sis.storage.netcdf    edu.ucar:cdm-core  For netCDF-4 or HDF5    The cdm-core dependency can be omitted for netCDF-3 (a.k.a. &amp;ldquo;classic&amp;rdquo;), GeoTIFF or any other formats supported by Apache SIS.</description>
+    </item>
+
+    <item>
+      <title>Geographic bounding box of a data file</title>
+      <link>https://sis.apache.org/howto/geographic_bounding_box.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/geographic_bounding_box.html</guid>
+      <description>This example prints the bounding box of a GeoTIFF image. The pixel values are not read, only the GeoTIFF file header is read. If the file contains many images, the bounding box of each image is printed.
+Direct dependencies    Maven coordinates Module info Remarks     org.apache.sis.storage:sis-geotiff org.apache.sis.storage.geotiff    org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Optional. Non-Apache license.    The EPSG dependency may or may not be needed, depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</description>
+    </item>
+
     <item>
       <title>Get raster values at geographic coordinates</title>
       <link>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</link>
@@ -74,5 +94,23 @@ Direct dependencies    Maven coordinates Module info Remarks     org.apache.sis.
 Note: if the result of a coordinate transformation seems wrong, see the FAQ page.</description>
     </item>
 
+    <item>
+      <title>Transform envelopes (bounding boxes)</title>
+      <link>https://sis.apache.org/howto/transform_envelopes.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/transform_envelopes.html</guid>
+      <description>The transformation of envelopes (or bounding boxes) is a much more difficult task than transforming the four corners of a rectangle. The rectangle straight lines in source CRS may become curves in the target CRS with minimum and maximum values that are not located in any corner. The calculation is also more complicated if the envelope contains a pole or crosses the anti-meridian. Apache SIS handles those complexities in convenience static methods.</description>
+    </item>
+
+    <item>
+      <title>Union or intersection of envelopes in different CRS</title>
+      <link>https://sis.apache.org/howto/envelopes_in_different_crs.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/envelopes_in_different_crs.html</guid>
+      <description>Before to compute the union or intersection of two or more envelopes (bounding boxes), all envelopes must be transformed to the same Coordinate Reference System (CRS). But the choice of a common CRS is not easy. We must verify that all envelopes are inside the domain of validity of the common CRS, which may require to choose a common CRS different than the CRS of all envelopes. Apache SIS can handle this task automatically.</description>
+    </item>
+
   </channel>
 </rss>
diff --git a/howto/raster_values_at_geographic_coordinates.html b/howto/raster_values_at_geographic_coordinates.html
index 5455cd19..e280b3d7 100644
--- a/howto/raster_values_at_geographic_coordinates.html
+++ b/howto/raster_values_at_geographic_coordinates.html
@@ -232,9 +232,9 @@ in following code need to be updated for yours data.</p>
 </span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws DataStoreException if an error occurred while reading the raster.
 </span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
 </span></span><span class="line"><span class="cl">    <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">printComponents</span><span class="o">(</span><span class="n">DataStore</span> <span class="n">store</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">DataStoreException</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="o">(</span><span class="n">store</span> <span class="k">instanceof</span> <span class="n">Aggregate</span> <span class="n">a</span><span class="o">)</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="o">(</span><span class="n">store</span> <span class="k">instanceof</span> <span class="n">Aggregate</span> <span class="n">agg</span><span class="o">)</span> <span class="o">{</span>
 </span></span><span class="line"><span class="cl">            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Components found in the data store:&#34;</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">            <span class="k">for</span> <span class="o">(</span><span class="n">Resource</span> <span class="n">component</span> <span class="o">:</span> <span class="n">a</span><span class="o">.</span><span class="na">components</span><span class="o">())</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="k">for</span> <span class="o">(</span><span class="n">Resource</span> <span class="n">component</span> <span class="o">:</span> <span class="n">agg</span><span class="o">.</span><span class="na">components</span><span class="o">())</span> <span class="o">{</span>
 </span></span><span class="line"><span class="cl">                <span class="n">component</span><span class="o">.</span><span class="na">getIdentifier</span><span class="o">().</span><span class="na">ifPresent</span><span class="o">((</span><span class="n">id</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class [...]
 </span></span><span class="line"><span class="cl">            <span class="o">}</span>
 </span></span><span class="line"><span class="cl">        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
diff --git a/howto/transform_envelopes.html b/howto/transform_envelopes.html
new file mode 100644
index 00000000..6e73a66f
--- /dev/null
+++ b/howto/transform_envelopes.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+
+  <title>Apache SIS - Transform envelopes (bounding boxes)</title>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
+        rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
+  <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+  <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+</head>
+
+<body>
+
+<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+  <div class="container-fluid">
+    <a class="navbar-brand" href="../index.html"> Apache SIS™</a>
+    <ul class="navbar-nav me-auto mb-2 mb-md-0">
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuAbout" data-bs-toggle="dropdown" aria-expanded="false">About</a>
+        <ul class="dropdown-menu" aria-labelledby="menuAbout">
+          <li><a class="dropdown-item" href="http://www.apache.org/licenses/">License</a></li>
+          <li><a class="dropdown-item" href="../mail-lists.html">Mailing Lists</a></li>
+          <li><a class="dropdown-item" href="../team-list.html">Project Team</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuDownload" data-bs-toggle="dropdown" aria-expanded="false">Download</a>
+        <ul class="dropdown-menu" aria-labelledby="menuDownload">
+          <li><a class="dropdown-item" href="../downloads.html">Downloads</a></li>
+          <li><a class="dropdown-item" href="../source.html">Checkout Sources</a></li>
+          <li><a class="dropdown-item" href="../build.html">Build from Sources</a></li>
+          <li><a class="dropdown-item" href="../epsg.html">EPSG Database</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuDocumentation" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
+        <ul class="dropdown-menu" aria-labelledby="menuDocumentation">
+          <li><a class="dropdown-item" href="../apidocs/index.html">Online Javadoc</a></li>
+          <li><a class="dropdown-item" href="../book/en/developer-guide.html">Developer Guide</a></li>
+          <li><a class="dropdown-item" href="../howto.html">How to…</a></li>
+          <li><a class="dropdown-item" href="../formats.html">Supported formats</a></li>
+          <li><a class="dropdown-item" href="../tables/CoordinateReferenceSystems.html">Supported CRS</a></li>
+          <li><a class="dropdown-item" href="../tables/CoordinateOperationMethods.html">Map Projections</a></li>
+          <li><a class="dropdown-item" href="../code-patterns.html">Code Patterns</a></li>
+          <li><a class="dropdown-item" href="../faq.html">FAQ</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuContribute" data-bs-toggle="dropdown" aria-expanded="false">Contribute</a>
+        <ul class="dropdown-menu" aria-labelledby="menuContribute">
+          <li><a class="dropdown-item" href="../contributor.html">New Contributor</a></li>
+          <li><a class="dropdown-item" href="../coding-conventions.html">Coding Conventions</a></li>
+          <li><a class="dropdown-item" href="../mail-lists.html">Mailing Lists</a></li>
+          <li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
+          <li><a class="dropdown-item" href="https://github.com/apache/sis">GitHub mirror</a></li>
+          <li><a class="dropdown-item" href="https://cwiki.apache.org/confluence/display/SIS">Wiki</a></li>
+          <li><hr class="dropdown-divider"></li>
+          <li><a class="dropdown-item" href="../release-management.html">Release management</a></li>
+        </ul>
+      </li>
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" id="menuASF" data-bs-toggle="dropdown" aria-expanded="false">The Foundation</a>
+        <ul class="dropdown-menu" aria-labelledby="menuASF">
+          <li><a class="dropdown-item" href="http://www.apache.org">The Foundation</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+          <li><a class="dropdown-item" href="http://www.apache.org/security/">Security</a></li>
+        </ul>
+      </li>
+    </ul>
+    <ul class="navbar-nav ml-auto mb-2 mb-md-0">
+      <li class="nav-item">
+        <a href="https://www.apache.org/events/current-event.html">
+           <img class="apache-con" src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon"/>
+        </a>
+      </li>
+    </ul>
+  </div>
+</nav>
+
+
+<div class="row flex-nowrap">
+  <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width:13rem; min-height:40rem">
+    <ul class="nav nav-pills flex-column mb-auto position-fixed">
+      <li><a class="nav-link  text-white " href="../index.html">Home</a></li>
+      <li><a class="nav-link text-white" href="http://www.apache.org/licenses/">License</a></li>
+      <li><a class="nav-link  text-white " href="../downloads.html">Downloads</a></li>
+      <li><a class="nav-link  active " href="../howto.html">How to…</a></li>
+      <li><a class="nav-link  text-white " href="../standards.html">Standards</a></li>
+      <li><a class="nav-link  text-white " href="../formats.html">Data formats</a></li>
+      <li><a class="nav-link  text-white " href="../epsg.html">EPSG Database</a></li>
+      <li><a class="nav-link  text-white " href="../javafx.html">Application (demo)</a></li>
+      <li><a class="nav-link text-white" href="../apidocs/index.html">Online Javadoc</a></li>
+      <li><a class="nav-link text-white" href="../book/en/developer-guide.html">Developer Guide</a></li>
+      <li><a class="nav-link  text-white " href="../code-patterns.html">Code patterns</a></li>
+      <li><a class="nav-link  text-white " href="../faq.html">FAQ</a></li>
+    </ul>
+  </div>
+  <div class="col">
+    <main class="container">
+      <article>
+        <img src="../images/logo.png" class="sis-logo" align="left"/>
+        <p class="page-title">Transform envelopes (bounding boxes)</p>
+
+  <p>The transformation of envelopes (or bounding boxes) is a much more difficult task
+than transforming the four corners of a rectangle.
+The rectangle straight lines in source <abbr title="Coordinate Reference System">CRS</abbr> may become curves in the target <abbr title="Coordinate Reference System">CRS</abbr>
+with minimum and maximum values that are not located in any corner.
+The calculation is also more complicated if the envelope contains a pole or crosses the anti-meridian.
+Apache <abbr title="Spatial Information System">SIS</abbr> handles those complexities in convenience static methods.
+This is demonstrated by comparing the result of using Apache <abbr title="Spatial Information System">SIS</abbr> methods
+with the result of transforming the four corners.
+The latter naive approach has an error of 40 kilometres in this example.</p>
+<p>While the example below uses a two-dimensional envelope,
+the same Apache <abbr title="Spatial Information System">SIS</abbr> methods can transform efficiently <em>N</em>-dimensional envelopes.</p>
+<h1 id="direct-dependencies">Direct dependencies</h1>
+<table>
+<thead>
+<tr>
+<th>Maven coordinates</th>
+<th>Module info</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>org.apache.sis.storage:sis-referencing</code></td>
+<td><code>org.apache.sis.referencing</code></td>
+</tr>
+</tbody>
+</table>
+<h1 id="code-example">Code example</h1>
+<p>Note that all geographic coordinates below express latitude <em>before</em> longitude.</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.geometry.Envelope</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.operation.CoordinateOperation</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.operation.TransformException</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.util.FactoryException</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CRS</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.geometry.Envelopes</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.geometry.GeneralEnvelope</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.geometry.DirectPosition2D</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl">
+</span></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">TransformEnvelopes</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">    <span class="cm">/**
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * Demo entry point.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     *
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  args  ignored.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws FactoryException   if an error occurred while creating a Coordinate Reference System (CRS).
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws TransformException if an error occurred while transforming coordinates to the target CRS.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
+</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">FactoryException</span><span class="o">,</span> <span class="n">TransformException</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="n">CoordinateReferenceSystem</span> <span class="n">sourceCRS</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">geographic</span><span class="o">();</span>
+</span></span><span class="line"><span class="cl">        <span class="n">CoordinateReferenceSystem</span> <span class="n">targetCRS</span> <span class="o">=</span> <span class="n">CommonCRS</span><span class="o">.</span><span class="na">WGS84</span><span class="o">.</span><span class="na">universal</span><span class="o">(</span><span class="n">90</span><span class="o">,</span> <span class="n">0</span><span class="o">);</span>  <span class="c1">// Polar stereographic.
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
+</span></span><span class="line"><span class="cl">        <span class="n">GeneralEnvelope</span> <span class="n">bbox</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GeneralEnvelope</span><span class="o">(</span><span class="n">sourceCRS</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">bbox</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="n">0</span><span class="o">,</span>  <span class="n">84</span><span class="o">,</span> <span class="n">88</span><span class="o">);</span>             <span class="c1">// Latitudes.
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="n">bbox</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="n">1</span><span class="o">,</span> <span class="o">-</span><span class="n">20</span><span class="o">,</span> <span class="n">50</span><span class="o">);</span>             <span class="c1">// Longitudes.
+</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
+</span></span><span class="line"><span class="cl">        <span class="n">Envelope</span> <span class="n">transformed</span> <span class="o">=</span> <span class="n">Envelopes</span><span class="o">.</span><span class="na">transform</span><span class="o">(</span><span class="n">bbox</span><span class="o">,</span> <span class="n">targetCRS</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">Envelope</span> <span class="n">corners</span> <span class="o">=</span> <span class="n">transformCorners</span><span class="o">(</span><span class="n">bbox</span><span class="o">,</span> <span class="n">CRS</span><span class="o">.</span><span class="na">findOperation</span><span class="o">(</span><span class="n">sourceCRS</span><span class="o">,</span> <span class="n">targetCRS</span><span class="o">,</span> <span  [...]
+</span></span><span class="line"><span class="cl">
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Source:  &#34;</span> <span class="o">+</span> <span class="n">bbox</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Result:  &#34;</span> <span class="o">+</span> <span class="n">transformed</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Corners: &#34;</span> <span class="o">+</span> <span class="n">corners</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&#34;Errors on Y axis: &#34;</span>
+</span></span><span class="line"><span class="cl">                <span class="o">+</span> <span class="o">(</span><span class="n">corners</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">1</span><span class="o">)</span> <span class="o">-</span> <span class="n">transformed</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">1</span><span class="o">))</span> <span class="o">+</span>  [...]
+</span></span><span class="line"><span class="cl">    <span class="o">}</span>
+</span></span><span class="line"><span class="cl">
+</span></span><span class="line"><span class="cl">    <span class="cm">/**
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * Transforms the 4 corners of a two-dimensional envelope. This is not recommended.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * This method is provided only for demonstrating that this approach is not sufficient.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     *
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  bbox       the bounding box to transform.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @param  operation  the coordinate operation to use for transforming corners.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @return the result of transforming the 4 corners of the provided bounding box.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     * @throws TransformException if a coordinate can not be converted.
+</span></span></span><span class="line"><span class="cl"><span class="cm">     */</span>
+</span></span><span class="line"><span class="cl">    <span class="kd">private</span> <span class="kd">static</span> <span class="n">Envelope</span> <span class="nf">transformCorners</span><span class="o">(</span><span class="n">Envelope</span> <span class="n">bbox</span><span class="o">,</span> <span class="n">CoordinateOperation</span> <span class="n">operation</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">TransformException</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">        <span class="kt">double</span><span class="o">[]</span> <span class="n">corners</span> <span class="o">=</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="n">bbox</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">0</span><span class="o">),</span> <span class="n">bbox</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">1</span><span class="o">),</span>
+</span></span><span class="line"><span class="cl">            <span class="n">bbox</span><span class="o">.</span><span class="na">getMaximum</span><span class="o">(</span><span class="n">0</span><span class="o">),</span> <span class="n">bbox</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">1</span><span class="o">),</span>
+</span></span><span class="line"><span class="cl">            <span class="n">bbox</span><span class="o">.</span><span class="na">getMaximum</span><span class="o">(</span><span class="n">0</span><span class="o">),</span> <span class="n">bbox</span><span class="o">.</span><span class="na">getMaximum</span><span class="o">(</span><span class="n">1</span><span class="o">),</span>
+</span></span><span class="line"><span class="cl">            <span class="n">bbox</span><span class="o">.</span><span class="na">getMinimum</span><span class="o">(</span><span class="n">0</span><span class="o">),</span> <span class="n">bbox</span><span class="o">.</span><span class="na">getMaximum</span><span class="o">(</span><span class="n">1</span><span class="o">)</span>
+</span></span><span class="line"><span class="cl">        <span class="o">};</span>
+</span></span><span class="line"><span class="cl">        <span class="n">operation</span><span class="o">.</span><span class="na">getMathTransform</span><span class="o">().</span><span class="na">transform</span><span class="o">(</span><span class="n">corners</span><span class="o">,</span> <span class="n">0</span><span class="o">,</span> <span class="n">corners</span><span class="o">,</span> <span class="n">0</span><span class="o">,</span> <span class="n">4</span><span class="o">);</span>
+</span></span><span class="line"><span class="cl">        <span class="n">GeneralEnvelope</span> <span class="n">result</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GeneralEnvelope</span><span class="o">(</span><span class="n">operation</span><span class="o">.</span><span class="na">getTargetCRS</span><span class="o">());</span>
+</span></span><span class="line"><span class="cl">        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="n">0</span><span class="o">;</span> <span class="n">i</span><span class="o">&lt;</span><span class="n">result</span><span class="o">.</span><span class="na">getDimension</span><span class="o">();</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="n">result</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="n">i</span><span class="o">,</span> <span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">],</span> <span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">]);</span>
+</span></span><span class="line"><span class="cl">        <span class="o">}</span>
+</span></span><span class="line"><span class="cl">        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="n">0</span><span class="o">;</span> <span class="n">i</span><span class="o">&lt;</span><span class="n">corners</span><span class="o">.</span><span class="na">length</span><span class="o">;)</span> <span class="o">{</span>
+</span></span><span class="line"><span class="cl">            <span class="n">result</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">DirectPosition2D</span><span class="o">(</span><span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">++],</span> <span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">++]));</span>
+</span></span><span class="line"><span class="cl">        <span class="o">}</span>
+</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">result</span><span class="o">;</span>
+</span></span><span class="line"><span class="cl">    <span class="o">}</span>
+</span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
+<h1 id="output">Output</h1>
+<pre tabindex="0"><code>Source:  BOX(84 -20, 88 50)
+Result:  BOX(1771965.695226812 1333272.44494046, 2510743.0524805877 1857256.625440407)
+Corners: BOX(1771965.695226812 1373480.89677463, 2510743.0524805877 1857256.625440407)
+Errors on Y axis: 40208.451834172476 metres.
+</code></pre>
+
+      </article>
+    </main>
+    <footer class="footer">
+    <div class="container">
+      <p>
+        Copyright &copy; 2013-2023 The Apache Software Foundation, Licensed under the
+        <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
+        Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+</footer>
+  </div>
+</div>
+
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"
+    integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
+
+</body>
+</html>
diff --git a/index.xml b/index.xml
index cefd1700..9ad21fbd 100644
--- a/index.xml
+++ b/index.xml
@@ -87,6 +87,26 @@ In some cases, equals­Ignore­Metadata(…) may fail to see that two reference
  Referencing   Getting started   How do I get a Coordinate Reference System?  How do I transform a coordinate?  Which map projections are supported?    Coordinate Reference Systems   What is the Google projection?  What is the axis order issue and how is it addressed?  Is IdentifiedObjects.lookupEPSG(…) a reliable inverse of CRS.</description>
     </item>
 
+    <item>
+      <title>Geographic bounding box of a data file</title>
+      <link>https://sis.apache.org/howto/export_metadata_to_xml.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/export_metadata_to_xml.html</guid>
+      <description>This example prints the metadata of a netCDF file in the XML format defined by the ISO 19115-3 international standard. The coverage values are not read, only the netCDF file header is read.
+Direct dependencies    Maven coordinates Module info Remarks     org.apache.sis.storage:sis-netcdf org.apache.sis.storage.netcdf    edu.ucar:cdm-core  For netCDF-4 or HDF5    The cdm-core dependency can be omitted for netCDF-3 (a.k.a. &amp;ldquo;classic&amp;rdquo;), GeoTIFF or any other formats supported by Apache SIS.</description>
+    </item>
+
+    <item>
+      <title>Geographic bounding box of a data file</title>
+      <link>https://sis.apache.org/howto/geographic_bounding_box.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/geographic_bounding_box.html</guid>
+      <description>This example prints the bounding box of a GeoTIFF image. The pixel values are not read, only the GeoTIFF file header is read. If the file contains many images, the bounding box of each image is printed.
+Direct dependencies    Maven coordinates Module info Remarks     org.apache.sis.storage:sis-geotiff org.apache.sis.storage.geotiff    org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Optional. Non-Apache license.    The EPSG dependency may or may not be needed, depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</description>
+    </item>
+
     <item>
       <title>Get raster values at geographic coordinates</title>
       <link>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</link>
@@ -366,5 +386,23 @@ Incompatible changes  The following changes in Apache SIS 1.3 are incompatibles
 Note: if the result of a coordinate transformation seems wrong, see the FAQ page.</description>
     </item>
 
+    <item>
+      <title>Transform envelopes (bounding boxes)</title>
+      <link>https://sis.apache.org/howto/transform_envelopes.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/transform_envelopes.html</guid>
+      <description>The transformation of envelopes (or bounding boxes) is a much more difficult task than transforming the four corners of a rectangle. The rectangle straight lines in source CRS may become curves in the target CRS with minimum and maximum values that are not located in any corner. The calculation is also more complicated if the envelope contains a pole or crosses the anti-meridian. Apache SIS handles those complexities in convenience static methods.</description>
+    </item>
+
+    <item>
+      <title>Union or intersection of envelopes in different CRS</title>
+      <link>https://sis.apache.org/howto/envelopes_in_different_crs.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+      <guid>https://sis.apache.org/howto/envelopes_in_different_crs.html</guid>
+      <description>Before to compute the union or intersection of two or more envelopes (bounding boxes), all envelopes must be transformed to the same Coordinate Reference System (CRS). But the choice of a common CRS is not easy. We must verify that all envelopes are inside the domain of validity of the common CRS, which may require to choose a common CRS different than the CRS of all envelopes. Apache SIS can handle this task automatically.</description>
+    </item>
+
   </channel>
 </rss>
diff --git a/sitemap.xml b/sitemap.xml
index d78124c1..51cadf01 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,7 +4,7 @@
   <sitemap>
     <loc>https://sis.apache.org/en/sitemap.xml</loc>
 
-      <lastmod>2023-01-21T00:15:54+01:00</lastmod>
+      <lastmod>2023-01-21T14:16:36+01:00</lastmod>
 
   </sitemap>