| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 --> |
| <title>TensorParameters (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.referencing, package: org.apache.sis.parameter, class: TensorParameters"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <meta name="keywords" content="org.apache.sis.parameter.TensorParameters class"> |
| <meta name="keywords" content="ALPHANUM"> |
| <meta name="keywords" content="WKT1"> |
| <meta name="keywords" content="prefix"> |
| <meta name="keywords" content="separator"> |
| <meta name="keywords" content="getElementType()"> |
| <meta name="keywords" content="rank()"> |
| <meta name="keywords" content="getDimensionDescriptor()"> |
| <meta name="keywords" content="getElementDescriptor()"> |
| <meta name="keywords" content="createElementDescriptor()"> |
| <meta name="keywords" content="indicesToName()"> |
| <meta name="keywords" content="nameToIndices()"> |
| <meta name="keywords" content="getDefaultValue()"> |
| <meta name="keywords" content="getAllDescriptors()"> |
| <meta name="keywords" content="createValueGroup()"> |
| <meta name="keywords" content="toMatrix()"> |
| <meta name="keywords" content="hashCode()"> |
| <meta name="keywords" content="equals()"> |
| <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"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </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>Nested</li> |
| <li><a href="#field-summary">Field</a></li> |
| <li><a href="#constructor-summary">Constr</a></li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| </li> |
| <li> |
| <p>Detail:</p> |
| <ul> |
| <li><a href="#field-detail">Field</a></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: </li> |
| <li>Nested | </li> |
| <li><a href="#field-summary">Field</a> | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li><a href="#field-detail">Field</a> | </li> |
| <li><a href="#constructor-detail">Constr</a> | </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> <a href="../../../../module-summary.html">org.apache.sis.referencing</a></div> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.sis.parameter</a></div> |
| <h1 title="Class TensorParameters" class="title">Class TensorParameters<E></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">TensorParameters<E></div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <dl class="notes"> |
| <dt>Type Parameters:</dt> |
| <dd><code>E</code> - the type of tensor element values.</dd> |
| </dl> |
| <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">TensorParameters<E></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">Creates parameter groups for tensors (usually matrices). |
| Matrices are handled as a special case of tensors (<cite>second-order</cite> tensors). |
| |
| <p>Each group of parameters contains the following elements:</p> |
| <ul> |
| <li>Parameters (usually mandatory) for the tensor dimensions: |
| <ul> |
| <li>number of rows (named <code>"num_row"</code> in <a href="#WKT1">WKT1</a> conventions),</li> |
| <li>number of columns (named <code>"num_col"</code> in WKT1 conventions),</li> |
| <li><i>etc.</i> for third-order or higher-order tensors.</li> |
| </ul> |
| </li> |
| <li>A maximum of <code>num_row</code> × <code>num_col</code> × … optional parameters for the matrix or tensor element values. |
| Parameter names depend on the formatting convention.</li> |
| </ul> |
| |
| For all matrix or tensor elements, the default value is 1 for elements on the diagonal (where all indices have |
| the same value) and 0 for all other elements. Those default values defines an <cite>identity matrix</cite>, |
| or (more generally) <cite>Kroenecker delta tensor</cite>. |
| |
| <p><b>Parameters are not an efficient storage format for large tensors.</b> |
| Parameters are used only for small matrices/tensors to be specified in coordinate operations or processing libraries. |
| In particular, those parameters integrate well in <cite>Well Known Text</cite> (WKT) format. |
| For a more efficient matrix storage, |
| see the <a href="../referencing/operation/matrix/package-summary.html">matrix package</a>.</p> |
| |
| <h2 id="formatting-heading">Formatting</h2> |
| In the particular case of a tensor of <a href="#rank()">rank</a> 2 (i.e. a matrix), |
| the parameters are typically formatted as below. Note that in the EPSG convention, |
| the matrix is implicitly <a href="../referencing/operation/matrix/Matrices.html#isAffine(org.opengis.referencing.operation.Matrix)">affine</a> and of dimension 3×3. |
| |
| <table class="sis"> |
| <caption>Well Known Text (WKT) formats for matrix parameters</caption> |
| <tr> |
| <th>Using EPSG:9624 names and identifiers</th> |
| <th class="sep">Using OGC names</th> |
| </tr> |
| <tr><td> |
| |
| <div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button> |
| <pre class="snippet"><code class="language-wkt"> Parameter["A0", <value>, Id["EPSG", 8623]], |
| Parameter["A1", <value>, Id["EPSG", 8624]], |
| Parameter["A2", <value>, Id["EPSG", 8625]], |
| Parameter["B0", <value>, Id["EPSG", 8639]], |
| Parameter["B1", <value>, Id["EPSG", 8640]], |
| Parameter["B2", <value>, Id["EPSG", 8641]] |
| </code></pre> |
| </div> |
| |
| |
| <div class="note"><b>Note:</b> |
| the EPSG database also contains A3, A4, A5, A6, A7, A8 and B3 parameters, |
| but they are for polynomial transformations, not for affine transformations.</div> |
| |
| </td><td class="sep"> |
| |
| <div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button> |
| <pre class="snippet"><code class="language-wkt"> Parameter["num_row", 3], |
| Parameter["num_col", 3], |
| Parameter["elt_0_0", <value>], |
| Parameter["elt_0_1", <value>], |
| ... |
| Parameter["elt_0_<num_col-1>", <value>], |
| Parameter["elt_1_0", <value>], |
| Parameter["elt_1_1", <value>], |
| ... |
| Parameter["elt_<num_row-1>_<num_col-1>", <value>] |
| </code></pre> |
| </div> |
| |
| </td></tr></table> |
| |
| Those groups are extensible, i.e. the number of <code>"elt_<var>row</var>_<var>col</var>"</code> parameters |
| depends on the <code>"num_row"</code> and <code>"num_col"</code> parameter values. For this reason, the descriptor of |
| matrix or tensor parameters is not immutable. |
| |
| <h2 id="usage-examples-heading">Usage examples</h2> |
| For creating a new group of parameters for a matrix using the <a href="#WKT1"><code>WKT1</code></a> naming conventions, |
| one can use the following code: |
| |
| |
| <div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button> |
| <pre class="snippet"><code class="language-java">Map<String,?> properties = Map.of(ParameterValueGroup.NAME_KEY, "Affine"); |
| ParameterValueGroup p = TensorParameters.WKT1.createValueGroup(properties); |
| </code></pre> |
| </div> |
| |
| |
| For setting the elements of a few values, then create a matrix from the parameter values: |
| |
| |
| <div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button> |
| <pre class="snippet"><code class="language-java">p.parameter("elt_0_0").setValue(4); // "A0" also accepted as a synonymous of "elt_0_0". |
| p.parameter("elt_1_1").setValue(6); // "B1" also accepted as a synonymous of "elt_1_1". |
| Matrix m = TensorParameters.WKT1.toMatrix(p); |
| </code></pre> |
| </div> |
| </div> |
| <dl class="notes"> |
| <dt>Since:</dt> |
| <dd>0.4</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="../referencing/operation/matrix/Matrices.html" title="class in org.apache.sis.referencing.operation.matrix"><code>Matrices</code></a></li> |
| <li><a href="../../../../../serialized-form.html#org.apache.sis.parameter.TensorParameters">Serialized Form</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <li> |
| <section class="field-summary" id="field-summary"> |
| <h2>Field Summary</h2> |
| <div class="caption"><span>Fields</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">Field</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>static final <a href="TensorParameters.html" title="class in org.apache.sis.parameter">TensorParameters</a><wbr><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></code></div> |
| <div class="col-second even-row-color"><code><a href="#ALPHANUM" class="member-name-link">ALPHANUM</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Parses and creates matrix parameters with alphanumeric names.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>protected final <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"><code><a href="#prefix" class="member-name-link">prefix</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">The prefix of parameter names for tensor elements.</div> |
| </div> |
| <div class="col-first even-row-color"><code>protected final <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"><code><a href="#separator" class="member-name-link">separator</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">The separator between row and column in parameter names for tensor elements.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>static final <a href="TensorParameters.html" title="class in org.apache.sis.parameter">TensorParameters</a><wbr><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></code></div> |
| <div class="col-second odd-row-color"><code><a href="#WKT1" class="member-name-link">WKT1</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Parses and creates matrix parameters with names matching the |
| <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html">Well Known Text</a> |
| version 1 (WKT 1) convention.</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(java.lang.Class,java.lang.String,java.lang.String,org.opengis.parameter.ParameterDescriptor...)" class="member-name-link">TensorParameters</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>> elementType, |
| <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> prefix, |
| <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> separator, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>>... dimensions)</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Constructs a descriptors provider.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <li> |
| <section class="method-summary" id="method-summary"> |
| <h2>Method Summary</h2> |
| <div id="method-summary-table"> |
| <div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> |
| <div id="method-summary-table.tabpanel" role="tabpanel"> |
| <div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Method</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><wbr><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createElementDescriptor(int%5B%5D)" class="member-name-link">createElementDescriptor</a><wbr>(int[] indices)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a new parameter descriptor for a matrix or tensor element at the given indices.</div> |
| </div> |
| <div class="col-first odd-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/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createValueGroup(java.util.Map)" class="member-name-link">createValueGroup</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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>,<wbr>?> properties)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a new instance of parameter group with default values of 1 on the diagonal, and 0 everywhere else.</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/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createValueGroup(java.util.Map,org.opengis.referencing.operation.Matrix)" class="member-name-link">createValueGroup</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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>,<wbr>?> properties, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a new instance of parameter group initialized to the given matrix.</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> other)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Compares this object with the given object 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="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><?>[]</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAllDescriptors(int...)" class="member-name-link">getAllDescriptors</a><wbr>(int... actualSize)</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 parameters in this group for a tensor of the specified dimensions.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="TensorParameters.html" title="type parameter in TensorParameters">E</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDefaultValue(int%5B%5D)" class="member-name-link">getDefaultValue</a><wbr>(int[] indices)</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 default value for the parameter descriptor at the given indices.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><wbr><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDimensionDescriptor(int)" class="member-name-link">getDimensionDescriptor</a><wbr>(int i)</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 parameter descriptor for the dimension at the given index.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><wbr><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getElementDescriptor(int...)" class="member-name-link">getElementDescriptor</a><wbr>(int... indices)</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 parameter descriptor for a matrix or tensor element at the given indices.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><wbr><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getElementType()" class="member-name-link">getElementType</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 type of tensor element values.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</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 hash code value for this object.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <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-tab2 method-summary-table-tab4"><code><a href="#indicesToName(int%5B%5D)" class="member-name-link">indicesToName</a><wbr>(int[] indices)</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 parameter descriptor name of a matrix or tensor element at the given indices.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected int[]</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#nameToIndices(java.lang.String)" class="member-name-link">nameToIndices</a><wbr>(<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> name)</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 indices of matrix element for the given parameter name, or <code>null</code> if none.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final int</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#rank()" class="member-name-link">rank</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 rank of the tensor objects for which this instance will create parameters.</div> |
| </div> |
| <div class="col-first odd-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/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toMatrix(org.opengis.parameter.ParameterValueGroup)" class="member-name-link">toMatrix</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Constructs a matrix from a group of parameters.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-Object">Methods inherited from class <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">getClass</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">notifyAll</a>, <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">toString</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"> |
| <!-- ============ FIELD DETAIL =========== --> |
| <li> |
| <section class="field-details" id="field-detail"> |
| <h2>Field Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="ALPHANUM"> |
| <h3>ALPHANUM</h3> |
| <div class="member-signature"><span class="modifiers">public static final</span> <span class="return-type"><a href="TensorParameters.html" title="class in org.apache.sis.parameter">TensorParameters</a><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></span> <span class="element-name">ALPHANUM</span></div> |
| <div class="block">Parses and creates matrix parameters with alphanumeric names. |
| <a href="../referencing/AbstractIdentifiedObject.html#getName()">Names</a> are made of a letter indicating the row |
| (first row is <code>"A"</code>), followed by a digit indicating the column index (first column is <code>"0"</code>). |
| <a href="../referencing/AbstractIdentifiedObject.html#getAlias()">Aliases</a> are the names as they were defined in version 1 |
| of <cite>Well Known Text</cite> (WKT) format. |
| |
| <table class="sis"> |
| <caption>Parameter names for a 3×3 matrix</caption> |
| <tr> |
| <th>Primary name</th> |
| <th class="sep">Alias</th> |
| </tr> |
| <tr><td> |
| <pre class="text"> |
| ┌ ┐ |
| │ A0 A1 A2 │ |
| │ B0 B1 B2 │ |
| │ C0 C1 C2 │ |
| └ ┘</pre> |
| </td><td class="sep"> |
| <pre class="text"> |
| ┌ ┐ |
| │ elt_0_0 elt_0_1 elt_0_2 │ |
| │ elt_1_0 elt_1_1 elt_1_2 │ |
| │ elt_2_0 elt_2_1 elt_2_2 │ |
| └ ┘</pre> |
| </td></tr> |
| </table> |
| |
| <h4 id="relationship-with-epsg-heading">Relationship with EPSG</h4> |
| The above-cited group of parameters are close, but not identical, to the definitions provided |
| by the <cite>"Affine parametric transformation"</cite> (EPSG:9624) operation method. |
| The differences are: |
| |
| <ul> |
| <li>EPSG:9624 is for matrices of size 3×3 and does not provide any way to specify the matrix size. |
| This <code>ALPHANUM</code> convention extends the definition to matrices of arbitrary size and accepts |
| <code>"num_row"</code> and <code>"num_col"</code> as optional parameters.</li> |
| <li>EPSG:9624 is restricted to affine matrices and consequently define parameters only for the two |
| first rows. This class accepts also parameters for the last row (namely <code>"C0"</code>, <code>"C1"</code> |
| and <code>"C2"</code> in a 3×3 matrices).</li> |
| </ul> |
| |
| Because of the above-cited extensions, this <code>TensorParameters</code> constant cannot be named <code>EPSG</code>.</div> |
| <dl class="notes"> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="WKT1"> |
| <h3>WKT1</h3> |
| <div class="member-signature"><span class="modifiers">public static final</span> <span class="return-type"><a href="TensorParameters.html" title="class in org.apache.sis.parameter">TensorParameters</a><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></span> <span class="element-name">WKT1</span></div> |
| <div class="block">Parses and creates matrix parameters with names matching the |
| <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html">Well Known Text</a> |
| version 1 (WKT 1) convention. |
| |
| <ul> |
| <li>First parameter is <code>"num_row"</code>.</li> |
| <li>Second parameter is <code>"num_col"</code>.</li> |
| <li>All other parameters are of the form <code>"elt_</code><var>row</var><code>_</code><var>col</var><code>"</code>. |
| Those parameters have alias of the form <code>"A0"</code>, <code>"A1"</code>, <i>etc.</i> where the letter indicates |
| the row (first row is <code>"A"</code>) and the digit is the column index (first column is <code>"0"</code>).</li> |
| </ul> |
| |
| <h4 id="example-heading">Example</h4> |
| <code>"elt_1_2"</code> is the element name for the value at row 1 and column 2. |
| Its alias is <code>"B2"</code>, which is the EPSG name for the same parameter.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="prefix"> |
| <h3>prefix</h3> |
| <div class="member-signature"><span class="modifiers">protected final</span> <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> <span class="element-name">prefix</span></div> |
| <div class="block">The prefix of parameter names for tensor elements. |
| This is <code>"elt_"</code> in WKT 1.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="separator"> |
| <h3>separator</h3> |
| <div class="member-signature"><span class="modifiers">protected final</span> <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> <span class="element-name">separator</span></div> |
| <div class="block">The separator between row and column in parameter names for tensor elements. |
| This is <code>"_"</code> in WKT 1.</div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <li> |
| <section class="constructor-details" id="constructor-detail"> |
| <h2>Constructor Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="<init>(java.lang.Class,java.lang.String,java.lang.String,org.opengis.parameter.ParameterDescriptor...)"> |
| <h3>TensorParameters</h3> |
| <div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SafeVarargs.html" title="class or interface in java.lang" class="external-link">@SafeVarargs</a> |
| </span><span class="modifiers">public</span> <span class="element-name">TensorParameters</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>> elementType, |
| <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> prefix, |
| <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> separator, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>>... dimensions)</span></div> |
| <div class="block">Constructs a descriptors provider.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>elementType</code> - the type of tensor element values.</dd> |
| <dd><code>prefix</code> - the prefix to insert in front of parameter name for each tensor elements.</dd> |
| <dd><code>separator</code> - the separator between dimension (row, column, …) indices in parameter names.</dd> |
| <dd><code>dimensions</code> - the parameter for the size of each dimension, usually in an array of length 2. |
| Length may be different if the caller wants to generalize usage of this class to tensors.</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="getElementType()"> |
| <h3>getElementType</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></span> <span class="element-name">getElementType</span>()</div> |
| <div class="block">Returns the type of tensor element values.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the type of tensor element values.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="rank()"> |
| <h3>rank</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type">int</span> <span class="element-name">rank</span>()</div> |
| <div class="block">Returns the rank of the tensor objects for which this instance will create parameters. |
| The rank determines the type of objects represented by the parameters: |
| |
| <table class="sis"> |
| <caption>Tensor types implied by rank</caption> |
| <tr><th>Rank</th> <th>Type</th> <th>Used with</th></tr> |
| <tr><td>0</td> <td>scalar</td> <td></td></tr> |
| <tr><td>1</td> <td>vector</td> <td></td></tr> |
| <tr><td>2</td> <td>matrix</td> <td>Affine parametric transformation</td></tr> |
| <tr><td><var>k</var></td><td>rank <var>k</var> tensor</td></tr> |
| </table></div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the rank of the tensors for which to create parameters.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDimensionDescriptor(int)"> |
| <h3>getDimensionDescriptor</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>></span> <span class="element-name">getDimensionDescriptor</span><wbr><span class="parameters">(int i)</span></div> |
| <div class="block">Returns the parameter descriptor for the dimension at the given index.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>i</code> - the dimension index, from 0 inclusive to <a href="#rank()"><code>rank()</code></a> exclusive.</dd> |
| <dt>Returns:</dt> |
| <dd>the parameter descriptor for the dimension at the given index.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="#getElementDescriptor(int...)"><code>getElementDescriptor(int...)</code></a></li> |
| <li><a href="#getAllDescriptors(int...)"><code>getAllDescriptors(int...)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getElementDescriptor(int...)"> |
| <h3>getElementDescriptor</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></span> <span class="element-name">getElementDescriptor</span><wbr><span class="parameters">(int... indices)</span></div> |
| <div class="block">Returns the parameter descriptor for a matrix or tensor element at the given indices. |
| The length of the given <code>indices</code> array shall be equal to the <a href="#rank()">rank</a>. |
| That length is usually 2, where <code>indices[0]</code> is the <var>row</var> index and <code>indices[1]</code> |
| is the <var>column</var> index.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>indices</code> - the indices of the tensor element for which to get the descriptor.</dd> |
| <dt>Returns:</dt> |
| <dd>the parameter descriptor for the given tensor element.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the given array does not have the expected length or have illegal value.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="#getDimensionDescriptor(int)"><code>getDimensionDescriptor(int)</code></a></li> |
| <li><a href="#getAllDescriptors(int...)"><code>getAllDescriptors(int...)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createElementDescriptor(int[])"> |
| <h3>createElementDescriptor</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><<a href="TensorParameters.html" title="type parameter in TensorParameters">E</a>></span> <span class="element-name">createElementDescriptor</span><wbr><span class="parameters">(int[] indices)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div> |
| <div class="block">Creates a new parameter descriptor for a matrix or tensor element at the given indices. |
| This method is invoked by <a href="#getElementDescriptor(int...)"><code>getElementDescriptor(int[])</code></a> when a new descriptor needs |
| to be created. |
| |
| <h4 id="default-implementation-heading">Default implementation</h4> |
| The default implementation converts the given indices to a parameter name by invoking the |
| <a href="#indicesToName(int%5B%5D)"><code>indicesToName(int[])</code></a> method, then creates a descriptor for an optional parameter |
| of that name. The default value is given by <a href="#getDefaultValue(int%5B%5D)"><code>getDefaultValue(int[])</code></a>. |
| |
| <h4 id="subclassing-heading">Subclassing</h4> |
| Subclasses can override this method if they want more control on descriptor properties |
| like identification information, aliases or value domain.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>indices</code> - the indices of the tensor element for which to create a parameter.</dd> |
| <dt>Returns:</dt> |
| <dd>the parameter descriptor for the given tensor element.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the given array does not have the expected length or have illegal value.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="#indicesToName(int%5B%5D)"><code>indicesToName(int[])</code></a></li> |
| <li><a href="#getDefaultValue(int%5B%5D)"><code>getDefaultValue(int[])</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="indicesToName(int[])"> |
| <h3>indicesToName</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <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> <span class="element-name">indicesToName</span><wbr><span class="parameters">(int[] indices)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div> |
| <div class="block">Returns the parameter descriptor name of a matrix or tensor element at the given indices. |
| The returned name shall be parsable by the <a href="#nameToIndices(java.lang.String)"><code>nameToIndices(String)</code></a> method. |
| |
| <h4 id="default-implementation-heading1">Default implementation</h4> |
| The default implementation requires an <code>indices</code> array having a length equals to the <a href="#rank()">rank</a>. That length is usually 2, where <code>indices[0]</code> is the <var>row</var> index and <code>indices[1]</code> is |
| the <var>column</var> index. Then this method builds a name with the “<a href="#prefix"><code>prefix</code></a> + <var>row</var> + |
| <a href="#separator"><code>separator</code></a> + <var>column</var> + …” pattern (e.g. <code>"elt_0_0"</code>). |
| |
| <h4 id="subclassing-heading1">Subclassing</h4> |
| If a subclass overrides this method for creating different names, then that subclass shall |
| also override <a href="#nameToIndices(java.lang.String)"><code>nameToIndices(String)</code></a> for parsing those names.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>indices</code> - the indices of the tensor element for which to create a parameter name.</dd> |
| <dt>Returns:</dt> |
| <dd>the parameter descriptor name for the tensor element at the given indices.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the given array does not have the expected length or have illegal value.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="nameToIndices(java.lang.String)"> |
| <h3>nameToIndices</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type">int[]</span> <span class="element-name">nameToIndices</span><wbr><span class="parameters">(<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> name)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div> |
| <div class="block">Returns the indices of matrix element for the given parameter name, or <code>null</code> if none. |
| This method is the converse of <a href="#indicesToName(int%5B%5D)"><code>indicesToName(int[])</code></a>. |
| |
| <h4 id="default-implementation-heading2">Default implementation</h4> |
| The default implementation expects a name matching the “<a href="#prefix"><code>prefix</code></a> + <var>row</var> + <a href="#separator"><code>separator</code></a> + |
| <var>column</var> + …” pattern and returns an array containing the <var>row</var>, <var>column</var> and other |
| indices, in that order.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>name</code> - the parameter name to parse.</dd> |
| <dt>Returns:</dt> |
| <dd>indices of the tensor element of the given name, or <code>null</code> if the name is not recognized.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the name has been recognized but an error occurred while parsing it |
| (e.g. an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NumberFormatException.html" title="class or interface in java.lang" class="external-link"><code>NumberFormatException</code></a>, which is an <code>IllegalArgumentException</code> subclass).</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDefaultValue(int[])"> |
| <h3>getDefaultValue</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="TensorParameters.html" title="type parameter in TensorParameters">E</a></span> <span class="element-name">getDefaultValue</span><wbr><span class="parameters">(int[] indices)</span></div> |
| <div class="block">Returns the default value for the parameter descriptor at the given indices. |
| The default implementation returns 1 if all indices are equals, or 0 otherwise.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>indices</code> - the indices of the tensor element for which to get the default value.</dd> |
| <dt>Returns:</dt> |
| <dd>the default value for the tensor element at the given indices, or <code>null</code> if none.</dd> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list-long"> |
| <li><a href="DefaultParameterDescriptor.html#getDefaultValue()"><code>DefaultParameterDescriptor.getDefaultValue()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAllDescriptors(int...)"> |
| <h3>getAllDescriptors</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a><?>[]</span> <span class="element-name">getAllDescriptors</span><wbr><span class="parameters">(int... actualSize)</span></div> |
| <div class="block">Returns all parameters in this group for a tensor of the specified dimensions. |
| The returned array contains all descriptors returned by <a href="#getDimensionDescriptor(int)"><code>getDimensionDescriptor(int)</code></a> |
| and <a href="#getElementDescriptor(int...)"><code>getElementDescriptor(int...)</code></a>.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>actualSize</code> - the matrix (or tensor) dimensions for which to get the parameters.</dd> |
| <dt>Returns:</dt> |
| <dd>the tensor parameters, including all elements.</dd> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="#getDimensionDescriptor(int)"><code>getDimensionDescriptor(int)</code></a></li> |
| <li><a href="#getElementDescriptor(int...)"><code>getElementDescriptor(int...)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createValueGroup(java.util.Map)"> |
| <h3>createValueGroup</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></span> <span class="element-name">createValueGroup</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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>,<wbr>?> properties)</span></div> |
| <div class="block">Creates a new instance of parameter group with default values of 1 on the diagonal, and 0 everywhere else. |
| The returned parameter group is extensible, i.e. the number of elements will depend upon the value associated |
| to the parameters that define the matrix (or tensor) dimension. |
| |
| <p>The properties map is given unchanged to the |
| <a href="../referencing/AbstractIdentifiedObject.html#%3Cinit%3E(java.util.Map)">identified object constructor</a>. The following table is a reminder of main (not all) properties:</p> |
| |
| <table class="sis"> |
| <caption>Recognized properties (non exhaustive list)</caption> |
| <tr> |
| <th>Property name</th> |
| <th>Value type</th> |
| <th>Returned by</th> |
| </tr> |
| <tr> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#NAME_KEY" title="class or interface in org.opengis.referencing" class="external-link">"name"</a></td> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link"><code>ReferenceIdentifier</code></a> or <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"><code>String</code></a></td> |
| <td><a href="../referencing/AbstractIdentifiedObject.html#getName()"><code>AbstractIdentifiedObject.getName()</code></a></td> |
| </tr> |
| <tr> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"alias"</a></td> |
| <td><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"><code>GenericName</code></a> or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>CharSequence</code></a> (optionally as array)</td> |
| <td><a href="../referencing/AbstractIdentifiedObject.html#getAlias()"><code>AbstractIdentifiedObject.getAlias()</code></a></td> |
| </tr> |
| <tr> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"identifiers"</a></td> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link"><code>ReferenceIdentifier</code></a> (optionally as array)</td> |
| <td><a href="../referencing/AbstractIdentifiedObject.html#getIdentifiers()"><code>AbstractIdentifiedObject.getIdentifiers()</code></a></td> |
| </tr> |
| <tr> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"remarks"</a></td> |
| <td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>InternationalString</code></a> or <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"><code>String</code></a></td> |
| <td><a href="../referencing/AbstractIdentifiedObject.html#getRemarks()"><code>AbstractIdentifiedObject.getRemarks()</code></a></td> |
| </tr> |
| </table></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>properties</code> - the properties to be given to the identified object.</dd> |
| <dt>Returns:</dt> |
| <dd>a new parameter group initialized to the default values.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createValueGroup(java.util.Map,org.opengis.referencing.operation.Matrix)"> |
| <h3>createValueGroup</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></span> <span class="element-name">createValueGroup</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<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>,<wbr>?> properties, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix)</span></div> |
| <div class="block">Creates a new instance of parameter group initialized to the given matrix. |
| This operation is allowed only for tensors of <a href="#rank()">rank</a> 2.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>properties</code> - the properties to be given to the identified object.</dd> |
| <dd><code>matrix</code> - the matrix to copy in the new parameter group.</dd> |
| <dt>Returns:</dt> |
| <dd>a new parameter group initialized to the given matrix.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="#toMatrix(org.opengis.parameter.ParameterValueGroup)"><code>toMatrix(ParameterValueGroup)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="toMatrix(org.opengis.parameter.ParameterValueGroup)"> |
| <h3>toMatrix</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></span> <span class="element-name">toMatrix</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/InvalidParameterNameException.html" title="class or interface in org.opengis.parameter" class="external-link">InvalidParameterNameException</a></span></div> |
| <div class="block">Constructs a matrix from a group of parameters. |
| This operation is allowed only for tensors of <a href="#rank()">rank</a> 2.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>parameters</code> - the group of parameters.</dd> |
| <dt>Returns:</dt> |
| <dd>a matrix constructed from the specified group of parameters.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/InvalidParameterNameException.html" title="class or interface in org.opengis.parameter" class="external-link">InvalidParameterNameException</a></code> - if a parameter name was not recognized.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list-long"> |
| <li><a href="#createValueGroup(java.util.Map,org.opengis.referencing.operation.Matrix)"><code>createValueGroup(Map, Matrix)</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> <span class="return-type">int</span> <span class="element-name">hashCode</span>()</div> |
| <div class="block">Returns a hash code value for this object.</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">hashCode</a></code> in class <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 hash code value.</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> <span class="return-type">boolean</span> <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> other)</span></div> |
| <div class="block">Compares this object with the given object 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> in class <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>other</code> - the other object to compare with this object.</dd> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if both object are equal.</dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| </div> |
| </div> |
| </body> |
| </html> |