<!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>
