blob: 8de2ff1fa771f39c854047b379d8d5cfc65ea4b0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>GridExtent (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.coverage.grid.GridExtent class">
<meta name="keywords" content="getDimension()">
<meta name="keywords" content="startsAtZero()">
<meta name="keywords" content="getLow()">
<meta name="keywords" content="getHigh()">
<meta name="keywords" content="getSize()">
<meta name="keywords" content="getPointOfInterest()">
<meta name="keywords" content="getSubspaceDimensions()">
<meta name="keywords" content="getAxisType()">
<meta name="keywords" content="insert()">
<meta name="keywords" content="expand()">
<meta name="keywords" content="resize()">
<meta name="keywords" content="reduce()">
<meta name="keywords" content="subsample()">
<meta name="keywords" content="hashCode()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="toString()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GridExtent (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GridExtent.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.coverage.grid</a></div>
<h2 title="Class GridExtent" class="title">Class GridExtent</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li>GridExtent</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">GridExtent</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">A range of grid coverage coordinates, also known as "grid envelope".
<code>Grid­Extent</code> are defined by <a href="#getLow()">low</a> coordinates (often all zeros)
and <a href="#getHigh()">high</a> coordinates, <strong>inclusive</strong>.
For example a grid with a width of 512 cells can have a low coordinate of 0 and high coordinate of 511.
<div class="note"><b>Note:</b>
The inclusiveness of <a href="#getHigh()">high</a> coordinates come from ISO 19123.
We follow this specification for all getters methods, but developers should keep in mind
that this is the opposite of Java2D usage where <a href="https://docs.oracle.com/javase/8/docs/api/java/awt/Rectangle.html?is-external=true" title="class or interface in java.awt" class="externalLink"><code>Rectangle</code></a> maximal values are exclusive.</div>
<p><code>Grid­Extent</code> instances are immutable and thread-safe.
The same instance can be shared by different <a href="GridGeometry.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Geometry</code></a> instances.</p>
<div class="note"><b>Upcoming API generalization:</b>
this class may implement the <code>Grid­Envelope</code> interface in a future Apache SIS version.
This is pending GeoAPI update.</div></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../serialized-form.html#org.apache.sis.coverage.grid.GridExtent">Serialized Form</a></dd>
<p><font size="-1">Defined in the <code>sis-feature</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(long,long)">GridExtent</a></span>&#8203;(long&nbsp;width,
long&nbsp;height)</code></th>
<td class="colLast">
<div class="block">Creates a new grid extent for an image or matrix of the given size.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.metadata.spatial.DimensionNameType%5B%5D,long%5B%5D,long%5B%5D,boolean)">GridExtent</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>[]&nbsp;axisTypes,
long[]&nbsp;low,
long[]&nbsp;high,
boolean&nbsp;isHighIncluded)</code></th>
<td class="colLast">
<div class="block">Constructs a new grid envelope set to the specified coordinates.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
<td class="colLast">
<div class="block">Compares the specified object with this grid envelope for equality.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expand(long...)">expand</a></span>&#8203;(long...&nbsp;margins)</code></th>
<td class="colLast">
<div class="block">Expands or shrinks this grid extent by the given amount of cells along each dimension.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAxisType(int)">getAxisType</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the type (vertical, temporal, …) of grid axis at given dimension.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDimension()">getDimension</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of dimensions.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHigh(int)">getHigh</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the valid maximum <strong>inclusive</strong> grid coordinate along the specified dimension.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLow(int)">getLow</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the valid minimum inclusive grid coordinate along the specified dimension.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPointOfInterest()">getPointOfInterest</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the grid coordinates of a representative point.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize(int)">getSize</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the number of integer grid coordinates along the specified dimension.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize(int,boolean)">getSize</a></span>&#8203;(int&nbsp;index,
boolean&nbsp;minusOne)</code></th>
<td class="colLast">
<div class="block">Returns the number of grid coordinates as a double precision floating point value.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSubspaceDimensions(int)">getSubspaceDimensions</a></span>&#8203;(int&nbsp;s)</code></th>
<td class="colLast">
<div class="block">Returns indices of all dimensions where this grid extent has a size greater than 1.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a hash value for this grid envelope.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#insert(int,org.opengis.metadata.spatial.DimensionNameType,long,long,boolean)">insert</a></span>&#8203;(int&nbsp;offset,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>&nbsp;axisType,
long&nbsp;low,
long&nbsp;high,
boolean&nbsp;isHighIncluded)</code></th>
<td class="colLast">
<div class="block">Returns a new grid envelope with the specified dimension inserted at the given index in this grid envelope.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduce(int...)">reduce</a></span>&#8203;(int...&nbsp;dimensions)</code></th>
<td class="colLast">
<div class="block">Returns a grid envelope that encompass only some dimensions of this grid envelope.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resize(long...)">resize</a></span>&#8203;(long...&nbsp;sizes)</code></th>
<td class="colLast">
<div class="block">Sets the size of this grid extent to the given values.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startsAtZero()">startsAtZero</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if all low coordinates are zero.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subsample(int...)">subsample</a></span>&#8203;(int...&nbsp;periods)</code></th>
<td class="colLast">
<div class="block">Creates a new grid extent subsampled by the given amount of cells along each grid dimensions.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this grid envelope.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GridExtent</h4>
<pre>public&nbsp;GridExtent&#8203;(long&nbsp;width,
long&nbsp;height)</pre>
<div class="block">Creates a new grid extent for an image or matrix of the given size.
The <a href="#getLow()">low</a> grid coordinates are zeros and the axis types are
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#COLUMN" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>Dimension­Name­Type​.COLUMN</code></a> and <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#ROW" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>ROW</code></a> in that order.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>width</code> - number of pixels in each row.</dd>
<dd><code>height</code> - number of pixels in each column.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.opengis.metadata.spatial.DimensionNameType[],long[],long[],boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GridExtent</h4>
<pre>public&nbsp;GridExtent&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>[]&nbsp;axisTypes,
long[]&nbsp;low,
long[]&nbsp;high,
boolean&nbsp;isHighIncluded)</pre>
<div class="block">Constructs a new grid envelope set to the specified coordinates.
The given arrays contain a minimum (inclusive) and maximum value for each dimension of the grid coverage.
The lowest valid grid coordinates are often zero, but this is not mandatory.
As a convenience for this common case, a null <code>low</code> array means that all low coordinates are zero.
<p>An optional (nullable) <code>axis­Types</code> argument can be used for attaching a label to each grid axis.
For example if this <code>Grid­Extent</code> is four-dimensional, then the axis types may be
{<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#COLUMN" title="class or interface in org.opengis.metadata.spatial" class="externalLink">column</a> (<var>x</var>),
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#ROW" title="class or interface in org.opengis.metadata.spatial" class="externalLink">row</a> (<var>y</var>),
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#VERTICAL" title="class or interface in org.opengis.metadata.spatial" class="externalLink">vertical (<var>z</var>),
{@linkplain DimensionNameType#TIME time} (<var>t</var>)</a>,
which means that the last axis is for the temporal dimension, the third axis is for the vertical dimension, <i>etc.</i>
This information is related to the "real world" coordinate reference system axes, but not necessarily in the same order;
it is caller responsibility to ensure that the grid axes are consistent with the CRS axes.
The <code>axis­Types</code> array shall not contain duplicated elements,
but may contain <code>null</code> elements if the type of some axes are unknown.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>axis­Types</code> - the type of each grid axis, or <code>null</code> if unspecified.</dd>
<dd><code>low</code> - the valid minimum grid coordinates (always inclusive), or <code>null</code> for all zeros.</dd>
<dd><code>high</code> - the valid maximum grid coordinates, inclusive or exclusive depending on the next argument.</dd>
<dd><code>is­High­Included</code> - <code>true</code> if the <code>high</code> values are inclusive (as in ISO 19123 specification),
or <code>false</code> if they are exclusive (as in Java2D usage).
This argument does not apply to <code>low</code> values, which are always inclusive.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if a coordinate value in the low part is
greater than the corresponding coordinate value in the high part.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getLow()"><code>get­Low()</code></a>,
<a href="#getHigh()"><code>get­High()</code></a>,
<a href="#insert(int,org.opengis.metadata.spatial.DimensionNameType,long,long,boolean)"><code>insert(int, Dimension­Name­Type, long, long, boolean)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getDimension()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDimension</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;getDimension()</pre>
<div class="block">Returns the number of dimensions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of dimensions.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#reduce(int...)"><code>reduce(int...)</code></a></dd>
</dl>
</li>
</ul>
<a id="startsAtZero()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startsAtZero</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;startsAtZero()</pre>
<div class="block">Returns <code>true</code> if all low coordinates are zero.
This is a very common case since many grids start their cell numbering at zero.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether all low coordinates are zero.</dd>
</dl>
</li>
</ul>
<a id="getLow(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLow</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getLow&#8203;(int&nbsp;index)</pre>
<div class="block">Returns the valid minimum inclusive grid coordinate along the specified dimension.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the dimension for which to obtain the coordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the low coordinate value at the given dimension, inclusive.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Index­Out­Of­Bounds­Exception</a></code> - if the given index is negative or is equals or greater
than the <a href="#getDimension()">grid dimension</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getHigh(int)"><code>get­High(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getHigh(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHigh</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getHigh&#8203;(int&nbsp;index)</pre>
<div class="block">Returns the valid maximum <strong>inclusive</strong> grid coordinate along the specified dimension.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the dimension for which to obtain the coordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the high coordinate value at the given dimension, <strong>inclusive</strong>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Index­Out­Of­Bounds­Exception</a></code> - if the given index is negative or is equals or greater
than the <a href="#getDimension()">grid dimension</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getLow(int)"><code>get­Low(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getSize(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getSize&#8203;(int&nbsp;index)</pre>
<div class="block">Returns the number of integer grid coordinates along the specified dimension.
This is equal to <code>get­High(dimension) - get­Low(dimension) + 1</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the dimension for which to obtain the size.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of integer grid coordinates along the given dimension.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Index­Out­Of­Bounds­Exception</a></code> - if the given index is negative or is equals or greater
than the <a href="#getDimension()">grid dimension</a>.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArithmeticException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Arithmetic­Exception</a></code> - if the size is too large for the <code>long</code> primitive type.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getLow(int)"><code>get­Low(int)</code></a>,
<a href="#getHigh(int)"><code>get­High(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getSize(int,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getSize&#8203;(int&nbsp;index,
boolean&nbsp;minusOne)</pre>
<div class="block">Returns the number of grid coordinates as a double precision floating point value.
Invoking this method is equivalent to invoking <a href="#getSize(int)"><code>get­Size(int)</code></a> and converting
the result from <code>long</code> to the <code>double</code> primitive type,
except that this method does not overflow.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the dimension for which to obtain the size.</dd>
<dd><code>minus­One</code> - <code>true</code> for returning <var>size</var>−1 instead of <var>size</var>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of integer grid coordinates along the given dimension.</dd>
</dl>
</li>
</ul>
<a id="getPointOfInterest()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPointOfInterest</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getPointOfInterest()</pre>
<div class="block">Returns the grid coordinates of a representative point.
This point may be used for estimating a <a href="GridGeometry.html#getResolution(boolean)">grid resolution</a>.
The default implementation returns the median (or center) coordinates of this grid extent,
but subclasses can override this method if another point is considered more representative.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the grid coordinates of a representative point.</dd>
</dl>
</li>
</ul>
<a id="getSubspaceDimensions(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubspaceDimensions</h4>
<pre class="methodSignature">public&nbsp;int[]&nbsp;getSubspaceDimensions&#8203;(int&nbsp;s)</pre>
<div class="block">Returns indices of all dimensions where this grid extent has a size greater than 1.
This method can be used for getting the grid extent of a <var>s</var>-dimensional slice
in a <var>n</var>-dimensional cube where <var>s</var><var>n</var>.
<div class="note"><b>Example:</b>
suppose that we want to get a two-dimensional slice <var>(y,z)</var> in a four-dimensional data cube <var>(x,y,z,t)</var>.
The first step is to specify the <var>x</var> and <var>t</var> coordinates of the slice.
In this example we set <var>x</var> to 5 and <var>t</var> to 8.
<blockquote><pre>GridGeometry grid = ...; <i><font color="gray">// Geometry of the (x,y,z,t) grid.</font></i>
GridGeometry slice4D = grid.<b>slice</b>(<font color="green">new</font> <b>GeneralDirectPosition</b>(5, NaN, NaN, 8));</pre></blockquote>
Above code created a slice at the requested position, but that slice still have 4 dimensions.
It is a "slice" because the <var>x</var> and <var>t</var> dimensions of <code>slice4D</code> have only one cell.
If a two-dimensional slice is desired, then above operations can be completed as below.
In this example, the result of <code>get­Subspace­Dimensions(2)</code> call will be {1,2}.
<blockquote><pre><font color="green">int</font>[] subDimensions = slice4D.<b>getExtent</b>().<b>getSubspaceDimensions</b>(2);
GridGeometry slice2D = slice4D.<b>reduce</b>(subDimensions);</pre></blockquote>
Note that in this particular example, it would have been more efficient to execute <code>grid​.reduce(1,2)</code> directly.
This <code>get­Subspace­Dimensions(int)</code> method is more useful for inferring a <code>slice2D</code> from a <code>slice4D</code>
which has been created elsewhere, or when we do not really want the <code>slice2D</code> but only its dimension indices.
</div>
This method returns exactly <var>s</var> indices. If there is more than <var>s</var> dimensions having a
<a href="#getSize(int)">size</a> greater than 1, then a <a href="../SubspaceNotSpecifiedException.html" title="class in org.apache.sis.coverage"><code>Subspace­Not­Specified­Exception</code></a> is thrown.
If there is less than <var>s</var> dimensions having a size greater than 1, then the returned list of
dimensions is completed with some dimensions of size 1, starting with the first dimensions in this grid
extent, until there is exactly <var>s</var> dimensions. This this grid extent does not have <var>s</var>
dimensions, then a <code>Cannot­Evaluate­Exception</code> is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - number of dimensions of the sub-space.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>indices of sub-space dimensions, in increasing order in an array of length <var>s</var>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../SubspaceNotSpecifiedException.html" title="class in org.apache.sis.coverage">Subspace­Not­Specified­Exception</a></code> - if there is more than <var>s</var> dimensions having a size greater than 1.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runtime­Exception</a></code> - if this grid extent does not have at least <var>s</var> dimensions.</dd>
</dl>
</li>
</ul>
<a id="getAxisType(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAxisType</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>&gt;&nbsp;getAxisType&#8203;(int&nbsp;index)</pre>
<div class="block">Returns the type (vertical, temporal, …) of grid axis at given dimension.
This information is provided because the grid axis type can not always be inferred from the context.
Some examples are:
<ul>
<li><code>get­Axis­Type(0)</code> may return <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#COLUMN" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>Dimension­Name­Type​.COLUMN</code></a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#TRACK" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>TRACK</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#LINE" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>LINE</code></a>.</li>
<li><code>get­Axis­Type(1)</code> may return <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#ROW" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>Dimension­Name­Type​.ROW</code></a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#CROSS_TRACK" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>CROSS_TRACK</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#SAMPLE" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>SAMPLE</code></a>.</li>
<li><code>get­Axis­Type(2)</code> may return <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#VERTICAL" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>Dimension­Name­Type​.VERTICAL</code></a>.</li>
<li><code>get­Axis­Type(3)</code> may return <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true#TIME" title="class or interface in org.opengis.metadata.spatial" class="externalLink"><code>Dimension­Name­Type​.TIME</code></a>.</li>
</ul>
Above are only examples; there is no constraint on axis order. In particular grid axes do not need to be in the same
order than the corresponding <a href="GridGeometry.html#getCoordinateReferenceSystem()">coordinate reference system</a> axes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the dimension for which to obtain the axis type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the axis type at the given dimension. May be absent if the type is unknown.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Index­Out­Of­Bounds­Exception</a></code> - if the given index is negative or is equals or greater
than the <a href="#getDimension()">grid dimension</a>.</dd>
</dl>
</li>
</ul>
<a id="insert(int,org.opengis.metadata.spatial.DimensionNameType,long,long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insert</h4>
<pre class="methodSignature">public&nbsp;<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;insert&#8203;(int&nbsp;offset,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/spatial/DimensionNameType.html?is-external=true" title="class or interface in org.opengis.metadata.spatial" class="externalLink">DimensionNameType</a>&nbsp;axisType,
long&nbsp;low,
long&nbsp;high,
boolean&nbsp;isHighIncluded)</pre>
<div class="block">Returns a new grid envelope with the specified dimension inserted at the given index in this grid envelope.
To append a new dimension after all existing dimensions, set <code>offset</code> to <a href="#getDimension()"><code>get­Dimension()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offset</code> - where to insert the new dimension, from 0 to <a href="#getDimension()"><code>get­Dimension()</code></a> inclusive.</dd>
<dd><code>axis­Type</code> - the type of the grid axis to add, or <code>null</code> if unspecified.</dd>
<dd><code>low</code> - the valid minimum grid coordinate (always inclusive).</dd>
<dd><code>high</code> - the valid maximum grid coordinate, inclusive or exclusive depending on the next argument.</dd>
<dd><code>is­High­Included</code> - <code>true</code> if the <code>high</code> value is inclusive (as in ISO 19123 specification),
or <code>false</code> if it is exclusive (as in Java2D usage).
This argument does not apply to <code>low</code> value, which is always inclusive.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new grid envelope with the specified dimension added.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if the low coordinate value is greater than the high coordinate value.</dd>
</dl>
</li>
</ul>
<a id="expand(long...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expand</h4>
<pre class="methodSignature">public&nbsp;<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;expand&#8203;(long...&nbsp;margins)</pre>
<div class="block">Expands or shrinks this grid extent by the given amount of cells along each dimension.
This method adds the given margins to the <a href="#getHigh(int)">high coordinates</a>
and subtracts the same margins to the <a href="#getLow(int)">low coordinates</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>margins</code> - amount of cells to add or subtract.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a grid extent expanded by the given amount, or <code>this</code> if there is no change.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArithmeticException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Arithmetic­Exception</a></code> - if expanding this extent by the given margins overflows <code>long</code> capacity.</dd>
</dl>
</li>
</ul>
<a id="resize(long...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resize</h4>
<pre class="methodSignature">public&nbsp;<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;resize&#8203;(long...&nbsp;sizes)</pre>
<div class="block">Sets the size of this grid extent to the given values. This method modifies grid coordinates as if they were multiplied
by (given size) / (<a href="#getSize(int)">current size</a>), rounded toward zero and with the value farthest from zero
adjusted by ±1 for having a size exactly equals to the specified value.
In the common case where the <a href="#getLow(int)">low value</a> is zero,
this is equivalent to setting the <a href="#getHigh(int)">high value</a> to <code>size</code> - 1.
<p>The length of the given array should be equal to <a href="#getDimension()"><code>get­Dimension()</code></a>.
If the array is shorter, missing dimensions have their size unchanged.
If the array is longer, extra sizes are ignored.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sizes</code> - the new grid sizes for each dimension.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a grid extent having the given sizes, or <code>this</code> if there is no change.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArithmeticException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Arithmetic­Exception</a></code> - if resizing this extent to the given size overflows <code>long</code> capacity.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="GridDerivation.html#resize(org.apache.sis.coverage.grid.GridExtent,double...)"><code>Grid­Derivation​.resize(Grid­Extent, double...)</code></a></dd>
</dl>
</li>
</ul>
<a id="reduce(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduce</h4>
<pre class="methodSignature">public&nbsp;<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;reduce&#8203;(int...&nbsp;dimensions)</pre>
<div class="block">Returns a grid envelope that encompass only some dimensions of this grid envelope.
This method copies the specified dimensions of this grid envelope into a new grid envelope.
The given dimensions must be in strictly ascending order without duplicated values.
The number of dimensions of the sub grid envelope will be <code>dimensions​.length</code>.
<p>This method performs a <cite>dimensionality reduction</cite> and can be used as the
converse of <a href="#insert(int,org.opengis.metadata.spatial.DimensionNameType,long,long,boolean)"><code>insert(int, Dimension­Name­Type, long, long, boolean)</code></a>.
This method can not be used for changing dimension order.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimensions</code> - the dimensions to select, in strictly increasing order.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sub-envelope, or <code>this</code> if the given array contains all dimensions of this grid extent.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Index­Out­Of­Bounds­Exception</a></code> - if an index is out of bounds.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getSubspaceDimensions(int)"><code>get­Subspace­Dimensions(int)</code></a>,
<a href="GridGeometry.html#reduce(int...)"><code>Grid­Geometry​.reduce(int...)</code></a></dd>
</dl>
</li>
</ul>
<a id="subsample(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subsample</h4>
<pre class="methodSignature">public&nbsp;<a href="GridExtent.html" title="class in org.apache.sis.coverage.grid">GridExtent</a>&nbsp;subsample&#8203;(int...&nbsp;periods)</pre>
<div class="block">Creates a new grid extent subsampled by the given amount of cells along each grid dimensions.
This method divides <a href="#getLow(int)">low coordinates</a> and <a href="#getSize(int)">grid sizes</a>
by the given periods, rounding toward zero. The <a href="#getHigh(int)">high coordinates</a> are adjusted
accordingly (this is often equivalent to dividing high coordinates by the periods too, but a difference
of one cell may exist).
<div class="note"><b>Note:</b>
The envelope computed from a grid extent may become <em>larger</em> after subsampling, not smaller.
This effect can be understood intuitively if we consider that cells become larger after subsampling,
which implies that accurate representation of the same envelope may require fractional cells on some
grid borders.</div>
This method does not reduce the number of dimensions of the grid extent.
For dimensionality reduction, see <a href="#reduce(int...)"><code>reduce(int...)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>periods</code> - the subsamplings. Length shall be equal to the number of dimension and all values shall be greater than zero.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the subsampled extent, or <code>this</code> is subsampling results in the same extent.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if a period is not greater than zero.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="GridDerivation.html#subsample(int...)"><code>Grid­Derivation​.subsample(int...)</code></a></dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash value for this grid envelope. This value needs not to remain
consistent between different implementations of the same class.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a hash value for this grid envelope.</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
<div class="block">Compares the specified object with this grid envelope for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare with this grid envelope for equality.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is equal to this grid envelope.</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<div class="block">Returns a string representation of this grid envelope. The returned string
is implementation dependent and is provided for debugging purposes only.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GridExtent.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>