blob: 0f3010b1227c8324f02fd80e9f5f03eac64c0aa0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>GridCoverageResource (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.storage.GridCoverageResource interface">
<meta name="keywords" content="getGridGeometry()">
<meta name="keywords" content="getSampleDimensions()">
<meta name="keywords" content="read()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GridCoverageResource (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GridCoverageResource.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.storage</a></div>
<h2 title="Interface GridCoverageResource" class="title">Interface GridCoverageResource</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="DataSet.html" title="interface in org.apache.sis.storage">Data­Set</a></code>, <code><a href="Resource.html" title="interface in org.apache.sis.storage">Resource</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">GridCoverageResource</span>
extends <a href="DataSet.html" title="interface in org.apache.sis.storage">DataSet</a></pre>
<div class="block">Access to data values in a <var>n</var>-dimensional grid.
A coverage is a kind of function with the following properties:
<ul class="verbose">
<li>The function input is a position valid in the coverage <cite>domain</cite>. In the particular case of
<a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Coverage</code></a>, the domain is described by a <a href="#getGridGeometry()">grid geometry</a>.</li>
<li>The function output is a record of values in the coverage <cite>range</cite>. In the particular case of
<a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Coverage</code></a>, the range is described by a list of <a href="#getSampleDimensions()">sample dimensions</a>.</li>
</ul>
A coverage resource may be a member of <a href="Aggregate.html" title="interface in org.apache.sis.storage"><code>Aggregate</code></a> if a single file can provide many rasters.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<p><font size="-1">Defined in the <code>sis-storage</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGridGeometry()">getGridGeometry</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the valid extent of grid coordinates together with the conversion from those grid
coordinates to real world coordinates.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../coverage/SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSampleDimensions()">getSampleDimensions</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the ranges of sample values together with the conversion from samples to real values.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)">read</a></span>&#8203;(<a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a>&nbsp;domain,
int...&nbsp;range)</code></th>
<td class="colLast">
<div class="block">Loads a subset of the grid coverage represented by this resource.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.DataSet">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="DataSet.html" title="interface in org.apache.sis.storage">DataSet</a></h3>
<code><a href="DataSet.html#getEnvelope()">get­Envelope</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Resource">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="Resource.html" title="interface in org.apache.sis.storage">Resource</a></h3>
<code><a href="Resource.html#addListener(java.lang.Class,org.apache.sis.storage.event.StoreListener)">add­Listener</a>, <a href="Resource.html#getIdentifier()">get­Identifier</a>, <a href="Resource.html#getMetadata()">get­Metadata</a>, <a href="Resource.html#removeListener(java.lang.Class,org.apache.sis.storage.event.StoreListener)">remove­Listener</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getGridGeometry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGridGeometry</h4>
<pre class="methodSignature"><a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a>&nbsp;getGridGeometry()
throws <a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></pre>
<div class="block">Returns the valid extent of grid coordinates together with the conversion from those grid
coordinates to real world coordinates. A grid geometry contains the following information:
<ul class="verbose">
<li>The minimum and maximum grid coordinates as integers (the <cite>Grid Extent</cite>).
The minimum coordinates are typically (0,0, …, 0) but not necessarily.</li>
<li>The minimum and maximum "real world" coordinates (the <cite>Envelope</cite>).
Those coordinates are typically, but not necessarily, latitudes and longitudes
or projected coordinates, together with altitudes and dates.</li>
<li>A description of the datum and axes of above "real world" coordinates
(the <cite>Coordinate Reference System</cite>).</li>
<li>The conversion from grid coordinates to "real world" coordinates. This conversion is often,
but not necessarily, a linear relationship. Axis order or direction may be changed by the conversion.
For example row indices may be increasing toward down while latitude coordinates are increasing toward up.</li>
<li>An <em>estimation</em> of grid resolution for each "real world" axis.</li>
</ul>
The grid returned by this method <em>should</em> be equal to the grid returned by
<code><a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)">read</a>(null).<a href="../coverage/grid/GridCoverage.html#getGridGeometry()">get­Grid­Geometry()</a></code>.
However the grid geometry returned by this method is allowed to be only approximate if computing accurate information would be
prohibitively expensive, or if the grid geometry depends on the exact argument value given to the <code>read(…)</code> method.
At least, the <a href="../coverage/grid/GridGeometry.html#getDimension()">number of dimensions</a> should match.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>extent of grid coordinates together with their mapping to "real world" coordinates.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if an error occurred while reading definitions from the underlying data store.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../coverage/grid/GridCoverage.html#getGridGeometry()"><code>Grid­Coverage​.get­Grid­Geometry()</code></a></dd>
</dl>
</li>
</ul>
<a id="getSampleDimensions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSampleDimensions</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../coverage/SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a>&gt;&nbsp;getSampleDimensions()
throws <a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></pre>
<div class="block">Returns the ranges of sample values together with the conversion from samples to real values.
Sample dimensions contain the following information:
<ul class="verbose">
<li>The range of valid <cite>sample values</cite>, typically but not necessarily as positive integers.</li>
<li>A <cite>transfer function</cite> for converting sample values to real values, for example measurements
of a geophysics phenomenon. The transfer function is typically defined by a scale factor and an offset,
but is not restricted to such linear equations.</li>
<li>The units of measurement of "real world" values after their conversions from sample values.</li>
<li>The sample values reserved for missing values.</li>
</ul>
The returned list should never be empty. If the coverage is an image to be used only for visualization purposes
(i.e. the image does not contain any classification data or any measurement of physical phenomenon), then list
size should be equal to the <a href="https://docs.oracle.com/javase/8/docs/api/java/awt/image/SampleModel.html?is-external=true#getNumBands()" title="class or interface in java.awt.image" class="externalLink">number of bands</a> in the image
and sample dimension names may be "Red", "Green" and "Blue" for instance. Those sample dimensions do not need
to contain any <a href="../coverage/SampleDimension.html#getCategories()">category</a>.
<p>The list returned by this method <em>should</em> be equal to the list returned by
<code><a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)">read</a>(null).<a href="../coverage/grid/GridCoverage.html#getSampleDimensions()">get­Sample­Dimensions()</a></code>.
However the sample dimensions returned by this method is allowed to be only approximate if computing accurate information
would be prohibitively expensive, or if the sample dimensions depend on the <code>domain</code> argument (area of interest)
given to the <code>read(…)</code> method. At least, the number of sample dimensions should match.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ranges of sample values together with their mapping to "real values".</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if an error occurred while reading definitions from the underlying data store.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../coverage/grid/GridCoverage.html#getSampleDimensions()"><code>Grid­Coverage​.get­Sample­Dimensions()</code></a></dd>
</dl>
</li>
</ul>
<a id="read(org.apache.sis.coverage.grid.GridGeometry,int...)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature"><a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a>&nbsp;read&#8203;(<a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a>&nbsp;domain,
int...&nbsp;range)
throws <a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></pre>
<div class="block">Loads a subset of the grid coverage represented by this resource. If a non-null grid geometry is specified,
then this method will try to return a grid coverage matching the given grid geometry on a best-effort basis;
the coverage actually returned may have a different resolution, cover a different area in a different CRS,
<i>etc</i>. The general contract is that the returned coverage should not contain less data than a coverage
matching exactly the given geometry.
<p>The returned coverage shall contain the exact set of sample dimensions specified by the <code>range</code> argument,
in the specified order (the "best-effort basis" flexibility applies only to the grid geometry, not to the range).
All <code>range</code> values shall be between 0 inclusive and <code><a href="#getSampleDimensions()">get­Sample­Dimensions()</a>.size()</code>
exclusive, without duplicated values.</p>
<p>While this method name suggests an immediate reading, some implementations may defer the actual reading
at a later stage.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>domain</code> - desired grid extent and resolution, or <code>null</code> for reading the whole domain.</dd>
<dd><code>range</code> - 0-based indices of sample dimensions to read, or <code>null</code> or an empty sequence for reading them all.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the grid coverage for the specified domain and range.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if an error occurred while reading the grid coverage data.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GridCoverageResource.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>