blob: fa7747fc42a0bedb3a03103f4a0c61bd11100410 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>ContextualParameters (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.referencing.operation.transform.ContextualParameters class">
<meta name="keywords" content="getDescriptor()">
<meta name="keywords" content="getMatrix()">
<meta name="keywords" content="normalizeGeographicInputs()">
<meta name="keywords" content="denormalizeGeographicOutputs()">
<meta name="keywords" content="completeTransform()">
<meta name="keywords" content="parameter()">
<meta name="keywords" content="values()">
<meta name="keywords" content="groups()">
<meta name="keywords" content="addGroup()">
<meta name="keywords" content="clone()">
<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="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ContextualParameters (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContextualParameters.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing.operation.transform</a></div>
<h2 title="Class ContextualParameters" class="title">Class ContextualParameters</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a></li>
<li>
<ul class="inheritance">
<li>ContextualParameters</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Cloneable</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">General­Parameter­Value</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ContextualParameters</span>
extends <a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">The parameters that describe a sequence of
<cite>normalize</cite><cite>non-linear kernel</cite><cite>denormalize</cite> transforms as a whole.
The normalize and denormalize steps must be affine transforms, while the non-linear kernel is arbitrary.
<div class="note"><b>Note:</b> actually there is nothing in this class which force the kernel to be non-linear.
But this class is useless if the kernel is linear, because 3 linear steps can be efficiently
<a href="https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html?is-external=true#concatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="externalLink">concatenated</a> in a single affine transform.</div>
<p>Contextual parameters can be <a href="AbstractMathTransform.html#getContextualParameters()">associated</a>
to the <cite>non-linear kernel</cite> step of the above-cited sequence.
Since the <a href="AbstractMathTransform.html#getParameterValues()">parameter values</a> of the non-linear kernel contains
only normalized parameters (e.g. a map projection on an ellipsoid having a <cite>semi-major</cite> axis length of 1),
Apache SIS needs contextual information for reconstructing the parameters of the complete transforms chain.</p>
<div class="section">Usage in map projections</div>
This object is used mostly for Apache SIS implementation of map projections, where the non-linear kernel is a
<a href="../projection/NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">normalized projection</a>.
The <a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)">complete map projection</a>
(ignoring <a href="../../cs/CoordinateSystems.html#swapAndScaleAxes(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem)">changes of axis order</a>)
is a chain of 3 transforms as shown below:
<div class="horizontal-flow" style="align-items:center">
<div> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mo>-</mo><msub><mi>λ</mi><mn>0</mn></msub> <mo></mo> <mo>(</mo><mi>π</mi><mo>/</mo><mn>180</mn><mo>)</mo></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</div>
<div></div>
<div>Map projection on a normalized ellipsoid</div>
<div></div>
<div> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>a</mi> <mo></mo> <msub><mi>k</mi><mn>0</mn></msub></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mi>FE</mi></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>a</mi> <mo></mo> <msub><mi>k</mi><mn>0</mn></msub></mtd>
<mtd><mi>FN</mi></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</div>
</div>
<code>Contextual­Parameters</code> is typically created and used as below:
<ol class="verbose">
<li>A <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>Math­Transform­Provider</code></a> instantiates a class from the
<a href="../projection/package-summary.html">map projection package</a>.
Note that different providers may instantiate the same map projection class.
For example both <cite>"Mercator (variant A)"</cite> and <cite>"Mercator (variant B)"</cite> methods
instantiate the same <a href="../projection/Mercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Mercator</code></a> class,
but with different ways to represent the parameters.</li>
<li>The map projection constructor fetches all parameters that it needs from the user-supplied
<a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter"><code>Parameters</code></a>, initializes the projection, then saves the parameter values that
it actually used in a new <code>Contextual­Parameters</code> instance.</li>
<li>The map projection constructor may keep only the non-linear parameters for itself,
and gives the linear parameters to the <a href="#normalizeGeographicInputs(double)"><code>normalize­Geographic­Inputs(…)</code></a> and
<a href="../matrix/MatrixSIS.html#convertAfter(int,java.lang.Number,java.lang.Number)"><code>Matrix­SIS​.convert­After(…)</code></a> methods, which will create the matrices show above.
The projection constructor is free to apply additional operations on the two affine transforms
(<a href="#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">normalize / denormalize</a>) before or after the above-cited
methods have been invoked.</li>
<li>After all parameter values have been set and the normalize / denormalize matrices defined,
the <a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)"><code>complete­Transform(…)</code></a> method
will mark this <code>Contextual­Parameters</code> object as unmodifiable and create the chain of transforms
from (λ,φ) in angular degrees to (x,y) in metres. Note that conversions to other units and
<a href="../../cs/CoordinateSystems.html#swapAndScaleAxes(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem)">changes in axis order</a>
are not the purpose of this transforms chain – they are separated steps.
</li>
</ol>
<div class="section">Serialization</div>
Serialized instances of this class are not guaranteed to be compatible with future SIS versions.
Serialization should be used only for short term storage or RMI between applications running the same SIS version.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.6</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../projection/NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection"><code>Normalized­Projection</code></a>,
<a href="AbstractMathTransform.html#getContextualParameters()"><code>Abstract­Math­Transform​.get­Contextual­Parameters()</code></a>,
<a href="../../../../../../serialized-form.html#org.apache.sis.referencing.operation.transform.ContextualParameters">Serialized Form</a></dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ContextualParameters.MatrixRole.html" title="enum in org.apache.sis.referencing.operation.transform">ContextualParameters.MatrixRole</a></span></code></th>
<td class="colLast">
<div class="block">Whether a matrix is used for <cite>normalization</cite> or <cite>denormalization</cite>
before or after a non-linear operation.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.parameter.ParameterDescriptorGroup,int,int)">ContextualParameters</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a>&nbsp;descriptor,
int&nbsp;srcDim,
int&nbsp;tgtDim)</code></th>
<td class="colLast">
<div class="block">Creates a new group of parameters with the given descriptor.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.referencing.operation.OperationMethod)">ContextualParameters</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method)</code></th>
<td class="colLast">
<div class="block">Creates a new group of parameters for the given non-linear coordinate operation method.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addGroup(java.lang.String)">addGroup</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Unsupported operation, since <code>Contextual­Parameters</code> groups do not contain sub-groups.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a modifiable clone of this parameter value group.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)">completeTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransformFactory</a>&nbsp;factory,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;kernel)</code></th>
<td class="colLast">
<div class="block">Marks this <code>Contextual­Parameter</code> as unmodifiable and creates the
<cite>normalize</cite><code>kernel</code><cite>denormalize</cite> transforms chain.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#denormalizeGeographicOutputs(double)">denormalizeGeographicOutputs</a></span>&#8203;(double&nbsp;λ0)</code></th>
<td class="colLast">
<div class="block">Appends a denormalization step after the non-linear kernel, which will convert input coordinates
in the two first dimensions from radians to degrees.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
<td class="colLast">
<div class="block">Compares the given object with the parameters for equality.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDescriptor()">getDescriptor</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parameters for the <cite>normalize</cite><cite>non-linear kernel</cite>
<cite>denormalize</cite> sequence as a whole.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">getMatrix</a></span>&#8203;(<a href="ContextualParameters.MatrixRole.html" title="enum in org.apache.sis.referencing.operation.transform">ContextualParameters.MatrixRole</a>&nbsp;role)</code></th>
<td class="colLast">
<div class="block">Returns the affine transforms to be applied before or after the non-linear kernel operation.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groups(java.lang.String)">groups</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Unsupported operation, since <code>Contextual­Parameters</code> groups do not contain sub-groups.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a hash code value for this object.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#normalizeGeographicInputs(double)">normalizeGeographicInputs</a></span>&#8203;(double&nbsp;λ0)</code></th>
<td class="colLast">
<div class="block">Prepends a normalization step converting input coordinates in the two first dimensions from degrees to radians.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValue</a>&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parameter(java.lang.String)">parameter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns the parameter value of the given name.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">GeneralParameterValue</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an unmodifiable list containing all parameters in this group.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Parameters">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a></h3>
<code><a href="../../../parameter/Parameters.html#booleanValue(org.opengis.parameter.ParameterDescriptor)">boolean­Value</a>, <a href="../../../parameter/Parameters.html#cast(org.opengis.parameter.ParameterDescriptor,java.lang.Class)">cast</a>, <a href="../../../parameter/Parameters.html#cast(org.opengis.parameter.ParameterValue,java.lang.Class)">cast</a>, <a href="../../../parameter/Parameters.html#castOrWrap(org.opengis.parameter.ParameterValueGroup)">cast­Or­Wrap</a>, <a href="../../../parameter/Parameters.html#copy(org.opengis.parameter.ParameterValueGroup,org.opengis.parameter.ParameterValueGroup)">copy</a>, <a href="../../../parameter/Parameters.html#doubleValue(org.opengis.parameter.ParameterDescriptor)">double­Value</a>, <a href="../../../parameter/Parameters.html#doubleValueList(org.opengis.parameter.ParameterDescriptor)">double­Value­List</a>, <a href="../../../parameter/Parameters.html#getDescriptors(org.opengis.parameter.GeneralParameterValue...)">get­Descriptors</a>, <a href="../../../parameter/Parameters.html#getMandatoryValue(org.opengis.parameter.ParameterDescriptor)">get­Mandatory­Value</a>, <a href="../../../parameter/Parameters.html#getMemberName(org.opengis.parameter.ParameterDescriptor)">get­Member­Name</a>, <a href="../../../parameter/Parameters.html#getOrCreate(org.opengis.parameter.ParameterDescriptor)">get­Or­Create</a>, <a href="../../../parameter/Parameters.html#getValue(org.opengis.parameter.ParameterDescriptor)">get­Value</a>, <a href="../../../parameter/Parameters.html#getValueDomain(org.opengis.parameter.ParameterDescriptor)">get­Value­Domain</a>, <a href="../../../parameter/Parameters.html#intValue(org.opengis.parameter.ParameterDescriptor)">int­Value</a>, <a href="../../../parameter/Parameters.html#intValueList(org.opengis.parameter.ParameterDescriptor)">int­Value­List</a>, <a href="../../../parameter/Parameters.html#print()">print</a>, <a href="../../../parameter/Parameters.html#stringValue(org.opengis.parameter.ParameterDescriptor)">string­Value</a>, <a href="../../../parameter/Parameters.html#toString()">to­String</a>, <a href="../../../parameter/Parameters.html#unmodifiable(org.opengis.parameter.ParameterValueGroup)">unmodifiable</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.opengis.referencing.operation.OperationMethod)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ContextualParameters</h4>
<pre>public&nbsp;ContextualParameters&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method)</pre>
<div class="block">Creates a new group of parameters for the given non-linear coordinate operation method.
The <a href="../DefaultOperationMethod.html#getParameters()">method parameters</a>
shall describe the <cite>normalize</cite><cite>non-linear kernel</cite><cite>denormalize</cite> sequence
as a whole. After construction, callers shall:
<ul>
<li>Set the relevant parameter values by calls to
<code><a href="#parameter(java.lang.String)">parameter(…)</a>.set­Value(…)</code>.</li>
<li>Modify the element values in <a href="#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">normalization / denormalization</a>
affine transforms, optionally by calls to the convenience methods in this class.</li>
<li>Get the complete transforms chain with a call
<a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)"><code>complete­Transform(…)</code></a></li>
</ul>
See class javadoc for more information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>method</code> - the non-linear operation method for which to define the parameter values.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.opengis.parameter.ParameterDescriptorGroup,int,int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ContextualParameters</h4>
<pre>public&nbsp;ContextualParameters&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a>&nbsp;descriptor,
int&nbsp;srcDim,
int&nbsp;tgtDim)</pre>
<div class="block">Creates a new group of parameters with the given descriptor. This constructor performs the same construction than
<a href="#%3Cinit%3E(org.opengis.referencing.operation.OperationMethod)"><code>Contextual­Parameters(Operation­Method)</code></a> but without the need to specify an <code>Operation­Method</code> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>descriptor</code> - the parameter descriptor.</dd>
<dd><code>src­Dim</code> - number of source dimensions.</dd>
<dd><code>tgt­Dim</code> - number of target dimensions.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getDescriptor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescriptor</h4>
<pre class="methodSignature">public final&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a>&nbsp;getDescriptor()</pre>
<div class="block">Returns the parameters for the <cite>normalize</cite><cite>non-linear kernel</cite>
<cite>denormalize</cite> sequence as a whole. This is the parameter descriptor of the
<a href="../DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">operation method</a>
given to the constructor.
<p>The values for those parameters is given by the <a href="#values()"><code>values()</code></a> method. Those values may be used in
the <a href="#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">normalization / denormalization</a> transforms, in the kernel, or both.</p>
<div class="note"><b>Note:</b>
The definition of "kernel" is left to implementers.
In the particular case of Apache SIS implementation of map projections,
kernels are instances of <a href="../projection/NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection"><code>Normalized­Projection</code></a>.
Other "kernels" in SIS are <a href="EllipsoidToCentricTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Ellipsoid­To­Centric­Transform</code></a> and <a href="MolodenskyTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Molodensky­Transform</code></a>.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true#getDescriptor()" title="class or interface in org.opengis.parameter" class="externalLink">get­Descriptor</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">General­Parameter­Value</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#getDescriptor()" title="class or interface in org.opengis.parameter" class="externalLink">get­Descriptor</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the description of the parameters.</dd>
</dl>
</li>
</ul>
<a id="getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatrix</h4>
<pre class="methodSignature">public final&nbsp;<a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a>&nbsp;getMatrix&#8203;(<a href="ContextualParameters.MatrixRole.html" title="enum in org.apache.sis.referencing.operation.transform">ContextualParameters.MatrixRole</a>&nbsp;role)</pre>
<div class="block">Returns the affine transforms to be applied before or after the non-linear kernel operation.
Immediately after <a href="#%3Cinit%3E(org.opengis.referencing.operation.OperationMethod)">construction</a>, those matrices
are modifiable identity matrices. Callers can modify the matrix element values, typically by calls to
the <a href="../matrix/MatrixSIS.html#convertBefore(int,java.lang.Number,java.lang.Number)"><code>Matrix­SIS​.convert­Before(…)</code></a> method.
Alternatively, the following methods can be invoked for applying some frequently used configurations:
<ul>
<li><a href="#normalizeGeographicInputs(double)"><code>normalize­Geographic­Inputs(double)</code></a></li>
<li><a href="#denormalizeGeographicOutputs(double)"><code>denormalize­Geographic­Outputs(double)</code></a></li>
</ul>
After the <a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)"><code>complete­Transform(…)</code></a> method has been
invoked, the matrices returned by this method are <a href="../matrix/Matrices.html#unmodifiable(org.opengis.referencing.operation.Matrix)">unmodifiable</a>.
<div class="note"><b>Application to map projections:</b>
after <a href="../projection/NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection"><code>Normalized­Projection</code></a> construction, the matrices
returned by <code>projection​.get­Contextual­Parameters()​.get­Matrix(…)</code> are initialized to the values shown below.
Note that some <code>Normalized­Projection</code> subclasses apply further modifications to those matrices.
<table class="sis">
<caption>Initial matrix coefficients after <code>Normalized­Projection</code> construction</caption>
<tr>
<th><code>getMatrix(NORMALIZATION)</code></th>
<th class="sep"><code>getMatrix(DENORMALIZATION)</code></th>
</tr><tr>
<td> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mo>-</mo><msub><mi>λ</mi><mn>0</mn></msub> <mo></mo> <mo>(</mo><mi>π</mi><mo>/</mo><mn>180</mn><mo>)</mo></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</td>
<td class="sep"> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>a</mi> <mo></mo> <msub><mi>k</mi><mn>0</mn></msub></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mi>FE</mi></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>a</mi> <mo></mo> <msub><mi>k</mi><mn>0</mn></msub></mtd>
<mtd><mi>FN</mi></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</td>
</tr>
</table>
</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>role</code> - <code>NORMALIZATION</code> for fetching the <cite>normalization</cite> transform to apply before the kernel,
<code>DENORMALIZATION</code> for the <cite>denormalization</cite> transform to apply after the kernel, or
<code>INVERSE_*</code> for the inverse of the above-cited matrices.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the matrix for the requested normalization or denormalization affine transform.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.7</dd>
</dl>
</li>
</ul>
<a id="normalizeGeographicInputs(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalizeGeographicInputs</h4>
<pre class="methodSignature">public&nbsp;<a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a>&nbsp;normalizeGeographicInputs&#8203;(double&nbsp;λ0)</pre>
<div class="block">Prepends a normalization step converting input coordinates in the two first dimensions from degrees to radians.
The normalization can optionally subtract the given λ₀ value (in degrees) from the longitude.
<p>Invoking this method is equivalent to <a href="https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html?is-external=true#concatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="externalLink">concatenating</a>
the normalization matrix with the following matrix. This will have the effect of applying the conversion
described above before any other operation:</p>
<div style="text-align:center"> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mo>-</mo><msub><mi>λ</mi><mn>0</mn></msub> <mo></mo> <mo>(</mo><mi>π</mi><mo>/</mo><mn>180</mn><mo>)</mo></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>π</mi><mo>/</mo><mn>180</mn></mtd>
<mtd><mn>0</mn></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>\u03bb0</code> - longitude of the central meridian, in degrees.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the normalization affine transform as a matrix.
Callers can change that matrix directly if they want to apply additional normalization operations.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­State­Exception</a></code> - if this <code>Contextual­Parameter</code> has been made unmodifiable.</dd>
</dl>
</li>
</ul>
<a id="denormalizeGeographicOutputs(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>denormalizeGeographicOutputs</h4>
<pre class="methodSignature">public&nbsp;<a href="../matrix/MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a>&nbsp;denormalizeGeographicOutputs&#8203;(double&nbsp;λ0)</pre>
<div class="block">Appends a denormalization step after the non-linear kernel, which will convert input coordinates
in the two first dimensions from radians to degrees. After this conversion, the denormalization
can optionally add the given λ₀ value (in degrees) to the longitude.
<p>Invoking this method is equivalent to <a href="https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html?is-external=true#concatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="externalLink">concatenating</a>
the denormalization matrix with the following matrix. This will have the effect of applying the conversion
described above after the non-linear kernel operation:</p>
<div style="text-align:center"> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mi>180</mi><mo>/</mo><mn>π</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><msub><mi>λ</mi><mn>0</mn></msub></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mi>180</mi><mo>/</mo><mn>π</mn></mtd>
<mtd><mn>0</mn></mtd>
</mtr>
<mtr>
<mtd><mn>0</mn></mtd>
<mtd><mn>0</mn></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>
</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>\u03bb0</code> - longitude of the central meridian, in degrees.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the denormalization affine transform as a matrix.
Callers can change that matrix directly if they want to apply additional denormalization operations.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­State­Exception</a></code> - if this <code>Contextual­Parameter</code> has been made unmodifiable.</dd>
</dl>
</li>
</ul>
<a id="completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>completeTransform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;completeTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransformFactory</a>&nbsp;factory,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;kernel)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="block">Marks this <code>Contextual­Parameter</code> as unmodifiable and creates the
<cite>normalize</cite><code>kernel</code><cite>denormalize</cite> transforms chain.
This method shall be invoked only after the <a href="#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)">(de)normalization</a>
matrices have been set to their final values.
<p>The transforms chain created by this method does not include any step for
<a href="../../cs/CoordinateSystems.html#swapAndScaleAxes(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem)">changing axis order</a>
or for converting to units other than degrees or metres. Such steps, if desired, should be defined
outside <code>Contextual­Parameters</code>. Efficient concatenation of those steps will happen "under
the hood".</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the factory to use for creating math transform instances.</dd>
<dd><code>kernel</code> - the (usually non-linear) kernel.
This is often a <a href="../projection/NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection"><code>Normalized­Projection</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the concatenation of <cite>normalize</cite><cite>the given kernel</cite><cite>denormalize</cite>
transforms.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if an error occurred while creating a math transform instance.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../projection/NormalizedProjection.html#createMapProjection(org.opengis.referencing.operation.MathTransformFactory)"><code>Normalized­Projection​.create­Map­Projection(Math­Transform­Factory)</code></a></dd>
</dl>
</li>
</ul>
<a id="parameter(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parameter</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValue</a>&lt;?&gt;&nbsp;parameter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterNotFoundException.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterNotFoundException</a></pre>
<div class="block">Returns the parameter value of the given name.
Before the call to <a href="#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)"><code>complete­Transform(…)</code></a>,
this method can be used for setting parameter values like below:
<blockquote><pre><b>parameter</b>(<font color="orangered">"Scale factor"</font>).<b>setValue</b>(0.9996); <i><font color="gray">// Scale factor of Universal Transverse Mercator (UTM) projections.</font></i></pre></blockquote>
After the call to <code>complete­Transform(…)</code>, the returned parameters are read-only.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#parameter(java.lang.String)" title="class or interface in org.opengis.parameter" class="externalLink">parameter</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the parameter to search.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parameter value for the given name.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterNotFoundException.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Not­Found­Exception</a></code> - if there is no parameter of the given name.</dd>
</dl>
</li>
</ul>
<a id="values()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">GeneralParameterValue</a>&gt;&nbsp;values()</pre>
<div class="block">Returns an unmodifiable list containing all parameters in this group.
Callers should not attempt to modify the parameter values in this list.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#values()" title="class or interface in org.opengis.parameter" class="externalLink">values</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>all parameter values.</dd>
</dl>
</li>
</ul>
<a id="groups(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groups</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&gt;&nbsp;groups&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
<div class="block">Unsupported operation, since <code>Contextual­Parameters</code> groups do not contain sub-groups.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#groups(java.lang.String)" title="class or interface in org.opengis.parameter" class="externalLink">groups</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - ignored.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>never returned.</dd>
</dl>
</li>
</ul>
<a id="addGroup(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addGroup</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;addGroup&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
<div class="block">Unsupported operation, since <code>Contextual­Parameters</code> groups do not contain sub-groups.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#addGroup(java.lang.String)" title="class or interface in org.opengis.parameter" class="externalLink">add­Group</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - ignored.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>never returned.</dd>
</dl>
</li>
</ul>
<a id="clone()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre class="methodSignature">public&nbsp;<a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a>&nbsp;clone()</pre>
<div class="block">Returns a modifiable clone of this parameter value group.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true#clone()" title="class or interface in org.opengis.parameter" class="externalLink">clone</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/GeneralParameterValue.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">General­Parameter­Value</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true#clone()" title="class or interface in org.opengis.parameter" class="externalLink">clone</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">Parameter­Value­Group</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../parameter/Parameters.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a clone of this parameter value group.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../parameter/Parameters.html#copy(org.opengis.parameter.ParameterValueGroup,org.opengis.parameter.ParameterValueGroup)"><code>Parameters​.copy(Parameter­Value­Group, Parameter­Value­Group)</code></a></dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash code value for this object. This value is
implementation-dependent and may change in any future version.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
<div class="block">Compares the given object with the parameters for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare with the parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is equal to this one.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContextualParameters.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>