<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>InterpolatedMolodenskyTransform (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.InterpolatedMolodenskyTransform class">
<meta name="keywords" content="createGeodeticTransformation()">
<meta name="keywords" content="transform()">
<meta name="keywords" content="inverse()">
<meta name="keywords" content="getParameterDescriptors()">
<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="InterpolatedMolodenskyTransform (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/InterpolatedMolodenskyTransform.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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 InterpolatedMolodenskyTransform" class="title">Class InterpolatedMolodenskyTransform</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="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></li>
<li>
<ul class="inheritance">
<li><a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">DatumShiftTransform</a></li>
<li>
<ul class="inheritance">
<li>InterpolatedMolodenskyTransform</li>
</ul>
</li>
</ul>
</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="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code>, <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code>, <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">Math­Transform</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">InterpolatedMolodenskyTransform</span>
extends <a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">DatumShiftTransform</a></pre>
<div class="block">Transforms between two geographic CRS by performing geocentric translations interpolated from a grid file, but using
 Molodensky approximation. This transformation is conceptually defined as a translation in geocentric coordinates
 as performed by <a href="InterpolatedGeocentricTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Interpolated­Geocentric­Transform</code></a>, but uses the <a href="MolodenskyTransform.html" title="class in org.apache.sis.referencing.operation.transform">Molodensy</a>
 (non-abridged) approximation for performance reasons.
 Errors are less than 3 centimetres for the <cite>"France geocentric interpolation"</cite> (ESPG:9655).
 By comparison, the finest accuracy reported in the grid file for France is 5 centimetres.

 <div class="section">Algorithm</div>
 This class transforms two- or three- dimensional coordinates from a geographic CRS to another geographic CRS.
 The changes between source and target coordinates are small (usually less than 400 metres), but vary for every
 position. Those changes are provided in a <a href="../../datum/DatumShiftGrid.html" title="class in org.apache.sis.referencing.datum">datum shift grid</a>, usually loaded from one
 or two files.

 <p>Many datum shift grids like NADCON and NTv2 apply the interpolated translations directly on geographic coordinates.
 This relatively simple case is handled by <a href="InterpolatedTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Interpolated­Transform</code></a>.
 But in the <code>Interpolated­Molodensky­Transform</code> case, the interpolated translations are rather the
 (<a href="#tX">tX</a>, <a href="#tY">tY</a>, <a href="#tZ">tZ</a>) parameters of a Molodensky transformation.</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.7</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="InterpolatedGeocentricTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Interpolated­Geocentric­Transform</code></a>, 
<a href="../../../../../../serialized-form.html#org.apache.sis.referencing.operation.transform.InterpolatedMolodenskyTransform">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">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eccentricitySquared">eccentricitySquared</a></span></code></th>
<td class="colLast">
<div class="block">The square of eccentricity of the source ellipsoid.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#semiMajor">semiMajor</a></span></code></th>
<td class="colLast">
<div class="block">Semi-major axis length (<var>a</var>) of the source ellipsoid.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tX">tX</a></span></code></th>
<td class="colLast">
<div class="block">Shift along the geocentric X axis (toward prime meridian)
 in units of the semi-major axis of the source ellipsoid.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tY">tY</a></span></code></th>
<td class="colLast">
<div class="block">Shift along the geocentric Y axis (toward 90°E)
 in units of the semi-major axis of the source ellipsoid.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tZ">tZ</a></span></code></th>
<td class="colLast">
<div class="block">Shift along the geocentric Z axis (toward north pole)
 in units of the semi-major axis of the source ellipsoid.</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">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.referencing.datum.Ellipsoid,boolean,org.opengis.referencing.datum.Ellipsoid,boolean,org.apache.sis.referencing.datum.DatumShiftGrid)">InterpolatedMolodenskyTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;source,
                               boolean&nbsp;isSource3D,
                               <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;target,
                               boolean&nbsp;isTarget3D,
                               <a href="../../datum/DatumShiftGrid.html" title="class in org.apache.sis.referencing.datum">DatumShiftGrid</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Angle.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Angle</a>,&#8203;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;grid)</code></th>
<td class="colLast">
<div class="block">Creates a transform from the specified parameters.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#computeHashCode()">computeHashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Computes a hash value for this transform.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <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="#createGeodeticTransformation(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.datum.Ellipsoid,boolean,org.opengis.referencing.datum.Ellipsoid,boolean,org.apache.sis.referencing.datum.DatumShiftGrid)">createGeodeticTransformation</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/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;source,
                            boolean&nbsp;isSource3D,
                            <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;target,
                            boolean&nbsp;isTarget3D,
                            <a href="../../datum/DatumShiftGrid.html" title="class in org.apache.sis.referencing.datum">DatumShiftGrid</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Angle.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Angle</a>,&#8203;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;grid)</code></th>
<td class="colLast">
<div class="block">Creates a transformation between two geographic CRS.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">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,
      <a href="../../../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</code></th>
<td class="colLast">
<div class="block">Compares the specified object with this math transform for equality.</div>
</td>
</tr>
<tr id="i3" 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="#getParameterDescriptors()">getParameterDescriptors</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a description of the internal parameters of this <code>Interpolated­Molodensky­Transform</code> transform.</div>
</td>
</tr>
<tr id="i4" 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="#getParameterValues()">getParameterValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a copy of internal parameter values of this transform.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSourceDimensions()">getSourceDimensions</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the dimension of input points.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetDimensions()">getTargetDimensions</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the dimension of output points.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<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="#inverse()">inverse</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the inverse of this interpolated Molodensky transform.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a></span>&#8203;(double[]&nbsp;srcPts,
         int&nbsp;srcOff,
         double[]&nbsp;dstPts,
         int&nbsp;dstOff,
         boolean&nbsp;derivate)</code></th>
