<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>GridCoverageResource (Apache SIS 1.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.sis.storage, interface: GridCoverageResource">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.storage.GridCoverageResource interface">
<meta name="keywords" content="getGridGeometry()">
<meta name="keywords" content="getSampleDimensions()">
<meta name="keywords" content="getResolutions()">
<meta name="keywords" content="subset()">
<meta name="keywords" content="read()">
<meta name="keywords" content="getLoadingStrategy()">
<meta name="keywords" content="setLoadingStrategy()">
<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="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.storage</a></div>
<h1 title="Interface GridCoverageResource" class="title">Interface GridCoverageResource</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<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>
<dl class="notes">
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="WritableGridCoverageResource.html" title="interface in org.apache.sis.storage">Writable­Grid­Coverage­Resource</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractGridCoverageResource.html" title="class in org.apache.sis.storage">Abstract­Grid­Coverage­Resource</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">GridCoverageResource</span><span class="extends-implements">
extends <a href="DataSet.html" title="interface in org.apache.sis.storage">DataSet</a></span></div>
<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 class="notes">
<dt>Since:</dt>
<dd>1.0</dd>

<p><font size="-1">Defined in the <code>sis-storage</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">Grid­Geometry</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getGridGeometry()" class="member-name-link">get­Grid­Geometry</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the valid extent of grid coordinates together with the conversion from those grid
 coordinates to real world coordinates.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="RasterLoadingStrategy.html" title="enum class in org.apache.sis.storage">Raster­Loading­Strategy</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#getLoadingStrategy()" class="member-name-link">get­Loading­Strategy</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Returns an indication about when the "physical" loading of raster data will happen.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;double[]&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#getResolutions()" class="member-name-link">get­Resolutions</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Returns the preferred resolutions (in units of CRS axes) for read operations in this data store.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../coverage/SampleDimension.html" title="class in org.apache.sis.coverage">Sample­Dimension</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSampleDimensions()" class="member-name-link">get­Sample­Dimensions</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the ranges of sample values together with the conversion from samples to real values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid">Grid­Coverage</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)" class="member-name-link">read</a><wbr>(<a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">Grid­Geometry</a>&nbsp;domain,
 int...&nbsp;ranges)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads a subset of the grid coverage represented by this resource.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#setLoadingStrategy(org.apache.sis.storage.RasterLoadingStrategy)" class="member-name-link">set­Loading­Strategy</a><wbr>(<a href="RasterLoadingStrategy.html" title="enum class in org.apache.sis.storage">Raster­Loading­Strategy</a>&nbsp;strategy)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Sets the preferred strategy about when to do the "physical" loading of raster data.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="GridCoverageResource.html" title="interface in org.apache.sis.storage">Grid­Coverage­Resource</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#subset(org.apache.sis.storage.Query)" class="member-name-link">subset</a><wbr>(<a href="Query.html" title="class in org.apache.sis.storage">Query</a>&nbsp;query)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Requests a subset of the coverage.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-DataSet">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></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Resource">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></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getGridGeometry()">
<h3>getGridGeometry</h3>
<div class="member-signature"><span class="return-type"><a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a></span>&nbsp;<span class="element-name">getGridGeometry</span>()
                      throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<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 class="notes">
<dt>Returns:</dt>
<dd>extent of grid coordinates together with their mapping to "real world" coordinates.</dd>
<dt>Throws:</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>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../coverage/grid/GridCoverage.html#getGridGeometry()"><code>Grid­Coverage​.get­Grid­Geometry()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSampleDimensions()">
<h3>getSampleDimensions</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../coverage/SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a>&gt;</span>&nbsp;<span class="element-name">getSampleDimensions</span>()
                                   throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<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/en/java/javase/16/docs/api/java.desktop/java/awt/image/SampleModel.html#getNumBands()" title="class or interface in java.awt.image" class="external-link">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 class="notes">
<dt>Returns:</dt>
<dd>ranges of sample values together with their mapping to "real values".</dd>
<dt>Throws:</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>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../coverage/grid/GridCoverage.html#getSampleDimensions()"><code>Grid­Coverage​.get­Sample­Dimensions()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getResolutions()">
<h3>getResolutions</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;double[]&gt;</span>&nbsp;<span class="element-name">getResolutions</span>()
                               throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<div class="block">Returns the preferred resolutions (in units of CRS axes) for read operations in this data store.
 If the storage supports pyramid, then the list should contain the resolution at each pyramid level
 ordered from finest (smallest numbers) to coarsest (largest numbers) resolution.
 Otherwise the list contains a single element which is the <a href="#getGridGeometry()">grid geometry</a>
 resolution, or an empty list if no resolution is applicable to the coverage (e.g. because non-constant).

 <p>Each element shall be an array with a length equals to the number of CRS dimensions.
 In each array, value at index <var>i</var> is the cell size along CRS dimension <var>i</var>
 in units of the CRS axis <var>i</var>.</p>

 <p>Note that arguments given to <a href="#subset(org.apache.sis.storage.Query)"><code>subset(…)</code></a> or <a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)"><code>read(…)</code></a> methods
 are <em>not</em> constrained to the resolutions returned by this method. Those resolutions are only hints
 about resolution values where read operations are likely to be more efficient.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>preferred resolutions for read operations in this data store, or an empty array if none.</dd>
