blob: ee568e5fdb627c682f0029b342528872ea0435a0 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>SampleDimension (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, class: SampleDimension">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.coverage.SampleDimension class">
<meta name="keywords" content="getName()">
<meta name="keywords" content="getCategories()">
<meta name="keywords" content="getBackground()">
<meta name="keywords" content="getNoDataValues()">
<meta name="keywords" content="getSampleRange()">
<meta name="keywords" content="getMeasurementRange()">
<meta name="keywords" content="getTransferFunction()">
<meta name="keywords" content="getTransferFunctionFormula()">
<meta name="keywords" content="getUnits()">
<meta name="keywords" content="allowsNaN()">
<meta name="keywords" content="forConvertedValues()">
<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="../../../../../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>Field</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>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="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</a></div>
<h1 title="Class SampleDimension" class="title">Class SampleDimension</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">SampleDimension</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SampleDimension</span>
<span class="extends-implements">extends <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>
implements <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div>
<div class="block">Describes the data values in a coverage (the range). For a raster, a sample dimension is a band.
A sample dimension can reserve some values for <cite>qualitative</cite> information like “this
is a forest” and some other values for <cite>quantitative</cite> information like a temperature
measurements.
<h2 id="example-heading">Example</h2>
An image of sea surface temperature (SST) could define the following categories:
<table class="sis">
<caption>Example of categories in a sample dimension</caption>
<tr><th>Values range</th> <th>Meaning</th></tr>
<tr><td>[0]</td> <td>No data</td></tr>
<tr><td>[1]</td> <td>Cloud</td></tr>
<tr><td>[2]</td> <td>Land</td></tr>
<tr><td>[10…210]</td> <td>Temperature to be converted into Celsius degrees through a linear equation</td></tr>
</table>
In this example, sample values in range [10…210] define a quantitative category, while all others categories are qualitative.
<h2 id="relationship-with-metadata-heading">Relationship with metadata</h2>
This class provides the same information than ISO 19115 <code>org​.opengis​.metadata​.content​.Sample­Dimension</code>,
but organized in a different way. The use of the same name may seem a risk, but those two types are typically
not used at the same time.
<h2 id="definition-of-missing-data-heading">Definition of missing data</h2>
An important aspect of sample dimensions is the <a href="#getBackground()">background value</a>.
It defines how to initialize an empty image or canvas with respect to the sample definition.
It can be thought as the value for "lack of data" (fill value, no-data, missing value) category
when the missing value cannot be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.0</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="../../../../../serialized-form.html#org.apache.sis.coverage.SampleDimension">Serialized Form</a></li>
</ul>
</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="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SampleDimension.Builder.html" class="type-name-link" title="class in org.apache.sis.coverage">Sample­Dimension​.Builder</a></code></div>
<div class="col-last even-row-color">
<div class="block">A mutable builder for creating an immutable <a href="SampleDimension.html" title="class in org.apache.sis.coverage"><code>Sample­Dimension</code></a>.</div>
</div>
</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.opengis.util.GenericName,java.lang.Number,java.util.Collection)" class="member-name-link">Sample­Dimension</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">Generic­Name</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;background,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;? extends <a href="Category.html" title="class in org.apache.sis.coverage">Category</a>&gt;&nbsp;categories)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a sample dimension with the specified name and categories.</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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowsNaN()" class="member-name-link">allows­Na­N</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 <code>true</code> if some sample values can be <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Na­N</code></a> values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<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>&nbsp;object)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compares the specified object with this sample dimension for equality.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SampleDimension.html" title="class in org.apache.sis.coverage">Sample­Dimension</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#forConvertedValues(boolean)" class="member-name-link">for­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">Returns a sample dimension that describes 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="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBackground()" class="member-name-link">get­Background</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the background value.</div>
</div>
<div class="col-first even-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.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><wbr>&lt;<a href="Category.html" title="class in org.apache.sis.coverage">Category</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCategories()" class="member-name-link">get­Categories</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 all categories in this sample dimension.</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/MeasurementRange.html" title="class in org.apache.sis.measure">Measurement­Range</a>&lt;?&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMeasurementRange()" class="member-name-link">get­Measurement­Range</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the range of values after conversions by the transfer function.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">Generic­Name</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getName()" class="member-name-link">get­Name</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 an identification for this sample dimension.</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.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNoDataValues()" class="member-name-link">get­No­Data­Values</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the values to indicate "no data" for this sample dimension.</div>
</div>
<div class="col-first even-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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/NumberRange.html" title="class in org.apache.sis.measure">Number­Range</a>&lt;?&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSampleRange()" class="member-name-link">get­Sample­Range</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 range of values occurring in this sample dimension.</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform1D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform1D</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTransferFunction()" class="member-name-link">get­Transfer­Function</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the <cite>transfer function</cite> from sample values to real values.</div>
</div>
<div class="col-first even-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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="../../../../../org.apache.sis.referencing/org/apache/sis/referencing/operation/transform/TransferFunction.html" title="class in org.apache.sis.referencing.operation.transform">Transfer­Function</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTransferFunctionFormula()" class="member-name-link">get­Transfer­Function­Formula</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 scale factor and offset of the transfer function.</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUnits()" class="member-name-link">get­Units</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the units of measurement for this sample dimension.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hash­Code</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 a hash value for this sample dimension.</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.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">to­String</a>()</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 string representation of this sample dimension.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#toString(java.util.Locale,org.apache.sis.coverage.SampleDimension...)" class="member-name-link">to­String</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale,
<a href="SampleDimension.html" title="class in org.apache.sis.coverage">Sample­Dimension</a>...&nbsp;dimensions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a string representation of the given sample dimensions.</div>
</div>
</div>
</div>
</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#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#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.opengis.util.GenericName,java.lang.Number,java.util.Collection)">
<h3>SampleDimension</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SampleDimension</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">GenericName</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;background,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;? extends <a href="Category.html" title="class in org.apache.sis.coverage">Category</a>&gt;&nbsp;categories)</span></div>
<div class="block">Creates a sample dimension with the specified name and categories.
The sample dimension name is used as a way to perform a band select
by using human comprehensible descriptions instead of numbers.
The background value is used for filling empty space in map reprojections.
The background value (if specified) should be the value of a qualitative category
present in the <code>categories</code> collection, but this is not mandatory.
<p>Note that <a href="SampleDimension.Builder.html" title="class in org.apache.sis.coverage"><code>Sample­Dimension​.Builder</code></a> provides a more convenient way to create sample dimensions.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - an identification for the sample dimension.</dd>
<dd><code>background</code> - the background value, or <code>null</code> if none.</dd>
<dd><code>categories</code> - the list of categories. May be empty if none.</dd>
<dt>Throws:</dt>
<dd><code><a href="IllegalSampleDimensionException.html" title="class in org.apache.sis.coverage">Illegal­Sample­Dimension­Exception</a></code> - if two or more categories have overlapping sample value range.</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="getName()">
<h3>getName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">GenericName</a></span>&nbsp;<span class="element-name">getName</span>()</div>
<div class="block">Returns an identification for this sample dimension. This is typically used as a way to perform a band select
by using human comprehensible descriptions instead of just numbers. Web Coverage Service (WCS) can use this name
in order to perform band sub-setting as directed from a user request.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an identification of this sample dimension.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/content/RangeDimension.html#getSequenceIdentifier()" title="class or interface in org.opengis.metadata.content" class="external-link"><code>Range­Dimension​.get­Sequence­Identifier()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCategories()">
<h3>getCategories</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.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Category.html" title="class in org.apache.sis.coverage">Category</a>&gt;</span>&nbsp;<span class="element-name">getCategories</span>()</div>
<div class="block">Returns all categories in this sample dimension. Note that a <a href="Category.html" title="class in org.apache.sis.coverage"><code>Category</code></a> object may apply to an arbitrary range
of sample values. Consequently, the first element in this collection may not be directly related to the sample value
<code>0</code>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the list of categories in this sample dimension, or an empty list if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBackground()">
<h3>getBackground</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;</span>&nbsp;<span class="element-name">getBackground</span>()</div>
<div class="block">Returns the background value. This is the value used for filling empty spaces (e.g. in image corners)
after a <a href="../image/ImageProcessor.html#resample(java.awt.image.RenderedImage,java.awt.Rectangle,org.opengis.referencing.operation.MathTransform)">resampling operation</a>.
If this sample dimensions has quantitative categories, then the background value should be
one of the value returned by <a href="#getNoDataValues()"><code>get­No­Data­Values()</code></a>. However, this is not mandatory.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the background value, typically (but not necessarily) one of <a href="#getNoDataValues()"><code>get­No­Data­Values()</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNoDataValues()">
<h3>getNoDataValues</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.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;</span>&nbsp;<span class="element-name">getNoDataValues</span>()</div>
<div class="block">Returns the values to indicate "no data" for this sample dimension.
If the sample dimension describes <a href="#forConvertedValues(boolean)">converted values</a>,
then the "no data values" are NaN values.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the values to indicate no data values for this sample dimension, or an empty set if none.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">Illegal­State­Exception</a></code> - if this method cannot expand the range of no data values, for example
because some ranges contain an infinite amount of values.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#allowsNaN()"><code>allows­Na­N()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSampleRange()">
<h3>getSampleRange</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/NumberRange.html" title="class in org.apache.sis.measure">NumberRange</a>&lt;?&gt;&gt;</span>&nbsp;<span class="element-name">getSampleRange</span>()</div>
<div class="block">Returns the range of values occurring in this sample dimension. The range delimits sample values that
can be converted into real values using the <a href="#getTransferFunction()">transfer function</a>.
If that function is <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#isIdentity()" title="class or interface in org.opengis.referencing.operation" class="external-link">identity</a>, then the values are already
real values and the range may be an instance of <a href="../../../../../org.apache.sis.util/org/apache/sis/measure/MeasurementRange.html" title="class in org.apache.sis.measure"><code>Measurement­Range</code></a>
(i.e. a number range with units of measurement).</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the range of sample values in this sample dimension.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMeasurementRange()">
<h3>getMeasurementRange</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/MeasurementRange.html" title="class in org.apache.sis.measure">MeasurementRange</a>&lt;?&gt;&gt;</span>&nbsp;<span class="element-name">getMeasurementRange</span>()</div>
<div class="block">Returns the range of values after conversions by the transfer function.
This range is absent if there is no transfer function.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the range of values after conversion by the transfer function.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getUnits()"><code>get­Units()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTransferFunction()">
<h3>getTransferFunction</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform1D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform1D</a>&gt;</span>&nbsp;<span class="element-name">getTransferFunction</span>()</div>
<div class="block">Returns the <cite>transfer function</cite> from sample values to real values.
This method returns a transform expecting sample values as input and computing real values as output.
The output units of measurement is given by <a href="#getUnits()"><code>get­Units()</code></a>.
<p>This transform takes care of converting all "<a href="#getNoDataValues()">no data values</a>" into <code>Na­N</code> values.
The <code>transfer­Function.<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform1D.html#inverse()" title="class or interface in org.opengis.referencing.operation" class="external-link">inverse()</a></code> transform is capable to differentiate
those <code>Na­N</code> values and get back the original sample value.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the <cite>transfer function</cite> from sample to real values. May be absent if this sample dimension
does not define any transform (which is not the same that defining an identity transform).</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTransferFunctionFormula()">
<h3>getTransferFunctionFormula</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="../../../../../org.apache.sis.referencing/org/apache/sis/referencing/operation/transform/TransferFunction.html" title="class in org.apache.sis.referencing.operation.transform">TransferFunction</a>&gt;</span>&nbsp;<span class="element-name">getTransferFunctionFormula</span>()</div>
<div class="block">Returns the scale factor and offset of the transfer function.
The formula returned by this method does <strong>not</strong> take
"<a href="#getNoDataValues()">no data values</a>" in account.
For a more generic transfer function, see <a href="#getTransferFunction()"><code>get­Transfer­Function()</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a description of the part of the transfer function working on real numbers.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">Illegal­State­Exception</a></code> - if the transfer function cannot be simplified in a form representable
by <a href="../../../../../org.apache.sis.referencing/org/apache/sis/referencing/operation/transform/TransferFunction.html" title="class in org.apache.sis.referencing.operation.transform"><code>Transfer­Function</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getUnits()">
<h3>getUnits</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.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&gt;</span>&nbsp;<span class="element-name">getUnits</span>()</div>
<div class="block">Returns the units of measurement for this sample dimension.
This unit applies to values obtained after the <a href="#getTransferFunction()">transfer function</a>.
May be absent if not applicable.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the units of measurement.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">Illegal­State­Exception</a></code> - if this sample dimension use different units.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getMeasurementRange()"><code>get­Measurement­Range()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowsNaN()">
<h3>allowsNaN</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowsNaN</span>()</div>
<div class="block">Returns <code>true</code> if some sample values can be <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Na­N</code></a> values.
It may be the case for <a href="#forConvertedValues(boolean)">converted values</a>,
but not necessarily (because a coverage does not necessarily allow missing values).
If <code>true</code>, then the NaN values should be listed by <a href="#getNoDataValues()"><code>get­No­Data­Values()</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>whether some values in this sample dimension can be <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Na­N</code></a>.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getNoDataValues()"><code>get­No­Data­Values()</code></a></li>
<li><a href="../../../../../org.apache.sis.util/org/apache/sis/math/MathFunctions.html#toNanFloat(int)"><code>Math­Functions​.to­Nan­Float(int)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="forConvertedValues(boolean)">
<h3>forConvertedValues</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a></span>&nbsp;<span class="element-name">forConvertedValues</span><wbr><span class="parameters">(boolean&nbsp;converted)</span></div>
<div class="block">Returns a sample dimension that describes real values or sample values, depending if <code>converted</code> is <code>true</code>
or <code>false</code> respectively. If there is no <a href="#getTransferFunction()">transfer function</a>, then this method
returns <code>this</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>converted</code> - <code>true</code> for a sample dimension describing converted values,
or <code>false</code> for a sample dimension describing packed values.</dd>
<dt>Returns:</dt>
<dd>a sample dimension describing converted or packed values, depending on <code>converted</code> argument value.
May be <code>this</code> but never <code>null</code>.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="Category.html#forConvertedValues(boolean)"><code>Category​.for­Converted­Values(boolean)</code></a></li>
<li><a href="grid/GridCoverage.html#forConvertedValues(boolean)"><code>Grid­Coverage​.for­Converted­Values(boolean)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash value for this sample dimension.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<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>&nbsp;object)</span></div>
<div class="block">Compares the specified object with this sample dimension for equality.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt>Parameters:</dt>
<dd><code>object</code> - the object to compare with.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given object is equal to this sample dimension.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</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.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of this sample dimension.
This string is for debugging purpose only and may change in future version.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this sample dimension for debugging purpose.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString(java.util.Locale,org.apache.sis.coverage.SampleDimension...)">
<h3>toString</h3>
<div class="member-signature"><span class="annotations"><a href="../../../../../org.apache.sis.util/org/apache/sis/util/Debug.html" title="annotation interface in org.apache.sis.util">@Debug</a>
</span><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale,
<a href="SampleDimension.html" title="class in org.apache.sis.coverage">SampleDimension</a>...&nbsp;dimensions)</span></div>
<div class="block">Returns a string representation of the given sample dimensions.
This string is for debugging purpose only and may change in future version.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>locale</code> - the locale to use for formatting texts.</dd>
<dd><code>dimensions</code> - the sample dimensions to format.</dd>
<dt>Returns:</dt>
<dd>a string representation of the given sample dimensions for debugging purpose.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>