<td class="colLast">
<div class="block">Transforms the (λ,φ) or (λ,φ,<var>h</var>) coordinates between two geographic CRS,
 and optionally returns the derivative at that location.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a></span>&#8203;(double[]&nbsp;srcPts,
         int&nbsp;srcOff,
         double[]&nbsp;dstPts,
         int&nbsp;dstOff,
         int&nbsp;numPts)</code></th>
<td class="colLast">
<div class="block">Transforms the (λ,φ) or (λ,φ,<var>h</var>) coordinates between two geographic CRS.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.DatumShiftTransform">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">DatumShiftTransform</a></h3>
<code><a href="DatumShiftTransform.html#getContextualParameters()">get­Contextual­Parameters</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractMathTransform">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></h3>
<code><a href="AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)">derivative</a>, <a href="AbstractMathTransform.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMathTransform.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a>, <a href="AbstractMathTransform.html#hashCode()">hash­Code</a>, <a href="AbstractMathTransform.html#isIdentity()">is­Identity</a>, <a href="AbstractMathTransform.html#transform(double%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)">transform</a>, <a href="AbstractMathTransform.html#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">try­Concatenate</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.FormattableObject">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></h3>
<code><a href="../../../io/wkt/FormattableObject.html#print()">print</a>, <a href="../../../io/wkt/FormattableObject.html#toString()">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toWKT()">to­WKT</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#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.MathTransform">
<!--   -->
</a>
<h3>Methods inherited from interface&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></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#toWKT()" title="class or interface in org.opengis.referencing.operation" class="externalLink">to­WKT</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="tX">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tX</h4>
<pre>protected final&nbsp;double tX</pre>
<div class="block">Shift along the geocentric X axis (toward prime meridian)
 in units of the semi-major axis of the source ellipsoid.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../datum/BursaWolfParameters.html#tX"><code>Bursa­Wolf­Parameters​.t­X</code></a></dd>
</dl>
</li>
</ul>
<a id="tY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tY</h4>
<pre>protected final&nbsp;double tY</pre>
<div class="block">Shift along the geocentric Y axis (toward 90°E)
 in units of the semi-major axis of the source ellipsoid.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../datum/BursaWolfParameters.html#tY"><code>Bursa­Wolf­Parameters​.t­Y</code></a></dd>
</dl>
</li>
</ul>
<a id="tZ">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tZ</h4>
<pre>protected final&nbsp;double tZ</pre>
<div class="block">Shift along the geocentric Z axis (toward north pole)
 in units of the semi-major axis of the source ellipsoid.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../datum/BursaWolfParameters.html#tZ"><code>Bursa­Wolf­Parameters​.t­Z</code></a></dd>