<dt>Throws:</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>Since:</dt>
<dd>1.2</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../coverage/grid/GridGeometry.html#getResolution(boolean)"><code>Grid­Geometry​.get­Resolution(boolean)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="subset(org.apache.sis.storage.Query)">
<h3>subset</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="GridCoverageResource.html" title="interface in org.apache.sis.storage">GridCoverageResource</a></span>&nbsp;<span class="element-name">subset</span><wbr><span class="parameters">(<a href="Query.html" title="class in org.apache.sis.storage">Query</a>&nbsp;query)</span>
                             throws <span class="exceptions"><a href="UnsupportedQueryException.html" title="class in org.apache.sis.storage">UnsupportedQueryException</a>,
<a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<div class="block">Requests a subset of the coverage.
 The filtering can be applied in two aspects:

 <ul>
   <li>The returned <code>Grid­Coverage­Resource</code> may contain a smaller domain (grid extent).</li>
   <li>The returned <code>Grid­Coverage­Resource</code> may contain a smaller range (less sample dimensions).</li>
 </ul>

 <p>The returned subset may be a <em>view</em> of this set, i.e. changes in this <code>Grid­Coverage­Resource</code>
 may be reflected immediately on the returned subset (and conversely), but not necessarily.
 However, the returned subset may not have the same capabilities as this <a href="GridCoverageResource.html" title="interface in org.apache.sis.storage"><code>Grid­Coverage­Resource</code></a>.
 In particular, write operations may become unsupported after complex queries.</p>

 <h4>Default implementation</h4>
 The default implementation delegates to <a href="CoverageQuery.html#execute(org.apache.sis.storage.GridCoverageResource)"><code>Coverage­Query​.execute(Grid­Coverage­Resource)</code></a> if the given
 query is an instance of <code>Coverage­Query</code>, or throws <a href="UnsupportedQueryException.html" title="class in org.apache.sis.storage"><code>Unsupported­Query­Exception</code></a> otherwise.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>query</code> - definition of domain (grid extent) and range (sample dimensions) filtering applied at reading time.</dd>
<dt>Returns:</dt>
<dd>resulting coverage resource (never <code>null</code>).</dd>
<dt>Throws:</dt>
<dd><code><a href="UnsupportedQueryException.html" title="class in org.apache.sis.storage">Unsupported­Query­Exception</a></code> - if the given query is not valid for this <code>Grid­Coverage­Resource</code>.
         This includes query validation errors.</dd>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if another error occurred while processing the query.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="FeatureSet.html#subset(org.apache.sis.storage.Query)"><code>Feature­Set​.subset(Query)</code></a></li>
<li><a href="CoverageQuery.html#execute(org.apache.sis.storage.GridCoverageResource)"><code>Coverage­Query​.execute(Grid­Coverage­Resource)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="read(org.apache.sis.coverage.grid.GridGeometry,int...)">
<h3>read</h3>
<div class="member-signature"><span class="return-type"><a href="../coverage/grid/GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></span>&nbsp;<span class="element-name">read</span><wbr><span class="parameters">(<a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a>&nbsp;domain,
 int...&nbsp;ranges)</span>
           throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<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 ranges).
 All <code>ranges</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 class="notes">
<dt>Parameters:</dt>
<dd><code>domain</code> - desired grid extent and resolution, or <code>null</code> for reading the whole domain.</dd>
<dd><code>ranges</code> - 0-based indices of sample dimensions to read, or <code>null</code> or an empty sequence for reading them all.</dd>
<dt>Returns:</dt>
<dd>the grid coverage for the specified domain and ranges.</dd>
<dt>Throws:</dt>
<dd><code><a href="../coverage/grid/DisjointExtentException.html" title="class in org.apache.sis.coverage.grid">Disjoint­Extent­Exception</a></code> - if the given domain does not intersect the resource extent.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given domain or ranges are invalid for another reason.</dd>
<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>
</section>
</li>
<li>
<section class="detail" id="getLoadingStrategy()">
<h3>getLoadingStrategy</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="RasterLoadingStrategy.html" title="enum class in org.apache.sis.storage">RasterLoadingStrategy</a></span>&nbsp;<span class="element-name">getLoadingStrategy</span>()
                                          throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<div class="block">Returns an indication about when the "physical" loading of raster data will happen.
 This is the strategy actually applied by this resource implementation, not necessarily
 the strategy given in the last call to <a href="#setLoadingStrategy(org.apache.sis.storage.RasterLoadingStrategy)"><code>set­Loading­Strategy(…)</code></a>.

 <p>The default strategy is to load raster data at <a href="#read(org.apache.sis.coverage.grid.GridGeometry,int...)"><code>read(…)</code></a> method invocation time.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>current raster data loading strategy for this resource.</dd>
<dt>Throws:</dt>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if an error occurred while fetching data store configuration.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setLoadingStrategy(org.apache.sis.storage.RasterLoadingStrategy)">
<h3>setLoadingStrategy</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">setLoadingStrategy</span><wbr><span class="parameters">(<a href="RasterLoadingStrategy.html" title="enum class in org.apache.sis.storage">RasterLoadingStrategy</a>&nbsp;strategy)</span>
                            throws <span class="exceptions"><a href="DataStoreException.html" title="class in org.apache.sis.storage">DataStoreException</a></span></div>
<div class="block">Sets the preferred strategy about when to do the "physical" loading of raster data.
 Implementations are free to ignore this parameter or to replace the given strategy
 by the closest alternative that this resource can support.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>strategy</code> - the desired strategy for loading raster data.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given strategy has been accepted, or <code>false</code>
         if this implementation replaced the given strategy by an alternative.</dd>
<dt>Throws:</dt>
<dd><code><a href="DataStoreException.html" title="class in org.apache.sis.storage">Data­Store­Exception</a></code> - if an error occurred while setting data store configuration.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
