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 2025/02/09 14:22:28 UTC
(sis-site) branch asf-staging updated: Regenerate the web site after the removal of Bootstrap dependency.
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 0e3f36eb Regenerate the web site after the removal of Bootstrap dependency.
0e3f36eb is described below
commit 0e3f36eb3be196e7290e9ca5f4b54342602d864b
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sun Feb 9 15:22:03 2025 +0100
Regenerate the web site after the removal of Bootstrap dependency.
---
DOAP.rdf | 4 +-
about.html | 78 ++++
book/book.css | 16 +-
book/en/developer-guide.html | 2 +-
code-patterns.html | 209 ++++------
coding-conventions.html | 211 ++++-------
command-line.html | 318 ++++++----------
contributor.html | 168 +++------
documentation.html | 79 ++++
downloads.html | 204 ++++------
epsg.html | 258 +++++--------
examples/coordinates/AmericanCities.csv | 10 +-
examples/coordinates/CanadianCities.csv | 10 +-
faq.html | 230 ++++-------
formats.html | 203 ++++------
howto.html | 207 ++++------
howto/compound_crs.html | 138 +++++++
howto/crs_equality.html | 230 ++++-------
howto/datalake_to_datacube.html | 240 +++++-------
howto/envelopes_in_different_crs.html | 220 ++++-------
howto/export_metadata_to_xml.html | 228 ++++-------
howto/geodetic_paths.html | 212 ++++-------
howto/geographic_bounding_box.html | 216 ++++-------
howto/index.xml | 93 ++---
howto/instantiate_utm_projection.html | 224 ++++-------
howto/lookup_crs_urn.html | 248 +++++-------
howto/parallel_computation.html | 214 ++++-------
howto/parse_and_format_mgrs_codes.html | 216 ++++-------
howto/raster_values_at_geographic_coordinates.html | 244 +++++-------
howto/raster_values_at_pixel_coordinates.html | 256 +++++--------
howto/rasters_bigger_than_memory.html | 276 +++++---------
howto/read_geotiff.html | 266 +++++--------
howto/read_netcdf.html | 296 ++++++---------
howto/resample_raster.html | 214 ++++-------
howto/transform_coordinates.html | 224 ++++-------
howto/transform_envelopes.html | 272 +++++--------
howto/write_raster.html | 216 ++++-------
index.html | 191 +++-------
index.xml | 235 +++---------
javafx.html | 236 ++++--------
mail-lists.html | 166 +++-----
release-management.html | 420 +++++++++------------
release-notes.html | 170 +++------
release-notes/0.1.html | 172 +++------
release-notes/0.2.html | 174 +++------
release-notes/0.3.html | 174 +++------
release-notes/0.4.html | 174 +++------
release-notes/0.5.html | 174 +++------
release-notes/0.6.html | 176 +++------
release-notes/0.7.html | 174 +++------
release-notes/0.8.html | 174 +++------
release-notes/1.0.html | 174 +++------
release-notes/1.1.html | 174 +++------
release-notes/1.2.html | 174 +++------
release-notes/1.3.html | 174 +++------
release-notes/1.4.html | 172 +++------
release-notes/index.xml | 70 +---
sis.css | 250 +++++++++---
sitemap.xml | 75 ++--
source.html | 228 ++++-------
standards.html | 170 +++------
team-list.html | 178 +++------
templates/release-announce.html | 3 +-
63 files changed, 4179 insertions(+), 7423 deletions(-)
diff --git a/DOAP.rdf b/DOAP.rdf
index 10927448..d6f5743a 100644
--- a/DOAP.rdf
+++ b/DOAP.rdf
@@ -58,8 +58,8 @@
<asfext:Standard>
<asfext:title>Units of Measurement API</asfext:title>
<asfext:body>Java Community Process</asfext:body>
- <asfext:id>JSR-363</asfext:id>
- <asfext:url rdf:resource = "https://jcp.org/en/jsr/detail?id=363"/>
+ <asfext:id>JSR-385</asfext:id>
+ <asfext:url rdf:resource = "https://jcp.org/en/jsr/detail?id=385"/>
</asfext:Standard>
</asfext:implements>
<asfext:implements>
diff --git a/about.html b/about.html
new file mode 100644
index 00000000..6f1838d1
--- /dev/null
+++ b/about.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="en">
+
+ <head>
+ <title>Apache SIS - About SIS and ASF</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link active " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</a></li>
+ </ul>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">About SIS and ASF</p>
+
+ <p>About Apache SIS:</p>
+<ul>
+<li><a href="./team-list.html">Project Team</a></li>
+<li><a href="./mail-lists.html">Mailing Lists</a></li>
+<li><a href="https://www.apache.org/licenses/">Licenses</a></li>
+<li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a></li>
+</ul>
+<p>About the Apache Software Foundation:</p>
+<ul>
+<li><a href="https://www.apache.org">The Foundation</a></li>
+<li><a href="https://www.apache.org/foundation/sponsorship.html">Donate</a></li>
+<li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="https://www.apache.org/security/">Security</a></li>
+</ul>
+<p>Contribute:</p>
+<ul>
+<li><a href="./source.html">Checkout Sources</a></li>
+<li><a href="./contributor.html">New Contributor</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
+<li><a href="https://github.com/apache/sis">GitHub mirror</a></li>
+<li><a href="https://cwiki.apache.org/confluence/display/SIS">Wiki</a></li>
+</ul>
+
+
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
+ </body>
+</html>
diff --git a/book/book.css b/book/book.css
index effe5d85..4b9f6e45 100644
--- a/book/book.css
+++ b/book/book.css
@@ -281,6 +281,20 @@ div.row-of-boxes > div {
padding: 6px 30px;
}
+div.table {
+ display: table;
+}
+
+div.row {
+ display: table-row;
+}
+
+div.cell {
+ display: table-cell;
+ padding-left: 21px;
+ padding-right: 21px;
+}
+
pre {
margin-top: 21px;
margin-bottom: 21px;
@@ -300,7 +314,7 @@ code.OGC {
color: MediumBlue;
}
-code.GeoAPI {
+code.API {
color: Green;
}
diff --git a/book/en/developer-guide.html b/book/en/developer-guide.html
index a27a6a6e..83433c5b 100644
--- a/book/en/developer-guide.html
+++ b/book/en/developer-guide.html
@@ -4357,4 +4357,4 @@ These attributes do not have dedicated Java methods, but are accessible indirect
</section>
</main>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/code-patterns.html b/code-patterns.html
index bb722abc..f9d73dfd 100644
--- a/code-patterns.html
+++ b/code-patterns.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Recommended code patterns</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Recommended code patterns</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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 active " 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">Recommended code patterns</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Recommended code patterns</p>
<p>This page lists some recommended code pattern for developing or using Apache <abbr title="Spatial Information System">SIS</abbr>.</p>
<nav id="TableOfContents">
@@ -127,12 +61,14 @@
</ul>
</li>
<li><a href="#logging">Logging </a></li>
+ <li><a href="#warnings">Compiler warnings </a></li>
+ <li><a href="#javadoc">Javadoc </a></li>
</ul>
</nav>
<h1 id="referencing">Referencing </h1>
<p>This section lists recommended code pattern when using the <code>sis-referencing</code> module.</p>
<h2 id="axisOrder">Never explicitly swap coordinates for axis order </h2>
-<p>The <a href="faq.html#axisOrder">axis order issue</a> causes lot of confusion,
+<p>The <a href="./faq.html#axisOrder">axis order issue</a> causes lot of confusion,
and developers are sometimes tempted to swap their coordinate values in order to comply with some expected axis ordering.
It should never be necessary, since the Apache <abbr title="Spatial Information System">SIS</abbr> referencing engine manages axis order transparently —
provided that the Coordinate Reference System (CRS) definition is accurate.
@@ -145,7 +81,7 @@ and let the referencing engine performs the conversion from the source to the ta
<h2 id="gridToCRS">Georeference images with affine transforms, <em>not</em> bounding boxes </h2>
<p>Many users define the geographic extent of an image by its corner locations.
This approach may be ambiguous as it does not specify whether the (<var>x</var>,<var>y</var>) axes are interchanged
-(see the <a href="faq.html#axisOrder">axis order issue</a>) or if the <var>y</var> axis is oriented downward.
+(see the <a href="./faq.html#axisOrder">axis order issue</a>) or if the <var>y</var> axis is oriented downward.
All images in SIS shall be georeferenced by at least an affine transform (more complex transforms are also possible),
never by a rectangle or bounding box.
In the two-dimensional case, the standard <code>java.awt.geom.AffineTransform</code> class can be used.</p>
@@ -179,12 +115,12 @@ so <code>"Foo bar"</code> is sorted before both <code>"FooBar&quo
Some “characters” are actually represented using two consecutive <code>char</code> elements.
Those “characters” are called <cite>code points</cite>.
Consequently, when iterating over characters in a string, the following pattern should be used:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><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"><</span><span class="n">string</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="kd">final</span> <span class="kt">int</span> <span class="n">c</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="na">codePointAt</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="c1">// ... do some stuff ...
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">i</span> <span class="o">+=</span> <span class="n">Character</span><span class="o">.</span><span class="na">charCount</span><span class="o">(</span><span class="n">c</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
-<h1 id="logging">Logging </h1>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="o">=</span><span class="n">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o"><</span><span class="n">string</span><span class="p">.</span><span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">string</span><span class="p">.</span><span class="na">codePointAt</span><span class="p">(</span><span class="n">i</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// ... do some stuff ...</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">Character</span><span class="p">.</span><span class="na">charCount</span><span class="p">(</span><span class="n">c</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="logging">Logging </h1>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> uses the <code>java.util.logging</code> framework.
It does not necessarily means that all SIS users are forced to use this framework,
as it is possible to use <code>java.util.logging</code> as an API and have logging redirected to another system.
@@ -198,24 +134,43 @@ since developers use them for configuring their logging (verbosity, destination,
<p>All logging at <code>Level.INFO</code> or above shall be targeted to users or administrators, not to developers.
In particular <code>Level.SEVERE</code> shall be reserved for critical errors that compromise the application stability —
it shall not be used for exceptions thrown while parsing user data (file or database).</p>
+<h1 id="warnings">Compiler warnings </h1>
+<p>When a local variable in a method has the same name as a field in the enclosing class,
+some compilers emit a <em>“Local variable hides a field”</em> warning.
+This warning can be disabled with a <code>@SuppressWarnings("LocalVariableHidesMemberVariable")</code> annotation.
+However, by convention Apache SIS applies this annotation only when the local variable should have the same value as the field.
+Otherwise, the warning should be resolved. When a code hides a field, it should be a statement such as
+<code>final Foo foo = this.foo;</code> or <code>final Foo foo = getFoo();</code> and may exist for the following reasons:</p>
+<ul>
+<li><code>this.foo</code> is non-final and we want to make sure that it is not modified by accident in the method.</li>
+<li><code>this.foo</code> is a volatile field, therefor should be read only once and cached in the method for performance.</li>
+<li><code>getFoo()</code> computes the value of <code>this.foo</code> lazily.</li>
+</ul>
+<h1 id="javadoc">Javadoc </h1>
+<p>Javadoc comments are written in HTML, not Markdown, both for historical reasons and because HTML allows richer semantic.
+For example, for formatting a text in italic, the Javadoc should choose the most appropriate of the following tags:</p>
+<ul>
+<li><code><em></code> for emphasis. A screen reader may pronounce the words using verbal stress.</li>
+<li><code><var></code> for a variable to show like a mathematical symbol.</li>
+<li><code><dfn></code> for introducing a word defined by the nearby sentences.</li>
+<li><code><cite></code> for the title of a document, in particular an OGC/ISO standard.
+Apache SIS uses also this tag for the name of a geodetic object in the EPSG geodetic database,
+in which case the object definition is considered as a document.
+This tag can also be used for section titles.</li>
+<li><code><i></code> for rendering in italic for any reason than the above reasons.</li>
+</ul>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/coding-conventions.html b/coding-conventions.html
index 5df22b83..ddd7d567 100644
--- a/coding-conventions.html
+++ b/coding-conventions.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Coding conventions</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Coding conventions</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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">Coding conventions</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Coding conventions</p>
<p>This page describes some coding conventions applied in Apache <abbr title="Spatial Information System">SIS</abbr> development.</p>
<nav id="TableOfContents">
@@ -111,7 +45,11 @@
<li><a href="#license">License header </a></li>
<li><a href="#naming">Naming convention </a>
<ul>
- <li><a href="#internal">Internal packages </a></li>
+ <li><a href="#internal">Internal packages </a>
+ <ul>
+ <li><a href="#substitutions">Substitution for non-existent classes </a></li>
+ </ul>
+ </li>
</ul>
</li>
<li><a href="#formatting">Code formatting </a>
@@ -142,13 +80,13 @@
</ul>
</nav>
<h1 id="license">License header </h1>
-<p>All Java source files (<code>*.java</code>) shall begin with the current ASF license header as described in <a href="http://www.apache.org/legal/src-headers.html">ASF Source Header</a>.
+<p>All Java source files (<code>*.java</code>) shall begin with the current ASF license header as described in <a href="https://www.apache.org/legal/src-headers.html">ASF Source Header</a>.
Properties source files (<code>*.properties</code>) used as inputs to some processor (e.g. the resource compiler)
shall have the same license header, but with lines prefixed by <code>#</code> instead of <code>*</code>.
Properties files distributed as-is in the JAR files can summarize the license on a single line for saving space,
as below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.</span></span></code></pre></div>
-<h1 id="naming">Naming convention </h1>
+<pre tabindex="0"><code># Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
+</code></pre><h1 id="naming">Naming convention </h1>
<p>Classes that do not implement an interface are usually not prefixed, even if abstract.
Classes implementing GeoAPI interfaces usually (but not always) begin with <code>Abstract</code>, <code>Default</code>, <code>Simple</code> or <code>General</code> prefix.</p>
<ul>
@@ -166,10 +104,15 @@ All other classes are for SIS usage only and may change without warning in any f
Those classes are excluded from Javadoc and normally not accessible to users.
Contrarily to previous SIS versions, there is no longer any particular convention for internal package names.
They may or may not have <code>internal</code> in their name.</p>
+<h3 id="substitutions">Substitution for non-existent classes </h3>
+<p>When using a JDK 12+ class that does not exist on JDK 11, define a class of the same name in a
+<code>org.apache.sis.pending.jdk</code> sub-package with the minimal amount of needed functionalities,
+provided that it can be done with reasonable effort.
+Those packages are internal (non-exported).</p>
<h1 id="formatting">Code formatting </h1>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> uses the standard Java conventions, except for the 80 characters line length restriction.
The conventions listed below are guidelines. Some exceptions to those conventions can occur but should
-be rare (see <a href="#tabular-formatting">exceptions to coding conventions</a>).</p>
+be rare (see <a href="./coding-conventions.html#tabular-formatting">exceptions to coding conventions</a>).</p>
<p>For making merges between branches easier, refrain from doing massive code reformatting unless:</p>
<ul>
<li>the modified files do not yet exist on the other branches;</li>
@@ -180,13 +123,13 @@ be rare (see <a href="#tabular-formatting">exceptions to coding conventions</a>)
<p>Isolate at the end of the imports section any import statements that are specific to a platform.
This separation allows any branch to re-arrange the common import statements without generating
conflicts with the platform-dependent import statements. Example:</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">java.util.List</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></span><span class="line"><span class="cl"><span class="c1">// Specific to the geoapi-3.1 and geoapi-4.0 branches:
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kn">import</span> <span class="nn">org.opengis.feature.Feature</span><span class="o">;</span></span></span></code></pre></div>
-<p>The import statements can be rearranged automatically by the <code>ReorganizeImports</code> class in <code>buildSrc</code>.
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.List</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.metadata.Metadata</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c1">// Specific to the geoapi-3.1 and geoapi-4.0 branches:</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.feature.Feature</span><span class="p">;</span><span class="w">
+</span></span></span></code></pre></div><p>The import statements can be rearranged automatically by the <code>ReorganizeImports</code> class in <code>buildSrc</code>.
This tool requires checkouts of all three branches (<code>main</code>, <code>geoapi-3.1</code> and <code>geoapi-4.0</code>) in order
to identify which imports are branch-specific.</p>
<h2 id="spaces">Spaces and line length </h2>
@@ -217,7 +160,7 @@ except if the instruction after the keyword is on the same line (e.g. <code>else
<h2 id="declarations">Member declarations </h2>
<ul>
<li>Class, method and field declarations shall use the keywords in the following order.
-This is known as the “customary order” in the <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.1.1">Java Language Specification</a>:
+This is known as the “customary order” in the <a href="https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.1.1">Java Language Specification</a>:
<ul>
<li><code>public</code>, <code>protected</code> or <code>private</code>,</li>
<li><code>abstract</code> or <code>static</code>,</li>
@@ -231,11 +174,11 @@ This is known as the “customary order” in the <a href="https://docs.
Formatting the code in a way that emphase their symmetrical nature, for example
aligning identical terms in columns, can help to understand the overall pattern
and to identify bugs. Example:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">if</span> <span class="o">(</span><span class="n">x</span> <span class="o"><</span> <span class="n">xmin</span><span class="o">)</span> <span class="n">xmin</span> <span class="o">=</span> <span class="n">x</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">x</span> <span class="o">></span> <span class="n">xmax</span><span class="o">)</span> <span class="n">xmax</span> <span class="o">=</span> <span class="n">x</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">y</span> <span class="o"><</span> <span class="n">ymin</span><span class="o">)</span> <span class="n">ymin</span> <span class="o">=</span> <span class="n">y</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">y</span> <span class="o">></span> <span class="n">ymax</span><span class="o">)</span> <span class="n">ymax</span> <span class="o">=</span> <span class="n">y</span><span class="o">;</span></span></span></code></pre></div>
-<p>The decision to use standard or tabular format is made on a case-by-case basis.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">xmin</span><span class="p">)</span><span class="w"> </span><span class="n">xmin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span cla [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">xmax</span><span class="p">)</span><span class="w"> </span><span class="n">xmax</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">ymin</span><span class="p">)</span><span class="w"> </span><span class="n">ymin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">y</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">ymax</span><span class="p">)</span><span class="w"> </span><span class="n">ymax</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">y</span><span class="p">;</span><span class="w">
+</span></span></span></code></pre></div><p>The decision to use standard or tabular format is made on a case-by-case basis.
Of course, tabular format shall not be abused.</p>
<h1 id="javadoc">Documentation formatting </h1>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> uses the standard Javadoc conventions, except for the 80 characters line length restriction.
@@ -353,22 +296,16 @@ Firefox users can optionally install the <a href="https://developer.mozilla.org/
Note that a <a href="https://www.mathjax.org/">JavaScript display engine</a> is available for all browsers, but not yet used by SIS.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/command-line.html b/command-line.html
index b53f6d32..2aa9f5af 100644
--- a/command-line.html
+++ b/command-line.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Command-line interface</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Command-line interface</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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">Command-line interface</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Command-line interface</p>
<p>A command-line interface is provided for extracting information from data files or authority codes,
and for performing coordinate operations.
@@ -131,19 +65,19 @@ in their own application.</p>
</ul>
</nav>
<h1 id="install">Installation </h1>
-<p>Select “Apache <abbr title="Spatial Information System">SIS</abbr> 1.4 binary” from the <a href="downloads.html">downloads page</a> an unzip in any directory.
+<p>Select “Apache <abbr title="Spatial Information System">SIS</abbr> 1.4 binary” from the <a href="./downloads.html">downloads page</a> an unzip in any directory.
The directory structure will be as below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">apache-sis-1.4
-</span></span><span class="line"><span class="cl">├─ bin
-</span></span><span class="line"><span class="cl">├─ conf
-</span></span><span class="line"><span class="cl">├─ data
-</span></span><span class="line"><span class="cl">├─ lib
-</span></span><span class="line"><span class="cl">└─ log</span></span></code></pre></div>
-<p>The <code>bin</code> sub-directory contains a <code>sis</code> command for Unix systems (Linux or MacOS — we have not yet done a <code>sis.bat</code> file for Windows).
+<pre tabindex="0"><code>apache-sis-1.4
+├─ bin
+├─ conf
+├─ data
+├─ lib
+└─ log
+</code></pre><p>The <code>bin</code> sub-directory contains a <code>sis</code> command for Unix systems (Linux or MacOS — we have not yet done a <code>sis.bat</code> file for Windows).
The <code>bin</code> sub-directory can be added to the <code>PATH</code> environment variable for convenience, but this is not mandatory.
Example:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$PWD</span>/apache-sis-1.4/bin:<span class="nv">$PATH</span></span></span></code></pre></div>
-<p>The remaining of this page assumes that the <code>bin</code> directory is on the search path.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$PWD</span>/apache-sis-1.4/bin:<span class="nv">$PATH</span>
+</span></span></code></pre></div><p>The remaining of this page assumes that the <code>bin</code> directory is on the search path.
If not, the same examples can still be executed by replacing the <code>sis</code> command by <code>./apache-sis-1.4/bin/sis</code>.</p>
<h2 id="dependencies">Optional dependencies </h2>
<p>Every JAR files present in the <code>lib</code> sub-directory will be included on the classpath during <code>sis</code> command execution.
@@ -161,8 +95,8 @@ If presents, the UCAR library should be detected and used automatically when SIS
<h1 id="usage">Usage </h1>
<p>Invoking <code>sis</code> without argument shows a summary of available commands and all options.
For executing a command, the syntax is:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis <command> <span class="o">[</span>options<span class="o">]</span> <span class="o">[</span>files<span class="o">]</span></span></span></code></pre></div>
-<p>Available commands are:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis <command> <span class="o">[</span>options<span class="o">]</span> <span class="o">[</span>files<span class="o">]</span>
+</span></span></code></pre></div><p>Available commands are:</p>
<table>
<tr><td><code>help</code></td> <td>Show a help overview.</td></tr>
<tr><td><code>about</code></td> <td>Show information about Apache <abbr title="Spatial Information System">SIS</abbr> and system configuration.</td></tr>
@@ -194,7 +128,7 @@ The reason is that command output may be targeted to a client, while the error m
<h1 id="examples">Examples </h1>
<p>The following examples first show how to get a Coordinate Reference System (CRS) from different kinds of definitions.
<abbr title="Coordinate Reference System">CRS</abbr> contain necessary information for locating points on Earth.
-Those information include the geodetic datum, the map projection (if any), the axes and their units of measurement.
+Those information include the geodetic reference frame, the map projection (if any), the axes and their units of measurement.
When two such <abbr title="Coordinate Reference System">CRS</abbr> are known (the <em>source</em> and the <em>target</em>), it is possible to convert or transform points between those <abbr title="Coordinate Reference System">CRS</abbr>.
However the coordinate operation depends not only on the source and target <abbr title="Coordinate Reference System">CRS</abbr>, but also on the <em>area of interest</em> as shown
by the example transforming city coordinates in USA and in Canada.
@@ -207,11 +141,11 @@ Then another example show how to get a wider set of metadata, with the <abbr tit
<li><abbr title="Extensible Markup Language">XML</abbr> files conform to <em>Geographic Markup Language</em> (GML) schema version 3.2</li>
</ul>
<p>The easiest way to see a <abbr title="Coordinate Reference System">CRS</abbr> definition is to use an EPSG code.
-The <a href="epsg.html">EPSG geodetic dataset</a> is a widely-used source of definitions for thousands of Coordinate Reference Systems.
+The <a href="./epsg.html">EPSG geodetic dataset</a> is a widely-used source of definitions for thousands of Coordinate Reference Systems.
Appache SIS provides a <a href="tables/CoordinateReferenceSystems.html">list of supported codes</a>, which can be queried from the command line.
For example the following command prints the definition of the <em>“JGD2011 / Japan Plane Rectangular CS VIII”</em> Coordinate Reference System:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis crs EPSG:6676</span></span></code></pre></div>
-<details>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis crs EPSG:6676
+</span></span></code></pre></div><details>
<summary>Expected output (click to expand):</summary>
<pre>ProjectedCRS["JGD2011 / Japan Plane Rectangular CS VIII",
BaseGeodCRS["JGD2011",
@@ -237,9 +171,9 @@ For example the following command prints the definition of the <em>“JGD201
</details>
<br/>
<p>The first time that a command requires the EPSG dataset, Apache <abbr title="Spatial Information System">SIS</abbr> will propose to download and install a local copy.
-This automatic download happens only when using the command-line tools described in this page or the <a href="javafx.html">JavaFX</a> application.
+This automatic download happens only when using the command-line tools described in this page or the <a href="./javafx.html">JavaFX</a> application.
Developers who wish to use the EPSG dataset in their applications can use the Maven artifact
-documented in <a href="downloads.html#epsg">download</a> page.</p>
+documented in <a href="./downloads.html#epsg">download</a> page.</p>
<p>The above output is compatible with version 2 of <em>Well Known Text</em> (WKT) format.
The output format can be controlled as below:</p>
<ul>
@@ -293,41 +227,41 @@ The following example reads a <abbr title="Well Known Text">WKT</abbr> for the <
but in which the <code>ID["EPSG", 27572]</code> element has been intentionally omitted.
Furthermore, the <em>“NTF (Paris) / Lambert zone II”</em> name has been replaced by <em>“NTF (Paris) / zone to be discovered by the demo”</em> name.
Executing the following command:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/MissingIdentifier.wkt</span></span></code></pre></div>
-<p>produces an output like below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">urn:ogc:def:crs:EPSG:9.9.1:27572 | NTF (Paris) / Lambert zone II</span></span></code></pre></div>
-<p>As we can see, Apache <abbr title="Spatial Information System">SIS</abbr> has been able to find back the identifier code and the actual <abbr title="Coordinate Reference System">CRS</abbr> name.</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/MissingIdentifier.wkt
+</span></span></code></pre></div><p>produces an output like below:</p>
+<pre tabindex="0"><code>urn:ogc:def:crs:EPSG:9.9.1:27572 | NTF (Paris) / Lambert zone II
+</code></pre><p>As we can see, Apache <abbr title="Spatial Information System">SIS</abbr> has been able to find back the identifier code and the actual <abbr title="Coordinate Reference System">CRS</abbr> name.</p>
<p>Sometimes a <abbr title="Well Known Text">WKT</abbr> declares wrongly an EPSG code.
The most frequent case is a <abbr title="Well Known Text">WKT</abbr> that defines a Coordinate Reference System with (<em>longitude</em>, <em>latitude</em>) axes,
but declare an EPSG code for a <abbr title="Coordinate Reference System">CRS</abbr> with (<em>latitude</em>, <em>longitude</em>) axes.
Apache <abbr title="Spatial Information System">SIS</abbr> can detect such mismatches.
For example executing the following command:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/WrongAxisOrder.wkt</span></span></code></pre></div>
-<p>produces an output like below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">! urn:ogc:def:crs:EPSG:8.9:4979 | WGS 84
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl">Legend:
-</span></span><span class="line"><span class="cl">! Identified object matches definition provided by authority except for coordinate system axes.</span></span></code></pre></div>
-<p>Apache <abbr title="Spatial Information System">SIS</abbr> can perform such analysis because it “understands” the <abbr title="Coordinate Reference System">CRS</abbr> definition.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/WrongAxisOrder.wkt
+</span></span></code></pre></div><p>produces an output like below:</p>
+<pre tabindex="0"><code>! urn:ogc:def:crs:EPSG:8.9:4979 | WGS 84
+
+Legend:
+! Identified object matches definition provided by authority except for coordinate system axes.
+</code></pre><p>Apache <abbr title="Spatial Information System">SIS</abbr> can perform such analysis because it “understands” the <abbr title="Coordinate Reference System">CRS</abbr> definition.
This analysis capability can be tested by altering the <abbr title="Coordinate Reference System">CRS</abbr> definition.
The next example asks the identifier of a <abbr title="Coordinate Reference System">CRS</abbr> which is normally defined as below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">ProjectedCRS["WGS 84 / Mercator 41",
-</span></span><span class="line"><span class="cl"> (... definition omitted for brevity ...)
-</span></span><span class="line"><span class="cl"> Method["Mercator (variant B)"],
-</span></span><span class="line"><span class="cl"> Parameter["Latitude of 1st standard parallel", -41.0],
-</span></span><span class="line"><span class="cl"> (... definition omitted for brevity ...)</span></span></code></pre></div>
-<p>However in this example, we will provide a <abbr title="Coordinate Reference System">CRS</abbr> defined as below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">ProjectedCRS["Scaled Mercator",
-</span></span><span class="line"><span class="cl"> (... definition omitted for brevity ...)
-</span></span><span class="line"><span class="cl"> Method["Mercator (variant A)"],
-</span></span><span class="line"><span class="cl"> Parameter["Scale factor at natural origin", 0.7557992272019596"],
-</span></span><span class="line"><span class="cl"> Parameter["Latitude of natural origin", -0.0],
-</span></span><span class="line"><span class="cl"> (... definition omitted for brevity ...)</span></span></code></pre></div>
-<p>Executing the following command:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/EquivalentDefinition.wkt</span></span></code></pre></div>
-<p>produces an output like below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">urn:ogc:def:crs:EPSG:9.9.1:3994 | WGS 84 / Mercator 41</span></span></code></pre></div>
-<p>In above example, Apache <abbr title="Spatial Information System">SIS</abbr> used the fact that a
+<pre tabindex="0"><code>ProjectedCRS["WGS 84 / Mercator 41",
+ (... definition omitted for brevity ...)
+ Method["Mercator (variant B)"],
+ Parameter["Latitude of 1st standard parallel", -41.0],
+ (... definition omitted for brevity ...)
+</code></pre><p>However in this example, we will provide a <abbr title="Coordinate Reference System">CRS</abbr> defined as below:</p>
+<pre tabindex="0"><code>ProjectedCRS["Scaled Mercator",
+ (... definition omitted for brevity ...)
+ Method["Mercator (variant A)"],
+ Parameter["Scale factor at natural origin", 0.7557992272019596"],
+ Parameter["Latitude of natural origin", -0.0],
+ (... definition omitted for brevity ...)
+</code></pre><p>Executing the following command:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis identifier https://sis.apache.org/examples/crs/EquivalentDefinition.wkt
+</span></span></code></pre></div><p>produces an output like below:</p>
+<pre tabindex="0"><code>urn:ogc:def:crs:EPSG:9.9.1:3994 | WGS 84 / Mercator 41
+</code></pre><p>In above example, Apache <abbr title="Spatial Information System">SIS</abbr> used the fact that a
<em>“Mercator (variant A)”</em> projection with a <em>“Scale factor at natural origin”</em> parameter value of 0.755799… on the WGS84 datum is numerically equivalent to a
<em>“Mercator (variant B)”</em> projection with a <em>“Latitude of 1st standard parallel”</em> parameter value of 41° on the same datum.
This recognition allowed SIS to return the EPSG:3994 code
@@ -355,41 +289,41 @@ The example is run twice: once for cities in USA, then once for cities in Canada
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget https://sis.apache.org/examples/coordinates/AmericanCities.csv
</span></span><span class="line"><span class="cl">wget https://sis.apache.org/examples/coordinates/CanadianCities.csv
</span></span><span class="line"><span class="cl">sis transform --sourceCRS EPSG:4267 --targetCRS EPSG:4326 AmericanCities.csv
-</span></span><span class="line"><span class="cl">sis transform --sourceCRS EPSG:4267 --targetCRS EPSG:4326 CanadianCities.csv</span></span></code></pre></div>
-<p>The first execution should print the following header, followed by transformed coordinate values.
+</span></span><span class="line"><span class="cl">sis transform --sourceCRS EPSG:4267 --targetCRS EPSG:4326 CanadianCities.csv
+</span></span></code></pre></div><p>The first execution should print the following header, followed by transformed coordinate values.
Note the operation code (EPSG:1173), domain of validity (United State) and accuracy.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># Source: NAD27 (EPSG:4267)
-</span></span><span class="line"><span class="cl"># Destination: WGS 84 (EPSG:4326)
-</span></span><span class="line"><span class="cl"># Operations: NAD27 to WGS 84 (4) (EPSG:1173)
-</span></span><span class="line"><span class="cl"># Domain: United States (USA) - onshore
-</span></span><span class="line"><span class="cl"># Accuracy: 10.0 metres</span></span></code></pre></div>
-<p>The second execution should print the following header, followed by transformed coordinate values.
+<pre tabindex="0"><code># Source: NAD27 (EPSG:4267)
+# Destination: WGS 84 (EPSG:4326)
+# Operations: NAD27 to WGS 84 (4) (EPSG:1173)
+# Domain: United States (USA) - onshore
+# Accuracy: 10.0 metres
+</code></pre><p>The second execution should print the following header, followed by transformed coordinate values.
Note that the operation code (EPSG:1172), domain of validity (Canada) and accuracy are not the same
than in previous example.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># Source: NAD27 (EPSG:4267)
-</span></span><span class="line"><span class="cl"># Destination: WGS 84 (EPSG:4326)
-</span></span><span class="line"><span class="cl"># Operations: NAD27 to WGS 84 (3) (EPSG:1172)
-</span></span><span class="line"><span class="cl"># Domain: Canada - onshore and offshore
-</span></span><span class="line"><span class="cl"># Accuracy: 20.0 metres</span></span></code></pre></div>
-<p>The difference between those two operations become more visible by adding the <code>--verbose</code> option
+<pre tabindex="0"><code># Source: NAD27 (EPSG:4267)
+# Destination: WGS 84 (EPSG:4326)
+# Operations: NAD27 to WGS 84 (3) (EPSG:1172)
+# Domain: Canada - onshore and offshore
+# Accuracy: 20.0 metres
+</code></pre><p>The difference between those two operations become more visible by adding the <code>--verbose</code> option
to the above <code>sis transform</code> commands.
This option shows the coordinate operation in Well Known Text (WKT) or pseudo-WKT format.
When transforming coordinates in USA, the operation contains the following parameter values:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Method["Geocentric translations (geog2D domain)"],
-</span></span><span class="line"><span class="cl"> Parameter["X-axis translation", -8.0, Unit["metre", 1]],
-</span></span><span class="line"><span class="cl"> Parameter["Y-axis translation", 160.0, Unit["metre", 1]],
-</span></span><span class="line"><span class="cl"> Parameter["Z-axis translation", 176.0, Unit["metre", 1]]</span></span></code></pre></div>
-<p>But when transforming coordinates in Canada, the operation rather contains the following parameter values:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Method["Geocentric translations (geog2D domain)"],
-</span></span><span class="line"><span class="cl"> Parameter["X-axis translation", -10.0, Unit["metre", 1]],
-</span></span><span class="line"><span class="cl"> Parameter["Y-axis translation", 158.0, Unit["metre", 1]],
-</span></span><span class="line"><span class="cl"> Parameter["Z-axis translation", 187.0, Unit["metre", 1]],</span></span></code></pre></div>
-<p>As seen in the above examples, the parameter values differ slightly with the geographic area of the coordinates to transform.
+<pre tabindex="0"><code>Method["Geocentric translations (geog2D domain)"],
+ Parameter["X-axis translation", -8.0, Unit["metre", 1]],
+ Parameter["Y-axis translation", 160.0, Unit["metre", 1]],
+ Parameter["Z-axis translation", 176.0, Unit["metre", 1]]
+</code></pre><p>But when transforming coordinates in Canada, the operation rather contains the following parameter values:</p>
+<pre tabindex="0"><code>Method["Geocentric translations (geog2D domain)"],
+ Parameter["X-axis translation", -10.0, Unit["metre", 1]],
+ Parameter["Y-axis translation", 158.0, Unit["metre", 1]],
+ Parameter["Z-axis translation", 187.0, Unit["metre", 1]],
+</code></pre><p>As seen in the above examples, the parameter values differ slightly with the geographic area of the coordinates to transform.
Those parameters could also be different if <em>datum shift grids</em> are available. For example in USA:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"> Method["NADCON"],
-</span></span><span class="line"><span class="cl"> Parameter["Latitude difference file", "conus.las"],
-</span></span><span class="line"><span class="cl"> Parameter["Longitude difference file", "conus.los"],\</span></span></code></pre></div>
-<p>Java API for accessing functionalities shown in above examples are:</p>
+<pre tabindex="0"><code> Method["NADCON"],
+ Parameter["Latitude difference file", "conus.las"],
+ Parameter["Longitude difference file", "conus.los"],\
+</code></pre><p>Java API for accessing functionalities shown in above examples are:</p>
<ul>
<li>Convenience static method in <code>org.apache.sis.referencing</code> package:
<ul>
@@ -408,8 +342,8 @@ The data file given in argument can be a local file or a URL.
By default, the metadata are shown in a relatively compact tree-table format.
But the metadata can optionally be exported as an <abbr title="International Organization for Standardization">ISO</abbr> 19139 compliant XML document.
The following example shows the metadata of a netCDF file accessible from the web:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"> sis metadata https://github.com/opengeospatial/geoapi/raw/master/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube4D_projected_float.nc</span></span></code></pre></div>
-<details>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"> sis metadata https://github.com/opengeospatial/geoapi/raw/master/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube4D_projected_float.nc
+</span></span></code></pre></div><details>
<summary>Fragment of expected output (click to expand):</summary>
<pre>Metadata
├─Identification info
@@ -467,22 +401,16 @@ If the operation requires the EPSG dataset, booting the Derby database also has
For such cases, it is more efficient to loop inside a small Java program using the <a href="apidocs/index.html">SIS API</a>.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/contributor.html b/contributor.html
index c610a3c4..3ccbfd9f 100644
--- a/contributor.html
+++ b/contributor.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - New contributor</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - New contributor</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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">New contributor</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">New contributor</p>
<p>Improving and extending Apache <abbr title="Spatial Information System">SIS</abbr> requires extensive knowledge of geographic information science,
object oriented programming, the Java language, and of the library itself. Contributors should
@@ -166,7 +100,7 @@ which are offered for use are publicly accessible and that these methods are ful
published in its third edition in 2017. The book explains the importance of certain
elements in the Java language and discusses subtleties of the language and its use.
Most importantly, the book reveals the full scope a programmer must consider when developing a code library.</p>
-<p>The <a href="code-patterns.html">Recommended code patterns</a> page also discusses some elements
+<p>The <a href="./code-patterns.html">Recommended code patterns</a> page also discusses some elements
of special importance to Apache <abbr title="Spatial Information System">SIS</abbr>.</p>
<h2 id="math">Mathematical Background </h2>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> frequently deals with complex calculations using relatively simple mathematics of
@@ -193,22 +127,16 @@ GeoAPI can most easily be learned by exploring the <a href="https://www.geoapi.o
the functionality available in the base module, and the functioning of the modules of interest.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/documentation.html b/documentation.html
new file mode 100644
index 00000000..669fee9f
--- /dev/null
+++ b/documentation.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang="en">
+
+ <head>
+ <title>Apache SIS - Documentation</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link active " href="./documentation.html">Documentation</a></li>
+ </ul>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Documentation</p>
+
+ <p>Supported features:</p>
+<ul>
+<li><a href="./epsg.html">EPSG geodetic dataset</a></li>
+<li><a href="tables/CoordinateReferenceSystems.html">Coordinate reference systems</a></li>
+<li><a href="tables/CoordinateOperationMethods.html">Operation methods</a></li>
+<li><a href="./formats.html">Data formats</a></li>
+<li><a href="./standards.html">International standards</a></li>
+</ul>
+<p>For library users:</p>
+<ul>
+<li><a href="./howto.html">How to…</a></li>
+<li><a href="apidocs/index.html">Online Javadoc</a></li>
+<li><a href="book/en/developer-guide.html">Developer Guide</a></li>
+<li><a href="./code-patterns.html">Code patterns</a></li>
+<li><a href="./faq.html">FAQ</a></li>
+</ul>
+<p>For library developers:</p>
+<ul>
+<li><a href="./coding-conventions.html">Coding Conventions</a></li>
+<li><a href="./release-management.html">Release management</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
+<li><a href="https://cwiki.apache.org/confluence/display/SIS">Wiki</a></li>
+</ul>
+
+
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
+ </body>
+</html>
diff --git a/downloads.html b/downloads.html
index f0fafab5..3cc2c4b3 100644
--- a/downloads.html
+++ b/downloads.html
@@ -1,112 +1,46 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Apache SIS downloads</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Apache SIS downloads</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link active " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 active " href="./downloads.html">Downloads</a></li>
- <li><a class="nav-link text-white " 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">Apache SIS downloads</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Apache SIS downloads</p>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> 1.4 is now available.
-See the <a href="release-notes/1.4.html">release notes</a> for a list of changes since the previous version.</p>
+See the <a href="./release-notes/1.4.html">release notes</a> for a list of changes since the previous version.</p>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> releases are available under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
See the <code>NOTICE</code> file contained in each release artifact for applicable copyright attribution notices.</p>
<nav id="TableOfContents">
@@ -143,39 +77,39 @@ Make sure you get these files from the main distribution directory, rather than
Then verify the signatures using the following (replace <code>src</code> by <code>bin</code> or <code>doc</code> if needed):</p>
<p>Using GNU Privacy Guard:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --import KEYS
-</span></span><span class="line"><span class="cl">gpg --verify apache-sis-1.4-src.zip.asc</span></span></code></pre></div>
-<p>Using PGP version 6:</p>
+</span></span><span class="line"><span class="cl">gpg --verify apache-sis-1.4-src.zip.asc
+</span></span></code></pre></div><p>Using PGP version 6:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pgp -ka KEYS
-</span></span><span class="line"><span class="cl">pgp apache-sis-1.4-src.zip.asc</span></span></code></pre></div>
-<p>Using PGP version 5:</p>
+</span></span><span class="line"><span class="cl">pgp apache-sis-1.4-src.zip.asc
+</span></span></code></pre></div><p>Using PGP version 5:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pgpk -a KEYS
-</span></span><span class="line"><span class="cl">pgpv apache-sis-1.4-src.zip.asc</span></span></code></pre></div>
-<h2 id="build">Build from the sources </h2>
+</span></span><span class="line"><span class="cl">pgpv apache-sis-1.4-src.zip.asc
+</span></span></code></pre></div><h2 id="build">Build from the sources </h2>
<p>If the source files were donwloaded instead of the binaries, the sources will need to be built by Gradle.
It requires Java 18 or higher for building, but the compilation result can be executed on Java 11 or higher.
For installing the JAR files in the local Maven repository, execute the following command
from the SIS project root:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> apache-sis-1.4
</span></span><span class="line"><span class="cl">gradle assemble
-</span></span><span class="line"><span class="cl">gradle publishToMavenLocal <span class="c1"># If use with Maven projects is desired.</span></span></span></code></pre></div>
-<p>JAR files will be in the <code>endorsed/build/libs/</code> sub-directory.
+</span></span><span class="line"><span class="cl">gradle publishToMavenLocal <span class="c1"># If use with Maven projects is desired.</span>
+</span></span></code></pre></div><p>JAR files will be in the <code>endorsed/build/libs/</code> sub-directory.
An Open/LibreOffice add-in will be in <code>endorsed/build/bundle/</code>.</p>
<p>The JavaFX application is excluded by default because it depends on
the <a href="https://openjfx.io/">JavaFX platform</a> which is distributed under GPL license
(note that the SIS module stay under Apache 2 licence).
-Likewise the <a href="epsg.html">EPSG geodetic dataset</a> is excluded by default for licensing reasons.
+Likewise the <a href="./epsg.html">EPSG geodetic dataset</a> is excluded by default for licensing reasons.
For including the JavaFX module in the build, define the <code>PATH_TO_FX</code> environment variable
with the path to the directory containing all JavaFX JAR files.
Example on a Linux system (the path may vary):</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">PATH_TO_FX</span><span class="o">=</span>/usr/lib/jvm/openjfx</span></span></code></pre></div>
-<p>The application will bundled in a ZIP file in the <code>optional/build/bundle</code> directory.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">PATH_TO_FX</span><span class="o">=</span>/usr/lib/jvm/openjfx
+</span></span></code></pre></div><p>The application will bundled in a ZIP file in the <code>optional/build/bundle</code> directory.
To test, uncompress in any directory and execute <code>apache-sis-1.4/bin/sisfx</code>.</p>
<h2 id="module-path">Setting the module-path </h2>
<p>Apache SIS 1.4 and later use the Java Platform Module System (JPMS).
Consequently applications should declare SIS JAR files on their module-path rather than their class-path.
The easiest way is to declare the whole directory like below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">java --module-path apache-sis-1.4/lib</span></span></code></pre></div>
-<p>If the application using Apache SIS is not itself modularized,
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">java --module-path apache-sis-1.4/lib
+</span></span></code></pre></div><p>If the application using Apache SIS is not itself modularized,
it may be necessary to add the <code>--add-modules ALL-MODULE-PATH</code> option.
If it is not possible to declare SIS JAR files on the module-path,
a compatibility mechanism makes possible to nevertheless use SIS 1.4 on the class-path.
@@ -203,8 +137,8 @@ Below are examples of declarations in a <code>pom.xml</code> file for building a
</span></span><span class="line"><span class="cl"> <span class="nt"><version></span>4.0.4<span class="nt"></version></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><scope></span>runtime<span class="nt"></scope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></dependency></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span></span></span></code></pre></div>
-<p>The <code>sis-referencing</code> module in above example can be replaced by one or many of the following modules:</p>
+</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span>
+</span></span></code></pre></div><p>The <code>sis-referencing</code> module in above example can be replaced by one or many of the following modules:</p>
<table>
<tr><th>Service</th> <th>Java module name</th> <th>Maven group</th> <th>Maven artifact</th></tr>
<tr><td>ISO 19115 metadata</td> <td><code>org.apache.sis.metadata</code></td> <td><code>org.apache.sis.core</code></td> <td><code>sis-metadata</code></td></tr>
@@ -235,31 +169,25 @@ If you accept those terms of use, then the following dependency can be added:</p
</span></span><span class="line"><span class="cl"> <span class="nt"><version></span>${sis.version}<span class="nt"></version></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><scope></span>runtime<span class="nt"></scope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></dependency></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span></span></span></code></pre></div>
-<p>Above dependency uses a read-only embedded Derby database.
+</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span>
+</span></span></code></pre></div><p>Above dependency uses a read-only embedded Derby database.
Note that the need to uncompress the <code>sis-embedded-data.jar</code> file
slows down <code>CRS.forCode(…)</code> and <code>CRS.findCoordinateOperation(…)</code> method executions.
For better flexibility and performance, it is also possible to use an uncompressed
and writable Derby database, or to install the EPSG dataset on HSQL or PostgreSQL.
-See <a href="epsg.html">How to use EPSG geodetic dataset</a> page for more information.</p>
+See <a href="./epsg.html">How to use EPSG geodetic dataset</a> page for more information.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/epsg.html b/epsg.html
index ac80a0e7..29d71e5c 100644
--- a/epsg.html
+++ b/epsg.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - How to use EPSG geodetic dataset</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - How to use EPSG geodetic dataset</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link active " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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 active " 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">How to use EPSG geodetic dataset</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">How to use EPSG geodetic dataset</p>
<p>The <a href="https://epsg.org/">EPSG geodetic dataset</a> is a de-facto standard providing
<a href="tables/CoordinateReferenceSystems.html">thousands of Coordinate Reference System (CRS) definitions</a>
@@ -153,11 +87,11 @@ of the information provided that numeric equivalence is achieved.</li>
<h1 id="command-line">Install a local copy with command-line tool </h1>
<p>The installation process described in this section makes clear that EPSG dataset
is distributed under a different license and asks users for their agreement.
-This process can be used with the <a href="downloads.html#bundles">Apache SIS 1.4 binary bundle</a>.
-If the <a href="command-line.html">command-line tool</a> has been downloaded and installed, just query any CRS.
+This process can be used with the <a href="./downloads.html#bundles">Apache SIS 1.4 binary bundle</a>.
+If the <a href="./command-line.html">command-line tool</a> has been downloaded and installed, just query any CRS.
For example:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis crs EPSG:6676</span></span></code></pre></div>
-<p>Alternatively if the <a href="javafx.html">JavaFX application</a> is used, just start the application.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sis crs EPSG:6676
+</span></span></code></pre></div><p>Alternatively if the <a href="./javafx.html">JavaFX application</a> is used, just start the application.
It may be necessary to open a random data file for triggering the EPSG dataset initialization.
In both cases, the first time that the command-line tool or JavaFX application needs to query EPSG,
it will prompt the user for authorization to download EPSG geodetic dataset from Maven Central.
@@ -173,12 +107,12 @@ For using the installed EPSG geodetic dataset in your own application, apply <em
<p>Examples are shown below for Unix systems, assuming that the current directory is the directory where <code>apache-sis-1.4-bin.zip</code>
has been unzipped (replace <code>myApp</code> and <code>MyMainClass</code> by the application to launch):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">SIS_DATA</span><span class="o">=</span>apache-sis-1.4/data
-</span></span><span class="line"><span class="cl">java --class-path apache-sis-1.4/lib/sis-referencing.jar:myApp.jar MyMainClass</span></span></code></pre></div>
-<p>If the <code>SIS_DATA</code> environment variable cannot be set, Java property can be used as a fallback:</p>
+</span></span><span class="line"><span class="cl">java --class-path apache-sis-1.4/lib/sis-referencing.jar:myApp.jar MyMainClass
+</span></span></code></pre></div><p>If the <code>SIS_DATA</code> environment variable cannot be set, Java property can be used as a fallback:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">java -Dderby.system.home<span class="o">=</span>apache-sis-1.4/data/Databases <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> --class-path apache-sis-1.4/lib/sis-referencing.jar:myApp.jar <span class="se">\
-</span></span></span><span class="line"><span class="cl"><span class="se"></span> MyMainClass</span></span></code></pre></div>
-<p>Alternatively <code>SIS_DATA</code> or <code>derby.system.home</code> can be set to the path of any other directory which contain the same files.</p>
+</span></span></span><span class="line"><span class="cl"><span class="se"></span> MyMainClass
+</span></span></code></pre></div><p>Alternatively <code>SIS_DATA</code> or <code>derby.system.home</code> can be set to the path of any other directory which contain the same files.</p>
<h1 id="maven">Add a Maven dependency </h1>
<p>Maven projects can get the EPSG geodetic dataset automatically, <em>without any prompt for terms of use agreement</em>,
if they add a <code>sis-epsg</code> or <code>sis-embedded-data</code> dependency (from <code>org.apache.sis.non-free</code> group) in their project.
@@ -194,7 +128,7 @@ The specified directory must exist, but sub-directories will be created as neede
<li>Set the <code>derby.system.home</code> Java property to the path of an initially empty directory,
or a directory that contain other Derby databases. The specified directory must exist.</li>
<li>Register a <code>DataSource</code> under the <code>java:comp/env/jdbc/SpatialMetadata</code> name in a JNDI directory
-(see <a href="#jndi">next section</a>). The database must exist but can be initially empty.</li>
+(see <a href="./epsg.html#jndi">next section</a>). The database must exist but can be initially empty.</li>
<li>Set a <code>DataSource</code> <a href="./apidocs/org/apache/sis/setup/Configuration.html">from Java code</a>.</li>
</ul>
<p>The Maven dependency is as below (the Derby dependency can be replaced by another database driver
@@ -212,8 +146,8 @@ if that database is specified by JNDI):</p>
</span></span><span class="line"><span class="cl"> <span class="nt"><version></span>10.14.2.0<span class="nt"></version></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><scope></span>runtime<span class="nt"></scope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></dependency></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span></span></span></code></pre></div>
-<p>See the <a href="downloads.html#epsg">download</a> page for more information about Maven dependency declaration.</p>
+</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span>
+</span></span></code></pre></div><p>See the <a href="./downloads.html#epsg">download</a> page for more information about Maven dependency declaration.</p>
<h2 id="maven-embedded">As embedded database </h2>
<p>With <code>sis-embedded-data</code> artifact on the classpath, there is no need to setup environment variable, Java property or JNDI.
However this simplicity come with the following inconvenient:</p>
@@ -225,7 +159,7 @@ However this simplicity come with the following inconvenient:</p>
<li>slower execution of <code>CRS.forCode(…)</code> and <code>CRS.findCoordinateOperation(…)</code> methods, unless the JAR file is uncompressed.</li>
</ul>
<p>This dependency can be declared as below
-(see the <a href="downloads.html#epsg">download</a> page for more information about Maven dependency declaration).
+(see the <a href="./downloads.html#epsg">download</a> page for more information about Maven dependency declaration).
Note that <code>sis-epsg</code> and <code>sis-embedded-data</code> should not be specified in the same project; only one is needed:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><dependencies></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dependency></span>
@@ -234,8 +168,8 @@ Note that <code>sis-epsg</code> and <code>sis-embedded-data</code> should not be
</span></span><span class="line"><span class="cl"> <span class="nt"><version></span>1.4<span class="nt"></version></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><scope></span>runtime<span class="nt"></scope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></dependency></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span></span></span></code></pre></div>
-<p>The performance issue can be avoided if the JAR file is uncompressed.
+</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span>
+</span></span></code></pre></div><p>The performance issue can be avoided if the JAR file is uncompressed.
But uncompressed <code>sis-embedded-data.jar</code> file is more than 5 times larger than the compressed file.
Given that <code>CRS.forCode(…)</code> and <code>CRS.findCoordinateOperation(…)</code> should not be invoked too often,
and that performance degradation does not apply to the <code>CoordinateOperation</code> instances created by those method calls,
@@ -248,41 +182,41 @@ In addition of Derby, Apache <abbr title="Spatial Information System">SIS</abbr>
For using an arbitrary database, register a <code>javax.sql.DataSource</code> instance through one of the methods described below.
The database must exist but can be empty, in which case it will be populated with an EPSG schema when first needed
if the <code style="white-space:normal">org.apache.sis.non-free:sis-epsg:1.4</code> dependency is on the classpath
-(see <a href="#maven-epsg">above section</a>).
+(see <a href="./epsg.html#maven-epsg">above section</a>).
If non-empty, the database should contain the tables created by SQL scripts downloaded from <a href="https://epsg.org/">EPSG</a>.
<strong>Note thas as of Apache SIS 1.2, only EPSG dataset version 9 is supported.
EPSG datasets version 10 and later are not yet supported.</strong></p>
<h2 id="setup">Registration by Java code </h2>
<p>The data source can be specified by Java code as below
(replace the <code>main</code> method by any method where initialization occurs):</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">javax.sql.DataSource</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.setup.Configuration</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="kt">void</span> <span class="n">MyApp</span> <span class="o">{</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="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Configuration</span><span class="o">.</span><span class="na">current</span><span class="o">().</span><span class="na">setDatabase</span><span class="o">(</span><span class="n">MyApp</span><span class="o">::</span><span class="n">createDataSource</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="kd">private</span> <span class="kd">static</span> <span class="n">DataSource</span> <span class="nf">createDataSource</span><span class="o">()</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">DataSource</span> <span class="n">ds</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// Initialize the data source here.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="k">return</span> <span class="n">ds</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>
-<h2 id="jndi-java">Registration by Java Naming and Directory Interface </h2>
+<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="w"> </span><span class="nn">javax.sql.DataSource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.setup.Configuration</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">MyApp</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Configuration</span><span class="p">.</span><span class="na">current</span><span class="p">().</span><span class="na">setDatabase</span><span class="p">(</span><span class="n">MyApp</span><span class="p">::</span><span class="n">createDataSource</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">DataSource</span><span class="w"> </span><span class="nf">createDataSource</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">DataSource</span><span class="w"> </span><span class="n">ds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// Initialize the data source here.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ds</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h2 id="jndi-java">Registration by Java Naming and Directory Interface </h2>
<p>Registration in JNDI can be done programmatically (by Java code) or by configuring XML files in some environments.
Registration can be done by the following Java code, provided that a JNDI implementation is available on the classpath:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="c1">// Example using PostgreSQL data source (org.postgresql.ds.PGSimpleDataSource)
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="n">PGSimpleDataSource</span> <span class="n">ds</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PGSimpleDataSource</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"><span class="n">ds</span><span class="o">.</span><span class="na">setDatabaseName</span><span class="o">(</span><span class="s">"SpatialMetadata"</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"><span class="c1">// Server default to "localhost".
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
-</span></span><span class="line"><span class="cl"><span class="c1">// Registration assuming that a JNDI implementation is available
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="n">Context</span> <span class="n">env</span> <span class="o">=</span> <span class="o">(</span><span class="n">Context</span><span class="o">)</span> <span class="n">InitialContext</span><span class="o">.</span><span class="na">doLookup</span><span class="o">(</span><span class="s">"java:comp/env"</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"><span class="n">env</span><span class="o">.</span><span class="na">bind</span><span class="o">(</span><span class="s">"jdbc/SpatialMetadata"</span><span class="o">,</span> <span class="n">ds</span><span class="o">);</span></span></span></code></pre></div>
-<p>If there is no JNDI environment, the <code>org.apache.sis.setup.Configuration</code> class can be used as a fallback:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="c1">// Example using PostgreSQL data source (org.postgresql.ds.PGSimpleDataSource)</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">PGSimpleDataSource</span><span class="w"> </span><span class="n">ds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">PGSimpleDataSource</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">ds</span><span class="p">.</span><span class="na">setDatabaseName</span><span class="p">(</span><span class="s">"SpatialMetadata"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c1">// Server default to "localhost".</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c1">// Registration assuming that a JNDI implementation is available</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">Context</span><span class="w"> </span><span class="n">env</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">Context</span><span class="p">)</span><span class="w"> </span><span class="n">InitialContext</span><span class="p">.</span><span class="na">doLookup</span><span class="p">(</span><span class="s">"java:comp/env"</ [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">env</span><span class="p">.</span><span class="na">bind</span><span class="p">(</span><span class="s">"jdbc/SpatialMetadata"</span><span class="p">,</span><span class="w"> </span><span class="n">ds</span><span class="p">);</span><span class="w">
+</span></span></span></code></pre></div><p>If there is no JNDI environment, the <code>org.apache.sis.setup.Configuration</code> class can be used as a fallback:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">// Fallback <span class="k">if</span> no JNDI environment is available.
-</span></span><span class="line"><span class="cl">Configuration.current<span class="o">()</span>.setDatabase<span class="o">(()</span> -> ds<span class="o">)</span><span class="p">;</span></span></span></code></pre></div>
-<h2 id="jndi-webapp">Registration in web application containers </h2>
+</span></span><span class="line"><span class="cl">Configuration.current<span class="o">()</span>.setDatabase<span class="o">(()</span> -> ds<span class="o">)</span><span class="p">;</span>
+</span></span></code></pre></div><h2 id="jndi-webapp">Registration in web application containers </h2>
<p>JNDI implementations are provided by web application containers like Apache Tomcat.
When Apache <abbr title="Spatial Information System">SIS</abbr> is used in a JavaEE container, the data source can be configured as below:</p>
<ol>
@@ -295,8 +229,8 @@ On Tomcat, this is accomplished by installing the driver’s JAR files into
the Derby databases are located (skip this step if another database is used):</p>
</li>
</ol>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">JAVA_OPTS</span><span class="o">=</span>-Dderby.system.home<span class="o">=</span><span class="nv">$SIS_DATA</span>/Databases</span></span></code></pre></div>
-<ol start="3">
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">JDK_JAVA_OPTIONS</span><span class="o">=</span>-Dderby.system.home<span class="o">=</span><span class="nv">$SIS_DATA</span>/Databases
+</span></span></code></pre></div><ol start="3">
<li>Declare the JNDI name in application <code>WEB-INF/web.xml</code> file:</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><resource-ref></span>
@@ -304,8 +238,8 @@ the Derby databases are located (skip this step if another database is used):</p
</span></span><span class="line"><span class="cl"> <span class="nt"><res-ref-name></span>jdbc/SpatialMetadata<span class="nt"></res-ref-name></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><res-type></span>javax.sql.DataSource<span class="nt"></res-type></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><res-auth></span>Container<span class="nt"></res-auth></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></resource-ref></span></span></span></code></pre></div>
-<ol start="4">
+</span></span><span class="line"><span class="cl"><span class="nt"></resource-ref></span>
+</span></span></code></pre></div><ol start="4">
<li>Configure the data source in <code>$CATALINA_HOME/conf/context.xml</code> or in application <code>META-INF/context.xml</code> file
(change attribute values as needed for the chosen JDBC driver):</li>
</ol>
@@ -318,30 +252,24 @@ the Derby databases are located (skip this step if another database is used):</p
</span></span><span class="line"><span class="cl"> <span class="na">password =</span> <span class="s">"sa"</span>
</span></span><span class="line"><span class="cl"> <span class="na">driverClassName =</span> <span class="s">"org.apache.derby.jdbc.EmbeddedDriver"</span>
</span></span><span class="line"><span class="cl"> <span class="na">url =</span> <span class="s">"jdbc:derby:SpatialMetadata"</span><span class="nt">/></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></Context></span></span></span></code></pre></div>
-<ol start="5">
+</span></span><span class="line"><span class="cl"><span class="nt"></Context></span>
+</span></span></code></pre></div><ol start="5">
<li>If using Derby, verify on the <code>localhost:8080/derby/derbynet</code> page (skip this step if another database is used).</li>
</ol>
<p>More advanced configurations are possible. For example Tomcat can invoke a custom Java method instead of
fetching the data source from the <code>context.xml</code> file.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/examples/coordinates/AmericanCities.csv b/examples/coordinates/AmericanCities.csv
index 9f701676..636753fd 100644
--- a/examples/coordinates/AmericanCities.csv
+++ b/examples/coordinates/AmericanCities.csv
@@ -1,9 +1,9 @@
#
-# Coordinates of some cities in USA. The coordinates are given
-# with only 3 significant digits, which implies an uncertainty
-# of more than 100 metres. With such uncertainty, it does not
-# matter if the geodetic datum is WGS84, NAD83 or NAD27 since
-# the error is greater than the difference between those datums.
+# Coordinates of some cities in USA. The coordinates are given with only 3
+# significant digits, which implies an uncertainty of more than 100 metres.
+# With such uncertainty, it does not matter if the geodetic reference frame
+# is WGS84, NAD83 or NAD27 because the error is greater than the difference
+# between those datums.
#
# Axis order is latitude first, then longitude. Units are degrees.
#
diff --git a/examples/coordinates/CanadianCities.csv b/examples/coordinates/CanadianCities.csv
index a4c255ac..0f5647a3 100644
--- a/examples/coordinates/CanadianCities.csv
+++ b/examples/coordinates/CanadianCities.csv
@@ -1,9 +1,9 @@
#
-# Coordinates of some cities in Canada. The coordinates are given
-# with only 3 significant digits, which implies an uncertainty of
-# more than 100 metres. With such uncertainty, it does not matter
-# if the geodetic datum is WGS84, NAD83 or NAD27 since the error
-# is greater than the difference between those datums.
+# Coordinates of some cities in Canada. The coordinates are given with only 3
+# significant digits, which implies an uncertainty of more than 100 metres.
+# With such uncertainty, it does not matter if the geodetic reference frame
+# is WGS84, NAD83 or NAD27 because the error is greater than the difference
+# between those datums.
#
# Axis order is latitude first, then longitude. Units are degrees.
#
diff --git a/faq.html b/faq.html
index b955c084..fdf67e3c 100644
--- a/faq.html
+++ b/faq.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Frequently asked questions</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Frequently asked questions</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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 active " 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">Frequently asked questions</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Frequently asked questions</p>
<p>This page lists some Frequently Asked Questions (FAQ) when using Apache <abbr title="Spatial Information System">SIS</abbr>.</p>
<nav id="TableOfContents">
@@ -156,12 +90,12 @@
The most notable methods are:</p>
<ul>
<li><code>CRS.forCode(String)</code> for fetching a <abbr title="Coordinate Reference System">CRS</abbr> from an authority code in a database.
-Some supported authorities are <a href="epsg.html">EPSG</a>, AUTO, AUTO2 and CRS.</li>
+Some supported authorities are <a href="./epsg.html">EPSG</a>, AUTO, AUTO2 and CRS.</li>
<li><code>CRS.fromWKT(String)</code> for parsing a <abbr title="Coordinate Reference System">CRS</abbr> definition from a character string in Well-Known Text (WKT) format.</li>
<li><code>CRS.fromXML(String)</code> for parsing a <abbr title="Coordinate Reference System">CRS</abbr> definition from a character string in Geographic Markup Language (GML) format.</li>
</ul>
<h3 id="transform-point">How do I transform a coordinate? </h3>
-<p>See the <a href="howto.html#referencing">“How to…”</a> page for Java code examples.
+<p>See the <a href="./howto.html#referencing">“How to…”</a> page for Java code examples.
Those examples get Coordinate Reference Systems (CRS) instances in various ways
and apply coordinate operations between two reference systems.</p>
<h3 id="operation-methods">Which map projections are supported? </h3>
@@ -218,9 +152,9 @@ and should contain an explicit <code>ORDER[…]</code> sub-element for making th
But Apache <abbr title="Spatial Information System">SIS</abbr> rather defaults to axis order <em>as defined by the authority</em> (except when parsing a <abbr title="Well Known Text">WKT</abbr> 1 definition),
but allows changing axis order to the (<em>x</em>, <em>y</em>) order after <abbr title="Coordinate Reference System">CRS</abbr> creation.
This change can be done with the following 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="n">CoordinateReferenceSystem</span> <span class="n">crs</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// CRS obtained by any means.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="n">crs</span> <span class="o">=</span> <span class="n">AbstractCRS</span><span class="o">.</span><span class="na">castOrCopy</span><span class="o">(</span><span class="n">crs</span><span class="o">).</span><span class="na">forConvention</span><span class="o">(</span><span class="n">AxesConvention</span><span class="o">.</span><span class="na">RIGHT_HANDED</span><span class="o">)</span></span></s [...]
-<h3 id="lookupReliability">Is IdentifiedObjects.lookupEPSG(…) a reliable inverse of CRS.forCode(…)? </h3>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// CRS obtained by any means.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">crs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">AbstractCRS</span><span class="p">.</span><span class="na">castOrCopy</span><span class="p">(</span><span class="n">crs</span><span class="p">).</span><span class="na">forConvention</span><span class="p">(</span><span class="n">AxesConvention</span><span class="p">.</span><span class="na">RIGHT_HA [...]
+</span></span></span></code></pre></div><h3 id="lookupReliability">Is IdentifiedObjects.lookupEPSG(…) a reliable inverse of CRS.forCode(…)? </h3>
<p>For <abbr title="Coordinate Reference System">CRS</abbr> created from the EPSG geodetic dataset, usually yes.
Note however that <code>IdentifiedObjects.getIdentifier(…)</code> is cheaper and insensitive to the details of <abbr title="Coordinate Reference System">CRS</abbr> definition,
since it never query the database. But it works only if the <abbr title="Coordinate Reference System">CRS</abbr> declares explicitly its code,
@@ -241,18 +175,18 @@ But geographers and pilots are using (<em>latitude</em>, <em>longitude</em>) axi
and the EPSG geodetic dataset defines geographic Coordinate Reference Systems that way.
If a coordinate transformation seems to produce totally wrong values,
the first thing to do should be to print the source and target Coordinate Reference Systems:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><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">sourceCRS</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">targetCRS</span><span class="o">);</span></span></span></code></pre></div>
-<p>Attention should be paid to the order of <code>AXIS</code> elements.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">sourceCRS</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">targetCRS</span><span class="p">);</span><span class="w">
+</span></span></span></code></pre></div><p>Attention should be paid to the order of <code>AXIS</code> elements.
In the example below, the Coordinate Reference System clearly uses (<em>latitude</em>, <em>longitude</em>) axis order:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">GeodeticCRS["WGS 84",
-</span></span><span class="line"><span class="cl"> Datum["World Geodetic System 1984",
-</span></span><span class="line"><span class="cl"> Ellipsoid["WGS 84", 6378137.0, 298.257223563]],
-</span></span><span class="line"><span class="cl"> CS[ellipsoidal, 2],
-</span></span><span class="line"><span class="cl"> Axis["Geodetic latitude (Lat)", north],
-</span></span><span class="line"><span class="cl"> Axis["Geodetic longitude (Lon)", east],
-</span></span><span class="line"><span class="cl"> Unit["degree", 0.017453292519943295]]</span></span></code></pre></div>
-<p>If (<em>longitude</em>, <em>latitude</em>) axis order is really wanted, Apache <abbr title="Spatial Information System">SIS</abbr> can be forced to that order <a href="#axisOrder">as described above</a>.</p>
+<pre tabindex="0"><code>GeodeticCRS["WGS 84",
+ Datum["World Geodetic System 1984",
+ Ellipsoid["WGS 84", 6378137.0, 298.257223563]],
+ CS[ellipsoidal, 2],
+ Axis["Geodetic latitude (Lat)", north],
+ Axis["Geodetic longitude (Lon)", east],
+ Unit["degree", 0.017453292519943295]]
+</code></pre><p>If (<em>longitude</em>, <em>latitude</em>) axis order is really wanted, Apache <abbr title="Spatial Information System">SIS</abbr> can be forced to that order <a href="./faq.html#axisOrder">as described above</a>.</p>
<h3 id="projectionName">I have correct axis order but my transformed coordinates are still wrong. </h3>
<p>Make sure that the right projection is used. Some projection names are confusing.
For example <em>“Oblique Mercator”</em> and <em>“Hotine Oblique Mercator”</em> (in EPSG naming) are two different projections.
@@ -268,13 +202,13 @@ then the longitude units will match those of the geographic coordinate system&rd
However ESRI and GDAL among others unconditionally use decimal degrees, ignoring this part of the <abbr title="Well Known Text">WKT</abbr> 1 specification
(note: this remark does not apply to <abbr title="Well Known Text">WKT</abbr> 2).
This problem can be identified by <abbr title="Well Known Text">WKT</abbr> inspection as in the following extract:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">PROJCS["Lambert II étendu",
-</span></span><span class="line"><span class="cl"> GEOGCS["Nouvelle Triangulation Française", ...,
-</span></span><span class="line"><span class="cl"> PRIMEM["Paris", 2.337229167],
-</span></span><span class="line"><span class="cl"> UNIT["grad", 0.01570796326794897]]
-</span></span><span class="line"><span class="cl"> PROJECTION["Lambert_Conformal_Conic_1SP"],
-</span></span><span class="line"><span class="cl"> PARAMETER["latitude_of_origin", 46.8], ...]</span></span></code></pre></div>
-<p>The Paris prime meridian is located at approximately 2.597 gradians from Greenwich, which is 2.337 degrees.
+<pre tabindex="0"><code>PROJCS["Lambert II étendu",
+ GEOGCS["Nouvelle Triangulation Française", ...,
+ PRIMEM["Paris", 2.337229167],
+ UNIT["grad", 0.01570796326794897]]
+ PROJECTION["Lambert_Conformal_Conic_1SP"],
+ PARAMETER["latitude_of_origin", 46.8], ...]
+</code></pre><p>The Paris prime meridian is located at approximately 2.597 gradians from Greenwich, which is 2.337 degrees.
From this fact, we can see that the above <abbr title="Well Known Text">WKT</abbr> uses decimal degrees despite its <code>UNIT["grad"]</code> declaration.
This mismatch applies also to the parameter value, which declare 46.8° in the above example while the official value is 52 gradians.
By default, Apache <abbr title="Spatial Information System">SIS</abbr> interprets those angular values as gradians when parsing such <abbr title="Well Known Text">WKT</abbr>, resulting in a large error.
@@ -314,7 +248,7 @@ In such case, the coordinate operation specified by EPSG has precedence over the
The recommended way to uniformize the results is to add in the second environment (IDE)
the same <abbr title="Java DataBase Connectivity">JDBC</abbr> driver than the one available in the first environment (JEE).
It should be one of the following: JavaDB (a.k.a. Derby), HSQL or PostgreSQL.
-Make sure that the <a href="epsg.html">connection parameters to the EPSG database</a> are also the same.</p>
+Make sure that the <a href="./epsg.html">connection parameters to the EPSG database</a> are also the same.</p>
<h3 id="toWGS84">Can I always expect a transform from an arbitrary CRS to WGS84 to succeed? </h3>
<p>For 2D horizontal <abbr title="Coordinate Reference System">CRS</abbr> created from the EPSG database, calls to <code>CRS.findOperation(…)</code> should generally succeed.
For 3D <abbr title="Coordinate Reference System">CRS</abbr> having any kind of height different than ellipsoidal height, or for a 2D <abbr title="Coordinate Reference System">CRS</abbr> of type <code>EngineeringCRS</code>, it may fail.
@@ -329,40 +263,34 @@ or <abbr title="International Organization for Standardization">ISO</abbr>/<abbr
Java Virtual Machine implements the GeoAPI interfaces on-the-fly, using the <code>java.lang.reflect.Proxy</code> class.
See the <code>Proxy</code> Javadoc for details, keeping in mind that the <abbr title="International Organization for Standardization">ISO</abbr>/<abbr title="Open Geospatial Consortium">OGC</abbr> name of a <code>java.lang.Class</code> or
<code>java.lang.reflect.Method</code> object can be obtained as below:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">UML</span> <span class="n">uml</span> <span class="o">=</span> <span class="n">method</span><span class="o">.</span><span class="na">getAnnotation</span><span class="o">(</span><span class="n">UML</span><span class="o">.</span><span class="na">class</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">uml</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">String</span> <span class="n">name</span> <span class="o">=</span> <span class="n">uml</span><span class="o">.</span><span class="na">identifier</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="c1">// Fetch the metadata here.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="o">}</span></span></span></code></pre></div>
-<p>This is indeed the approach taken by the <code>org.apache.sis.metadata.sql</code> package for providing an implementation
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="n">UML</span><span class="w"> </span><span class="n">uml</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">method</span><span class="p">.</span><span class="na">getAnnotation</span><span class="p">(</span><span class="n">UML</span><span class="p">.</span><span class="na">class</span><span class="p [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">uml</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">uml</span><span class="p">.</span><span class="na">identifier</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// Fetch the metadata here.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><p>This is indeed the approach taken by the <code>org.apache.sis.metadata.sql</code> package for providing an implementation
of all GeoAPI metadata interfaces reading their values directly from a SQL database.</p>
<h3 id="metadata-unknownClass">I cannot marshall my custom implementation. </h3>
<p>The classes given to the JAXB marshaller shall contain JAXB annotations,
otherwise the following exception is thrown:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">javax.xml.bind.JAXBException: class MyCustomClass nor any of its super class is known to this context.</span></span></code></pre></div>
-<p>The easiest workaround is to wrap the custom implementation into one of the implementations
+<pre tabindex="0"><code>javax.xml.bind.JAXBException: class MyCustomClass nor any of its super class is known to this context.
+</code></pre><p>The easiest workaround is to wrap the custom implementation into one of the implementations
provided in the <code>org.apache.metadata.iso</code> package.
All those SIS implementation classes provide shallow copy constructor for making that easy.
Note that you need to wrap only the root class, not the attributes.
The attribute values will be wrapped automatically as needed by JAXB adapters.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/formats.html b/formats.html
index 914ed02b..fcbf71b8 100644
--- a/formats.html
+++ b/formats.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Data formats supported by Apache SIS</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Data formats supported by Apache SIS</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link active " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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 active " 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">Data formats supported by Apache SIS</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Data formats supported by Apache SIS</p>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> can read data from the formats listed below.
Some formats are supported in read-only mode, others in read/write modes.
@@ -194,23 +128,28 @@ throught the <code>DataStore</code> API. They require the use of specific API.</
<p>The easiest way to open a file in read-only mode is as below.
The <code>input</code> argument can be a <code>File</code>, <code>Path</code>, <code>URI</code>, <code>URL</code>, <code>InputStream</code>, <code>ReadableByteChannel</code>
or a <abbr title="Java DataBase Connectivity">JDBC</abbr> <code>DataSource</code> (non-exhaustive list).</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><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="n">input</span><span class="o">))</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="c1">// Assuming that we know that the data is a single raster:
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">GridCoverageResource</span> <span class="n">r</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">store</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="c1">// Subset of data could be specified here (no subset in this example):
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">GridCoverage</span> <span class="n">coverage</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="c1">// Assuming that we know that the data is two-dimensional:
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">RenderedImage</span> <span class="n">image</span> <span class="o">=</span> <span class="n">coverage</span><span class="o">.</span><span class="na">render</span><span class="o">(</span><span class="kc">null</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
-<p>Most of Apache <abbr title="Spatial Information System">SIS</abbr> API is designed for multi-dimensional data.
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="n"> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// Assuming that we know that the data is a single raster:</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverageResource</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">store</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// Subset of data could be specified here (no subset in this example):</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">coverage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// Assuming that we know that the data is two-dimensional:</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">RenderedImage</span><span class="w"> </span><span class="n">image</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">coverage</span><span class="p">.</span><span class="na">render</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><p>Most of Apache <abbr title="Spatial Information System">SIS</abbr> API is designed for multi-dimensional data.
When requesting a <code>RenderedImage</code>, a two-dimensional slice must be specified,
unless the data are already two-dimensional.
The two-dimensional slice can be along any dimensions.
See the <a href="book/en/developer-guide.html#DataAccess">SIS developer guide</a> for more information.</p>
<h1 id="accessing-data-on-the-cloud">Accessing data on the cloud</h1>
-<p>Data files can be located on Amazon S3 storage service.
+<p>Most above-cited formats can be read from an HTTP connection.
+If the server supports HTTP ranges and if the data file is tiled
+(such as Cloud Optimized GeoTIFF),
+Apache SIS will try to minimize the amount of bytes downloaded.
+HTTP is supported by the base SIS storage modules with no need for additional dependencies.</p>
+<p>Data files can also be located on Amazon S3 storage service.
For accessing those data, add the following dependency to the Maven project:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><dependencies></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dependency></span>
@@ -219,35 +158,29 @@ For accessing those data, add the following dependency to the Maven project:</p>
</span></span><span class="line"><span class="cl"> <span class="nt"><version></span>1.4<span class="nt"></version></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><scope></span>runtime<span class="nt"></scope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></dependency></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span></span></span></code></pre></div>
-<p>With above dependency on the classpath, it is possible to instantiate <code>java.nio.Path</code> object
+</span></span><span class="line"><span class="cl"><span class="nt"></dependencies></span>
+</span></span></code></pre></div><p>With above dependency on the classpath, it is possible to instantiate <code>java.nio.Path</code> object
with a value of the form <code>"S3://bucket/pseudo-directory/file"</code>.
Login and password can be specified in a <code>~/.aws/credentials</code> file like below
(Apache SIS does not yet manage credentials by itself).</p>
<pre tabindex="0"><code class="language-config" data-lang="config">[default]
aws_access_key_id = <some value>
-aws_secret_access_key = <some value></code></pre>
-<p>An alternative to above configuration is to set the
+aws_secret_access_key = <some value>
+</code></pre><p>An alternative to above configuration is to set the
<code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code> environment variables.
See <a href="https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html">AWS developer guide</a> for more information.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto.html b/howto.html
index c4bc7887..238f8b0c 100644
--- a/howto.html
+++ b/howto.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - How to…</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - How to…</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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">How to…</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">How to…</p>
<p>Java code examples for performing some tasks with Apache <abbr title="Spatial Information System">SIS</abbr>.
The examples are grouped in the following sections:</p>
@@ -116,51 +50,46 @@ The examples are grouped in the following sections:</p>
</nav>
<h1 id="raster">Grid coverages (rasters) </h1>
<ul>
-<li><a href="howto/read_netcdf.html">Read raster from a netCDF file</a></li>
-<li><a href="howto/read_geotiff.html">Read raster from a GeoTIFF file</a></li>
-<li><a href="howto/raster_values_at_pixel_coordinates.html">Get raster values at pixel coordinates</a></li>
-<li><a href="howto/raster_values_at_geographic_coordinates.html">Get raster values at geographic coordinates</a></li>
-<li><a href="howto/rasters_bigger_than_memory.html">Handle rasters bigger than memory</a></li>
-<li><a href="howto/resample_raster.html">Resample a raster</a></li>
-<li><a href="howto/parallel_computation.html">Parallel computation</a></li>
-<li><a href="howto/datalake_to_datacube.html">From data lake to data cube</a></li>
-<li><a href="howto/write_raster.html">Write a raster to a file</a></li>
+<li><a href="./howto/read_netcdf.html">Read raster from a netCDF file</a></li>
+<li><a href="./howto/read_geotiff.html">Read raster from a GeoTIFF file</a></li>
+<li><a href="./howto/raster_values_at_pixel_coordinates.html">Get raster values at pixel coordinates</a></li>
+<li><a href="./howto/raster_values_at_geographic_coordinates.html">Get raster values at geographic coordinates</a></li>
+<li><a href="./howto/rasters_bigger_than_memory.html">Handle rasters bigger than memory</a></li>
+<li><a href="./howto/resample_raster.html">Resample a raster</a></li>
+<li><a href="./howto/parallel_computation.html">Parallel computation</a></li>
+<li><a href="./howto/datalake_to_datacube.html">From data lake to data cube</a></li>
+<li><a href="./howto/write_raster.html">Write a raster to a file</a></li>
</ul>
<h1 id="referencing">Referencing by coordinates </h1>
<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/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/parse_and_format_mgrs_codes.html">Parse and format MGRS codes</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>
-<li><a href="howto/geodetic_paths.html">Compute geodetic distances and paths</a></li>
+<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/lookup_crs_urn.html">Get the EPSG code or URN of an existing reference system</a></li>
+<li><a href="./howto/compound_crs.html">Add vertical and temporal axes to an horizontal CRS</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/parse_and_format_mgrs_codes.html">Parse and format MGRS codes</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>
+<li><a href="./howto/geodetic_paths.html">Compute geodetic distances and paths</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>
+<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>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/compound_crs.html b/howto/compound_crs.html
new file mode 100644
index 00000000..20cbd9b3
--- /dev/null
+++ b/howto/compound_crs.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="en">
+
+ <head>
+ <title>Apache SIS - Add vertical and temporal axes to an horizontal CRS</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</a></li>
+ </ul>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Add vertical and temporal axes to an horizontal CRS</p>
+
+ <p>This example creates a 4-dimensional Coordinate Reference System (CRS)
+with an horizontal, a vertical and a temporal component.
+While it is possible to create a <code>CompoundCRS</code> programmatically,
+it is much easier to do that from authority codes when those codes exist.
+There is two syntaxes standardized by the Open Geospatial Consortium (OGC):
+One syntax using an identifier starting with <code>http://www.opengis.net/def/crs-compound</code>
+followed by the components in the query part of the URL,
+and a shorter but less common syntax starting with <code>urn:ogc:def:crs</code>.
+Apache SIS accepts both, illustrated below.</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>
+<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="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Compound</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 CRS
+</span></span></span><span class="line"><span class="cl"><span class="cm"> * or searching for a coordinate operation.
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">crs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">forCode</span><span class="p">(</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"http://www.opengis.net/def/crs-compound?"</span><span class="o">+</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"1=http://www.opengis.net/def/crs/epsg/0/4326&"</span><span class="o">+</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"2=http://www.opengis.net/def/crs/epsg/0/5714&"</span><span class="w"> </span><span class="o">+</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"3=http://www.opengis.net/def/crs/OGC/0/JulianDate"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> * The following is a more compact way to request the same CRS.
+</span></span></span><span class="line"><span class="cl"><span class="cm"> * If (longitude, latitude) axis order is desired, just replace
+</span></span></span><span class="line"><span class="cl"><span class="cm"> * "EPSG::4326" by "OGC::84".
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">alternative</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">forCode</span><span class="p">(</span><span class="s">"urn:ogc:def:crs,crs:EPSG::4326,crs:EPSG::5714,crs:OGC::JulianDate"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">crs</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Compact alternative is equal: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">crs</span><span class="p">.</span><span class="na">equals</span><span class="p">(</span><span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><p>Alternatively, if the components are already available as <code>CoordinateReferenceSystem</code> object, the
+<a href="../apidocs/org.apache.sis.referencing/org/apache/sis/referencing/CRS.html#compound(org.opengis.referencing.crs.CoordinateReferenceSystem...)">compound method</a>
+can be invoked instead.</p>
+<h1 id="output">Output</h1>
+<pre tabindex="0"><code>CompoundCRS["WGS 84 + MSL height + Julian",
+ GeodeticCRS["WGS 84",
+ Datum["World Geodetic System 1984",
+ Ellipsoid["WGS 84", 6378137.0, 298.257223563]],
+ CS[ellipsoidal, 2],
+ Axis["Geodetic latitude (Lat)", north],
+ Axis["Geodetic longitude (Lon)", east],
+ Unit["degree", 0.017453292519943295],
+ Id["EPSG", 4326, "9.9.1"]],
+ VerticalCRS["MSL height",
+ VerticalDatum["Mean Sea Level"],
+ CS[vertical, 1],
+ Axis["Gravity-related height (H)", up],
+ Unit["metre", 1],
+ Id["EPSG", 5714, "9.9.1"]],
+ TimeCRS["Julian",
+ TimeDatum["Julian", TimeOrigin[-4713-11-24T12:00:00.000]],
+ CS[temporal, 1],
+ Axis["Time (t)", future],
+ TimeUnit["day", 86400],
+ Id["OGC", "JulianDate"]],
+ Area["World."],
+ BBox[-90.00, -180.00, 90.00, 180.00]]
+
+Compact alternative is equal: true
+</code></pre>
+
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
+ </body>
+</html>
diff --git a/howto/crs_equality.html b/howto/crs_equality.html
index 3ed7c3de..d32dce43 100644
--- a/howto/crs_equality.html
+++ b/howto/crs_equality.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Determine if two CRS are functionally equal</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Determine if two CRS are functionally equal</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Determine if two CRS are functionally equal</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Determine if two CRS are functionally equal</p>
<p>Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata
(name, identifiers, scope, domain of validity, remarks), even though they represent the same logical <abbr title="Coordinate Reference System">CRS</abbr>.
@@ -130,65 +64,59 @@ is to request the coordinate operation between them, and check if that operation
</tbody>
</table>
<h1 id="code-example">Code example</h1>
-<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>
-</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">CrsEquality</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.util.Utilities</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">CrsEquality</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 CRS
</span></span></span><span class="line"><span class="cl"><span class="cm"> * or searching for a coordinate operation.
-</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="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">geographic</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">CoordinateReferenceSystem</span> <span class="n">crs2</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">fromWKT</span><span class="o">(</span>
-</span></span><span class="line"><span class="cl"> <span class="s">"""
-</span></span></span><span class="line"><span class="cl"><span class="s"> GeodeticCRS["</span><span class="n">WGS84</span> <span class="n">with</span> <span class="n">a</span> <span class="n">different</span> <span class="n">name</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> Datum["</span><span class="n">World</span> <span class="n">Geodetic</span> <span class="n">System</span> <span class="n">1984</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> Ellipsoid["</span><span class="n">A</span> <span class="n">different</span> <span class="n">name</span><span class="s">", 6378137.0, 298.257223563]],
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geographic</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">fromWKT</span><span class="p">(</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"""
+</span></span></span><span class="line"><span class="cl"><span class="s"> GeodeticCRS["WGS84 with a different name",
+</span></span></span><span class="line"><span class="cl"><span class="s"> Datum["World Geodetic System 1984",
+</span></span></span><span class="line"><span class="cl"><span class="s"> Ellipsoid["A different name", 6378137.0, 298.257223563]],
</span></span></span><span class="line"><span class="cl"><span class="s"> CS[ellipsoidal, 2],
-</span></span></span><span class="line"><span class="cl"><span class="s"> Axis["</span><span class="n">Latitude</span> <span class="o">(</span><span class="n">B</span><span class="o">)</span><span class="s">", north],
-</span></span></span><span class="line"><span class="cl"><span class="s"> Axis["</span><span class="n">Longitude</span> <span class="o">(</span><span class="n">L</span><span class="o">)</span><span class="s">", east],
-</span></span></span><span class="line"><span class="cl"><span class="s"> Unit["</span><span class="n">degree</span><span class="s">", 0.017453292519943295]]
-</span></span></span><span class="line"><span class="cl"><span class="s"> """</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">"equals: "</span>
-</span></span><span class="line"><span class="cl"> <span class="o">+</span> <span class="n">crs1</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">crs2</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">"equalsIgnoreMetadata: "</span>
-</span></span><span class="line"><span class="cl"> <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">crs1</span><span class="o">,</span> <span class="n">crs2</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">"Identity transform: "</span>
-</span></span><span class="line"><span class="cl"> <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">crs2</span><span class="o">,</span> <span class="n">crs2</span><span class="o">,</span> <span class="kc">null</span><span class="o">).</span><span class="na">getMathTransform</span><span class="o">().</span><span class="na">isIdentity</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>
+</span></span></span><span class="line"><span class="cl"><span class="s"> Axis["Latitude (B)", north],
+</span></span></span><span class="line"><span class="cl"><span class="s"> Axis["Longitude (L)", east],
+</span></span></span><span class="line"><span class="cl"><span class="s"> Unit["degree", 0.017453292519943295]]
+</span></span></span><span class="line"><span class="cl"><span class="s"> """</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"equals: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">crs1</span><span class="p">.</span><span class="na">equals</span><span class="p">(</span><span class="n">crs2</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"equalsIgnoreMetadata: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">Utilities</span><span class="p">.</span><span class="na">equalsIgnoreMetadata</span><span class="p">(</span><span class="n">crs1</span><span class="p">,</span><span class="w"> </span><span class="n">crs2</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Identity transform: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">findOperation</span><span class="p">(</span><span class="n">crs2</span><span class="p">,</span><span class="w"> </span><span class="n">crs2</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">).</span><span class="na">getMathTransform< [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<pre tabindex="0"><code>equals: false
equalsIgnoreMetadata: true
Identity transform: true
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/datalake_to_datacube.html b/howto/datalake_to_datacube.html
index a43bce2a..d5e6c576 100644
--- a/howto/datalake_to_datacube.html
+++ b/howto/datalake_to_datacube.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - From data lake to data cube</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - From data lake to data cube</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">From data lake to data cube</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">From data lake to data cube</p>
<p>This example opens a few files where each file represent a slice in a data cube.
Then the slices are aggregated together in a single multi-dimensional data cube.
@@ -160,53 +94,53 @@ Consequently the <code>DataStore</code> instances must be kept open for all the
<p>The <code>cdm-core</code> dependency can be omitted for netCDF-3 (a.k.a. “classic”),</p>
<h1 id="code-example">Code example</h1>
<p>The file name and geospatial coordinates 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.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.storage.GridCoverageResource</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.CoverageAggregator</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">DataLakeToDataCube</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.GridCoverageResource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.aggregate.CoverageAggregator</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">DataLakeToDataCube</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 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">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">s1</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">"CMEMS_20220301.nc"</span><span class="o">));</span>
-</span></span><span class="line"><span class="cl"> <span class="n">DataStore</span> <span class="n">s2</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">"CMEMS_20220302.nc"</span><span class="o">));</span>
-</span></span><span class="line"><span class="cl"> <span class="n">DataStore</span> <span class="n">s3</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">"CMEMS_20220303.nc"</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="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">s1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Fi [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">DataStore</span><span class="w"> </span><span class="n">s2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"CMEMS_20220302. [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">DataStore</span><span class="w"> </span><span class="n">s3</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"CMEMS_20220303. [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Following casts are okay if we know that the resources are raster data,
</span></span></span><span class="line"><span class="cl"><span class="cm"> * all of them having the same grid geometry. Otherwise the code can still
</span></span></span><span class="line"><span class="cl"><span class="cm"> * work but would require more `if (x instanceof Y)` checks.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">r1</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">s1</span><span class="o">.</span><span class="na">findResource</span><span class="o">(</span><span class="s">"sea_surface_height_above_geoid"</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">r2</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">s2</span><span class="o">.</span><span class="na">findResource</span><span class="o">(</span><span class="s">"sea_surface_height_above_geoid"</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">r3</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">s3</span><span class="o">.</span><span class="na">findResource</span><span class="o">(</span><span class="s">"sea_surface_height_above_geoid"</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">printf</span><span class="o">(</span><span class="s">"Extent of first set of slices:%n%s%n"</span><span class="o">,</span> <span class="n">r1</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</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">printf</span><span class="o">(</span><span class="s">"Extent of second set of slices:%n%s%n"</span><span class="o">,</span> <span class="n">r2</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</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">printf</span><span class="o">(</span><span class="s">"Extent of third set of slices:%n%s%n"</span><span class="o">,</span> <span class="n">r3</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</span><span class="o">());</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">aggregator</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CoverageAggregator</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">aggregator</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">r1</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">aggregator</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">r2</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">aggregator</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">r3</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">dataCube</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">aggregator</span><span class="o">.</span><span class="na">build</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">r1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">s1</span><span class="p">.</span><span class="na">findResource</span><span class="p">(</span><span class="s">"sea_sur [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">r2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">s2</span><span class="p">.</span><span class="na">findResource</span><span class="p">(</span><span class="s">"sea_sur [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">r3</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">s3</span><span class="p">.</span><span class="na">findResource</span><span class="p">(</span><span class="s">"sea_sur [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Extent of first set of slices:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">r1</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span clas [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Extent of second set of slices:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">r2</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span clas [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Extent of third set of slices:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">r3</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span clas [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">aggregator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">CoverageAggregator</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">aggregator</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="n">r1</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">aggregator</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="n">r2</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">aggregator</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="n">r3</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">dataCube</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">aggregator</span><span class="p">.</span><span class="na">build</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * From this point, the data cube can be used as a three-dimension grid coverage.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * See "Get raster values at geographic (or pixel) coordinates" for usage examples.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * However all usages must be done inside this `try` block.
-</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">printf</span><span class="o">(</span><span class="s">"Extent of the data cube:%n%s%n"</span><span class="o">,</span> <span class="n">dataCube</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</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></code></pre></div>
-<h1 id="output">Output</h1>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Extent of the data cube:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">dataCube</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the raster data and the locale.
Below is an example:</p>
<pre tabindex="0"><code>Extent of first set of slices:
@@ -230,22 +164,16 @@ Row: [0 … 1080] (1081 cells)
Time: [0 … 287] (288 cells)
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/envelopes_in_different_crs.html b/howto/envelopes_in_different_crs.html
index 9b8054c5..42cc2b5a 100644
--- a/howto/envelopes_in_different_crs.html
+++ b/howto/envelopes_in_different_crs.html
@@ -1,112 +1,46 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <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"
- 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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <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 rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Union or intersection of envelopes in different CRS</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Union or intersection of envelopes in different CRS</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).
+all envelopes must be <a href="../howto/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.
@@ -128,59 +62,53 @@ Apache <abbr title="Spatial Information System">SIS</abbr> can handle this task
</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.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.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.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">UnionOfEnvelopes</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.opengis.geometry.Envelope</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.TransformException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.Envelopes</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.Envelope2D</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">UnionOfEnvelopes</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">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">"First CRS: "</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">"Second CRS: "</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">"Selected CRS: "</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">"Union result: "</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">universal</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class="w"> < [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">universal</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class="w"> < [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Envelope2D</span><span class="w"> </span><span class="n">bbox1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Envelope2D</span><span class="p">(</span><span class="n">crs1</span><span class="p">,</span><span class="w"> </span><span class="n">500_000</span><span class="p">,</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Envelope2D</span><span class="w"> </span><span class="n">bbox2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Envelope2D</span><span class="p">(</span><span class="n">crs2</span><span class="p">,</span><span class="w"> </span><span class="n">400_000</span><span class="p">,</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Envelope</span><span class="w"> </span><span class="n">union</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Envelopes</span><span class="p">.</span><span class="na">union</span><span class="p">(</span><span class="n">bbox1</span><span class="p">,</span><span class="w"> </span><span class="n">bbox2</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"First CRS: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">crs1</span><span class="p">.</span><span class="na">getName</span><span class="p">());</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Second CRS: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">crs2</span><span class="p">.</span><span class="na">getName</span><span class="p">());</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Selected CRS: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">union</span><span class="p">.</span><span class="na">getCoordinateReferenceSystem</span><span class="p">().</s [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Union result: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">union</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<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>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/export_metadata_to_xml.html b/howto/export_metadata_to_xml.html
index 5d546aff..5609279c 100644
--- a/howto/export_metadata_to_xml.html
+++ b/howto/export_metadata_to_xml.html
@@ -1,109 +1,43 @@
<!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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <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 rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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>
+ </nav>
+ <div class="main-content">
+ <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.
@@ -133,45 +67,45 @@ The coverage values are not read, only the netCDF file header is read.</p>
<p>The <code>cdm-core</code> dependency can be omitted for netCDF-3 (a.k.a. “classic”),
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>
+see the <a href="../howto/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">/**
+<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="w"> </span><span class="nn">java.util.Map</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.io.StringWriter</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">javax.xml.bind.JAXBException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">javax.xml.transform.stream.StreamResult</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.metadata.Metadata</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.xml.XML</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ExportMetadata</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">"CMEMS.nc"</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Metadata</span><span class="w"> </span><span class="n">metadata</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">store</span><span class="p">.</span><span class="na">getMetadata</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">XML</span><span class="p">.</span><span class="na">marshal</span><span class="p">(</span><span class="n">metadata</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"><</span><span class="n">String</span><span class="o">,</span><span class="n">String</span><span class="o">></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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Map</span><span class="o"><</span><span class="n">String</span><span class="p">,</span><span class="n">String</span><span class="o">></span><span class="w"> </span><span class="n">config</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Map</span><span class="p">.</span><span class="na">of</span><span class="p">(</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">StringWriter</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">StringWriter</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">XML</span><span class="p">.</span><span class="na">marshal</span><span class="p">(</span><span class="n">metadata</span><span class="p">,</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">StreamResult</span><span class="p">(</span><span class="n">result</span><span class="p">),</span><span class="w"> </span><span class="n">config</span> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c1">// Result is in `result.toString()`.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</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"><?xml version="1.0" encoding="UTF-8" standalone="yes"?></span>
@@ -439,25 +373,19 @@ Below is an example:</p>
</span></span><span class="line"><span class="cl"> <span class="nt"></mdb:resourceScope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></mdb:MD_MetadataScope></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></mdb:metadataScope></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></mdb:MD_Metadata></span></span></span></code></pre></div>
+</span></span><span class="line"><span class="cl"><span class="nt"></mdb:MD_Metadata></span>
+</span></span></code></pre></div>
-
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/geodetic_paths.html b/howto/geodetic_paths.html
index 5b2f2e74..ae933607 100644
--- a/howto/geodetic_paths.html
+++ b/howto/geodetic_paths.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Compute geodetic distances and paths</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Compute geodetic distances and paths</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Compute geodetic distances and paths</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Compute geodetic distances and paths</p>
<p>The following example computes the geodetic distance between given positions.
The geodetic distance is the shortest distance on Earth ellipsoid.
@@ -128,32 +62,32 @@ with the property that the azimuths at the two curve extremities are preserved.<
</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">java.awt.Shape</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.referencing.GeodeticCalculator</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">GeodeticPaths</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.awt.Shape</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.GeodeticCalculator</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GeodeticPaths</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> */</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="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">calculator</span> <span class="o">=</span> <span class="n">GeodeticCalculator</span><span class="o">.</span><span class="na">create</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">calculator</span><span class="o">.</span><span class="na">setStartGeographicPoint</span><span class="o">(</span><span class="n">40</span><span class="o">,</span> <span class="n">5</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">calculator</span><span class="o">.</span><span class="na">setEndGeographicPoint</span><span class="o">(</span><span class="n">42</span><span class="o">,</span> <span class="n">3</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">printf</span><span class="o">(</span><span class="s">"Result of geodetic calculation: %s%n"</span><span class="o">,</span> <span class="n">calculator</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="kt">double</span> <span class="n">d</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"> <span class="n">d</span> <span class="o">=</span> <span class="n">calculator</span><span class="o">.</span><span class="na">getRhumblineLength</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">d</span> <span class="o">-=</span> <span class="n">calculator</span><span class="o">.</span><span class="na">getGeodesicDistance</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">printf</span><span class="o">(</span><span class="s">"The rhumbline is %1.2f %s longer%n"</span><span class="o">,</span> <span class="n">d</span><span class="o">,</span> <span class="n">calculator</span><span class="o">.</span><span class="na">getDistanceUnit</span><span class="o">());</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">Shape</span> <span class="n">path</span> <span class="o">=</span> <span class="n">calculator</span><span class="o">.</span><span class="na">createGeodesicPath2D</span><span class="o">(</span><span class="n">100</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">printf</span><span class="o">(</span><span class="s">"Java2D shape class for approximating this path: %s%n"</span><span class="o">,</span> <span class="n">path</span><span class="o">.</span><span class="na">getClass</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">calculator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">GeodeticCalculator</span><span class="p">.</span><span class="na">create</span><span class="p">(</span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geo [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><span class="na">setStartGeographicPoint</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class="w"> </span><span class="n">5</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><span class="na">setEndGeographicPoint</span><span class="p">(</span><span class="n">42</span><span class="p">,</span><span class="w"> </span><span class="n">3</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Result of geodetic calculation: %s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">calculator</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">d</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><span class="na">getRhumblineLength</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><span class="na">getGeodesicDistance</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"The rhumbline is %1.2f %s longer%n"</span><span class="p">,</span><span class="w"> </span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><s [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Shape</span><span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calculator</span><span class="p">.</span><span class="na">createGeodesicPath2D</span><span class="p">(</span><span class="n">100</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Java2D shape class for approximating this path: %s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">path</span><span class="p">.</span><span class="na">getClass</span><span class="p">());</span><sp [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the locale.
Below is an example:</p>
<pre tabindex="0"><code>Result of geodetic calculation:
@@ -169,22 +103,16 @@ The rhumbline is 6.09 m longer
Java2D shape class for approximating this path: class java.awt.geom.QuadCurve2D$Double
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/geographic_bounding_box.html b/howto/geographic_bounding_box.html
index ebce4dd7..49437d27 100644
--- a/howto/geographic_bounding_box.html
+++ b/howto/geographic_bounding_box.html
@@ -1,109 +1,43 @@
<!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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <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 rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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>
+ </nav>
+ <div class="main-content">
+ <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 bounding box of a GeoTIFF image.
The pixel values are not read, only the GeoTIFF file header is read.
@@ -134,35 +68,35 @@ If the file contains many images, the bounding box of each image is printed.</p>
depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</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.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">GetBBOX</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Aggregate</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.metadata.iso.extent.Extents</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Resource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">GetBBOX</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> */</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></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">"Airport.tiff"</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">"For the whole file"</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">"For component "</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"For the whole file"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">Extents</span><span class="p">.</span><span class="na">getGeographicBoundingBox</span><span class="p">(</span><span class="n">store</span><span class="p">.</span><span class="na">getMetadata</span><span class="p">()));</span> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="w"> </span><span class="k">instanceof</span><span class="w"> </span><span class="n">Aggregate</span><span class="w"> </span><span class="n">agg</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">Resource</span><span class="w"> </span><span class="n">component</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">agg</span><span class="p">.</span><span class="na">components</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"For component "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">component</span><span class="p">.</span><span class="na">getIdentifier</span><span class="p">());< [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">Extents</span><span class="p">.</span><span class="na">getGeographicBoundingBox</span><span class="p">(</span><span class="n">component</span><span class="p">.</span><span class="na">getMetadata</span><span class="p"> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</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>
<pre tabindex="0"><code>For the whole file
@@ -182,22 +116,16 @@ Geographic bounding box
└─Extent type code……………… True
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/index.xml b/howto/index.xml
index b9486f3f..8bf104a2 100644
--- a/howto/index.xml
+++ b/howto/index.xml
@@ -4,195 +4,148 @@
<title>How to… on Apache SIS</title>
<link>https://sis.apache.org/howto.html</link>
<description>Recent content in How to… on Apache SIS</description>
- <generator>Hugo -- gohugo.io</generator>
- <language>en</language><atom:link href="https://sis.apache.org/howto/index.xml" rel="self" type="application/rss+xml" />
+ <generator>Hugo</generator>
+ <language>en</language>
+ <atom:link href="https://sis.apache.org/howto/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>Add vertical and temporal axes to an horizontal CRS</title>
+ <link>https://sis.apache.org/howto/compound_crs.html</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>https://sis.apache.org/howto/compound_crs.html</guid>
+ <description>This example creates a 4-dimensional Coordinate Reference System (CRS) with an horizontal, a vertical and a temporal component. While it is possible to create a CompoundCRS programmatically, it is much easier to do that from authority codes when those codes exist. There is two syntaxes standardized by the Open Geospatial Consortium (OGC): One syntax using an identifier starting with http://www.opengis.net/def/crs-compound followed by the components in the query part of [...]
+ </item>
<item>
<title>Compute geodetic distances and paths</title>
<link>https://sis.apache.org/howto/geodetic_paths.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/geodetic_paths.html</guid>
- <description>The following example computes the geodetic distance between given positions. The geodetic distance is the shortest distance on Earth ellipsoid. Apache SIS can also compute the path as a Béziers curve, with the property that the azimuths at the two curve extremities are preserved.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude before longitude.
-import java.awt.Shape; import org.apache.sis.referencing.CommonCRS; import org.</description>
+ <description>The following example computes the geodetic distance between given positions. The geodetic distance is the shortest distance on Earth ellipsoid. Apache SIS can also compute the path as a Béziers curve, with the property that the azimuths at the two curve extremities are preserved.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express [...]
</item>
-
<item>
<title>Determine if two CRS are functionally equal</title>
<link>https://sis.apache.org/howto/crs_equality.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/crs_equality.html</guid>
- <description>Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata (name, identifiers, scope, domain of validity, remarks), even though they represent the same logical CRS. In order to test if two CRS are functionally equivalent, Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS) can be used.
-In some cases, equalsIgnoreMetadata(…) 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>
+ <description>Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata (name, identifiers, scope, domain of validity, remarks), even though they represent the same logical CRS. In order to test if two CRS are functionally equivalent, Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS) can be used.
In some cases, equalsIgnoreMetadata(…) may fail to see that two reference systems are equal. It may happen for example when tw [...]
</item>
-
<item>
<title>From data lake to data cube</title>
<link>https://sis.apache.org/howto/datalake_to_datacube.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/datalake_to_datacube.html</guid>
- <description>This example opens a few files where each file represent a slice in a data cube. Then the slices are aggregated together in a single multi-dimensional data cube. For example each file may be a raster representing Sea Surface Temperature (SST) at a specific day, and those files can be a aggregated in a single three-dimensional raster with a temporal dimension.
-A current limitation is that each slice must have the same number of dimensions than the data cube.</description>
+ <description>This example opens a few files where each file represent a slice in a data cube. Then the slices are aggregated together in a single multi-dimensional data cube. For example each file may be a raster representing Sea Surface Temperature (SST) at a specific day, and those files can be a aggregated in a single three-dimensional raster with a temporal dimension.
A current limitation is that each slice must have the same number of dimensions than the data cube.</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. &ldquo;classic&rdquo;), GeoTIFF or any other formats supported by Apache SIS. For the dependencies required for reading GeoTIFF instead of netCDF files, see the geographic bounding box code example.</description>
+ <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. &ldquo;classic&rdquo;), GeoTIFF or any other forma [...]
</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>
+ <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 [...]
</item>
-
<item>
<title>Get raster values at geographic coordinates</title>
<link>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</guid>
- <description>This example fetches values at given geospatial coordinates in a raster. The coordinates can be expressed in different Coordinate Reference System (CRS). Conversions from geographic or projected coordinates to pixel coordinates, optionally followed by conversions from raster data to units of measurement, are done automatically. Raster data and spatiotemporal coordinates can have more than two dimensions.
-This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.</description>
+ <description>This example fetches values at given geospatial coordinates in a raster. The coordinates can be expressed in different Coordinate Reference System (CRS). Conversions from geographic or projected coordinates to pixel coordinates, optionally followed by conversions from raster data to units of measurement, are done automatically. Raster data and spatiotemporal coordinates can have more than two dimensions.
This example assumes a preloaded three-dimensional raster. Fo [...]
</item>
-
<item>
<title>Get raster values at pixel coordinates</title>
<link>https://sis.apache.org/howto/raster_values_at_pixel_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/raster_values_at_pixel_coordinates.html</guid>
- <description>This example fetches values at given pixel coordinates in a raster. This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Some file formats store values as integers for compactness reasons, but provide a transfer function for converting those integers to &ldquo;real world&rdquo; values. Apache SIS can provide either the original integers or the converted values, at user&rsquo;s choice.</description>
+ <description>This example fetches values at given pixel coordinates in a raster. This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Some file formats store values as integers for compactness reasons, but provide a transfer function for converting those integers to &ldquo;real world&rdquo; values. Apache SIS can provide either the original integers or the converted values [...]
</item>
-
<item>
<title>Get the EPSG code or URN of an existing CRS</title>
<link>https://sis.apache.org/howto/lookup_crs_urn.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/lookup_crs_urn.html</guid>
<description>The identifier of a Coordinate Reference System (CRS) object can be obtained by the getIdentifiers() method, which usually return a collection of zero or one element. If the CRS has been created from a Well Known Text (WKT) parsing and the WKT ends with an AUTHORITY[&quot;EPSG&quot;, &quot;xxxx&quot;] (WKT version 1) or ID[&quot;EPSG&quot;, xxxx] (WKT version 2) element, then the identifier (an EPSG numerical code in this example) is the xxxx va [...]
</item>
-
<item>
<title>Handle rasters bigger than memory</title>
<link>https://sis.apache.org/howto/rasters_bigger_than_memory.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/rasters_bigger_than_memory.html</guid>
<description>This example opens a big GeoTIFF file without reading the tiles immediately. Instead, tiles will be read only when requested by a call to the Java2D RenderedImage.getTile(int, int) method. Loaded tiles are cached by soft references, i.e. they may be discarted and reloaded when needed again. This approach allows processing of raster data larger than memory, provided that the application does not request all tiles at once. It integrates well with operations provided by A [...]
</item>
-
<item>
<title>Instantiate a UTM projection</title>
<link>https://sis.apache.org/howto/instantiate_utm_projection.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/instantiate_utm_projection.html</guid>
- <description>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 universal(…) method on one of the CommonCRS predefined constants. That method receives in argument a geographic coordinate in (latitude, longitude) order and computes the UTM zone from it. It takes in account the special cases of Norway and Svalbard.
-An alternative, more standard, way using geographic coordinates is to format an &ldquo;AUTO&rdquo; authority code.</description>
+ <description>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 universal(…) method on one of the CommonCRS predefined constants. That method receives in argument a geographic coordinate in (latitude, longitude) order and computes the UTM zone from it. It takes in account the special cases of Norway and Svalbard.
An alternative, more standard, way using geograph [...]
</item>
-
<item>
<title>Parallel computation</title>
<link>https://sis.apache.org/howto/parallel_computation.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/parallel_computation.html</guid>
<description>Some grid coverages will read or compute chunks of data only when first requested. For example when a coverage is the result of a reprojection, or when a big coverage uses deferred tile reading. However if tiles are always requested in the same thread, it will result in a sequential, mono-threaded computation. Furthermore it may cause a lot of seek or &ldquo;HTTP range&rdquo; operations if tiles are read in random order.</description>
</item>
-
<item>
<title>Parse and format MGRS codes</title>
<link>https://sis.apache.org/howto/parse_and_format_mgrs_codes.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/parse_and_format_mgrs_codes.html</guid>
- <description>The following example converts geographic coordinates to Military Grid Reference System (MGRS) codes and conversely. MGRS codes can be seen as a kind of GeoHash but with better properties. Apache SIS supports also GeoHash if desired, in a way similar to this example.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude before longitude.
-import org.apache.sis.geometry.DirectPosition2D; import org.apache.sis.referencing.CommonCRS; import org.apache.sis.referencing.gazetteer.MilitaryGridReferenceSystem; import org.</description>
+ <description>The following example converts geographic coordinates to Military Grid Reference System (MGRS) codes and conversely. MGRS codes can be seen as a kind of GeoHash but with better properties. Apache SIS supports also GeoHash if desired, in a way similar to this example.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude befo [...]
</item>
-
<item>
<title>Read raster from a GeoTIFF file</title>
<link>https://sis.apache.org/howto/read_geotiff.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/read_geotiff.html</guid>
- <description>This example reads data in GeoTIFF format. Contrarily to other formats such as PNG or JPEG, a GeoTIFF file can contain an arbitrary number of images. For this reason, GeoTiffStore does not implement directly GridCoverageResource. Instead, GeoTiffStore implements the Aggregate interface.
-This example assumes that the raster, optionally clipped to a subregion, can fit in memory. For potentially much bigger rasters, see rasters bigger than memory code example.
-Direct dependencies Maven coordinates Module info Remarks org.</description>
+ <description>This example reads data in GeoTIFF format. Contrarily to other formats such as PNG or JPEG, a GeoTIFF file can contain an arbitrary number of images. For this reason, GeoTiffStore does not implement directly GridCoverageResource. Instead, GeoTiffStore implements the Aggregate interface.
This example assumes that the raster, optionally clipped to a subregion, can fit in memory. For potentially much bigger rasters, see rasters bigger than memory code example.
Dir [...]
</item>
-
<item>
<title>Read raster from a netCDF file</title>
<link>https://sis.apache.org/howto/read_netcdf.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/read_netcdf.html</guid>
<description>This example reads data in netCDF format. Contrarily to other formats such as PNG or JPEG, a netCDF file can contain an arbitrary number of variables with none of them identified as the main data. Furthermore those data are not necessarily rasters. For this reason, NetcdfStore does not implement directly GridCoverageResource. Instead, NetcdfStore implements the Aggregate interface and the desired variable must be specified. The variables may be instances of GridCoverag [...]
</item>
-
<item>
<title>Resample a raster</title>
<link>https://sis.apache.org/howto/resample_raster.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/resample_raster.html</guid>
- <description>This example reprojects a raster to a different Coordinate Reference System (CRS). This example assumes a preloaded two-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.code:sis-feature org.apache.sis.feature org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Non-Apache license. The EPSG dependency is necessary for this example because a Coordinate Reference System (CRS) is instantiated from its EPSG code. But it would also be possible to specify a CRS without EPSG code, for example using Well Known Text (WKT) format.</description>
+ <description>This example reprojects a raster to a different Coordinate Reference System (CRS). This example assumes a preloaded two-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.code:sis-feature org.apache.sis.feature org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Non-Apache license. The EPSG dependency is ne [...]
</item>
-
<item>
<title>Transform coordinates</title>
<link>https://sis.apache.org/howto/transform_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/transform_coordinates.html</guid>
- <description>The following Java code projects geographic coordinates from the World Geodetic System 1984 (WGS84) to WGS 84 / UTM zone 33N. In order to make the example a little bit simpler, this code uses predefined constants given by the CommonCRS convenience class. But more advanced applications may use EPSG codes or definitions in Well-Known Text (WKT) instead.
-Note: if the result of a coordinate transformation seems wrong, see the FAQ page.</description>
+ <description>The following Java code projects geographic coordinates from the World Geodetic System 1984 (WGS84) to WGS 84 / UTM zone 33N. In order to make the example a little bit simpler, this code uses predefined constants given by the CommonCRS convenience class. But more advanced applications may use EPSG codes or definitions in Well-Known Text (WKT) instead.
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>
-
<item>
<title>Write a raster to a file</title>
<link>https://sis.apache.org/howto/write_raster.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/write_raster.html</guid>
- <description>This example saves a raster in PNG format together with its WorldFile PRJ and PGW auxiliary files. This example assumes a preloaded raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-storage org.apache.sis.storage Code example The file name in following code need to be updated for yours data.
-import java.io.File; import org.apache.sis.storage.DataStore; import org.</description>
+ <description>This example saves a raster in PNG format together with its WorldFile PRJ and PGW auxiliary files. This example assumes a preloaded raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-storage org.apache.sis.storage Code example The file name in following code need to be updated for yours data.
import java.io.File; import org.apac [...]
</item>
-
</channel>
</rss>
diff --git a/howto/instantiate_utm_projection.html b/howto/instantiate_utm_projection.html
index 5a2d64ee..647a1c68 100644
--- a/howto/instantiate_utm_projection.html
+++ b/howto/instantiate_utm_projection.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Instantiate a UTM projection</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Instantiate a UTM projection</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Instantiate a UTM projection</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Instantiate a UTM projection</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
@@ -153,63 +87,57 @@ or the “AUTO” authority, but is required for examples using the &ldq
<h1 id="code-example">Code example</h1>
<p>Note that all geographic coordinates below express latitude <em>before</em> longitude,
except in “AUTO2” 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>
-</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="cm">/**
+<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="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.util.Utilities</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">InstantiateUTM</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> */</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">"AUTO2:42001,1,"</span> <span class="o">+</span> <span class="n">longitude</span> <span class="o">+</span> <span class="s">","</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">latitude</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">40</span><span class="p">;</span><span class="w"> </span><span class="c1">// Will determine the hemisphere.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">longitude</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">14</span><span class="p">;</span><span class="w"> </span><span class="c1">// Will determine the UTM zone.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crsFromPoint</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">universal</span><span class="p">(</span><span class="n">latitude</span><span class="p">,</span><spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crsFromAUTO2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">forCode</span><span class="p">(</span><span class="s">"AUTO2:42001,1,"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span>< [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">"EPSG:"</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">zone</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">33</span><span class="p">;</span><span class="w"> </span><span class="c1">// UTM zone 33.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">32600</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">zone</span><span class="p">;</span><span class="w"> </span><span class="c1">// For WGS84 northern hemisphere</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crsFromCode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">forCode</span><span class="p">(</span><span class="s">"EPSG:"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">"Are the CRS equivalent?"</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">"AUTO2: "</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">"EPSG: "</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="o">}</span>
-</span></span><span class="line"><span class="cl"><span class="o">}</span></span></span></code></pre></div>
-<h1 id="output">Output</h1>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Are the CRS equivalent?"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"AUTO2: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">Utilities</span><span class="p">.</span><span class="na">equalsIgnoreMetadata</span><span class="p">(</span><span cla [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"EPSG: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">Utilities</span><span class="p">.</span><span class="na">equalsIgnoreMetadata</span><span class="p">(</span><span cla [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<pre tabindex="0"><code>Are the CRS equivalent?
AUTO2: true
EPSG: true
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/lookup_crs_urn.html b/howto/lookup_crs_urn.html
index a689ad84..abb198c1 100644
--- a/howto/lookup_crs_urn.html
+++ b/howto/lookup_crs_urn.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Get the EPSG code or URN of an existing 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"
- 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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Get the EPSG code or URN of an existing CRS</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Get the EPSG code or URN of an existing CRS</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Get the EPSG code or URN of an existing CRS</p>
<p>The <em>identifier</em> of a Coordinate Reference System (CRS) object can be obtained by the <code>getIdentifiers()</code> method,
which usually return a collection of zero or one element.
@@ -148,73 +82,67 @@ Consequently if the given <abbr title="Coordinate Reference System">CRS</abbr> h
But it is required if the <code>AUTHORITY</code> element is absent and Apache <abbr title="Spatial Information System">SIS</abbr> needs to scan the EPSG database
for finding its value.</p>
<h1 id="code-example">Code example</h1>
-<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.IdentifiedObjects</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">LookupAuthorityCode</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.IdentifiedObjects</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">LookupAuthorityCode</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 CRS or searching in EPSG database.
-</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="n">CoordinateReferenceSystem</span> <span class="n">crs</span> <span class="o">=</span> <span class="n">CRS</span><span class="o">.</span><span class="na">fromWKT</span><span class="o">(</span>
-</span></span><span class="line"><span class="cl"> <span class="s">"""
-</span></span></span><span class="line"><span class="cl"><span class="s"> PROJCRS["</span><span class="n">NTF</span> <span class="o">(</span><span class="n">Paris</span><span class="o">)</span> <span class="o">/</span> <span class="n">zone</span> <span class="n">to</span> <span class="n">be</span> <span class="n">discovered</span> <span class="n">by</span> <span class="n">the</span> <span class="n">demo</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> BASEGEODCRS["</span><span class="n">NTF</span> <span class="o">(</span><span class="n">Paris</span><span class="o">)</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> DATUM["</span><span class="n">Nouvelle</span> <span class="n">Triangulation</span> <span class="n">Francaise</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> ELLIPSOID["</span><span class="n">Clarke</span> <span class="nf">1880</span> <span class="o">(</span><span class="n">IGN</span><span class="o">)</span><span class="s">", 6378249.2, 293.4660212936269]],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PRIMEM["</span><span class="n">Paris</span><span class="s">", 2.5969213],
-</span></span></span><span class="line"><span class="cl"><span class="s"> UNIT["</span><span class="n">grade</span><span class="s">", 0.015707963267948967]],
-</span></span></span><span class="line"><span class="cl"><span class="s"> CONVERSION["</span><span class="n">Lambert</span> <span class="n">zone</span> <span class="n">II</span><span class="s">",
-</span></span></span><span class="line"><span class="cl"><span class="s"> METHOD["</span><span class="n">Lambert</span> <span class="n">Conic</span> <span class="nf">Conformal</span> <span class="o">(</span><span class="n">1SP</span><span class="o">)</span><span class="s">"],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["</span><span class="n">Latitude</span> <span class="n">of</span> <span class="n">natural</span> <span class="n">origin</span><span class="s">", 52.0],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["</span><span class="n">Longitude</span> <span class="n">of</span> <span class="n">natural</span> <span class="n">origin</span><span class="s">", 0.0],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["</span><span class="n">Scale</span> <span class="n">factor</span> <span class="n">at</span> <span class="n">natural</span> <span class="n">origin</span><span class="s">", 0.99987742],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["</span><span class="n">False</span> <span class="n">easting</span><span class="s">", 600000.0],
-</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["</span><span class="n">False</span> <span class="n">northing</span><span class="s">", 2200000.0]],
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">crs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">fromWKT</span><span class="p">(</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="s">"""
+</span></span></span><span class="line"><span class="cl"><span class="s"> PROJCRS["NTF (Paris) / zone to be discovered by the demo",
+</span></span></span><span class="line"><span class="cl"><span class="s"> BASEGEODCRS["NTF (Paris)",
+</span></span></span><span class="line"><span class="cl"><span class="s"> DATUM["Nouvelle Triangulation Francaise",
+</span></span></span><span class="line"><span class="cl"><span class="s"> ELLIPSOID["Clarke 1880 (IGN)", 6378249.2, 293.4660212936269]],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PRIMEM["Paris", 2.5969213],
+</span></span></span><span class="line"><span class="cl"><span class="s"> UNIT["grade", 0.015707963267948967]],
+</span></span></span><span class="line"><span class="cl"><span class="s"> CONVERSION["Lambert zone II",
+</span></span></span><span class="line"><span class="cl"><span class="s"> METHOD["Lambert Conic Conformal (1SP)"],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["Latitude of natural origin", 52.0],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["Longitude of natural origin", 0.0],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["Scale factor at natural origin", 0.99987742],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["False easting", 600000.0],
+</span></span></span><span class="line"><span class="cl"><span class="s"> PARAMETER["False northing", 2200000.0]],
</span></span></span><span class="line"><span class="cl"><span class="s"> CS[Cartesian, 2],
-</span></span></span><span class="line"><span class="cl"><span class="s"> AXIS["</span><span class="n">Easting</span> <span class="o">(</span><span class="n">E</span><span class="o">)</span><span class="s">", east],
-</span></span></span><span class="line"><span class="cl"><span class="s"> AXIS["</span><span class="n">Northing</span> <span class="o">(</span><span class="n">N</span><span class="o">)</span><span class="s">", north],
-</span></span></span><span class="line"><span class="cl"><span class="s"> LENGTHUNIT["</span><span class="n">metre</span><span class="s">", 1],
-</span></span></span><span class="line"><span class="cl"><span class="s"> REMARK["</span><span class="n">EPSG</span><span class="o">:</span><span class="n">27572</span> <span class="n">identifier</span> <span class="n">intentionally</span> <span class="n">omitted</span><span class="o">.</span><span class="s">"]]
-</span></span></span><span class="line"><span class="cl"><span class="s"> """</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">"Identifier declared in the CRS: "</span>
-</span></span><span class="line"><span class="cl"> <span class="o">+</span> <span class="n">IdentifiedObjects</span><span class="o">.</span><span class="na">getIdentifier</span><span class="o">(</span><span class="n">crs</span><span class="o">,</span> <span class="kc">null</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">"Searching in EPSG database: "</span>
-</span></span><span class="line"><span class="cl"> <span class="o">+</span> <span class="n">IdentifiedObjects</span><span class="o">.</span><span class="na">lookupEPSG</span><span class="o">(</span><span class="n">crs</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">"Same, but more generic: "</span>
-</span></span><span class="line"><span class="cl"> <span class="o">+</span> <span class="n">IdentifiedObjects</span><span class="o">.</span><span class="na">lookupURN</span><span class="o">(</span><span class="n">crs</span><span class="o">,</span> <span class="kc">null</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>
+</span></span></span><span class="line"><span class="cl"><span class="s"> AXIS["Easting (E)", east],
+</span></span></span><span class="line"><span class="cl"><span class="s"> AXIS["Northing (N)", north],
+</span></span></span><span class="line"><span class="cl"><span class="s"> LENGTHUNIT["metre", 1],
+</span></span></span><span class="line"><span class="cl"><span class="s"> REMARK["EPSG:27572 identifier intentionally omitted."]]
+</span></span></span><span class="line"><span class="cl"><span class="s"> """</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Identifier declared in the CRS: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">IdentifiedObjects</span><span class="p">.</span><span class="na">getIdentifier</span><span class="p">(</span><span class="n">crs</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Searching in EPSG database: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">IdentifiedObjects</span><span class="p">.</span><span class="na">lookupEPSG</span><span class="p">(</span><span class="n">crs</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Same, but more generic: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">IdentifiedObjects</span><span class="p">.</span><span class="na">lookupURN</span><span class="p">(</span><span class="n">crs</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<pre tabindex="0"><code>Identifier declared in the CRS: null
Searching in EPSG database: 27572
Same, but more generic: urn:ogc:def:crs:EPSG:9.9.1:27572
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/parallel_computation.html b/howto/parallel_computation.html
index 4677180e..12e7c356 100644
--- a/howto/parallel_computation.html
+++ b/howto/parallel_computation.html
@@ -1,113 +1,47 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Parallel computation</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Parallel computation</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Parallel computation</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Parallel computation</p>
<p>Some grid coverages will read or compute chunks of data only when first requested.
-For example when a coverage is the <a href="resample_raster.html">result of a reprojection</a>,
-or when a big coverage <a href="rasters_bigger_than_memory.html">uses deferred tile reading</a>.
+For example when a coverage is the <a href="../howto/resample_raster.html">result of a reprojection</a>,
+or when a big coverage <a href="../howto/rasters_bigger_than_memory.html">uses deferred tile reading</a>.
However if tiles are always requested in the same thread,
it will result in a sequential, mono-threaded computation.
Furthermore it may cause a lot of seek or “HTTP range” operations if tiles are read in random order.
@@ -132,58 +66,52 @@ we need to inform Apache SIS in advance about which pixels are about to be reque
</tbody>
</table>
<h1 id="code-example">Code example</h1>
-<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.awt.image.ImagingOpException</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.RenderedImage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.image.ImageProcessor</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">ParallelTileComputation</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.awt.image.ImagingOpException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.RenderedImage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.image.ImageProcessor</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ParallelTileComputation</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 ImagingOpException unchecked exception thrown if an error occurred while computing a tile.
-</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="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverage</span> <span class="n">coverage</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// See "Resample a raster" code example.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">coverage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// See "Resample a raster" code example.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Get all data from the coverage, assuming that the grid is two-dimensional.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If there is three or more dimensions, the null value needs to be replaced
</span></span></span><span class="line"><span class="cl"><span class="cm"> * by a `GridExtent` specifying the two-dimensional slice to fetch.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">RenderedImage</span> <span class="n">data</span> <span class="o">=</span> <span class="n">coverage</span><span class="o">.</span><span class="na">render</span><span class="o">(</span><span class="kc">null</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">RenderedImage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">coverage</span><span class="p">.</span><span class="na">render</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * With above `RenderedImage`, tiles are computed when first requested and cached for future uses.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If all tiles will be requested in the same thread, it results in a sequential tile computation.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * For parallel computation using all available processors, we need to inform Apache SIS in advance
</span></span></span><span class="line"><span class="cl"><span class="cm"> * about which pixels will be requested. The `null` argument below means "all pixels in the image".
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Don't use that null argument if the image is very big!
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ImageProcessor</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">processor</span><span class="o">.</span><span class="na">prefetch</span><span class="o">(</span><span class="n">data</span><span class="o">,</span> <span class="kc">null</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">processor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ImageProcessor</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">processor</span><span class="p">.</span><span class="na">prefetch</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * See for example "Get raster values at pixel coordinates" for using this image.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div>
-
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/parse_and_format_mgrs_codes.html b/howto/parse_and_format_mgrs_codes.html
index 9c0078f4..b53c3f80 100644
--- a/howto/parse_and_format_mgrs_codes.html
+++ b/howto/parse_and_format_mgrs_codes.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Parse and format MGRS codes</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Parse and format MGRS codes</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Parse and format MGRS codes</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Parse and format MGRS codes</p>
<p>The following example converts geographic coordinates to
Military Grid Reference System (MGRS) codes and conversely.
@@ -128,35 +62,35 @@ Apache SIS supports also GeoHash if desired, in a way similar to this example.</
</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.apache.sis.geometry.DirectPosition2D</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.referencing.gazetteer.MilitaryGridReferenceSystem</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.opengis.referencing.gazetteer.Location</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></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MGRS</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.apache.sis.geometry.DirectPosition2D</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.gazetteer.MilitaryGridReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.gazetteer.Location</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.TransformException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">MGRS</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 TransformException if an error occurred when encoding or decoding a position.
-</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">TransformException</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">rs</span> <span class="o">=</span> <span class="k">new</span> <span class="n">MilitaryGridReferenceSystem</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">point</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DirectPosition2D</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 class="n">40</span><span class="o">,</span> <span class="n">5</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">coder</span> <span class="o">=</span> <span class="n">rs</span><span class="o">.</span><span class="na">createCoder</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">code</span> <span class="o">=</span> <span class="n">coder</span><span class="o">.</span><span class="na">encode</span><span class="o">(</span><span class="n">point</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">printf</span><span class="o">(</span><span class="s">"MGRS code of %s is %s%n"</span><span class="o">,</span> <span class="n">point</span><span class="o">,</span> <span class="n">code</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">coder</span><span class="o">.</span><span class="na">setPrecision</span><span class="o">(</span><span class="n">1000</span><span class="o">);</span> <span class="c1">// Limit to a precision of 1 km.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">code</span> <span class="o">=</span> <span class="n">coder</span><span class="o">.</span><span class="na">encode</span><span class="o">(</span><span class="n">point</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">printf</span><span class="o">(</span><span class="s">"Same code reduced to 1 km precision: %s%n"</span><span class="o">,</span> <span class="n">code</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">Location</span> <span class="n">reverse</span> <span class="o">=</span> <span class="n">coder</span><span class="o">.</span><span class="na">decode</span><span class="o">(</span><span class="n">code</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">printf</span><span class="o">(</span><span class="s">"Back to geographic coordinates: %s%n"</span><span class="o">,</span> <span class="n">reverse</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">rs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">MilitaryGridReferenceSystem</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DirectPosition2D</span><span class="p">(</span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geographic</sp [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">coder</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">rs</span><span class="p">.</span><span class="na">createCoder</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">coder</span><span class="p">.</span><span class="na">encode</span><span class="p">(</span><span class="n">point</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"MGRS code of %s is %s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">point</span><span class="p">,</span><span class="w"> </span><span class="n">code</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">coder</span><span class="p">.</span><span class="na">setPrecision</span><span class="p">(</span><span class="n">1000</span><span class="p">);</span><span class="w"> </span><span class="c1">// Limit to a precision of 1 km.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">coder</span><span class="p">.</span><span class="na">encode</span><span class="p">(</span><span class="n">point</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Same code reduced to 1 km precision: %s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">code</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Location</span><span class="w"> </span><span class="n">reverse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">coder</span><span class="p">.</span><span class="na">decode</span><span class="p">(</span><span class="n">code</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Back to geographic coordinates: %s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">reverse</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the locale.
Below is an example:</p>
<pre tabindex="0"><code>MGRS code of POINT(40 5) is 31TFE7072529672
@@ -176,22 +110,16 @@ Back to geographic coordinates:
└─────────────────────────────────────────────────────────────────┘
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/raster_values_at_geographic_coordinates.html b/howto/raster_values_at_geographic_coordinates.html
index 8fe33653..eb9db15f 100644
--- a/howto/raster_values_at_geographic_coordinates.html
+++ b/howto/raster_values_at_geographic_coordinates.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Get raster values at geographic coordinates</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Get raster values at geographic coordinates</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Get raster values at geographic coordinates</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Get raster values at geographic coordinates</p>
<p>This example fetches values at given geospatial coordinates in a raster.
The coordinates can be expressed in different Coordinate Reference System (CRS).
@@ -113,8 +47,8 @@ are done automatically.
Raster data and spatiotemporal coordinates can have more than two dimensions.</p>
<p>This example assumes a preloaded three-dimensional raster.
For the loading part,
-see <a href="read_netcdf.html">read from a netCDF file</a>
-or <a href="read_geotiff.html">read from a GeoTIFF file</a>
+see <a href="../howto/read_netcdf.html">read from a netCDF file</a>
+or <a href="../howto/read_geotiff.html">read from a GeoTIFF file</a>
code examples.</p>
<p>Some file formats store values as integers for compactness reasons,
but provide a <em>transfer function</em> for converting those integers to “real world” values.
@@ -139,60 +73,60 @@ This choice is specified by the boolean argument in the <code>data.forConvert
</table>
<h1 id="code-example">Code example</h1>
<p>The geographic coordinates 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">javax.measure.Unit</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</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.GeneralDirectPosition</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.measure.Units</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">RasterValuesAtGeographicCoordinates</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.util.Map</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">javax.measure.Unit</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.GeneralDirectPosition</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.measure.Units</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">RasterValuesAtGeographicCoordinates</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> */</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="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverage</span> <span class="n">data</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Switch to a view of the data in the units of measurement.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Then get the unit of measurement of the first band (0).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If no unit is specified, fallback on dimensionless unit.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">forConvertedValues</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="kt">int</span> <span class="n">band</span> <span class="o">=</span> <span class="n">0</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Unit</span><span class="o"><?></span> <span class="n">unit</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">getSampleDimensions</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="n">band</span><span class="o">).</span><span class="na">getUnits</span><span class="o">().</span><span class="na">orElse</span><span clas [...]
-</span></span><span class="line"><span class="cl"> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">forConvertedValues</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">band</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">0</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Unit</span><span class="o"><?></span><span class="w"> </span><span class="n">unit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getSampleDimensions</span><span class="p">().</span><span class="na">get</span><span class="p">(</span><span class="n">band</span><span class="p">).</span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Get raster values at geographic coordinates expressed in WGS84.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Coordinate values in this example are in (latitude, longitude) order.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Any compatible coordinate reference system (CRS) can be used below,
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Apache SIS will automatically transform to the CRS used by the raster.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If the raster data are three-dimensional, a 3D CRS should be specified.
-</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">"Evaluation at some (latitude, longitude) coordinates:"</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">point</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GeneralDirectPosition</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">GridCoverage</span><span class="o">.</span><span class="na">Evaluator</span> <span class="n">eval</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">evaluator</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Evaluation at some (latitude, longitude) coordinates:"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GeneralDirectPosition</span><span class="p">(</span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geographi [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="p">.</span><span class="na">Evaluator</span><span class="w"> </span><span class="n">eval</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">evaluator</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If the data are three-dimensional but we still want to use two-dimensional
</span></span></span><span class="line"><span class="cl"><span class="cm"> * coordinates, we need to specify a default value for the temporal dimension.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This code set the default to slice 0 (the first slice) in dimension 2.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Omit this line if the data are two-dimensional or if `point` has a 3D CRS.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">eval</span><span class="o">.</span><span class="na">setDefaultSlice</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">2</span><span class="o">,</span> <span class="n">0L</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">eval</span><span class="p">.</span><span class="na">setDefaultSlice</span><span class="p">(</span><span class="n">Map</span><span class="p">.</span><span class="na">of</span><span class="p">(</span><span class="n">2</span><span class="p">,</span><span class="w"> </span><span class="n">0L</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * The same `Evaluator` can be reused as often as needed for evaluating
</span></span></span><span class="line"><span class="cl"><span class="cm"> * at many points.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">point</span><span class="o">.</span><span class="na">setCoordinate</span><span class="o">(</span><span class="n">40</span><span class="o">,</span> <span class="o">-</span><span class="n">10</span><span class="o">);</span> <span class="c1">// 40°N 10°W
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="kt">double</span><span class="o">[]</span> <span class="n">values</span> <span class="o">=</span> <span class="n">eval</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">point</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">printf</span><span class="o">(</span><span class="s">"- Value at %s is %g %s.%n"</span><span class="o">,</span> <span class="n">point</span><span class="o">,</span> <span class="n">values</span><span class="o">[</span><span class="n">band</span><span class="o">],</span> <span class="n">unit</span><span c [...]
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">point</span><span class="o">.</span><span class="na">setCoordinate</span><span class="o">(</span><span class="n">30</span><span class="o">,</span> <span class="o">-</span><span class="n">15</span><span class="o">);</span> <span class="c1">// 30°N 15°W
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">values</span> <span class="o">=</span> <span class="n">eval</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">point</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">printf</span><span class="o">(</span><span class="s">"- Value at %s is %g %s.%n"</span><span class="o">,</span> <span class="n">point</span><span class="o">,</span> <span class="n">values</span><span class="o">[</span><span class="n">band</span><span class="o">],</span> <span class="n">unit</span><span c [...]
-</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">point</span><span class="p">.</span><span class="na">setCoordinate</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">10</span><span class="p">);</span><span class="w"> </span><span class="c1">// 40°N 10°W</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">double</span><span class="o">[]</span><span class="w"> </span><span class="n">values</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">eval</span><span class="p">.</span><span class="na">apply</span><span class="p">(</span><span class="n">point</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"- Value at %s is %g %s.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">point</span><span class="p">,</span><span class="w"> </span><span class="n">values</span><span class="o">[</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">point</span><span class="p">.</span><span class="na">setCoordinate</span><span class="p">(</span><span class="n">30</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">15</span><span class="p">);</span><span class="w"> </span><span class="c1">// 30°N 15°W</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">values</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">eval</span><span class="p">.</span><span class="na">apply</span><span class="p">(</span><span class="n">point</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"- Value at %s is %g %s.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">point</span><span class="p">,</span><span class="w"> </span><span class="n">values</span><span class="o">[</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the raster data and the locale.
Below is an example:</p>
<pre tabindex="0"><code>Evaluation at some (latitude, longitude) coordinates:
@@ -200,22 +134,16 @@ Below is an example:</p>
- Value at POINT(30 -15) is 0.619000 m.
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/raster_values_at_pixel_coordinates.html b/howto/raster_values_at_pixel_coordinates.html
index a165bce6..744c21ff 100644
--- a/howto/raster_values_at_pixel_coordinates.html
+++ b/howto/raster_values_at_pixel_coordinates.html
@@ -1,115 +1,49 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Get raster values at pixel coordinates</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Get raster values at pixel coordinates</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Get raster values at pixel coordinates</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Get raster values at pixel coordinates</p>
<p>This example fetches values at given pixel coordinates in a raster.
This example assumes a preloaded three-dimensional raster.
For the loading part,
-see <a href="read_netcdf.html">read from a netCDF file</a>
-or <a href="read_geotiff.html">read from a GeoTIFF file</a>
+see <a href="../howto/read_netcdf.html">read from a netCDF file</a>
+or <a href="../howto/read_geotiff.html">read from a GeoTIFF file</a>
code examples.</p>
<p>Some file formats store values as integers for compactness reasons,
but provide a <em>transfer function</em> for converting those integers to “real world” values.
@@ -138,59 +72,59 @@ and is also convenient for working on an area of interest regardless the grid co
</table>
<h1 id="code-example">Code example</h1>
<p>The pixel coordinates 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.awt.Point</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.RenderedImage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">javax.measure.Unit</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridExtent</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.image.PixelIterator</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.measure.Units</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">RasterValuesAtPixelCoordinates</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.awt.Point</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.RenderedImage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">javax.measure.Unit</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridExtent</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.image.PixelIterator</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.measure.Units</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">RasterValuesAtPixelCoordinates</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> */</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="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverage</span> <span class="n">data</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Switch to a view of the data in the units of measurement.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Then get the unit of measurement of the first band (0).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If no unit is specified, fallback on dimensionless unit.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">forConvertedValues</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="kt">int</span> <span class="n">band</span> <span class="o">=</span> <span class="n">0</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Unit</span><span class="o"><?></span> <span class="n">unit</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">getSampleDimensions</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="n">band</span><span class="o">).</span><span class="na">getUnits</span><span class="o">().</span><span class="na">orElse</span><span clas [...]
-</span></span><span class="line"><span class="cl"> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">forConvertedValues</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">band</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">0</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Unit</span><span class="o"><?></span><span class="w"> </span><span class="n">unit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getSampleDimensions</span><span class="p">().</span><span class="na">get</span><span class="p">(</span><span class="n">band</span><span class="p">).</span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If the data are three-dimensional, we need to specify a two-dimensional slice
</span></span></span><span class="line"><span class="cl"><span class="cm"> * for the `RenderedImage`. Following code arbitrarily takes the first slice.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridExtent</span> <span class="n">extent</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</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">format</span><span class="o">(</span><span class="s">"Grid extent:%n%s%n"</span><span class="o">,</span> <span class="n">extent</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">extent</span><span class="o">.</span><span class="na">getDimension</span><span class="o">()</span> <span class="o">></span> <span class="n">2</span><span class="o">)</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="kt">long</span> <span class="n">first</span> <span class="o">=</span> <span class="n">extent</span><span class="o">.</span><span class="na">getLow</span><span class="o">(</span><span class="n">2</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">extent</span> <span class="o">=</span> <span class="n">extent</span><span class="o">.</span><span class="na">withRange</span><span class="o">(</span><span class="n">2</span><span class="o">,</span> <span class="n">first</span><span class="o">,</span> <span class="n">first</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">RenderedImage</span> <span class="n">image</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">render</span><span class="o">(</span><span class="n">extent</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridExtent</span><span class="w"> </span><span class="n">extent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span class="na">getExtent</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">format</span><span class="p">(</span><span class="s">"Grid extent:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">extent</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">extent</span><span class="p">.</span><span class="na">getDimension</span><span class="p">()</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">first</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">extent</span><span class="p">.</span><span class="na">getLow</span><span class="p">(</span><span class="n">2</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">extent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">extent</span><span class="p">.</span><span class="na">withRange</span><span class="p">(</span><span class="n">2</span><span class="p">,</span><span class="w"> </span><span class="n">first</span><span class="p">,</span><span class="w"> </span><span class="n">first</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">RenderedImage</span><span class="w"> </span><span class="n">image</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">render</span><span class="p">(</span><span class="n">extent</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Prints the value at a few positions. For avoiding to flood the output stream,
</span></span></span><span class="line"><span class="cl"><span class="cm"> * this example prints a value only for the 3 first pixel, then an arbitrary pixel.
-</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">n</span> <span class="o">=</span> <span class="n">3</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"> <span class="n">PixelIterator</span> <span class="n">pit</span> <span class="o">=</span> <span class="n">PixelIterator</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">image</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="k">while</span> <span class="o">(</span><span class="n">pit</span><span class="o">.</span><span class="na">next</span><span class="o">())</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Point</span> <span class="n">pos</span> <span class="o">=</span> <span class="n">pit</span><span class="o">.</span><span class="na">getPosition</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="kt">float</span> <span class="n">value</span> <span class="o">=</span> <span class="n">pit</span><span class="o">.</span><span class="na">getSampleFloat</span><span class="o">(</span><span class="n">band</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">printf</span><span class="o">(</span><span class="s">"Value at (%d,%d) is %g %s.%n"</span><span class="o">,</span> <span class="n">pos</span><span class="o">.</span><span class="na">x</span><span class="o">,</span> <span class="n">pos</span><span class="o">.</span><span class="na">y</span><span class [...]
-</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">(--</span><span class="n">n</span> <span class="o">==</span> <span class="n">0</span><span class="o">)</span> <span class="k">break</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">pit</span><span class="o">.</span><span class="na">moveTo</span><span class="o">(</span><span class="n">100</span><span class="o">,</span> <span class="n">200</span><span class="o">);</span> <span class="c1">// Relative to `extent` low coordinates.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="kt">float</span> <span class="n">value</span> <span class="o">=</span> <span class="n">pit</span><span class="o">.</span><span class="na">getSampleFloat</span><span class="o">(</span><span class="n">band</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">printf</span><span class="o">(</span><span class="s">"Value at (100,200) is %g %s.%n"</span><span class="o">,</span> <span class="n">value</span><span class="o">,</span> <span class="n">unit</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">3</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">PixelIterator</span><span class="w"> </span><span class="n">pit</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">PixelIterator</span><span class="p">.</span><span class="na">create</span><span class="p">(</span><span class="n">image</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">pit</span><span class="p">.</span><span class="na">next</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="n">pos</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pit</span><span class="p">.</span><span class="na">getPosition</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pit</span><span class="p">.</span><span class="na">getSampleFloat</span><span class="p">(</span><span class="n">band</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Value at (%d,%d) is %g %s.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">.</span><span class="na">x</span><span class="p">,</span><span class="w"> </span><span clas [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">--</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">0</span><span class="p">)</span><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">pit</span><span class="p">.</span><span class="na">moveTo</span><span class="p">(</span><span class="n">100</span><span class="p">,</span><span class="w"> </span><span class="n">200</span><span class="p">);</span><span class="w"> </span><span class="c1">// Relative to `extent` low coordinates.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pit</span><span class="p">.</span><span class="na">getSampleFloat</span><span class="p">(</span><span class="n">band</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Value at (100,200) is %g %s.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="p">);</span><span c [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the raster data and the locale.
Below is an example:</p>
<pre tabindex="0"><code>Grid extent:
@@ -204,22 +138,16 @@ Value at (2,0) is NaN m.
Value at (100,200) is 0.586000 m.
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/rasters_bigger_than_memory.html b/howto/rasters_bigger_than_memory.html
index 1f816ca0..a1ab503d 100644
--- a/howto/rasters_bigger_than_memory.html
+++ b/howto/rasters_bigger_than_memory.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Handle rasters bigger than memory</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Handle rasters bigger than memory</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Handle rasters bigger than memory</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Handle rasters bigger than memory</p>
<p>This example opens a big GeoTIFF file without reading the tiles immediately.
Instead, tiles will be read only when requested by a call to the Java2D <code>RenderedImage.getTile(int, int)</code> method.
@@ -111,14 +45,14 @@ Loaded tiles are cached by soft references, i.e. they may be discarted and reloa
This approach allows processing of raster data larger than memory,
provided that the application does not request all tiles at once.
It integrates well with operations provided by Apache <abbr title="Spatial Information System">SIS</abbr> such as
-<a href="resample_raster.html">raster resampling</a> and
-<a href="raster_values_at_geographic_coordinates.html">getting values at geographic coordinates</a>.</p>
+<a href="../howto/resample_raster.html">raster resampling</a> and
+<a href="../howto/raster_values_at_geographic_coordinates.html">getting values at geographic coordinates</a>.</p>
<p>The approach demonstrated in this example has one drawback compared to the default behavior:
the <code>DataStore</code> must be kept open during all the time that the <code>GridCoverage</code> is used.
Consequently the <code>data</code> variable should not be used outside the <code>try</code> block in this example.</p>
<p>The example in this page works with pixel coordinates.
For working with geographic coordinates, see
-<a href="raster_values_at_geographic_coordinates.html">values at geographic coordinates</a> code example.</p>
+<a href="../howto/raster_values_at_geographic_coordinates.html">values at geographic coordinates</a> code example.</p>
<h1 id="direct-dependencies">Direct dependencies</h1>
<table>
<thead>
@@ -145,80 +79,80 @@ For working with geographic coordinates, see
depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</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.io.File</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.util.Collection</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.Rectangle</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.Raster</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.RenderedImage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.ImagingOpException</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.image.ImageProcessor</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 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.storage.GridCoverageResource</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.RasterLoadingStrategy</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</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">RasterBiggerThanMemory</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Collection</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Rectangle</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.Raster</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.RenderedImage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.ImagingOpException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.image.ImageProcessor</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Resource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Aggregate</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.GridCoverageResource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.RasterLoadingStrategy</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">RasterBiggerThanMemory</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 raster.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @throws ImagingOpException unchecked exception thrown if an error occurred while loading a tile.
-</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></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">"TM250m.tiff"</span><span class="o">)))</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Collection</span><span class="o"><?</span> <span class="kd">extends</span> <span class="n">Resource</span><span class="o">></span> <span class="n">allImages</span> <span class="o">=</span> <span class="o">((</span><span class="n">Aggregate</span><span class="o">)</span> <span class="n">store</span><span class="o">).</span><span class="na">components</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverageResource</span> <span class="n">firstImage</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">allImages</span><span class="o">.</span><span class="na">iterator</span><span class="o">().</span><span class="na">next</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Collection</span><span class="o"><?</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Resource</span><span class="o">></span><span class="w"> </span><span class="n">allImages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">((</span><span class="n">Aggregate</span><span class="p">) [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverageResource</span><span class="w"> </span><span class="n">firstImage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">allImages</span><span class="p">.</span><span class="na">iterator</span><span class="p">().</span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Following line requests to load data at `RenderedImage.getTile(…)` invocation time.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This is the key line of code for handling rasters larger than memory, but is effective
</span></span></span><span class="line"><span class="cl"><span class="cm"> * only if the file is tiled as in, for example, Cloud Optimized GeoTIFF (COG) convention.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Without this line, the default is to load all data at `GridCoverageResource.read(…)`
</span></span></span><span class="line"><span class="cl"><span class="cm"> * invocation time.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">firstImage</span><span class="o">.</span><span class="na">setLoadingStrategy</span><span class="o">(</span><span class="n">RasterLoadingStrategy</span><span class="o">.</span><span class="na">AT_GET_TILE_TIME</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverage</span> <span class="n">data</span> <span class="o">=</span> <span class="n">firstImage</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">printPixelValue</span><span class="o">(</span><span class="n">data</span><span class="o">,</span> <span class="kc">false</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">firstImage</span><span class="p">.</span><span class="na">setLoadingStrategy</span><span class="p">(</span><span class="n">RasterLoadingStrategy</span><span class="p">.</span><span class="na">AT_GET_TILE_TIME</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">firstImage</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">);</span><spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">printPixelValue</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Contrarily to other examples, the `GridCoverage` fetched in deferred reading mode
</span></span></span><span class="line"><span class="cl"><span class="cm"> * can NOT be used outside this `try` block, because the `DataStore` must be open.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</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></span><span class="line"><span class="cl"> <span class="cm">/**
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Prints the value of an arbitrary pixel.
</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 data the data from which to get sample values.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param prefetch whether to load some pixels in advance.
-</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">printPixelValue</span><span class="o">(</span><span class="n">GridCoverage</span> <span class="n">data</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">prefetch</span><span class="o">)</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">RenderedImage</span> <span class="n">image</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="na">render</span><span class="o">(</span><span class="kc">null</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">printf</span><span class="o">(</span><span class="s">"The image has %d × %d tiles.%n"</span><span class="o">,</span> <span class="n">image</span><span class="o">.</span><span class="na">getNumXTiles</span><span class="o">(),</span> <span class="n">image</span><span class="o">.</span><span class="na">getN [...]
-</span></span><span class="line"><span class="cl"> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printPixelValue</span><span class="p">(</span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </ [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">RenderedImage</span><span class="w"> </span><span class="n">image</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">render</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"The image has %d × %d tiles.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">image</span><span class="p">.</span><span class="na">getNumXTiles</span><span class="p">(),</span><span class="w"> </sp [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * If we know in advance which tiles will be requested, specifying them in advance allows
</span></span></span><span class="line"><span class="cl"><span class="cm"> * the GeoTIFF reader to use a better strategy than loading the tiles in random order.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This step is optional.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="o">(</span><span class="n">prefetch</span><span class="o">)</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ImageProcessor</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">image</span> <span class="o">=</span> <span class="n">processor</span><span class="o">.</span><span class="na">prefetch</span><span class="o">(</span><span class="n">image</span><span class="o">,</span> <span class="k">new</span> <span class="n">Rectangle</span><span class="o">(</span><span class="n">90000</span><span class="o">,</span> <span class="n">50000</span><span class="o">,</span> <span class="n">1000</ [...]
-</span></span><span class="line"><span class="cl"> <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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefetch</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">processor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ImageProcessor</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">image</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">processor</span><span class="p">.</span><span class="na">prefetch</span><span class="p">(</span><span class="n">image</span><span class="p">,</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Get an arbitrary tile, then get an arbitrary sample value in an arbitrary band (the blue channel).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This example handles the tiles directly for demonstration purposes, but it could be simplified
</span></span></span><span class="line"><span class="cl"><span class="cm"> * by using `PixelIterator` instead.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Raster</span> <span class="n">tile</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="na">getTile</span><span class="o">(</span><span class="n">130</span><span class="o">,</span> <span class="n">80</span><span class="o">);</span> <span class="c1">// This is where tile loading actually happen.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Got a tile starting at coordinates %d, %d.%n"</span><span class="o">,</span> <span class="n">tile</span><span class="o">.</span><span class="na">getMinX</span><span class="o">(),</span> <span class="n">tile</span><span c [...]
-</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">printf</span><span class="o">(</span><span class="s">"A sample value in the arbitrary tile: %d%n"</span><span class="o">,</span> <span class="n">tile</span><span class="o">.</span><span class="na">getSample</span><span class="o">(</span><span class="n">93710</span><span class="o">,</span> <span class="n" [...]
-</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Raster</span><span class="w"> </span><span class="n">tile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">image</span><span class="p">.</span><span class="na">getTile</span><span class="p">(</span><span class="n">130</span><span class="p">,</span><span class="w"> </span><span class="n">80</span><span class="p">);</span><span class="w"> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Got a tile starting at coordinates %d, %d.%n"</span><span class="p">,</span><span class="w"> </span><span class="n">tile</span><span class="p">.</span><span class="na">getMinX</span><span class="p">(),</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"A sample value in the arbitrary tile: %d%n"</span><span class="p">,</span><span class="w"> </span><span class="n">tile</span><span class="p">.</span><span class="na">getSample</span><span class="p">(</span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the raster data and the locale.
Below is an example:</p>
<pre tabindex="0"><code>The image has 240 × 120 tiles.
@@ -231,22 +165,16 @@ but instead was deferred at <code>image.getTile(…)</code> or <code>processor.p
<pre tabindex="0"><code>FINE [GridCoverageResource] Loaded grid coverage between 90°S – 90°N and 180°W – 180°E from file “TM250m.tiff” in 0.779 seconds.
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/read_geotiff.html b/howto/read_geotiff.html
index b9248887..81e72619 100644
--- a/howto/read_geotiff.html
+++ b/howto/read_geotiff.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Read raster from a GeoTIFF 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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Read raster from a GeoTIFF file</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Read raster from a GeoTIFF file</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Read raster from a GeoTIFF file</p>
<p>This example reads data in GeoTIFF format.
Contrarily to other formats such as PNG or JPEG,
@@ -112,7 +46,7 @@ For this reason, <code>GeoTiffStore</code> does not implement directly <code>Gri
Instead, <code>GeoTiffStore</code> implements the <code>Aggregate</code> interface.</p>
<p>This example assumes that the raster, optionally clipped to a subregion, can fit in memory.
For potentially much bigger rasters,
-see <a href="rasters_bigger_than_memory.html">rasters bigger than memory</a> code example.</p>
+see <a href="../howto/rasters_bigger_than_memory.html">rasters bigger than memory</a> code example.</p>
<h1 id="direct-dependencies">Direct dependencies</h1>
<table>
<thead>
@@ -139,75 +73,75 @@ see <a href="rasters_bigger_than_memory.html">rasters bigger than memory</a> cod
depending how the Coordinate Reference System (CRS) is encoded in the GeoTIFF file.</p>
<h1 id="code-example">Code example</h1>
<p>The file name and geospatial coordinates 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">java.util.Collection</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">java.awt.image.ImagingOpException</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 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.storage.GridCoverageResource</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridGeometry</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.referencing.CommonCRS</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">ReadGeoTIFF</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Collection</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.ImagingOpException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Resource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Aggregate</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.GridCoverageResource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridGeometry</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.GeneralEnvelope</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ReadGeoTIFF</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 raster.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @throws ImagingOpException unchecked exception thrown if an error occurred while loading a tile.
-</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></span><span class="line"><span class="cl"> <span class="n">example</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">example</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Reads an example file and prints some information about it.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @return the raster data.
</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">public</span> <span class="kd">static</span> <span class="n">GridCoverage</span> <span class="nf">example</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="n">GridCoverage</span> <span class="n">data</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">"Aéroport.tiff"</span><span class="o">)))</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="nf">example</span><span class="p">()</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">DataStoreException</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This data store is an aggregate because a GeoTIFF file may contain many images.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Not all data stores are aggregate, so the following casts do not apply to all.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * For this example, we know that the file is GeoTIFF and we take the first image.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Collection</span><span class="o"><?</span> <span class="kd">extends</span> <span class="n">Resource</span><span class="o">></span> <span class="n">allImages</span> <span class="o">=</span> <span class="o">((</span><span class="n">Aggregate</span><span class="o">)</span> <span class="n">store</span><span class="o">).</span><span class="na">components</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverageResource</span> <span class="n">firstImage</span> <span class="o">=</span> <span class="o">(</span><span class="n">GridCoverageResource</span><span class="o">)</span> <span class="n">allImages</span><span class="o">.</span><span class="na">iterator</span><span class="o">().</span><span class="na">next</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Collection</span><span class="o"><?</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Resource</span><span class="o">></span><span class="w"> </span><span class="n">allImages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">((</span><span class="n">Aggregate</span><span class="p">) [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverageResource</span><span class="w"> </span><span class="n">firstImage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">GridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">allImages</span><span class="p">.</span><span class="na">iterator</span><span class="p">().</span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Read the resource immediately and fully.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">firstImage</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="kc">null</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">printf</span><span class="o">(</span><span class="s">"Information about the selected image:%n%s%n"</span><span class="o">,</span> <span class="n">data</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">firstImage</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the selected image:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Read only a subset of the resource. The Area Of Interest can be specified
</span></span></span><span class="line"><span class="cl"><span class="cm"> * in any Coordinate Reference System (CRS). The envelope will be transformed
</span></span></span><span class="line"><span class="cl"><span class="cm"> * automatically to the CRS of the data (the data are not transformed).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This example uses Universal Transverse Mercator (UTM) zone 31 North.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">areaOfInterest</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GeneralEnvelope</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">49</span><span class="o">,</span> <span class="n">2</span><span class [...]
-</span></span><span class="line"><span class="cl"> <span class="n">areaOfInterest</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">46600</span><span class="o">,</span> <span class="n">467000</span><span class="o">);</span> <span class="c1">// Minimal and maximal easting values (metres)
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">areaOfInterest</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="n">5427000</span><span class="o">,</span> <span class="n">5428000</span><span class="o">);</span> <span class="c1">// Minimal and maximal northing values (metres).
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">data</span> <span class="o">=</span> <span class="n">firstImage</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="k">new</span> <span class="n">GridGeometry</span><span class="o">(</span><span class="n">areaOfInterest</span><span class="o">),</span> <span class="kc">null</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">printf</span><span class="o">(</span><span class="s">"Information about the resource subset:%n%s%n"</span><span class="o">,</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</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="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">areaOfInterest</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="p">(</span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">un [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">areaOfInterest</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">0</span><span class="p">,</span><span class="w"> </span><span class="n">46600</span><span class="p">,</span><span class="w"> </span><span class="n">467000</span><span class="p">);</span><span class="w"> </span><span class="c1">// Minimal and maximal easting [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">areaOfInterest</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">1</span><span class="p">,</span><span class="w"> </span><span class="n">5427000</span><span class="p">,</span><span class="w"> </span><span class="n">5428000</span><span class="p">);</span><span class="w"> </span><span class="c1">// Minimal and maximal northing [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">firstImage</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">GridGeometry</span><span class="p">(</span><span class="n">areaOfInterest</span><span class="p">),</span><span class="w"> </sp [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the resource subset:%n%s%n"</span><span class="p">,</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span class="na">getExtent</span><span class="p">());</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * By default, it is possible to continue to use the `GridCoverage` (but not the `Resource`) after
</span></span></span><span class="line"><span class="cl"><span class="cm"> * the `DataStore` has been closed because data are in memory. Note that it would not be the case
</span></span></span><span class="line"><span class="cl"><span class="cm"> * if deferred data loading was enabled has shown in "Handle rasters bigger than memory" example.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">data</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">data</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>If logging at fine level is enabled, the logs should contain some entries like below.
The “Slowness” level is an Apache SIS custom level for operations taking more than an arbitrary time limit.</p>
<pre tabindex="0"><code>Slowness [GridCoverageResource] Loaded grid coverage between 48°59′N – 49°02′N and 2°31′E – 2°35′E from file “Aéroport.tiff” in 1.249 seconds.
@@ -245,22 +179,16 @@ Column: [ 0 … 4145] (4146 cells)
Row: [3968 … 6655] (2688 cells)
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/read_netcdf.html b/howto/read_netcdf.html
index 1670e545..005ba3e1 100644
--- a/howto/read_netcdf.html
+++ b/howto/read_netcdf.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Read raster from a netCDF 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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Read raster from a netCDF file</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Read raster from a netCDF file</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Read raster from a netCDF file</p>
<p>This example reads data in netCDF format.
Contrarily to other formats such as PNG or JPEG,
@@ -140,95 +74,95 @@ The variables may be instances of <code>GridCoverageResource</code>, but not nec
<h1 id="code-example">Code example</h1>
<p>The file name, resource name and geographic coordinates
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.Resource</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.storage.GridCoverageResource</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridGeometry</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.referencing.CommonCRS</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">ReadNetCDF</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Resource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.Aggregate</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.GridCoverageResource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridGeometry</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.GeneralEnvelope</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ReadNetCDF</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 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">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="n">example</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">example</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Reads an example file and prints some information about it.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @return the raster data.
</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">public</span> <span class="kd">static</span> <span class="n">GridCoverage</span> <span class="nf">example</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="n">GridCoverage</span> <span class="n">data</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">"CMEMS_20220516.nc"</span><span class="o">)))</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="nf">example</span><span class="p">()</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">DataStoreException</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">open</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * See what is inside this file. One of the components listed
</span></span></span><span class="line"><span class="cl"><span class="cm"> * below can be given in argument to `findResource(String)`.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * For this example we use a hard-coded variable name.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">printComponents</span><span class="o">(</span><span class="n">store</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">Resource</span> <span class="n">resource</span> <span class="o">=</span> <span class="n">store</span><span class="o">.</span><span class="na">findResource</span><span class="o">(</span><span class="s">"sea_surface_height_above_geoid"</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">resource</span> <span class="k">instanceof</span> <span class="n">GridCoverageResource</span> <span class="n">gridded</span><span class="o">)</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">printComponents</span><span class="p">(</span><span class="n">store</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Resource</span><span class="w"> </span><span class="n">resource</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">store</span><span class="p">.</span><span class="na">findResource</span><span class="p">(</span><span class="s">"sea_surface_height_above_geoid"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">resource</span><span class="w"> </span><span class="k">instanceof</span><span class="w"> </span><span class="n">GridCoverageResource</span><span class="w"> </span><span class="n">gridded</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Read the resource immediately and fully.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * `data` can be used outside the `try` block.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">gridded</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="kc">null</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">printf</span><span class="o">(</span><span class="s">"Information about the selected resource:%n%s%n"</span><span class="o">,</span> <span class="n">data</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gridded</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the selected resource:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Read only a subset of the resource. The Area Of Interest can be specified
</span></span></span><span class="line"><span class="cl"><span class="cm"> * in any Coordinate Reference System (CRS). The envelope will be transformed
</span></span></span><span class="line"><span class="cl"><span class="cm"> * automatically to the CRS of the data (the data are not transformed).
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">areaOfInterest</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GeneralEnvelope</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">areaOfInterest</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">30</span><span class="o">,</span> <span class="n">40</span><span class="o">);</span> <span class="c1">// Minimal and maximal latitude values.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">areaOfInterest</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">5</span><span class="o">,</span> <span class="n">4</span><span class="o">);</span> <span class="c1">// Minimal and maximal longitude values.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">data</span> <span class="o">=</span> <span class="n">gridded</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="k">new</span> <span class="n">GridGeometry</span><span class="o">(</span><span class="n">areaOfInterest</span><span class="o">),</span> <span class="kc">null</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">printf</span><span class="o">(</span><span class="s">"Information about the resource subset:%n%s%n"</span><span class="o">,</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span><span class="o">.</span><span class="na">getGridGeometry</span><span class="o">().</span><span class="na">getExtent</span><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>
-</span></span><span class="line"><span class="cl"> <span class="k">throw</span> <span class="k">new</span> <span class="n">DataStoreException</span><span class="o">(</span><span class="s">"Unexpected type of resource."</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="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">areaOfInterest</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="p">(</span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">areaOfInterest</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">0</span><span class="p">,</span><span class="w"> </span><span class="n">30</span><span class="p">,</span><span class="w"> </span><span class="n">40</span><span class="p">);</span><span class="w"> </span><span class="c1">// Minimal and maximal latitude values. [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">areaOfInterest</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">1</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">5</span><span class="p">,</span><span class="w"> </span><span class="n">4</span><span class="p">);</span><span class="w"> </span><span class="c1">// Minimal and m [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gridded</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">GridGeometry</span><span class="p">(</span><span class="n">areaOfInterest</span><span class="p">),</span><span class="w"> </s [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the resource subset:%n%s%n"</span><span class="p">,</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">().</span><span class="na">getExtent</span><span class="p">());</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DataStoreException</span><span class="p">(</span><span class="s">"Unexpected type of resource."</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * By default, it is possible to continue to use the `GridCoverage` (but not the `Resource`) after
</span></span></span><span class="line"><span class="cl"><span class="cm"> * the `DataStore` has been closed because data are in memory. Note that it would not be the case
</span></span></span><span class="line"><span class="cl"><span class="cm"> * if deferred data loading was enabled has shown in "Handle rasters bigger than memory" example.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">data</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">data</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Lists the components found in the given data store.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * They are the values that can be given to {@link DataStore#findResource(String).
</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 store the data store from which to get the components.
</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">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">"Components found in the data store:"</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">-></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>
-</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">"The data store is not an aggregate."</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">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></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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printComponents</span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="w"> </span><span class="k">instanceof</span><span class="w"> </span><span class="n">Aggregate</span><span class="w"> </span><span class="n">agg</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Components found in the data store:"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">Resource</span><span class="w"> </span><span class="n">component</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">agg</span><span class="p">.</span><span class="na">components</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">component</span><span class="p">.</span><span class="na">getIdentifier</span><span class="p">().</span><span class="na">ifPresent</span><span class="p">((</span><span class="n">id</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"The data store is not an aggregate."</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>If logging at fine level is enabled, the logs should contain some entries like below.
The “Slowness” level is an Apache SIS custom level for operations taking more than an arbitrary time limit.</p>
<pre tabindex="0"><code>Slowness [GridCoverageResource] Loaded grid coverage between 25°N – 57°N and 19°W – 6°E from file “CMEMS.nc” in 1.03 seconds.
@@ -278,22 +212,16 @@ Row: [144 … 504] (361 cellules)
Time: [ 0 … 95] (96 cellules)
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/resample_raster.html b/howto/resample_raster.html
index 598b2cb3..f3701f7d 100644
--- a/howto/resample_raster.html
+++ b/howto/resample_raster.html
@@ -1,115 +1,49 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Resample a raster</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Resample a raster</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Resample a raster</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Resample a raster</p>
<p>This example reprojects a raster to a different Coordinate Reference System (CRS).
This example assumes a preloaded two-dimensional raster.
For the loading part,
-see <a href="read_netcdf.html">read from a netCDF file</a>
-or <a href="read_geotiff.html">read from a GeoTIFF file</a>
+see <a href="../howto/read_netcdf.html">read from a netCDF file</a>
+or <a href="../howto/read_geotiff.html">read from a GeoTIFF file</a>
code examples.</p>
<h1 id="direct-dependencies">Direct dependencies</h1>
<table>
@@ -139,36 +73,36 @@ But it would also be possible to specify a CRS without EPSG code,
for example using Well Known Text (WKT) format.</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">org.apache.sis.coverage.grid.GridCoverage</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverageProcessor</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.image.Interpolation</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.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></span><span class="line"><span class="cl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ResampleRaster</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverageProcessor</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.image.Interpolation</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.TransformException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ResampleRaster</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 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">GridCoverage</span> <span class="n">data</span> <span class="o">=</span> <span class="o">...;</span> <span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Information about the selected image:%n%s%n"</span><span class="o">,</span> <span class="n">data</span><span class="o">.</span><span class="na">getGridGeometry</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span><span class="w"> </span><span class="c1">// See "Read netCDF" or "Read GeoTIFF" code examples.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the selected image:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">());</span><span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Reproject to "WGS 84 / World Mercator" (EPSG::3395) using bilinear interpolation.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This example lets Apache SIS choose the output grid size and resolution.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * But it is possible to specify those aspects if desired.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GridCoverageProcessor</span><span class="o">();</span>
-</span></span><span class="line"><span class="cl"> <span class="n">processor</span><span class="o">.</span><span class="na">setInterpolation</span><span class="o">(</span><span class="n">Interpolation</span><span class="o">.</span><span class="na">BILINEAR</span><span class="o">);</span>
-</span></span><span class="line"><span class="cl"> <span class="n">data</span> <span class="o">=</span> <span class="n">processor</span><span class="o">.</span><span class="na">resample</span><span class="o">(</span><span class="n">data</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">"EPSG::3395"</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">printf</span><span class="o">(</span><span class="s">"Information about the image after reprojection:%n%s%n"</span><span class="o">,</span> <span class="n">data</span><span class="o">.</span><span class="na">getGridGeometry</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">processor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GridCoverageProcessor</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">processor</span><span class="p">.</span><span class="na">setInterpolation</span><span class="p">(</span><span class="n">Interpolation</span><span class="p">.</span><span class="na">BILINEAR</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">processor</span><span class="p">.</span><span class="na">resample</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">forCode</span><span class="p">(</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">"Information about the image after reprojection:%n%s%n"</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="na">getGridGeometry</span><span class="p">());</ [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>The output depends on the raster data and the locale.
Below is an example:</p>
<pre tabindex="0"><code>Information about the image after reprojection:
@@ -212,22 +146,16 @@ GridGeometry
└ ┘
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/transform_coordinates.html b/howto/transform_coordinates.html
index 8a49fed6..f259f862 100644
--- a/howto/transform_coordinates.html
+++ b/howto/transform_coordinates.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Transform coordinates</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Transform coordinates</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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 coordinates</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Transform coordinates</p>
<p>The following Java code projects geographic coordinates from the <em>World Geodetic System 1984</em> (WGS84) to <em>WGS 84 / UTM zone 33N</em>.
In order to make the example a little bit simpler, this code uses predefined constants given by the <code>CommonCRS</code> convenience class.
@@ -139,43 +73,43 @@ may be different depending on whether the EPSG dataset is present or not.
In general, results are more accurate and/or more reliable in presence of EPSG dataset.</p>
<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.DirectPosition</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.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">TransformCoordinates</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">org.opengis.geometry.DirectPosition</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.CoordinateOperation</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.TransformException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.DirectPosition2D</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">TransformCoordinates</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 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">40</span><span class="o">,</span> <span class="n">14</span><span class="o">);</span> <span class="c1">// UTM zone for 40°N 14°E.
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">CoordinateOperation</span> <span class="n">operation</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 class="kc">null</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">sourceCRS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geographic</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">targetCRS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">universal</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateOperation</span><span class="w"> </span><span class="n">operation</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">findOperation</span><span class="p">(</span><span class="n">sourceCRS</span><span class="p">,</span><span class="w"> </span><span class="n">targetCRS</span><span class [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * The above lines are costly and should be performed only once before to project many points.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * In this example, the operation that we got is valid for coordinates in geographic area from
</span></span></span><span class="line"><span class="cl"><span class="cm"> * 12°E to 18°E (UTM zone 33) and 0°N to 84°N.
-</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">"Domain of validity:"</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">CRS</span><span class="o">.</span><span class="na">getGeographicBoundingBox</span><span class="o">(</span><span class="n">operation</span><span class="o">));</span>
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> <span class="n">DirectPosition</span> <span class="n">ptSrc</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DirectPosition2D</span><span class="o">(</span><span class="n">40</span><span class="o">,</span> <span class="n">14</span><span class="o">);</span> <span class="c1">// 40°N 14°E
-</span></span></span><span class="line"><span class="cl"><span class="c1"></span> <span class="n">DirectPosition</span> <span class="n">ptDst</span> <span class="o">=</span> <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">ptSrc</span><span class="o">,</span> <span class="kc">null</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">"Source: "</span> <span class="o">+</span> <span class="n">ptSrc</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">"Target: "</span> <span class="o">+</span> <span class="n">ptDst</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Domain of validity:"</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">CRS</span><span class="p">.</span><span class="na">getGeographicBoundingBox</span><span class="p">(</span><span class="n">operation</span><span class="p">));</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">DirectPosition</span><span class="w"> </span><span class="n">ptSrc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DirectPosition2D</span><span class="p">(</span><span class="n">40</span><span class="p">,</span><span class="w"> </span><span class="n">14</span><span class="p">);</span><span c [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">DirectPosition</span><span class="w"> </span><span class="n">ptDst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">operation</span><span class="p">.</span><span class="na">getMathTransform</span><span class="p">().</span><span class="na">transform</span><span class="p">(</span><span class="n">ptSrc</span><span class="p">,</span><span class= [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Source: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">ptSrc</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Target: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">ptDst</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div><h1 id="output">Output</h1>
<p>Note: for some pairs of Coordinate Reference Systems,
the output may vary depending on whether the <a href="../epsg.html">EPSG geodetic dataset</a> is present or not.</p>
<pre tabindex="0"><code>Domain of validity:
@@ -189,22 +123,16 @@ Source: POINT(40 14)
Target: POINT(414639.5381572213 4428236.064633072)
</code></pre>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/transform_envelopes.html b/howto/transform_envelopes.html
index 427bf61c..1bb43b23 100644
--- a/howto/transform_envelopes.html
+++ b/howto/transform_envelopes.html
@@ -1,109 +1,43 @@
<!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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Transform envelopes (bounding boxes)</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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>
+ </nav>
+ <div class="main-content">
+ <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.
@@ -133,44 +67,44 @@ the same Apache <abbr title="Spatial Information System">SIS</abbr> methods can
</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">/**
+<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="w"> </span><span class="nn">org.opengis.geometry.Envelope</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.crs.CoordinateReferenceSystem</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.CoordinateOperation</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.referencing.operation.TransformException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.opengis.util.FactoryException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.referencing.CommonCRS</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.Envelopes</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.GeneralEnvelope</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.geometry.DirectPosition2D</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">TransformEnvelopes</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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">"Source: "</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">"Result: "</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">"Corners: "</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">"Errors on Y axis: "</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"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">sourceCRS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">geographic</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">CoordinateReferenceSystem</span><span class="w"> </span><span class="n">targetCRS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CommonCRS</span><span class="p">.</span><span class="na">WGS84</span><span class="p">.</span><span class="na">universal</span><span class="p">(</span><span class="n">90</span><span class="p">,</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="w"> </span><span class="n">bbox</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="p">(</span><span class="n">sourceCRS</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">0</span><span class="p">,</span><span class="w"> </span><span class="n">84</span><span class="p">,</span><span class="w"> </span><span class="n">88</span><span class="p">);</span><span class="w"> </span><span class="c1">// Latitudes.</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">1</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">20</span><span class="p">,</span><span class="w"> </span><span class="n">50</span><span class="p">);</span><span class="w"> </span><span class="c1">// Longitudes.</span><spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Envelope</span><span class="w"> </span><span class="n">transformed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Envelopes</span><span class="p">.</span><span class="na">transform</span><span class="p">(</span><span class="n">bbox</span><span class="p">,</span><span class="w"> </span><span class="n">targetCRS</span><span class="p">);</spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">Envelope</span><span class="w"> </span><span class="n">corners</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">transformCorners</span><span class="p">(</span><span class="n">bbox</span><span class="p">,</span><span class="w"> </span><span class="n">CRS</span><span class="p">.</span><span class="na">findOperation</span><span class="p">(</spa [...]
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Source: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">bbox</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Result: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">transformed</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Corners: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">corners</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Errors on Y axis: "</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">(</span><span class="n">corners</span><span class="p">.</span><span class="na">getMinimum</span><span class="p">(</span><span class="n">1</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">transformed</span><span class="p">.</span><span class="na">getMinimum</span> [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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"> *
@@ -178,48 +112,42 @@ the same Apache <abbr title="Spatial Information System">SIS</abbr> methods can
</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 cannot 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"><</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"><</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>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">Envelope</span><span class="w"> </span><span class="nf">transformCorners</span><span class="p">(</span><span class="n">Envelope</span><span class="w"> </span><span class="n">bbox</span><span class="p">,</span><span class="w"> </span><span class="n">CoordinateOperation</span><span cl [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">double</span><span class="o">[]</span><span class="w"> </span><span class="n">corners</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMinimum</span><span class="p">(</span><span class="n">0</span><span class="p">),</span><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMinimum</span><span class="p">(</span><span class="n">1</span><span class="p">),</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMaximum</span><span class="p">(</span><span class="n">0</span><span class="p">),</span><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMinimum</span><span class="p">(</span><span class="n">1</span><span class="p">),</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMaximum</span><span class="p">(</span><span class="n">0</span><span class="p">),</span><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMaximum</span><span class="p">(</span><span class="n">1</span><span class="p">),</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMinimum</span><span class="p">(</span><span class="n">0</span><span class="p">),</span><span class="w"> </span><span class="n">bbox</span><span class="p">.</span><span class="na">getMaximum</span><span class="p">(</span><span class="n">1</span><span class="p">)</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">};</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">operation</span><span class="p">.</span><span class="na">getMathTransform</span><span class="p">().</span><span class="na">transform</span><span class="p">(</span><span class="n">corners</span><span class="p">,</span><span class="w"> </span><span class="n">0</span><span class="p">,</span><span class="w"> </span><span class="n">corners</span><span class="p">,</span><span class="w"> </sp [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GeneralEnvelope</span><span class="p">(</span><span class="n">operation</span><span class="p">.</span><span class="na">getTargetCRS</span><span class="p">());</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="o">=</span><span class="n">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o"><</span><span class="n">result</span><span class="p">.</span><span class="na">getDimension</span><span class="p">(); [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">result</span><span class="p">.</span><span class="na">setRange</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="p">,</span><span class="w"> </span><span class="n">corners</span><span class="o">[</span><span class="n" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="o">=</span><span class="n">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o"><</span><span class="n">corners</span><span class="p">.</span><span class="na">length</span><span class="p">;)</span [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">result</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">DirectPosition2D</span><span class="p">(</span><span class="n">corners</span><span class="o">[</span><span class="n">i</span><span class="o">++]</span><span class="p">,</span><span class="w"> </span><span class="n">corners</span>< [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</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 © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/howto/write_raster.html b/howto/write_raster.html
index 4727e573..e5a9639e 100644
--- a/howto/write_raster.html
+++ b/howto/write_raster.html
@@ -1,115 +1,49 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Write a raster to a 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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="../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>
+ <head>
+ <title>Apache SIS - Write a raster to a file</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="../sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="../syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="../index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="../index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="../about.html">About</a></li>
+ <li><a class="nav-link inactive " href="../downloads.html">Downloads</a></li>
+ <li><a class="nav-link active " href="../howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="../standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="../formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="../epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="../javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="../documentation.html">Documentation</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">Write a raster to a file</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="../images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Write a raster to a file</p>
<p>This example saves a raster in PNG format together with its WorldFile PRJ and PGW auxiliary files.
This example assumes a preloaded raster.
For the loading part,
-see <a href="read_netcdf.html">read from a netCDF file</a>
-or <a href="read_geotiff.html">read from a GeoTIFF file</a>
+see <a href="../howto/read_netcdf.html">read from a netCDF file</a>
+or <a href="../howto/read_geotiff.html">read from a GeoTIFF file</a>
code examples.</p>
<h1 id="direct-dependencies">Direct dependencies</h1>
<table>
@@ -130,56 +64,50 @@ code examples.</p>
</table>
<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.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.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.storage.WritableGridCoverageResource</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">org.apache.sis.coverage.grid.GridCoverage</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">WriteRaster</span> <span class="o">{</span>
-</span></span><span class="line"><span class="cl"> <span class="cm">/**
+<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="w"> </span><span class="nn">java.io.File</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStore</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStores</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.DataStoreException</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.storage.WritableGridCoverageResource</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nn">org.apache.sis.coverage.grid.GridCoverage</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">WriteRaster</span><span class="w"> </span><span class="p">{</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><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 or writing 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">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="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class=" [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * In this example we just read an existing grid coverage,
</span></span></span><span class="line"><span class="cl"><span class="cm"> * but it could be the result of some calculation instead.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * See "Read netCDF" or "Read GeoTIFF" code examples.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">GridCoverage</span> <span class="n">data</span> <span class="o">=</span> <span class="n">ReadGeoTIFF</span><span class="o">.</span><span class="na">example</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">openWritable</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="s">"output.png"</span><span class="o">),</span> <span class="s">"PNG"</s [...]
-</span></span><span class="line"><span class="cl"> <span class="cm">/*
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">GridCoverage</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ReadGeoTIFF</span><span class="p">.</span><span class="na">example</span><span class="p">();</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">(</span><span class="n">DataStore</span><span class="w"> </span><span class="n">store</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">DataStores</span><span class="p">.</span><span class="na">openWritable</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span c [...]
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm"> * In this example, we use the knowledge that PNG format can store only one image.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * So we can cast to `WritableGridCoverageResource`. If the format supported many
</span></span></span><span class="line"><span class="cl"><span class="cm"> * images (e.g. GeoTIFF), the store would rather be a `WritableAggregate`.
-</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
-</span></span><span class="line"><span class="cl"> <span class="n">var</span> <span class="n">writable</span> <span class="o">=</span> <span class="o">(</span><span class="n">WritableGridCoverageResource</span><span class="o">)</span> <span class="n">store</span><span class="o">;</span>
-</span></span><span class="line"><span class="cl"> <span class="n">writable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">data</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></code></pre></div>
+</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">writable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">WritableGridCoverageResource</span><span class="p">)</span><span class="w"> </span><span class="n">store</span><span class="p">;</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">writable</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="n">data</span><span class="p">);</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">}</span><span class="w">
+</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
+</span></span></span></code></pre></div>
-
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/index.html b/index.html
index 9c281607..89039cb9 100644
--- a/index.html
+++ b/index.html
@@ -1,114 +1,49 @@
<!DOCTYPE html>
<html lang="en">
-<head>
- <meta name="generator" content="Hugo 0.101.0" />
-
- <title>Apache SIS - The Apache SIS™ library</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <meta name="generator" content="Hugo 0.126.2">
+ <title>Apache SIS - The Apache SIS™ library</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link active " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 active " 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 text-white " 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">The Apache SIS™ library</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">The Apache SIS™ library</p>
<p>Apache Spatial Information System (SIS) is a free software, Java language library for developing geospatial applications.
SIS provides data structures for geographic features and associated metadata along with methods to manipulate those data structures.
-The library is an implementation of <a href="http://www.geoapi.org/">GeoAPI 3.0.2</a> interfaces and can be used for desktop or server applications.</p>
+The library is an implementation of <a href="https://www.geoapi.org/">GeoAPI 3.0.2</a> interfaces and can be used for desktop or server applications.
+The library is provided under <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2 license</a>.</p>
<p>The SIS metadata module enables the creation of metadata objects
which comply with the model of <abbr title="Open Geospatial Consortium">OGC</abbr>/<abbr title="International Organization for Standardization">ISO</abbr> international standards.
The SIS referencing module enables the construction of data structures for coordinate reference system definitions,
@@ -116,7 +51,7 @@ along with the associated operations which enable the transformation of coordina
The SIS storage modules provide a common approach to the reading and writing of metadata, features and coverages
applicable to simple imagery as to many dimensional data structures.
SIS provides processing functions such as multi-threaded rasters reprojection and isolines computation from raster data.
-The API and the data encodings follow <a href="standards.html">international standards</a> when available.</p>
+The API and the data encodings follow <a href="./standards.html">international standards</a> when available.</p>
<details>
<summary>
More information on international standards and features supported by Apache <abbr title="Spatial Information System">SIS</abbr>:
@@ -133,8 +68,8 @@ The API and the data encodings follow <a href="standards.html">international sta
</li>
<li>Feature formats:
<ul>
-<li>Read <a href="http://docs.opengeospatial.org/is/14-084r2/14-084r2.html">Moving Feature Comma Separated Values (CSV) encoding</a>.</li>
-<li>Read <a href="http://docs.opengeospatial.org/bp/16-114r3/16-114r3.html">Moving Feature netCDF encoding</a>.</li>
+<li>Read <a href="https://docs.opengeospatial.org/is/14-084r2/14-084r2.html">Moving Feature Comma Separated Values (CSV) encoding</a>.</li>
+<li>Read <a href="https://docs.opengeospatial.org/bp/16-114r3/16-114r3.html">Moving Feature netCDF encoding</a>.</li>
<li>Read/Write <abbr title="GPS Exchange Format">GPX</abbr> (a <abbr title="Extensible Markup Language">XML</abbr> schema for <abbr title="Global Positioning System">GPS</abbr> data).</li>
<li>Read <a href="https://www.ogc.org/standards/sfs">features from <abbr title="Structured Query Language">SQL</abbr> spatial databases</a> by analysing the database schema.</li>
</ul>
@@ -148,7 +83,7 @@ The API and the data encodings follow <a href="standards.html">international sta
</li>
<li>Units of measurement:
<ul>
-<li>Implementation of <a href="https://jcp.org/en/jsr/detail?id=363">JSR-363</a>
+<li>Implementation of <a href="https://jcp.org/en/jsr/detail?id=385">JSR-385</a>
with parsing, formating and unit conversion functionalities.</li>
<li>The same implementation is available as a <a href="https://unitsofmeasurement.github.io/seshat/">small standalone separated project</a>.</li>
</ul>
@@ -157,7 +92,7 @@ with parsing, formating and unit conversion functionalities.</li>
<ul>
<li>Read and write Well Known Text (WKT) version 1 and 2 (ISO 19162).</li>
<li>Read and write <a href="https://www.ogc.org/standards/gml">Geographic Markup Language</a> (GML) version 3.2 (ISO 19136).</li>
-<li>Use <a href="epsg.html">EPSG geodetic dataset</a> for geodetic definitions and for coordinate operations.
+<li>Use <a href="./epsg.html">EPSG geodetic dataset</a> for geodetic definitions and for coordinate operations.
<ul>
<li>More than 6000 <a href="tables/CoordinateReferenceSystems.html">supported coordinate reference systems</a>.</li>
<li>Mercator, Transverse Mercator, Lambert Conic Conformal, stereographic
@@ -181,39 +116,33 @@ and more <a href="tables/CoordinateOperationMethods.html">supported operation me
</li>
</ul>
</details>
-<h2 id="user">Using Apache SIS </h2>
+<h1 id="using">Using Apache SIS </h1>
<p>The latest SIS release is 1.4, released in October 2023,
-and can be <a href="downloads.html">downloaded</a> as a <code>zip</code> files or as Maven dependencies.
+and can be <a href="./downloads.html">downloaded</a> as a <code>zip</code> files or as Maven dependencies.
The EPSG geodetic dataset is optional for licensing reasons, but recommended.
-EPSG database installation is <a href="epsg.html">described in a separated page</a>.
+EPSG database installation is <a href="./epsg.html">described in a separated page</a>.
This Apache SIS version requires Java 11 or later and uses the Java Platform Module System (JPMS).
Consequently applications should declare SIS JAR files on their module-path rather than their class-path,
but a compatibility mechanism makes possible to nevertheless use SIS on the class-path.
Note that this class-path compatibility may be removed in future versions.</p>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> is a Java library for use by other applications.
Leveraging the full SIS capabilities or getting the best performance require that users write their own applications on top of SIS.
-The <a href="book/en/developer-guide.html">developer guide</a>, <a href="apidocs/index.html">online Javadoc</a> and <a href="code-patterns.html">recommended code patterns</a> page
+The <a href="book/en/developer-guide.html">developer guide</a>, <a href="apidocs/index.html">online Javadoc</a> and <a href="./code-patterns.html">recommended code patterns</a> page
provide instructions about developing with SIS.
-However a <a href="command-line.html">command-line tool</a> and a <a href="javafx.html">JavaFX application</a>
+However a <a href="./command-line.html">command-line tool</a> and a <a href="./javafx.html">JavaFX application</a>
are also provided for allowing users to experiment some SIS functionalities before writing code.</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/index.xml b/index.xml
index caffb6b9..710aab74 100644
--- a/index.xml
+++ b/index.xml
@@ -4,468 +4,351 @@
<title>The Apache SIS™ library on Apache SIS</title>
<link>https://sis.apache.org/</link>
<description>Recent content in The Apache SIS™ library on Apache SIS</description>
- <generator>Hugo -- gohugo.io</generator>
- <language>en</language><atom:link href="https://sis.apache.org/index.xml" rel="self" type="application/rss+xml" />
+ <generator>Hugo</generator>
+ <language>en</language>
+ <atom:link href="https://sis.apache.org/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>About SIS and ASF</title>
+ <link>https://sis.apache.org/about.html</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>https://sis.apache.org/about.html</guid>
+ <description>About Apache SIS:
Project Team Mailing Lists Licenses Privacy policy About the Apache Software Foundation:
The Foundation Donate Thanks Security Contribute:
Checkout Sources New Contributor Issue Tracker GitHub mirror Wiki </description>
+ </item>
+ <item>
+ <title>Add vertical and temporal axes to an horizontal CRS</title>
+ <link>https://sis.apache.org/howto/compound_crs.html</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>https://sis.apache.org/howto/compound_crs.html</guid>
+ <description>This example creates a 4-dimensional Coordinate Reference System (CRS) with an horizontal, a vertical and a temporal component. While it is possible to create a CompoundCRS programmatically, it is much easier to do that from authority codes when those codes exist. There is two syntaxes standardized by the Open Geospatial Consortium (OGC): One syntax using an identifier starting with http://www.opengis.net/def/crs-compound followed by the components in the query part of [...]
+ </item>
<item>
<title>Apache SIS downloads</title>
<link>https://sis.apache.org/downloads.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/downloads.html</guid>
- <description>Apache SIS 1.4 is now available. See the release notes for a list of changes since the previous version.
-Apache SIS releases are available under the Apache License, Version 2.0. See the NOTICE file contained in each release artifact for applicable copyright attribution notices.
-Download ZIP files Verify signatures Build from the sources Setting the module-path Download as Maven dependencies Include non-free resources Download ZIP files Apache SIS is distributed in the form of Java source code in a multi-modules Apache Maven project.</description>
+ <description>Apache SIS 1.4 is now available. See the release notes for a list of changes since the previous version.
Apache SIS releases are available under the Apache License, Version 2.0. See the NOTICE file contained in each release artifact for applicable copyright attribution notices.
Download ZIP files Verify signatures Build from the sources Setting the module-path Download as Maven dependencies Include non-free resources Download ZIP files Apache SIS is distributed [...]
</item>
-
<item>
<title>Apache SIS team</title>
<link>https://sis.apache.org/team-list.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/team-list.html</guid>
- <description>Project Management Committee (PMC) The Project Management Committee (PMC) is the group of people with formal oversight of the project.
-Adam Estrada Alexis Manin Andrew Hart Charitha Madusanka Gregory D. Reddin Johann Sorel Joseph F. White Marc Le Bihan Martin Desruisseaux Nga Thien Chung Olivier Nouguier Patrick O&rsquo;Leary Paul Michael Ramirez Peter Karich Ross Laidlaw Sean William McCleese Suresh Marru Travis Pinney Committers Committers are peoples with write access to the source code repository.</description>
+ <description>Project Management Committee (PMC) The Project Management Committee (PMC) is the group of people with formal oversight of the project.
Adam Estrada Alexis Manin Andrew Hart Charitha Madusanka Johann Sorel Joseph F. White Marc Le Bihan Martin Desruisseaux Nga Thien Chung Olivier Nouguier Peter Karich Ross Laidlaw Sean William McCleese Suresh Marru Committers Committers are peoples with write access to the source code repository. All PMC members are implicitly commit [...]
</item>
-
<item>
<title>Checkout source code</title>
<link>https://sis.apache.org/source.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/source.html</guid>
- <description>Apache SIS source code is maintained using Git version control, completed by optional data maintained using Subversion version control. Optional data include in particular the EPSG geodetic dataset, which is subject to licensing terms different than Apache ones. This page describes two ways to checkout Apache SIS source code:
-A basic checkout with only the main repository, the most stable branch, and no configuration requirement. A more advanced configuration for active SIS developments, using uncommitted (for now) API and including optional data for more extensive tests.</description>
+ <description>Apache SIS source code is maintained using Git version control, completed by optional data maintained using Subversion version control. Optional data include in particular the EPSG geodetic dataset, which is subject to licensing terms different than Apache ones. This page describes two ways to checkout Apache SIS source code:
A basic checkout with only the main repository, the most stable branch, and no configuration requirement. A more advanced configuration for a [...]
</item>
-
<item>
<title>Coding conventions</title>
<link>https://sis.apache.org/coding-conventions.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/coding-conventions.html</guid>
- <description>This page describes some coding conventions applied in Apache SIS development.
-License header Naming convention Internal packages Code formatting Import statements Spaces and line length Brackets Member declarations Exceptions to coding conventions Documentation formatting Javadoc annotations Where to use @since and @version tags HTML elements Paragraphs Javadoc CSS MathML elements License header All Java source files (*.java) shall begin with the current ASF license header as described in ASF Source Header.</description>
+ <description>This page describes some coding conventions applied in Apache SIS development.
License header Naming convention Internal packages Substitution for non-existent classes Code formatting Import statements Spaces and line length Brackets Member declarations Exceptions to coding conventions Documentation formatting Javadoc annotations Where to use @since and @version tags HTML elements Paragraphs Javadoc CSS MathML elements License header All Java source files (*.java) [...]
</item>
-
<item>
<title>Command-line interface</title>
<link>https://sis.apache.org/command-line.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/command-line.html</guid>
- <description>A command-line interface is provided for extracting information from data files or authority codes, and for performing coordinate operations. That command-line tool is provided for allowing users to experiment some Apache SIS functionalities without writing Java code. For each example, key Java APIs are listed for allowing users to reproduce the functionality in their own application.
-Installation Optional dependencies Usage Examples Print Coordinate Reference Systems (CRS) definition Getting a verified EPSG identifier from a Coordinate Reference System Performing coordinate conversions or transformations Extracting ISO 19115 Metadata Performance consideration Installation Select &ldquo;Apache SIS 1.</description>
+ <description>A command-line interface is provided for extracting information from data files or authority codes, and for performing coordinate operations. That command-line tool is provided for allowing users to experiment some Apache SIS functionalities without writing Java code. For each example, key Java APIs are listed for allowing users to reproduce the functionality in their own application.
Installation Optional dependencies Usage Examples Print Coordinate Reference Syst [...]
</item>
-
<item>
<title>Compute geodetic distances and paths</title>
<link>https://sis.apache.org/howto/geodetic_paths.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/geodetic_paths.html</guid>
- <description>The following example computes the geodetic distance between given positions. The geodetic distance is the shortest distance on Earth ellipsoid. Apache SIS can also compute the path as a Béziers curve, with the property that the azimuths at the two curve extremities are preserved.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude before longitude.
-import java.awt.Shape; import org.apache.sis.referencing.CommonCRS; import org.</description>
+ <description>The following example computes the geodetic distance between given positions. The geodetic distance is the shortest distance on Earth ellipsoid. Apache SIS can also compute the path as a Béziers curve, with the property that the azimuths at the two curve extremities are preserved.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express [...]
</item>
-
<item>
<title>Data formats supported by Apache SIS</title>
<link>https://sis.apache.org/formats.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/formats.html</guid>
- <description>Apache SIS can read data from the formats listed below. Some formats are supported in read-only mode, others in read/write modes. Data may be structured as vectors or rasters, which in Apache SIS are mapped to the FeatureSet and GridCoverageResource interfaces respectively. Some formats can contain an arbitrary number of feature types or rasters, in which case the root resource will be Aggregate.
-Format Capability Module Type of resource CSV Read org.</description>
+ <description>Apache SIS can read data from the formats listed below. Some formats are supported in read-only mode, others in read/write modes. Data may be structured as vectors or rasters, which in Apache SIS are mapped to the FeatureSet and GridCoverageResource interfaces respectively. Some formats can contain an arbitrary number of feature types or rasters, in which case the root resource will be Aggregate.
Format Capability Module Type of resource CSV Read org.</description>
</item>
-
<item>
<title>Determine if two CRS are functionally equal</title>
<link>https://sis.apache.org/howto/crs_equality.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/crs_equality.html</guid>
- <description>Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata (name, identifiers, scope, domain of validity, remarks), even though they represent the same logical CRS. In order to test if two CRS are functionally equivalent, Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS) can be used.
-In some cases, equalsIgnoreMetadata(…) 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>
+ <description>Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata (name, identifiers, scope, domain of validity, remarks), even though they represent the same logical CRS. In order to test if two CRS are functionally equivalent, Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS) can be used.
In some cases, equalsIgnoreMetadata(…) may fail to see that two reference systems are equal. It may happen for example when tw [...]
+ </item>
+ <item>
+ <title>Documentation</title>
+ <link>https://sis.apache.org/documentation.html</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>https://sis.apache.org/documentation.html</guid>
+ <description>Supported features:
EPSG geodetic dataset Coordinate reference systems Operation methods Data formats International standards For library users:
How to… Online Javadoc Developer Guide Code patterns FAQ For library developers:
Coding Conventions Release management Issue Tracker Wiki </description>
</item>
-
<item>
<title>Frequently asked questions</title>
<link>https://sis.apache.org/faq.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/faq.html</guid>
- <description>This page lists some Frequently Asked Questions (FAQ) when using Apache SIS.
-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.forCode(…)? Are CRS objects safe for use as keys in HashMap? Coordinate transformations My transformed coordinates are totally wrong!</description>
+ <description>This page lists some Frequently Asked Questions (FAQ) when using Apache SIS.
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.forCode(…)? Are CRS objects safe for use as keys in HashMap? Coordinate tra [...]
</item>
-
<item>
<title>From data lake to data cube</title>
<link>https://sis.apache.org/howto/datalake_to_datacube.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/datalake_to_datacube.html</guid>
- <description>This example opens a few files where each file represent a slice in a data cube. Then the slices are aggregated together in a single multi-dimensional data cube. For example each file may be a raster representing Sea Surface Temperature (SST) at a specific day, and those files can be a aggregated in a single three-dimensional raster with a temporal dimension.
-A current limitation is that each slice must have the same number of dimensions than the data cube.</description>
+ <description>This example opens a few files where each file represent a slice in a data cube. Then the slices are aggregated together in a single multi-dimensional data cube. For example each file may be a raster representing Sea Surface Temperature (SST) at a specific day, and those files can be a aggregated in a single three-dimensional raster with a temporal dimension.
A current limitation is that each slice must have the same number of dimensions than the data cube.</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. &ldquo;classic&rdquo;), GeoTIFF or any other formats supported by Apache SIS. For the dependencies required for reading GeoTIFF instead of netCDF files, see the geographic bounding box code example.</description>
+ <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. &ldquo;classic&rdquo;), GeoTIFF or any other forma [...]
</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>
+ <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 [...]
</item>
-
<item>
<title>Get raster values at geographic coordinates</title>
<link>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/raster_values_at_geographic_coordinates.html</guid>
- <description>This example fetches values at given geospatial coordinates in a raster. The coordinates can be expressed in different Coordinate Reference System (CRS). Conversions from geographic or projected coordinates to pixel coordinates, optionally followed by conversions from raster data to units of measurement, are done automatically. Raster data and spatiotemporal coordinates can have more than two dimensions.
-This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.</description>
+ <description>This example fetches values at given geospatial coordinates in a raster. The coordinates can be expressed in different Coordinate Reference System (CRS). Conversions from geographic or projected coordinates to pixel coordinates, optionally followed by conversions from raster data to units of measurement, are done automatically. Raster data and spatiotemporal coordinates can have more than two dimensions.
This example assumes a preloaded three-dimensional raster. Fo [...]
</item>
-
<item>
<title>Get raster values at pixel coordinates</title>
<link>https://sis.apache.org/howto/raster_values_at_pixel_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/raster_values_at_pixel_coordinates.html</guid>
- <description>This example fetches values at given pixel coordinates in a raster. This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Some file formats store values as integers for compactness reasons, but provide a transfer function for converting those integers to &ldquo;real world&rdquo; values. Apache SIS can provide either the original integers or the converted values, at user&rsquo;s choice.</description>
+ <description>This example fetches values at given pixel coordinates in a raster. This example assumes a preloaded three-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Some file formats store values as integers for compactness reasons, but provide a transfer function for converting those integers to &ldquo;real world&rdquo; values. Apache SIS can provide either the original integers or the converted values [...]
</item>
-
<item>
<title>Get the EPSG code or URN of an existing CRS</title>
<link>https://sis.apache.org/howto/lookup_crs_urn.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/lookup_crs_urn.html</guid>
<description>The identifier of a Coordinate Reference System (CRS) object can be obtained by the getIdentifiers() method, which usually return a collection of zero or one element. If the CRS has been created from a Well Known Text (WKT) parsing and the WKT ends with an AUTHORITY[&quot;EPSG&quot;, &quot;xxxx&quot;] (WKT version 1) or ID[&quot;EPSG&quot;, xxxx] (WKT version 2) element, then the identifier (an EPSG numerical code in this example) is the xxxx va [...]
</item>
-
<item>
<title>Handle rasters bigger than memory</title>
<link>https://sis.apache.org/howto/rasters_bigger_than_memory.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/rasters_bigger_than_memory.html</guid>
<description>This example opens a big GeoTIFF file without reading the tiles immediately. Instead, tiles will be read only when requested by a call to the Java2D RenderedImage.getTile(int, int) method. Loaded tiles are cached by soft references, i.e. they may be discarted and reloaded when needed again. This approach allows processing of raster data larger than memory, provided that the application does not request all tiles at once. It integrates well with operations provided by A [...]
</item>
-
<item>
<title>How to use EPSG geodetic dataset</title>
<link>https://sis.apache.org/epsg.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/epsg.html</guid>
<description>The EPSG geodetic dataset is a de-facto standard providing thousands of Coordinate Reference System (CRS) definitions together with information about how to perform coordinate operations, their accuracies and their domains of validity. The EPSG dataset is owned and maintained by the International Association of Oil &amp; Gas producers. Usage of EPSG dataset with Apache SIS is optional but strongly recommended: without that geodetic dataset, only a small subset of C [...]
</item>
-
<item>
<title>Instantiate a UTM projection</title>
<link>https://sis.apache.org/howto/instantiate_utm_projection.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/instantiate_utm_projection.html</guid>
- <description>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 universal(…) method on one of the CommonCRS predefined constants. That method receives in argument a geographic coordinate in (latitude, longitude) order and computes the UTM zone from it. It takes in account the special cases of Norway and Svalbard.
-An alternative, more standard, way using geographic coordinates is to format an &ldquo;AUTO&rdquo; authority code.</description>
+ <description>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 universal(…) method on one of the CommonCRS predefined constants. That method receives in argument a geographic coordinate in (latitude, longitude) order and computes the UTM zone from it. It takes in account the special cases of Norway and Svalbard.
An alternative, more standard, way using geograph [...]
</item>
-
<item>
<title>JavaFX application</title>
<link>https://sis.apache.org/javafx.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/javafx.html</guid>
<description>Apache SIS provides an optional JavaFX application for testing SIS capability to read, transform and visualize data files. (note: a command line interface is also available). The graphical application is in early development stage and very far from providing all services that we can expect from a Geographic Information System (GIS). Furthermore this application covers a very small subset of Apache SIS capabilities. But it can give an idea of what is available there.</d [...]
</item>
-
<item>
<title>Mailing lists</title>
<link>https://sis.apache.org/mail-lists.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/mail-lists.html</guid>
- <description>We welcome you to join mailing lists and let us know about your thoughts or ideas about Apache SIS. Everyone can subscribe, but note that all emails sent to those lists are archived and publicly readable on the web. See Public Forum Archive Policy for more information.
-Cross-project mailing lists Geospatial mailing list Apache SIS mailing lists User mailing list Developer mailing list Issues mailing list Commit mailing list Cross-project mailing lists Geospatial mailing list This is where peoples can ask questions or discuss about geospatial topics that are not specific to Apache SIS.</description>
+ <description>We welcome you to join mailing lists and let us know about your thoughts or ideas about Apache SIS. Everyone can subscribe, but note that all emails sent to those lists are archived and publicly readable on the web. See Public Forum Archive Policy for more information.
Cross-project mailing lists Geospatial mailing list Apache SIS mailing lists User mailing list Developer mailing list Issues mailing list Commit mailing list Cross-project mailing lists Geospatial ma [...]
</item>
-
<item>
<title>New contributor</title>
<link>https://sis.apache.org/contributor.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/contributor.html</guid>
- <description>Improving and extending Apache SIS requires extensive knowledge of geographic information science, object oriented programming, the Java language, and of the library itself. Contributors should expect that they will need to learn a great deal before being able to become productive. However, the effort required to become productive should improve the contributor&rsquo;s understanding and knowledge of geographic information systems, of geodetic and geographic science [...]
-This document is expected to evolve as the Apache SIS project develops its own mode of operation.</description>
+ <description>Improving and extending Apache SIS requires extensive knowledge of geographic information science, object oriented programming, the Java language, and of the library itself. Contributors should expect that they will need to learn a great deal before being able to become productive. However, the effort required to become productive should improve the contributor&rsquo;s understanding and knowledge of geographic information systems, of geodetic and geographic science [...]
</item>
-
<item>
<title>Parallel computation</title>
<link>https://sis.apache.org/howto/parallel_computation.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/parallel_computation.html</guid>
<description>Some grid coverages will read or compute chunks of data only when first requested. For example when a coverage is the result of a reprojection, or when a big coverage uses deferred tile reading. However if tiles are always requested in the same thread, it will result in a sequential, mono-threaded computation. Furthermore it may cause a lot of seek or &ldquo;HTTP range&rdquo; operations if tiles are read in random order.</description>
</item>
-
<item>
<title>Parse and format MGRS codes</title>
<link>https://sis.apache.org/howto/parse_and_format_mgrs_codes.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/parse_and_format_mgrs_codes.html</guid>
- <description>The following example converts geographic coordinates to Military Grid Reference System (MGRS) codes and conversely. MGRS codes can be seen as a kind of GeoHash but with better properties. Apache SIS supports also GeoHash if desired, in a way similar to this example.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude before longitude.
-import org.apache.sis.geometry.DirectPosition2D; import org.apache.sis.referencing.CommonCRS; import org.apache.sis.referencing.gazetteer.MilitaryGridReferenceSystem; import org.</description>
+ <description>The following example converts geographic coordinates to Military Grid Reference System (MGRS) codes and conversely. MGRS codes can be seen as a kind of GeoHash but with better properties. Apache SIS supports also GeoHash if desired, in a way similar to this example.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-referencing org.apache.sis.referencing Code example Note that all geographic coordinates below express latitude befo [...]
</item>
-
<item>
<title>Read raster from a GeoTIFF file</title>
<link>https://sis.apache.org/howto/read_geotiff.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/read_geotiff.html</guid>
- <description>This example reads data in GeoTIFF format. Contrarily to other formats such as PNG or JPEG, a GeoTIFF file can contain an arbitrary number of images. For this reason, GeoTiffStore does not implement directly GridCoverageResource. Instead, GeoTiffStore implements the Aggregate interface.
-This example assumes that the raster, optionally clipped to a subregion, can fit in memory. For potentially much bigger rasters, see rasters bigger than memory code example.
-Direct dependencies Maven coordinates Module info Remarks org.</description>
+ <description>This example reads data in GeoTIFF format. Contrarily to other formats such as PNG or JPEG, a GeoTIFF file can contain an arbitrary number of images. For this reason, GeoTiffStore does not implement directly GridCoverageResource. Instead, GeoTiffStore implements the Aggregate interface.
This example assumes that the raster, optionally clipped to a subregion, can fit in memory. For potentially much bigger rasters, see rasters bigger than memory code example.
Dir [...]
</item>
-
<item>
<title>Read raster from a netCDF file</title>
<link>https://sis.apache.org/howto/read_netcdf.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/read_netcdf.html</guid>
<description>This example reads data in netCDF format. Contrarily to other formats such as PNG or JPEG, a netCDF file can contain an arbitrary number of variables with none of them identified as the main data. Furthermore those data are not necessarily rasters. For this reason, NetcdfStore does not implement directly GridCoverageResource. Instead, NetcdfStore implements the Aggregate interface and the desired variable must be specified. The variables may be instances of GridCoverag [...]
</item>
-
<item>
<title>Recommended code patterns</title>
<link>https://sis.apache.org/code-patterns.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/code-patterns.html</guid>
- <description>This page lists some recommended code pattern for developing or using Apache SIS.
-Referencing Never explicitly swap coordinates for axis order Rasters and coverages Georeference images with affine transforms, not bounding boxes Do not cast Raster to WritableRaster International Specify timezone Replace underscores by spaces before sorting Loop over character sequences using code points Logging Referencing This section lists recommended code pattern when using the sis-referencing module.
-Never explicitly swap coordinates for axis order The axis order issue causes lot of confusion, and developers are sometimes tempted to swap their coordinate values in order to comply with some expected axis ordering.</description>
+ <description>This page lists some recommended code pattern for developing or using Apache SIS.
Referencing Never explicitly swap coordinates for axis order Rasters and coverages Georeference images with affine transforms, not bounding boxes Do not cast Raster to WritableRaster International Specify timezone Replace underscores by spaces before sorting Loop over character sequences using code points Logging Compiler warnings Javadoc Referencing This section lists recommended cod [...]
</item>
-
<item>
<title>Release management</title>
<link>https://sis.apache.org/release-management.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-management.html</guid>
- <description>This page describes how to create and deploy the SIS Maven artifacts, binary bundle, javadoc and list of API changes. The Release FAQ page describes the foundation wide policies. Instructions on this page describe the steps specific to SIS (we do not use the mvn release command). The intended audiences are SIS release managers.
-Prerequisites Directory layout Generate GPG key Web of trust Gradle configuration Maven configuration Specific release configuration Review project status before branching Update the list of supported CRS Prepare release notes Create release artifacts Initialize the distribution directory Generate Javadoc Publish Maven artifacts Stage the parent POM Stage the project arfifacts Stage the non-free resources Stage the source, binary and Javadoc artifacts Integration test Test the binary Tes [...]
+ <description>This page describes how to create and deploy the SIS Maven artifacts, binary bundle, javadoc and list of API changes. The Release FAQ page describes the foundation wide policies. Instructions on this page describe the steps specific to SIS (we do not use the mvn release command). The intended audiences are SIS release managers.
Prerequisites Directory layout Generate GPG key Web of trust Gradle configuration Maven configuration Specific release configuration Review [...]
</item>
-
<item>
<title>Resample a raster</title>
<link>https://sis.apache.org/howto/resample_raster.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/resample_raster.html</guid>
- <description>This example reprojects a raster to a different Coordinate Reference System (CRS). This example assumes a preloaded two-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.code:sis-feature org.apache.sis.feature org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Non-Apache license. The EPSG dependency is necessary for this example because a Coordinate Reference System (CRS) is instantiated from its EPSG code. But it would also be possible to specify a CRS without EPSG code, for example using Well Known Text (WKT) format.</description>
+ <description>This example reprojects a raster to a different Coordinate Reference System (CRS). This example assumes a preloaded two-dimensional raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.code:sis-feature org.apache.sis.feature org.apache.sis.non-free:sis-embedded-data org.apache.sis.referencing.database Non-Apache license. The EPSG dependency is ne [...]
</item>
-
<item>
<title>SIS 0.1-incubating Release notes</title>
<link>https://sis.apache.org/release-notes/0.1.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.1.html</guid>
- <description>Release date: 2010-11-10 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 5 This is the first release of Apache SIS (incubator).
-Incompatible changes Not applicable.
-Noticeable changes New Features [SIS-1] — Import LocalLucene code into SIS [SIS-5] — Website logo [SIS-6] — Create DOAP file for projects.a.o [SIS-7] — Top level pom for SIS [SIS-12] — Write basic SIS documentation for CLI and for WS layer [SIS-15] — Bake in Demo JSP page for initial release Improvements [SIS-2] — Stand up SIS website [SIS-3] — Refactor SIS [SIS-14] — Use LatLon class instead of plain double points in QuadTreeData interface [SIS-23] — Brand demo.</description>
+ <description>Release date: 2010-11-10 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 5 This is the first release of Apache SIS (incubator).
Incompatible changes Not applicable.
Noticeable changes New Features [SIS-1] — Import LocalLucene code into SIS [SIS-5] — Website logo [SIS-6] — Create DOAP file for projects.a.o [SIS-7] — Top level pom for SIS [SIS-12] — Write basic SIS documentation for CLI and for WS layer [SIS-15] — Bake in D [...]
</item>
-
<item>
<title>SIS 0.2-incubating Release notes</title>
<link>https://sis.apache.org/release-notes/0.2.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.2.html</guid>
- <description>Release date: 2012-07-23 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 Release from incubator.
-Incompatible changes Not determined.
-Noticeable changes New Features [SIS-30] — Jetty Integration Improvements [SIS-35] — Include JDOM license in the NOTICE file and remove servlet dependency Bug fixes [SIS-25] — Location servlet doesn&rsquo;t return correct coordinates for point-radius query region [SIS-26] — Use of Java 1.6 Annotation in /sis-core/src/main/java/org/apache/sis/storage/GeoRSSData.java [SIS-29] — Website must display disclaimer text [SIS-34] — LICENSE/NOTICE file is in incorrect location in SIS webapp Ta [...]
+ <description>Release date: 2012-07-23 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 Release from incubator.
Incompatible changes Not determined.
Noticeable changes New Features [SIS-30] — Jetty Integration Improvements [SIS-35] — Include JDOM license in the NOTICE file and remove servlet dependency Bug fixes [SIS-25] — Location servlet doesn&rsquo;t return correct coordinates for point-radius query region [SIS-26] — Use of Jav [...]
</item>
-
<item>
<title>SIS 0.3 Release notes</title>
<link>https://sis.apache.org/release-notes/0.3.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.3.html</guid>
- <description>Release date: 2013-08-17 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 This is the first Apache SIS release as a graduated project (outside incubator).
-Incompatible changes Not determined.
-Noticeable changes New Features [SIS-62] — Create a sis-utility module [SIS-52] — Create a sis-metadata module [SIS-55] — Skeleton implementation of GeoAPI Citation [SIS-46] — Add sis-console module to current SIS project [SIS-66] — Create new Range class to avoid licensing issues [SIS-77] — Provide an IDE build for Eclipse Improvements [SIS-57] — A Logo for SIS [SIS-31] — Website needs a facelift [SIS-38] — Add the missing documentation comments for SIS-core storage [SIS-40] — Add the m [...]
+ <description>Release date: 2013-08-17 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 This is the first Apache SIS release as a graduated project (outside incubator).
Incompatible changes Not determined.
Noticeable changes New Features [SIS-62] — Create a sis-utility module [SIS-52] — Create a sis-metadata module [SIS-55] — Skeleton implementation of GeoAPI Citation [SIS-46] — Add sis-console module to current SIS project [SIS-66] — [...]
</item>
-
<item>
<title>SIS 0.4 Release notes</title>
<link>https://sis.apache.org/release-notes/0.4.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.4.html</guid>
- <description>Release date: 2014-04-07 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 Incompatible changes Not determined.
-Noticeable changes New Features Partial implementation of ISO 19111 — Referencing by coordinates. Partial implementation of ISO 19162 — Well Known Text 2. Improvements [SIS-68] — Remove LatLon class and replace with DirectPosition [SIS-69] — Remove LatLonRect and replace with Envelope class [SIS-88] — Reduce size of public API [SIS-115] — Ability to set NilReason on Boolean, Integer, Double and String objects [SIS-119] — Support gmx:FileName and gmx:MimeFileType elements [SIS-121] — Angl [...]
+ <description>Release date: 2014-04-07 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 Incompatible changes Not determined.
Noticeable changes New Features Partial implementation of ISO 19111 — Referencing by coordinates. Partial implementation of ISO 19162 — Well Known Text 2. Improvements [SIS-68] — Remove LatLon class and replace with DirectPosition [SIS-69] — Remove LatLonRect and replace with Envelope class [SIS-88] — Reduce size of [...]
</item>
-
<item>
<title>SIS 0.5 Release notes</title>
<link>https://sis.apache.org/release-notes/0.5.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.5.html</guid>
<description>Release date: 2015-02-12 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 The initial plan for Apache SIS 0.5 was to complete the implementation of Referencing by coordinates (ISO 19111), which started in SIS 0.4. However this work is not yet finished and is re-targeted for SIS 0.6 release. Nevertheless this SIS 0.5 release contains an upgrade of spatial metadata (ISO 19115-1) from the standard published in 2003 to the revision [...]
</item>
-
<item>
<title>SIS 0.6 Release notes</title>
<link>https://sis.apache.org/release-notes/0.6.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.6.html</guid>
- <description>Release date: 2015-09-16 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 The main new features of Apache SIS 0.6 are:
-Support of Well Known Text version 1 and 2 (ISO 19162) for Coordinate Reference System objects. Support of Geographic Markup Language (GML) version 3.2 (ISO 19136) for Coordinate Reference System objects, except DerivedCRS, ConcatenatedOperation and PassThroughOperation. Support of Mercator, Transverse Mercator, Lambert Conic Conformal and Polar stereographic map projections.</description>
+ <description>Release date: 2015-09-16 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 The main new features of Apache SIS 0.6 are:
Support of Well Known Text version 1 and 2 (ISO 19162) for Coordinate Reference System objects. Support of Geographic Markup Language (GML) version 3.2 (ISO 19136) for Coordinate Reference System objects, except DerivedCRS, ConcatenatedOperation and PassThroughOperation. Support of Mercator, Transverse Merca [...]
</item>
-
<item>
<title>SIS 0.7 Release notes</title>
<link>https://sis.apache.org/release-notes/0.7.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.7.html</guid>
- <description>Release date: 2016-05-27 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 The main new features of Apache SIS 0.7 are:
-Creation of Coordinate Reference System (CRS) objects from an EPSG code. The list of EPSG codes supported by latest SIS release can be viewed here. Find coordinate operation paths from a pair of CRS, using the EPSG geodetic dataset if possible. Completion of Geographic Markup Language (GML) version 3.</description>
+ <description>Release date: 2016-05-27 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 6 The main new features of Apache SIS 0.7 are:
Creation of Coordinate Reference System (CRS) objects from an EPSG code. The list of EPSG codes supported by latest SIS release can be viewed here. Find coordinate operation paths from a pair of CRS, using the EPSG geodetic dataset if possible. Completion of Geographic Markup Language (GML) version 3.</description>
</item>
-
<item>
<title>SIS 0.8 Release notes</title>
<link>https://sis.apache.org/release-notes/0.8.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/0.8.html</guid>
- <description>Release date: 2017-11-24 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 7 An important change in Apache SIS 0.8 is the replacement of the deprecated JSR-275 dependency by JSR-363 — Units of Measurement API (this implies an upgrade from GeoAPI 3.0.0 to GeoAPI 3.0.1). Users are encouraged to upgrade to Apache SIS 0.8 or later for resolving this dependency issue.
-Incompatible changes Not determined.
-Noticeable changes New Features [SIS-128] — Implement the JSR-363 javax.</description>
+ <description>Release date: 2017-11-24 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 7 An important change in Apache SIS 0.8 is the replacement of the deprecated JSR-275 dependency by JSR-363 — Units of Measurement API (this implies an upgrade from GeoAPI 3.0.0 to GeoAPI 3.0.1). Users are encouraged to upgrade to Apache SIS 0.8 or later for resolving this dependency issue.
Incompatible changes Not determined.
Noticeable changes New F [...]
</item>
-
<item>
<title>SIS 1.0 Release notes</title>
<link>https://sis.apache.org/release-notes/1.0.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/1.0.html</guid>
<description>Release date: 2019-09-27 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 + JAXB (either bundled in the JDK or provided) Apache SIS 1.0 can marshal and unmarshal metadata in XML documents using the new ISO 19115-3 standard. The previous ISO 19139 standard is still supported and automatically recognized at unmarshalling time. This release also contains improvements in reading netCDF files and a beginning of raster support.</description>
</item>
-
<item>
<title>SIS 1.1 Release notes</title>
<link>https://sis.apache.org/release-notes/1.1.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/1.1.html</guid>
- <description>Release date: 2021-10-06 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 Apache SIS 1.1 can read GeoTIFF images, apply raster reprojections and create isolines from rasters. It can read features from a SQL database with the FeatureType inferred by analyzing the database schema. Features can be filtered by the filter API added in this release, including with geometric operations defined by SQLMM.
-Incompatible changes In the sis-utility module, the following classes moved to the org.</description>
+ <description>Release date: 2021-10-06 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 Apache SIS 1.1 can read GeoTIFF images, apply raster reprojections and create isolines from rasters. It can read features from a SQL database with the FeatureType inferred by analyzing the database schema. Features can be filtered by the filter API added in this release, including with geometric operations defined by SQLMM.
Incompatible changes In the [...]
</item>
-
<item>
<title>SIS 1.2 Release notes</title>
<link>https://sis.apache.org/release-notes/1.2.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/1.2.html</guid>
- <description>Release date: 2022-05-18 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 Apache SIS 1.2 can read World Files and ESRI ASCII grid and BIL/BIP/BSQ rasters, in addition to GeoTIFF support added in SIS 1.1, and in addition to netCDF support added in previous releases. This release also contains various bug fixes improving the stability.
-Incompatible changes None.
-Noticeable changes New Features [SIS-529] — Provide native GeoTIFF metadata [SIS-541] — Add &ldquo;World File&rdquo; reader and writer [SIS-540] — Add an ESRI ASCII Grid reader and writer [SIS-543] — Add a BIL/BIP/BSQ data store [SIS-524] — Image masking based on a geometry [SIS-528] — Add a &ldquo;system monitor&rdquo; with visual indication of seek operations [SIS-533] — Add &ldquo;Rotated Latitude/Longitude&rdquo; coordinate operation [SIS-228] — Lambert Azimut [...]
+ <description>Release date: 2022-05-18 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 Apache SIS 1.2 can read World Files and ESRI ASCII grid and BIL/BIP/BSQ rasters, in addition to GeoTIFF support added in SIS 1.1, and in addition to netCDF support added in previous releases. This release also contains various bug fixes improving the stability.
Incompatible changes None.
Noticeable changes New Features [SIS-529] — Provide native Ge [...]
</item>
-
<item>
<title>SIS 1.3 Release notes</title>
<link>https://sis.apache.org/release-notes/1.3.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/1.3.html</guid>
- <description>Release date: 2022-12-25 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 This release contains an upgrade of the org.apache.sis.metadata.iso.quality package to the ISO 19157:2013 international standard. This release also contains various bug fixes improving the stability.
-Incompatible changes The following changes in Apache SIS 1.3 are incompatibles with the previous release (SIS 1.2):
-In the org.apache.sis.coverage.grid package, the GridEvaluator class has been replaced by the GridCoverage.Evaluator interface.</description>
+ <description>Release date: 2022-12-25 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 8 This release contains an upgrade of the org.apache.sis.metadata.iso.quality package to the ISO 19157:2013 international standard. This release also contains various bug fixes improving the stability.
Incompatible changes The following changes in Apache SIS 1.3 are incompatibles with the previous release (SIS 1.2):
In the org.apache.sis.coverage.gri [...]
</item>
-
<item>
<title>SIS 1.4 Release notes</title>
<link>https://sis.apache.org/release-notes/1.4.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/release-notes/1.4.html</guid>
- <description>Release date: 2023-01-10 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 11 This release contains the upgrade from Java 8 to Java 11, including the migration to Java Platform Module System (JPMS). This release also contains various bug fixes improving the stability. Cloud Optimized GeoTIFF (COG) support has been completed with the automatic use of HTTP Range requests.
-In this release, the source code of Apache SIS project has been restructured with a new directory layout.</description>
+ <description>Release date: 2023-01-10 Next release Previous release Incompatible changes Noticeable changes Requirement: Java 11 This release contains the upgrade from Java 8 to Java 11, including the migration to Java Platform Module System (JPMS). This release also contains various bug fixes improving the stability. Cloud Optimized GeoTIFF (COG) support has been completed with the automatic use of HTTP Range requests.
In this release, the source code of Apache SIS project has [...]
</item>
-
<item>
<title>Standards implemented by Apache SIS</title>
<link>https://sis.apache.org/standards.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/standards.html</guid>
<description>Apache SIS implements the following standards from the Open Geospatial Consortium (OGC), the International Organization for Standardization (ISO) or the Java Community Process (JCP). The same standard is sometimes published jointly by both OGC and ISO organizations. Links to free versions of the standards are given when available. The Upgrade needed column indicates that a more recent version of the standard is available but that Apache SIS has not yet been upgraded to [...]
</item>
-
<item>
<title>Transform coordinates</title>
<link>https://sis.apache.org/howto/transform_coordinates.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/transform_coordinates.html</guid>
- <description>The following Java code projects geographic coordinates from the World Geodetic System 1984 (WGS84) to WGS 84 / UTM zone 33N. In order to make the example a little bit simpler, this code uses predefined constants given by the CommonCRS convenience class. But more advanced applications may use EPSG codes or definitions in Well-Known Text (WKT) instead.
-Note: if the result of a coordinate transformation seems wrong, see the FAQ page.</description>
+ <description>The following Java code projects geographic coordinates from the World Geodetic System 1984 (WGS84) to WGS 84 / UTM zone 33N. In order to make the example a little bit simpler, this code uses predefined constants given by the CommonCRS convenience class. But more advanced applications may use EPSG codes or definitions in Well-Known Text (WKT) instead.
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>
-
<item>
<title>Write a raster to a file</title>
<link>https://sis.apache.org/howto/write_raster.html</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>https://sis.apache.org/howto/write_raster.html</guid>
- <description>This example saves a raster in PNG format together with its WorldFile PRJ and PGW auxiliary files. This example assumes a preloaded raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
-Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-storage org.apache.sis.storage Code example The file name in following code need to be updated for yours data.
-import java.io.File; import org.apache.sis.storage.DataStore; import org.</description>
+ <description>This example saves a raster in PNG format together with its WorldFile PRJ and PGW auxiliary files. This example assumes a preloaded raster. For the loading part, see read from a netCDF file or read from a GeoTIFF file code examples.
Direct dependencies Maven coordinates Module info Remarks org.apache.sis.storage:sis-storage org.apache.sis.storage Code example The file name in following code need to be updated for yours data.
import java.io.File; import org.apac [...]
</item>
-
</channel>
</rss>
diff --git a/javafx.html b/javafx.html
index 27ca631c..995cd97e 100644
--- a/javafx.html
+++ b/javafx.html
@@ -1,113 +1,47 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - JavaFX application</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - JavaFX application</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link active " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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 active " 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">JavaFX application</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">JavaFX application</p>
<p>Apache <abbr title="Spatial Information System">SIS</abbr> provides an optional JavaFX application for testing SIS capability to read,
transform and visualize data files.
-(note: a <a href="command-line.html">command line interface</a> is also available).
+(note: a <a href="./command-line.html">command line interface</a> is also available).
The graphical application is in early development stage and very far from providing
all services that we can expect from a Geographic Information System (GIS).
Furthermore this application covers a very small subset of Apache <abbr title="Spatial Information System">SIS</abbr> capabilities.
@@ -137,62 +71,32 @@ But it can give an idea of what is available there.</p>
</ul>
</nav>
<h1 id="install">Installation </h1>
-<p>Select “Apache <abbr title="Spatial Information System">SIS</abbr> 1.4 binary” from the <a href="downloads.html">downloads page</a> an unzip in any directory.
-See the <a href="command-line.html">command line</a> page for a description of the directory structure.
+<p>Select “Apache <abbr title="Spatial Information System">SIS</abbr> 1.4 binary” from the <a href="./downloads.html">downloads page</a> an unzip in any directory.
+See the <a href="./command-line.html">command line</a> page for a description of the directory structure.
For launching the application, execute (on Unix system):</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">./apache-sis-1.4/bin/sisfx</span></span></code></pre></div>
-<p>On first execution, the application will ask user to download the <a href="https://openjfx.io/">JavaFX framework</a> (if not already done).
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">./apache-sis-1.4/bin/sisfx
+</span></span></code></pre></div><p>On first execution, the application will ask user to download the <a href="https://openjfx.io/">JavaFX framework</a> (if not already done).
That framework is not included in the Apache <abbr title="Spatial Information System">SIS</abbr> binaries for licensing reasons (it is under GPL license).
-Later on, the application will offer to download the <a href="epsg.html">EPSG geodetic dataset</a> when first needed.
+Later on, the application will offer to download the <a href="./epsg.html">EPSG geodetic dataset</a> when first needed.
That dataset is not included neither again for licensing reasons.</p>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>If the application fails to start and the error message said <em>“Error initializing QuantumRenderer: no suitable pipeline found”</em>,
then the JavaFX SDK is probably for the wrong platform.
For example users on Intel platforms need to choose <code>x64</code> (not <code>aarch64</code>) on the download page.</p>
<h2 id="first-look">First look</h2>
-<p>After those two steps are completed, user can see an application like below:</p>
-<div id="carousel" class="carousel slide" data-bs-ride="carousel">
- <div class="carousel-inner" style="width:983.25px; height:650px">
- <div class="carousel-item active">
- <img style="width:795.75px; height:507px" src="images/application/Summary.png" class="d-block">
- <div class="carousel-caption d-none d-md-block">
- <h5>Main metadata (title, geographic extent…) in a summary pane</h5>
- </div>
- </div>
- <div class="carousel-item">
- <img style="width:747px; height:603px" src="images/application/Visual.png" class="d-block">
- <div class="carousel-caption d-none d-md-block">
- <h5>Visualizing raster data <span style="font-size:medium">(credit: JAXA GCOM)</span></h5>
- </div>
- </div>
- <div class="carousel-item">
- <img style="width:750.75px; height:522px" src="images/application/Data.png" class="d-block">
- <div class="carousel-caption d-none d-md-block">
- <h5>Viewing raster numerical values</h5>
- </div>
- </div>
- <div class="carousel-item">
- <img style="width:795.75px; height:516.75px" src="images/application/Metadata.png" class="d-block">
- <div class="carousel-caption d-none d-md-block">
- <h5>ISO 19115 metadata as a tree</h5>
- </div>
- </div>
- <div class="carousel-item">
- <img style="width:983.25px; height:500.25px" src="images/application/Isolines.png" class="d-block">
- <div class="carousel-caption d-none d-md-block">
- <h5>Drawing isolines on a raster</h5>
- </div>
- </div>
- </div>
- <button class="carousel-control-prev" type="button" data-bs-target="#carousel" data-bs-slide="prev">
- <span class="carousel-control-prev-icon" aria-hidden="true"></span>
- <span class="visually-hidden">Previous</span>
- </button>
- <button class="carousel-control-next" type="button" data-bs-target="#carousel" data-bs-slide="next">
- <span class="carousel-control-next-icon" aria-hidden="true"></span>
- <span class="visually-hidden">Next</span>
- </button>
-</div>
+<p>After those two steps are completed, user can see an application like below
+(click on an image to expand):</p>
+<table class="images">
+ <tr>
+ <td><img style="width:265.25px; height:169.00px" src="images/application/Summary.png" title="Main metadata (title, geographic extent…) in a summary pane"></td>
+ <td><img style="width:249.00px; height:201.00px" src="images/application/Visual.png" title="Visualizing raster data (credit: JAXA GCOM)"></td>
+ <td><img style="width:250.25px; height:174.00px" src="images/application/Data.png" title="Viewing raster numerical values"></td>
+ </tr><tr>
+ <td><img style="width:265.25px; height:172.25px" src="images/application/Metadata.png" title="ISO 19115 metadata as a tree"></td>
+ <td><img style="width:327.75px; height:166.75px" src="images/application/Isolines.png" title="Drawing isolines on a raster"></td>
+ <td></td>
+ </tr>
+</table>
<h1 id="open-files">Open files</h1>
<p>Drag and drop some netCDF, GeoTIFF, ASCII Grid or World Files in the explorer
(the white area on the left side of main window).
@@ -271,7 +175,7 @@ The contextual menu offers two ways to choose a <abbr title="Coordinate Referenc
the first way is the “Reference system” menu item, which offers a list of predefined <abbr title="Coordinate Reference System">CRS</abbr>.
If the desired <abbr title="Coordinate Reference System">CRS</abbr> is not in the initial short list,
click on “Others” for choosing among the +6000 <abbr title="Coordinate Reference System">CRS</abbr> supported by Apache <abbr title="Spatial Information System">SIS</abbr>.
-(Note: this list is available only if the <a href="epsg.html">EPSG geodetic dataset</a> has been installed,
+(Note: this list is available only if the <a href="./epsg.html">EPSG geodetic dataset</a> has been installed,
which is not the case by default for licensing reason).
The “Filter” field can help to find the desired <abbr title="Coordinate Reference System">CRS</abbr>.
The dialog box shows a warning in red if the selected <abbr title="Coordinate Reference System">CRS</abbr>
@@ -287,22 +191,16 @@ Distances and angles measured from that point are corrects
(but only from that point, not between arbitrary pair of points).</p>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/mail-lists.html b/mail-lists.html
index 5cc05180..bbfcaa51 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Mailing lists</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Mailing lists</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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">Mailing lists</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Mailing lists</p>
<p>We welcome you to join mailing lists and let us know about your thoughts or ideas about Apache <abbr title="Spatial Information System">SIS</abbr>.
Everyone can subscribe, but note that all emails sent to those lists are archived and publicly readable on the web.
@@ -170,22 +104,16 @@ any changes to the sis code and documentation.</p>
</ul>
- </article>
- </main>
- <footer class="footer">
- <div class="container">
- <p>
- Copyright © 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>
+ </article>
+ </main>
+ <footer>
+ <div class="container">
+ <p>Copyright © 2013-2025 The Apache Software Foundation, Licensed under the
+ <a href="https://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>
-</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>
+ </body>
</html>
diff --git a/release-management.html b/release-management.html
index 2e78104f..2c1098b6 100644
--- a/release-management.html
+++ b/release-management.html
@@ -1,109 +1,43 @@
<!DOCTYPE html>
<html lang="en">
-<head>
-
- <title>Apache SIS - Release management</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>
- <li><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</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="./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>
+ <head>
+ <title>Apache SIS - Release management</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="./sis.css">
+ <link rel="stylesheet" type="text/css" media="screen" href="./syntax.css">
+ </head>
+ <body>
+ <div class="topbar">
+ <a class="topbar-brand" href="./index.html">Apache SIS™</a>
+ <ul class="topbar-items">
+ <li>
+ <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>
+ <div class="main-section">
+ <nav class="left-bar">
+ <ul class="nav-pills">
+ <li><a class="nav-link inactive " href="./index.html">Home</a></li>
+ <li><a class="nav-link inactive " href="./about.html">About</a></li>
+ <li><a class="nav-link inactive " href="./downloads.html">Downloads</a></li>
+ <li><a class="nav-link inactive " href="./howto.html">How to…</a></li>
+ <li><a class="nav-link inactive " href="./standards.html">Standards</a></li>
+ <li><a class="nav-link inactive " href="./formats.html">Data formats</a></li>
+ <li><a class="nav-link inactive " href="./epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link inactive " href="./javafx.html">Application (demo)</a></li>
+ <li><a class="nav-link inactive " href="./documentation.html">Documentation</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 text-white " 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">Release management</p>
+ </nav>
+ <div class="main-content">
+ <main class="container">
+ <article>
+ <img src="./images/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">Release management</p>
<p>This page describes how to create and deploy the SIS Maven artifacts, binary bundle, javadoc and list of API changes.
The <a href="https://www.apache.org/legal/release-policy.html">Release FAQ</a> page describes the foundation wide policies.
@@ -170,7 +104,7 @@ The intended audiences are SIS release managers.</p>
<h1 id="prerequisites">Prerequisites </h1>
<p>The instructions in this section need to be done only once per new release manager,
or when configuring a new machine for performing the releases.
-If those steps have already been done, jump directly to the <a href="#configure">configuration section</a>.</p>
+If those steps have already been done, jump directly to the <a href="./release-management.html#configure">configuration section</a>.</p>
<p>Before to perform a release, make sure that the following conditions hold:</p>
<ul>
<li>Commands will be executed in a Unix shell.</li>
@@ -187,27 +121,27 @@ If those steps have already been done, jump directly to the <a href="#configure"
</ul>
<h2 id="directory-layout">Directory layout </h2>
<p>The steps described in this page assume the following directory layout,
-where <code>$NEW_VERSION</code> and <code>$RELEASE_CANDIDATE</code> are environment variables introduced <a href="#configure">later</a>.
+where <code>$NEW_VERSION</code> and <code>$RELEASE_CANDIDATE</code> are environment variables introduced <a href="./release-management.html#configure">later</a>.
Some directories are Git checkout, other are ordinary directories. Any other layout can be used,
provided that all relative paths in this page are adjusted accordingly.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"><any root directory for SIS>
-</span></span><span class="line"><span class="cl">├─ $NEW_VERSION-RC
-</span></span><span class="line"><span class="cl">├─ main
-</span></span><span class="line"><span class="cl">├─ non-free
-</span></span><span class="line"><span class="cl">│ ├─ sis-embedded-data
-</span></span><span class="line"><span class="cl">│ └─ sis-epsg
-</span></span><span class="line"><span class="cl">├─ release
-</span></span><span class="line"><span class="cl">│ ├─ distribution
-</span></span><span class="line"><span class="cl">│ │ └─ $NEW_VERSION
-</span></span><span class="line"><span class="cl">│ │ └─ RC$RELEASE_CANDIDATE
-</span></span><span class="line"><span class="cl">│ └─ test
-</span></span><span class="line"><span class="cl">│ └─ maven
-</span></span><span class="line"><span class="cl">└─ site
-</span></span><span class="line"><span class="cl"> ├─ asf-site
-</span></span><span class="line"><span class="cl"> ├─ asf-staging
-</span></span><span class="line"><span class="cl"> ├─ javadoc
-</span></span><span class="line"><span class="cl"> └─ main</span></span></code></pre></div>
-<p>Create the above directory structure as below:</p>
+<pre tabindex="0"><code><any root directory for SIS>
+├─ $NEW_VERSION-RC
+├─ main
+├─ non-free
+│ ├─ sis-embedded-data
+│ └─ sis-epsg
+├─ release
+│ ├─ distribution
+│ │ └─ $NEW_VERSION
+│ │ └─ RC$RELEASE_CANDIDATE
+│ └─ test
+│ └─ maven
+└─ site
+ ├─ asf-site
+ ├─ asf-staging
+ ├─ javadoc
+ └─ main
+</code></pre><p>Create the above directory structure as below:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir site
</span></span><span class="line"><span class="cl">mkdir release
</span></span><span class="line"><span class="cl">git clone https://gitbox.apache.org/repos/asf/sis.git main
@@ -217,8 +151,8 @@ provided that all relative paths in this page are adjusted accordingly.</p>
</span></span><span class="line"><span class="cl">svn checkout https://dist.apache.org/repos/dist/dev/sis release/distribution
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> site/main
</span></span><span class="line"><span class="cl">git worktree add ../asf-staging asf-staging
-</span></span><span class="line"><span class="cl">git worktree add ../asf-site asf-site</span></span></code></pre></div>
-<h2 id="generate-key">Generate GPG key </h2>
+</span></span><span class="line"><span class="cl">git worktree add ../asf-site asf-site
+</span></span></code></pre></div><h2 id="generate-key">Generate GPG key </h2>
<p>The releases have to be signed by public key cryptography signatures.
Detailed instructions about why releases have to be signed are provided on the <a href="https://infra.apache.org/release-signing.html">Release Signing</a> page.
The standard used is OpenPGP (<em>Open Pretty Good Privacy</em>), and a popular software implementation of that standard is GPG (<em>GNU Privacy Guard</em>).
@@ -226,18 +160,18 @@ The <a href="https://infra.apache.org/openpgp.html">OpenPGP instructions</a> lis
The following steps provide a summary:</p>
<p>Edit the <code>~/.gnupg/gpg.conf</code> configuration file and add the following configuration options,
or edit the existing values if any:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">personal-digest-preferences SHA512
-</span></span><span class="line"><span class="cl">cert-digest-algo SHA512
-</span></span><span class="line"><span class="cl">default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed</span></span></code></pre></div>
-<p>If a private key already exists for emails or other purposes, it may be a good idea to keep that key as the default one.
+<pre tabindex="0"><code>personal-digest-preferences SHA512
+cert-digest-algo SHA512
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
+</code></pre><p>If a private key already exists for emails or other purposes, it may be a good idea to keep that key as the default one.
Add or modify the following line in the <code>gpg.conf</code> file, replacing <code><previous_key_id></code> by the existing key identifier
(a value like <code>621CC013</code>):</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">default-key <previous_key_id></span></span></code></pre></div>
-<p>Generate 4096 bits RSA key pair using the following command-line. GPG will prompts for various informations.
+<pre tabindex="0"><code>default-key <previous_key_id>
+</code></pre><p>Generate 4096 bits RSA key pair using the following command-line. GPG will prompts for various informations.
The list below the command suggests some values, keeping in mind that the new key should be used only for
signing Apache software packages, not for daily emails.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --gen-key</span></span></code></pre></div>
-<ul>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --gen-key
+</span></span></code></pre></div><ul>
<li>Kind of key: RSA and RSA (default). Do not create DSA key.</li>
<li>Key size: 4096 bits.</li>
<li>Validity time: 0 (key does not expire).</li>
@@ -248,20 +182,20 @@ signing Apache software packages, not for daily emails.</p>
</ul>
<p>Verify the key information (replace <em>Real Name</em> by the above-cited developer’s name, keeping quotes in the command below).
Note the key identifier, which is a value like <code>74383E9D</code>. This key identifier will be needed for the next steps.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --list-sigs <span class="s2">"Real Name"</span></span></span></code></pre></div>
-<p>Sends the public key to a keys server (replace <code><key_id></code> by the above-cited key identifier).
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --list-sigs <span class="s2">"Real Name"</span>
+</span></span></code></pre></div><p>Sends the public key to a keys server (replace <code><key_id></code> by the above-cited key identifier).
The default GPG configuration sends the key to <code>hkp://keys.gnupg.net</code>.
Note that while there is many key servers, most of them synchronize changes with each other,
so a key uploaded to one should be disseminated to the rest.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --send-key <key_id></span></span></code></pre></div>
-<p>The key publication can be verified by going on the <a href="http://pgp.mit.edu">MIT server</a>,
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --send-key <key_id>
+</span></span></code></pre></div><p>The key publication can be verified by going on the <a href="http://pgp.mit.edu">MIT server</a>,
then entering the developer’s “Real Name” in the <em>Search String</em> field.
It may take a few hours before the published key is propagated.</p>
<p>Generate a revocation certificate. This is not for immediate use, but generating the certificate now
is a safety in case the passphrase is lost. Keep the revocation certificate in a safe place,
preferably on a removable device.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --output revocation_certificate.asc --gen-revoke <key_id></span></span></code></pre></div>
-<h2 id="trust">Web of trust </h2>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --output revocation_certificate.asc --gen-revoke <key_id>
+</span></span></code></pre></div><h2 id="trust">Web of trust </h2>
<p>Have the key signed by at least three Apache commiters. This can be done by executing the following commands on
the machine of the other Apache commiter, where <code><key_to_use></code> is the identifier of the other commiter’s key.
Those operation should preferably be done in some event where the commiters can meet face-to-face.
@@ -269,17 +203,15 @@ The other commiter should verify that the <code>gpg --fingerprint</code> command
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">gpg --recv-keys <key_id>
</span></span><span class="line"><span class="cl">gpg --fingerprint <key_id>
</span></span><span class="line"><span class="cl">gpg --default-key <key_to_use> --sign-key <key_id>
-</span></span><span class="line"><span class="cl">gpg --send-key <key_id></span></span></code></pre></div>
-<p>The above-cited <em>Release Signing</em> page provides more instructions.
+</span></span><span class="line"><span class="cl">gpg --send-key <key_id>
+</span></span></code></pre></div><p>The above-cited <em>Release Signing</em> page provides more instructions.
Then, the signed public key shall be appended to the <code>KEYS</code> file on the <a href="https://github.com/apache/sis">SIS source code repository</a>,
then copied to the <a href="https://dist.apache.org/repos/dist/release/sis/">SIS distribution directory</a>.</p>
<h2 id="gradle-config">Gradle configuration </h2>
<p>Edit the <code>~/.gradle/gradle.properties</code> file, making sure that the following properties are present:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">org.gradle.java.home=<path to a Java installation>
-</span></span><span class="line"><span class="cl">signing.gnupg.keyName=<your key ID>
-</span></span><span class="line"><span class="cl">asfNexusUsername=<login for uploding to Maven Central>
-</span></span><span class="line"><span class="cl">asfNexusPassword=<password for uploading to Maven Central></span></span></code></pre></div>
-<h2 id="maven-config">Maven configuration </h2>
+<pre tabindex="0"><code>org.gradle.java.home=<path to a Java installation>
+signing.gnupg.keyName=<your key ID>
+</code></pre><h2 id="maven-config">Maven configuration </h2>
<p>Edit the <code>~/.m2/setting.xml</code> file, making sure that the following fragments are present.
Note that the <a href="https://maven.apache.org/guides/mini/guide-encryption.html">password can be enctypted</a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><settings></span>
@@ -290,8 +222,8 @@ Note that the <a href="https://maven.apache.org/guides/mini/guide-encryption.htm
</span></span><span class="line"><span class="cl"> <span class="nt"><password></span>password for uploading to Maven Central<span class="nt"></password></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></server></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></servers></span>
-</span></span><span class="line"><span class="cl"><span class="nt"></settings></span></span></span></code></pre></div>
-<h1 id="release-config">Specific release configuration </h1>
+</span></span><span class="line"><span class="cl"><span class="nt"></settings></span>
+</span></span></code></pre></div><h1 id="release-config">Specific release configuration </h1>
<p>For all instructions in this page, <code>$OLD_VERSION</code> and <code>$NEW_VERSION</code> stand for the version
... 4527 lines suppressed ...