</dl>
</li>
</ul>
<a id="semiMajor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>semiMajor</h4>
<pre>protected final&nbsp;double semiMajor</pre>
<div class="block">Semi-major axis length (<var>a</var>) of the source ellipsoid.</div>
</li>
</ul>
<a id="eccentricitySquared">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>eccentricitySquared</h4>
<pre>protected final&nbsp;double eccentricitySquared</pre>
<div class="block">The square of eccentricity of the source ellipsoid.
 This can be computed by ℯ² = (a²-b²)/a² where
 <var>a</var> is the <cite>semi-major</cite> axis length and
 <var>b</var> is the <cite>semi-minor</cite> axis length.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../datum/DefaultEllipsoid.html#getEccentricitySquared()"><code>Default­Ellipsoid​.get­Eccentricity­Squared()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= 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.datum.Ellipsoid,boolean,org.opengis.referencing.datum.Ellipsoid,boolean,org.apache.sis.referencing.datum.DatumShiftGrid)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>InterpolatedMolodenskyTransform</h4>
<pre>protected&nbsp;InterpolatedMolodenskyTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;source,
                                          boolean&nbsp;isSource3D,
                                          <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;target,
                                          boolean&nbsp;isTarget3D,
                                          <a href="../../datum/DatumShiftGrid.html" title="class in org.apache.sis.referencing.datum">DatumShiftGrid</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Angle.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Angle</a>,&#8203;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;grid)</pre>
<div class="block">Creates a transform from the specified parameters.
 This <code>Interpolated­Molodensky­Transform</code> class expects coordinate values in the following order and units:
 <ol>
   <li>longitudes in <strong>radians</strong> relative to the prime meridian (usually Greenwich),</li>
   <li>latitudes in <strong>radians</strong>,</li>
   <li>optionally heights above the ellipsoid, in same units than the source ellipsoid axes.</li>
 </ol>

 For converting geographic coordinates in degrees, <code>Interpolated­Molodensky­Transform</code> instances
 need to be concatenated with the following affine transforms:

 <ul>
   <li><cite>Normalization</cite> before <code>Interpolated­Molodensky­Transform</code>:<ul>
     <li>Conversion of (λ,φ) from degrees to radians.</li>
   </ul></li>
   <li><cite>Denormalization</cite> after <code>Interpolated­Molodensky­Transform</code>:<ul>
     <li>Conversion of (λ,φ) from radians to degrees.</li>
   </ul></li>
 </ul>

 After <code>Interpolated­Molodensky­Transform</code> construction,
 the full conversion chain including the above affine transforms can be created by
 <code><a href="DatumShiftTransform.html#getContextualParameters()">Datum­Shift­Transform​.get­Contextual­Parameters()</a>.<a href="ContextualParameters.html#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)">complete­Transform</a>(factory, this)}</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - the source ellipsoid.</dd>
<dd><code>is­Source3D</code> - <code>true</code> if the source coordinates have a height.</dd>
<dd><code>target</code> - the target ellipsoid.</dd>
<dd><code>is­Target3D</code> - <code>true</code> if the target coordinates have a height.</dd>
<dd><code>grid</code> - the grid of datum shifts from source to target datum.
                    The <a href="../../datum/DatumShiftGrid.html#interpolateInCell(double,double,double%5B%5D)"><code>Datum­Shift­Grid​.interpolate­In­Cell(…)</code></a> method
                    shall compute (ΔX, ΔY, ΔZ) translations from <em>source</em> to <em>target</em> in the
                    unit of source ellipsoid axes.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#createGeodeticTransformation(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.datum.Ellipsoid,boolean,org.opengis.referencing.datum.Ellipsoid,boolean,org.apache.sis.referencing.datum.DatumShiftGrid)"><code>create­Geodetic­Transformation(Math­Transform­Factory, Ellipsoid, boolean, Ellipsoid, boolean, Datum­Shift­Grid)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="createGeodeticTransformation(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.datum.Ellipsoid,boolean,org.opengis.referencing.datum.Ellipsoid,boolean,org.apache.sis.referencing.datum.DatumShiftGrid)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createGeodeticTransformation</h4>
