blob: a88afbd6d0ef55ece3522d28ce1c83d805afe427 [file] [log] [blame]
<!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>