blob: e80e8713bd4a1f1f3049f76a4822f10a9f9a3885 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>GridCoverage2D (Apache SIS 1.4 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="dc.created" content="2023-10-05">
<meta name="description" content="declaration: module: org.apache.sis.feature, package: org.apache.sis.coverage.grid, class: GridCoverage2D">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.coverage.grid.GridCoverage2D class">
<meta name="keywords" content="getGridGeometry2D()">
<meta name="keywords" content="createConvertedValues()">
<meta name="keywords" content="evaluator()">
<meta name="keywords" content="render()">
<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">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.1.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="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</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><a href="#nested-class-summary">Nested</a></li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></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><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&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><a href="#constructor-detail">Constr</a>&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="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">org.apache.sis.feature</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.coverage.grid</a></div>
<h1 title="Class GridCoverage2D" class="title">Class GridCoverage2D</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance"><a href="../BandedCoverage.html" title="class in org.apache.sis.coverage">BandedCoverage</a>
<div class="inheritance"><a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a>
<div class="inheritance">GridCoverage2D</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">GridCoverage2D</span>
<span class="extends-implements">extends <a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></span></div>
<div class="block">Basic access to grid data values backed by a two-dimensional <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a>.
While images are two-dimensional, the coverage <em>envelope</em> may have more dimensions.
In other words the rendered image can be a two-dimensional slice in a <var>n</var>-dimensional space.
The only restriction is that the <a href="GridGeometry.html#getExtent()">grid extent</a> has a
<a href="GridExtent.html#getSize(int)">size</a> equals to 1 in all dimensions except two of them.
<h2 id="example-heading">Example</h2>
A remote sensing image may be valid only over some time range
(the temporal period of the satellite passing over observed area).
Envelopes for such grid coverage can have three dimensions:
the two usual ones (horizontal extent along <var>x</var> and <var>y</var>),
and a third dimension for start time and end time (temporal extent along <var>t</var>).
This "two-dimensional" grid coverage can have any number of columns along <var>x</var> axis
and any number of rows along <var>y</var> axis, but only one plan along <var>t</var> axis.
This single plan can have a lower bound (the start time) and an upper bound (the end time).
<h2 id="image-size-and-location-heading">Image size and location</h2>
The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link">image width</a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link">height</a>
must be equal to the <a href="GridExtent.html#getSize(int)">grid extent size</a> in the two dimensions of the slice.
However, the image origin (<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinX()" title="class or interface in java.awt.image" class="external-link">minimal x</a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinY()" title="class or interface in java.awt.image" class="external-link">y</a>
values) does not need to be equal to the <a href="GridExtent.html#getLow(int)">grid extent low values</a>;
a translation will be applied as needed.
<h2 id="image-bands-heading">Image bands</h2>
Each band in an image is represented as a <a href="../SampleDimension.html" title="class in org.apache.sis.coverage"><code>Sample­Dimension</code></a>.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.apache.sis.coverage.grid.GridCoverage">Nested classes/interfaces inherited from class&nbsp;<a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></h2>
<code><a href="GridCoverage.Evaluator.html" title="interface in org.apache.sis.coverage.grid">Grid­Coverage​.Evaluator</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-GridCoverage">Fields inherited from class&nbsp;<a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></h3>
<code><a href="GridCoverage.html#gridGeometry">grid­Geometry</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.apache.sis.coverage.grid.GridCoverage,java.awt.image.RenderedImage)" class="member-name-link">Grid­Coverage2D</a><wbr>(<a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">Grid­Coverage</a>&nbsp;source,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a>&nbsp;data)</code></div>
<div class="col-last even-row-color">
<div class="block">Constructs a grid coverage using the same domain and range than the given coverage, but different data.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.apache.sis.coverage.grid.GridGeometry,java.util.List,java.awt.image.RenderedImage)" class="member-name-link">Grid­Coverage2D</a><wbr>(<a href="GridGeometry.html" title="class in org.apache.sis.coverage.grid">Grid­Geometry</a>&nbsp;domain,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;? extends <a href="../SampleDimension.html" title="class in org.apache.sis.coverage">Sample­Dimension</a>&gt;&nbsp;range,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a>&nbsp;data)</code></div>
<div class="col-last odd-row-color">
<div class="block">Constructs a grid coverage using the specified domain, range and data.</div>
</div>
</div>
</section>
</li>
<!-- ========== 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-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete 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-tab4"><code>protected <a href="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-tab4"><code><a href="#createConvertedValues(boolean)" class="member-name-link">create­Converted­Values</a><wbr>(boolean&nbsp;converted)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a grid coverage that contains real values or sample values,
depending if <code>converted</code> is <code>true</code> or <code>false</code> respectively.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="GridCoverage.Evaluator.html" title="interface in org.apache.sis.coverage.grid">Grid­Coverage​.Evaluator</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluator()" class="member-name-link">evaluator</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a new function for computing or interpolating sample values at given locations.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="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-tab4"><code><a href="#getGridGeometry2D()" class="member-name-link">get­Grid­Geometry2D</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the two-dimensional part of this grid geometry.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#render(org.apache.sis.coverage.grid.GridExtent)" class="member-name-link">render</a><wbr>(<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">Grid­Extent</a>&nbsp;slice­Extent)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a grid data region as a rendered image.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-GridCoverage">Methods inherited from class&nbsp;<a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></h3>
<code><a href="GridCoverage.html#forConvertedValues(boolean)">for­Converted­Values</a>, <a href="GridCoverage.html#getCoordinateReferenceSystem()">get­Coordinate­Reference­System</a>, <a href="GridCoverage.html#getEnvelope()">get­Envelope</a>, <a href="GridCoverage.html#getGridGeometry()">get­Grid­Geometry</a>, <a href="GridCoverage.html#getSampleDimensions()">get­Sample­Dimensions</a>, <a href="GridCoverage.html#toString()">to­String</a>, <a href="GridCoverage.html#toTree(java.util.Locale,int)">to­Tree</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.apache.sis.coverage.grid.GridCoverage,java.awt.image.RenderedImage)">
<h3>GridCoverage2D</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">GridCoverage2D</span><wbr><span class="parameters">(<a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a>&nbsp;source,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a>&nbsp;data)</span></div>
<div class="block">Constructs a grid coverage using the same domain and range than the given coverage, but different data.
This constructor can be used when new data have been computed by an image processing operation,
but each pixel of the result have the same coordinates and the same units of measurement
than in the source coverage.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>source</code> - the coverage from which to copy grid geometry and sample dimensions.</dd>
<dd><code>data</code> - the sample values as a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a>, with one band for each sample dimension.</dd>
<dt>Throws:</dt>
<dd><code><a href="IllegalGridGeometryException.html" title="class in org.apache.sis.coverage.grid">Illegal­Grid­Geometry­Exception</a></code> - if the image size is not consistent with the grid geometry.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/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 image number of bands is not the same than the number of sample dimensions.</dd>
<dt>Since:</dt>
<dd>1.2</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.apache.sis.coverage.grid.GridGeometry,java.util.List,java.awt.image.RenderedImage)">
<h3>GridCoverage2D</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">GridCoverage2D</span><wbr><span class="parameters">(<a href="GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a>&nbsp;domain,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;? extends <a href="../SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a>&gt;&nbsp;range,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a>&nbsp;data)</span></div>
<div class="block">Constructs a grid coverage using the specified domain, range and data. If the given domain does not
have an extent, then a default <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> will be computed from given image. Otherwise the
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link">image width</a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link">height</a>
must be equal to the <a href="GridExtent.html#getSize(int)">grid extent size</a> in the two dimensions of
the slice.
<p>The image origin (<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinX()" title="class or interface in java.awt.image" class="external-link">minimal x</a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinY()" title="class or interface in java.awt.image" class="external-link">y</a>
values) can be anywhere; it does not need to be the same as the <a href="GridExtent.html#getLow(int)">grid extent
low values</a>. Translations will be applied automatically when needed.</p>
<p>This constructor throws an <a href="IllegalGridGeometryException.html" title="class in org.apache.sis.coverage.grid"><code>Illegal­Grid­Geometry­Exception</code></a> if one
of the following errors is detected in the <code>domain</code> argument:</p>
<ul>
<li>The given domain has less than two dimensions.</li>
<li>The given domain has more than two dimensions having an
<a href="GridExtent.html#getSize(int)">extent size</a> greater than 1.</li>
<li>The extent size along <var>x</var> and <var>y</var> axes is not equal to the image width and height.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>domain</code> - the grid extent (may be absent), CRS and conversion from cell indices.
If <code>null</code> a default grid geometry will be created with no CRS and identity conversion.</dd>
<dd><code>range</code> - sample dimensions for each image band. The size of this list must be equal to the number of bands.
If <code>null</code>, default sample dimensions will be created with no transfer function.</dd>
<dd><code>data</code> - the sample values as a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a>, with one band for each sample dimension.</dd>
<dt>Throws:</dt>
<dd><code><a href="IllegalGridGeometryException.html" title="class in org.apache.sis.coverage.grid">Illegal­Grid­Geometry­Exception</a></code> - if the <code>domain</code> does not met the above-documented conditions.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/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 image number of bands is not the same than the number of sample dimensions.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link">Arithmetic­Exception</a></code> - if the distance between grid location and image location exceeds the <code>long</code> capacity.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="GridCoverageBuilder.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Coverage­Builder</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getGridGeometry2D()">
<h3>getGridGeometry2D</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="GridGeometry.html" title="class in org.apache.sis.coverage.grid">GridGeometry</a></span>&nbsp;<span class="element-name">getGridGeometry2D</span>()</div>
<div class="block">Returns the two-dimensional part of this grid geometry.
If the <a href="GridCoverage.html#getGridGeometry()">complete geometry</a> is already two-dimensional,
then this method returns the same geometry. Otherwise it returns a geometry for the two first
axes having a <a href="GridExtent.html#getSize(int)">size</a> greater than 1 in the grid envelope.
Note that those axes are guaranteed to appear in the same order than in the complete geometry.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the two-dimensional part of the grid geometry.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="GridCoverage.html#getGridGeometry()"><code>Grid­Coverage​.get­Grid­Geometry()</code></a></li>
<li><a href="GridGeometry.html#selectDimensions(int...)"><code>Grid­Geometry​.select­Dimensions(int[])</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createConvertedValues(boolean)">
<h3>createConvertedValues</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">GridCoverage</a></span>&nbsp;<span class="element-name">createConvertedValues</span><wbr><span class="parameters">(boolean&nbsp;converted)</span></div>
<div class="block">Creates a grid coverage that contains real values or sample values,
depending if <code>converted</code> is <code>true</code> or <code>false</code> respectively.
This method is invoked by the default implementation of <a href="GridCoverage.html#forConvertedValues(boolean)"><code>Grid­Coverage​.for­Converted­Values(boolean)</code></a>
when first needed.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="GridCoverage.html#createConvertedValues(boolean)">create­Converted­Values</a></code>&nbsp;in class&nbsp;<code><a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">Grid­Coverage</a></code></dd>
<dt>Parameters:</dt>
<dd><code>converted</code> - <code>true</code> for a coverage containing converted values,
or <code>false</code> for a coverage containing packed values.</dd>
<dt>Returns:</dt>
<dd>a coverage containing converted or packed values, depending on <code>converted</code> argument value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluator()">
<h3>evaluator</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="GridCoverage.Evaluator.html" title="interface in org.apache.sis.coverage.grid">GridCoverage.Evaluator</a></span>&nbsp;<span class="element-name">evaluator</span>()</div>
<div class="block">Creates a new function for computing or interpolating sample values at given locations.
<h4 id="multi-threading-heading">Multi-threading</h4>
<code>Evaluator</code>s are not thread-safe. For computing sample values concurrently,
a new <code>Evaluator</code> instance should be created for each thread.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="GridCoverage.html#evaluator()">evaluator</a></code>&nbsp;in class&nbsp;<code><a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">Grid­Coverage</a></code></dd>
<dt>Returns:</dt>
<dd>a new function for computing or interpolating sample values.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="render(org.apache.sis.coverage.grid.GridExtent)">
<h3>render</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a></span>&nbsp;<span class="element-name">render</span><wbr><span class="parameters">(<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;sliceExtent)</span>
throws <span class="exceptions"><a href="../CannotEvaluateException.html" title="class in org.apache.sis.coverage">CannotEvaluateException</a></span></div>
<div class="block">Returns a grid data region as a rendered image. The <code>slice­Extent</code> argument
specifies the area of interest and may be <code>null</code> for requesting the whole image.
The coordinates given by <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinX()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Min­X()</code></a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinY()" title="class or interface in java.awt.image" class="external-link"><code>get­Min­Y()</code></a>
will be the image location <em>relative to</em> the location specified in <code>slice­Extent</code>
<a href="GridExtent.html#getLow(int)">low coordinates</a> (see super-class javadoc for more discussion).
The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link">image width</a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link">height</a> will be
the <code>slice­Extent</code> <a href="GridExtent.html#getSize(int)">sizes</a> if this method can honor exactly the request,
but this method is free to return a smaller or larger image if doing so reduce the amount of data to create or copy.
This implementation returns a view as much as possible, without copying sample values.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="GridCoverage.html#render(org.apache.sis.coverage.grid.GridExtent)">render</a></code>&nbsp;in class&nbsp;<code><a href="GridCoverage.html" title="class in org.apache.sis.coverage.grid">Grid­Coverage</a></code></dd>
<dt>Parameters:</dt>
<dd><code>slice­Extent</code> - area of interest, or <code>null</code> for the whole image.</dd>
<dt>Returns:</dt>
<dd>the grid slice as a rendered image. Image location is relative to <code>slice­Extent</code>.</dd>
<dt>Throws:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/MismatchedDimensionException.html" title="class or interface in org.opengis.geometry" class="external-link">Mismatched­Dimension­Exception</a></code> - if the given extent does not have the same number of dimensions than this coverage.</dd>
<dd><code><a href="DisjointExtentException.html" title="class in org.apache.sis.coverage.grid">Disjoint­Extent­Exception</a></code> - if the given extent does not intersect this grid coverage.</dd>
<dd><code><a href="../CannotEvaluateException.html" title="class in org.apache.sis.coverage">Cannot­Evaluate­Exception</a></code> - if this method cannot produce the rendered image for another reason.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/BufferedImage.html#getSubimage(int,int,int,int)" title="class or interface in java.awt.image" class="external-link"><code>Buffered­Image​.get­Subimage(int, int, int, int)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>