<pre class="methodSignature">public static&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;createGeodeticTransformation&#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/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;source,
                                                         boolean&nbsp;isSource3D,
                                                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;target,
                                                         boolean&nbsp;isTarget3D,
                                                         <a href="../../datum/DatumShiftGrid.html" title="class in org.apache.sis.referencing.datum">DatumShiftGrid</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Angle.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Angle</a>,&#8203;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;grid)
                                                  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">Creates a transformation between two geographic CRS. This factory method combines the
 <code>Interpolated­Molodensky­Transform</code> instance with the steps needed for converting values between
 degrees to radians. The transform works with input and output coordinates in the following units:

 <ol>
   <li>longitudes in <strong>degrees</strong> relative to the prime meridian (usually Greenwich),</li>
   <li>latitudes in <strong>degrees</strong>,</li>
   <li>optionally heights above the ellipsoid, in same units than the source ellipsoids axes.</li>
 </ol>

 Note however that the given <code>grid</code> instance shall expect geographic coordinates (λ,φ)
 in <strong>radians</strong>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the factory to use for creating the transform.</dd>
<dd><code>source</code> - the source ellipsoid.</dd>
<dd><code>is­Source3D</code> - <code>true</code> if the source coordinates have a height.</dd>
<dd><code>target</code> - the target ellipsoid.</dd>
<dd><code>is­Target3D</code> - <code>true</code> if the target coordinates have a height.</dd>
<dd><code>grid</code> - the grid of datum shifts from source to target datum.
                    The <a href="../../datum/DatumShiftGrid.html#interpolateInCell(double,double,double%5B%5D)"><code>Datum­Shift­Grid​.interpolate­In­Cell(…)</code></a> method
                    shall compute (ΔX, ΔY, ΔZ) translations from <em>source</em> to <em>target</em> in the
                    unit of source ellipsoid axes.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the transformation between geographic coordinates in degrees.</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 transform.</dd>
</dl>
</li>
</ul>
<a id="transform(double[],int,double[],int,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a>&nbsp;transform&#8203;(double[]&nbsp;srcPts,
                        int&nbsp;srcOff,
                        double[]&nbsp;dstPts,
                        int&nbsp;dstOff,
                        boolean&nbsp;derivate)
                 throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Transforms the (λ,φ) or (λ,φ,<var>h</var>) coordinates between two geographic CRS,
 and optionally returns the derivative at that location.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source coordinate (can not be <code>null</code>).</dd>
<dd><code>src­Off</code> - the offset to the point to be transformed in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the transformed coordinate is returned. May be the same than <code>src­Pts</code>.
                   May be <code>null</code> if only the derivative matrix is desired.</dd>
<dd><code>dst­Off</code> - the offset to the location of the transformed point that is stored in the destination array.</dd>
<dd><code>derivate</code> - <code>true</code> for computing the derivative, or <code>false</code> if not needed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the matrix of the transform derivative at the given source position,
         or <code>null</code> if the <code>derivate</code> argument is <code>false</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if the point can not be transformed or
         if a problem occurred while calculating the derivative.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.derivative(Direct­Position)</code></a>, 
<a href="AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.transform(Direct­Position, Direct­Position)</code></a>, 
<a href="MathTransforms.html#derivativeAndTransform(org.opengis.referencing.operation.MathTransform,double%5B%5D,int,double%5B%5D,int)"><code>Math­Transforms​.derivative­And­Transform(Math­Transform, double[], int, double[], int)</code></a></dd>
</dl>
</li>
</ul>
<a id="transform(double[],int,double[],int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;transform&#8203;(double[]&nbsp;srcPts,
                      int&nbsp;srcOff,
                      double[]&nbsp;dstPts,
                      int&nbsp;dstOff,
                      int&nbsp;numPts)
               throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Transforms the (λ,φ) or (λ,φ,<var>h</var>) coordinates between two geographic CRS.
 This method performs the same work than the above
 <a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(…)</code></a> method,
 but on an arbitrary amount of coordinates and without computing derivative.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#transform(double%5B%5D,int,double%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source point coordinates.</dd>
<dd><code>src­Off</code> - the offset to the first point to be transformed in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the transformed point coordinates are returned.
                 May be the same than <code>src­Pts</code>.</dd>
<dd><code>dst­Off</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd>
<dd><code>num­Pts</code> - the number of point objects to be transformed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if a point can not be transformed.</dd>
</dl>
</li>
</ul>
<a id="inverse()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inverse</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;inverse()</pre>
<div class="block">Returns the inverse of this interpolated Molodensky transform.
 The source ellipsoid of the returned transform will be the target ellipsoid of this transform, and conversely.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#inverse()" title="class or interface in org.opengis.referencing.operation" class="externalLink">inverse</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#inverse()">inverse</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a transform from the target ellipsoid to the source ellipsoid of this transform.</dd>
</dl>
</li>
</ul>
<a id="getParameterDescriptors()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterDescriptors</h4>
<pre class="methodSignature"><a href="../../../util/Debug.html" title="annotation in org.apache.sis.util">@Debug</a>
public&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;getParameterDescriptors()</pre>
<div class="block">Returns a description of the internal parameters of this <code>Interpolated­Molodensky­Transform</code> transform.
 The returned group contains parameters for the source ellipsoid semi-axis lengths and the differences between
 source and target ellipsoid parameters.

 <div class="note"><b>Note:</b>
 this method is mostly for <a href="../../../io/wkt/Convention.html#INTERNAL">debugging purposes</a>
 since the isolation of non-linear parameters in this class is highly implementation dependent.
 Most GIS applications will instead be interested in the <a href="DatumShiftTransform.html#getContextualParameters()">contextual parameters</a>.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../parameter/Parameterized.html#getParameterDescriptors()">get­Parameter­Descriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getParameterDescriptors()">get­Parameter­Descriptors</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a description of the internal parameters.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getParameters()"><code>Default­Operation­Method​.get­Parameters()</code></a></dd>
</dl>
</li>
</ul>
<a id="getParameterValues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValues</h4>
<pre class="methodSignature"><a href="../../../util/Debug.html" title="annotation in org.apache.sis.util">@Debug</a>
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;getParameterValues()</pre>
<div class="block">Returns a copy of internal parameter values of this transform.
 The returned group contains parameters for the source ellipsoid semi-axis lengths
 and the differences between source and target ellipsoid parameters.

 <div class="note"><b>Note:</b>
 this method is mostly for <a href="../../../io/wkt/Convention.html#INTERNAL">debugging purposes</a>
 since the isolation of non-linear parameters in this class is highly implementation dependent.
 Most GIS applications will instead be interested in the <a href="DatumShiftTransform.html#getContextualParameters()">contextual parameters</a>.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../parameter/Parameterized.html#getParameterValues()">get­Parameter­Values</a></code>&nbsp;in interface&nbsp;<code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DatumShiftTransform.html#getParameterValues()">get­Parameter­Values</a></code>&nbsp;in class&nbsp;<code><a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">Datum­Shift­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of the internal parameter values for this transform.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMathTransform.html#getContextualParameters()"><code>Abstract­Math­Transform​.get­Contextual­Parameters()</code></a>, 
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Single­Operation​.get­Parameter­Values()</code></a></dd>
</dl>
</li>
</ul>
<a id="getSourceDimensions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceDimensions</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;getSourceDimensions()</pre>
<div class="block">Gets the dimension of input points.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#getSourceDimensions()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Source­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getSourceDimensions()">get­Source­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the input dimension, which is 2 or 3.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getSourceDimensions()"><code>Default­Operation­Method​.get­Source­Dimensions()</code></a></dd>
</dl>
</li>
</ul>
<a id="getTargetDimensions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetDimensions</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;getTargetDimensions()</pre>
<div class="block">Gets the dimension of output points.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#getTargetDimensions()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Target­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getTargetDimensions()">get­Target­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the output dimension, which is 2 or 3.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getTargetDimensions()"><code>Default­Operation­Method​.get­Target­Dimensions()</code></a></dd>
</dl>
</li>
</ul>
<a id="computeHashCode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeHashCode</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;computeHashCode()</pre>
<div class="block">Computes a hash value for this transform. This method is invoked by <a href="AbstractMathTransform.html#hashCode()"><code>Abstract­Math­Transform​.hash­Code()</code></a> when first needed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DatumShiftTransform.html#computeHashCode()">compute­Hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">Datum­Shift­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hash code value. This value may change between different execution of the Apache SIS library.</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">
<!--   -->
</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,
                      <a href="../../../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</pre>
<div class="block">Compares the specified object with this math transform for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DatumShiftTransform.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in class&nbsp;<code><a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">Datum­Shift­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare with this transform.</dd>
<dd><code>mode</code> - the strictness level of the comparison. Default to <a href="../../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is considered equals to this math transform.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../util/Utilities.html#deepEquals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)"><code>Utilities​.deep­Equals(Object, Object, Comparison­Mode)</code></a></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/InterpolatedMolodenskyTransform.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>
