| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 --> |
| <title>BursaWolfParameters (Apache SIS 1.4 API)</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="dc.created" content="2023-10-05"> |
| <meta name="description" content="declaration: module: org.apache.sis.referencing, package: org.apache.sis.referencing.datum, class: BursaWolfParameters"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <meta name="keywords" content="org.apache.sis.referencing.datum.BursaWolfParameters class"> |
| <meta name="keywords" content="tX"> |
| <meta name="keywords" content="tY"> |
| <meta name="keywords" content="tZ"> |
| <meta name="keywords" content="rX"> |
| <meta name="keywords" content="rY"> |
| <meta name="keywords" content="rZ"> |
| <meta name="keywords" content="dS"> |
| <meta name="keywords" content="getTargetDatum()"> |
| <meta name="keywords" content="getValues()"> |
| <meta name="keywords" content="setValues()"> |
| <meta name="keywords" content="isIdentity()"> |
| <meta name="keywords" content="isTranslation()"> |
| <meta name="keywords" content="reverseRotation()"> |
| <meta name="keywords" content="invert()"> |
| <meta name="keywords" content="getPositionVectorTransformation()"> |
| <meta name="keywords" content="setPositionVectorTransformation()"> |
| <meta name="keywords" content="getDomainOfValidity()"> |
| <meta name="keywords" content="clone()"> |
| <meta name="keywords" content="equals()"> |
| <meta name="keywords" content="hashCode()"> |
| <meta name="keywords" content="formatTo()"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../sis.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style"> |
| <script type="text/javascript" src="../../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.1.min.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script> |
| </head> |
| <body class="class-declaration-page"> |
| <script type="text/javascript">var pathtoroot = "../../../../../../"; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <div class="flex-box"> |
| <header role="banner" class="flex-header"> |
| <nav role="navigation"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> |
| <div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> |
| <ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> |
| <li><a href="../../../../../../index.html">Overview</a></li> |
| <li><a href="../../../../../module-summary.html">Module</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="nav-bar-cell1-rev">Class</li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../../help-doc.html#class">Help</a></li> |
| </ul> |
| <ul class="sub-nav-list-small"> |
| <li> |
| <p>Summary:</p> |
| <ul> |
| <li>Nested</li> |
| <li><a href="#field-summary">Field</a></li> |
| <li><a href="#constructor-summary">Constr</a></li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| </li> |
| <li> |
| <p>Detail:</p> |
| <ul> |
| <li><a href="#field-detail">Field</a></li> |
| <li><a href="#constructor-detail">Constr</a></li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="sub-nav"> |
| <div id="navbar-sub-list"> |
| <ul class="sub-nav-list"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li><a href="#field-summary">Field</a> | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li><a href="#field-detail">Field</a> | </li> |
| <li><a href="#constructor-detail">Constr</a> | </li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </div> |
| <div class="nav-list-search"><a href="../../../../../../search.html">SEARCH</a> |
| <input type="text" id="search-input" disabled placeholder="Search"> |
| <input type="reset" id="reset-button" disabled value="reset"> |
| </div> |
| </div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <span class="skip-nav" id="skip-navbar-top"></span></nav> |
| </header> |
| <div class="flex-content"> |
| <main role="main"> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../../../../../module-summary.html">org.apache.sis.referencing</a></div> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.sis.referencing.datum</a></div> |
| <h1 title="Class BursaWolfParameters" class="title">Class BursaWolfParameters</h1> |
| </div> |
| <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> |
| <div class="inheritance"><a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a> |
| <div class="inheritance">BursaWolfParameters</div> |
| </div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <dl class="notes"> |
| <dt>All Implemented Interfaces:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a></code></dd> |
| </dl> |
| <dl class="notes"> |
| <dt>Direct Known Subclasses:</dt> |
| <dd><code><a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum">TimeDependentBWP</a></code></dd> |
| </dl> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">BursaWolfParameters</span> |
| <span class="extends-implements">extends <a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a> |
| implements <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div> |
| <div class="block">Parameters for a geographic transformation between two datum having the same prime meridian. |
| Bursa-Wolf parameters are also known as <cite>Helmert transformation parameters</cite>. |
| For an explanation of their purpose, see the <cite>Bursa-Wolf parameters</cite> section |
| of <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>DefaultGeodeticDatum</code></a> class javadoc. |
| |
| <p>The Bursa-Wolf parameters shall be applied to geocentric coordinates, |
| where the <var>X</var> axis points towards the Prime Meridian (usually Greenwich), |
| the <var>Y</var> axis points East, and the <var>Z</var> axis points North.</p> |
| |
| <div class="note"><b>Note:</b> |
| The upper case letters are intentional. By convention, (<var>X</var>, <var>Y</var>, <var>Z</var>) |
| stand for <cite>geocentric</cite> coordinates while (<var>x</var>, <var>y</var>, <var>z</var>) |
| stand for <cite>projected</cite> coordinates.</div> |
| |
| The "Bursa-Wolf" formula is expressed with 7 parameters, listed in the table below. |
| The <cite>code</cite>, <cite>name</cite> and <cite>abbreviation</cite> columns list EPSG identifiers, |
| while the <cite>legacy</cite> column lists the identifiers used in the legacy OGC 01-009 specification |
| (still used in some <cite>Well Known Texts</cite>). |
| |
| <div class="horizontal-flow"> |
| <div><table class="sis"> |
| <caption>Parameters defined by EPSG</caption> |
| <tr><th>Code</th> <th>Name</th> <th>Abbr.</th> <th>Legacy</th></tr> |
| <tr><td>8605</td> <td>X-axis translation</td> <td><a href="#tX"><code>tX</code></a></td> <td><code>dx</code></td></tr> |
| <tr><td>8606</td> <td>Y-axis translation</td> <td><a href="#tY"><code>tY</code></a></td> <td><code>dy</code></td></tr> |
| <tr><td>8607</td> <td>Z-axis translation</td> <td><a href="#tZ"><code>tZ</code></a></td> <td><code>dz</code></td></tr> |
| <tr><td>8608</td> <td>X-axis rotation</td> <td><a href="#rX"><code>rX</code></a></td> <td><code>ex</code></td></tr> |
| <tr><td>8609</td> <td>Y-axis rotation</td> <td><a href="#rY"><code>rY</code></a></td> <td><code>ey</code></td></tr> |
| <tr><td>8610</td> <td>Z-axis rotation</td> <td><a href="#rZ"><code>rZ</code></a></td> <td><code>ez</code></td></tr> |
| <tr><td>8611</td> <td>Scale difference</td> <td><a href="#dS"><code>dS</code></a></td> <td><code>ppm</code></td></tr> |
| </table></div> |
| <div><p><b>Geocentric coordinates transformation</b></p> |
| <p>from (<var>X</var><sub>s</sub>, <var>Y</var><sub>s</sub>, <var>Z</var><sub>s</sub>) |
| to (<var>X</var><sub>t</sub>, <var>Y</var><sub>t</sub>, <var>Z</var><sub>t</sub>) |
| <br><span style="font-size:small">(ignoring unit conversions)</span></p> |
| |
| <p> <math display="block" alttext="MathML capable browser required"> |
| <mrow> |
| <mo>[</mo> |
| <mtable> |
| <mtr><mtd><msub><mi>X</mi><mi>t</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>Y</mi><mi>t</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>Z</mi><mi>t</mi></msub></mtd></mtr> |
| </mtable> |
| <mo>]</mo> |
| </mrow> |
| <mo>=</mo> |
| <mo>(</mo><mn>1</mn><mo>+</mo><mi>dS</mi><mo>)</mo> |
| <mo>⋅</mo> |
| <mrow> |
| <mo>[</mo> |
| <mtable> |
| <mtr> |
| <mtd><mn>1</mn></mtd> |
| <mtd><mo>-</mo><msub><mi>r</mi><mi>z</mi></msub></mtd> |
| <mtd><mo>+</mo><msub><mi>r</mi><mi>y</mi></msub></mtd> |
| </mtr> |
| <mtr> |
| <mtd><mo>+</mo><msub><mi>r</mi><mi>z</mi></msub></mtd> |
| <mtd><mn>1</mn></mtd> |
| <mtd><mo>-</mo><msub><mi>r</mi><mi>x</mi></msub></mtd> |
| </mtr> |
| <mtr> |
| <mtd><mo>-</mo><msub><mi>r</mi><mi>y</mi></msub></mtd> |
| <mtd><mo>+</mo><msub><mi>r</mi><mi>x</mi></msub></mtd> |
| <mtd><mn>1</mn></mtd> |
| </mtr> |
| </mtable> |
| <mo>]</mo> |
| </mrow> |
| <mo>×</mo> |
| <mrow> |
| <mo>[</mo> |
| <mtable> |
| <mtr><mtd><msub><mi>X</mi><mi>s</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>Y</mi><mi>s</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>Z</mi><mi>s</mi></msub></mtd></mtr> |
| </mtable> |
| <mo>]</mo> |
| </mrow> |
| <mo>+</mo> |
| <mrow> |
| <mo>[</mo> |
| <mtable> |
| <mtr><mtd><msub><mi>t</mi><mi>x</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>t</mi><mi>y</mi></msub></mtd></mtr> |
| <mtr><mtd><msub><mi>t</mi><mi>z</mi></msub></mtd></mtr> |
| </mtable> |
| <mo>]</mo> |
| </mrow> |
| </math> |
| </p> |
| </div></div> |
| |
| The numerical fields in this <code>BursaWolfParameters</code> class use the EPSG abbreviations |
| with 4 additional constraints compared to the EPSG definitions: |
| |
| <ul> |
| <li>Unit of scale difference (<a href="#dS"><code>dS</code></a>) is fixed to <em>parts per million</em>.</li> |
| <li>Unit of translation terms (<a href="#tX"><code>tX</code></a>, <a href="#tY"><code>tY</code></a>, <a href="#tZ"><code>tZ</code></a>) is fixed to <em>metres</em>.</li> |
| <li>Unit of rotation terms (<a href="#rX"><code>rX</code></a>, <a href="#rY"><code>rY</code></a>, <a href="#rZ"><code>rZ</code></a>) is fixed to <em>arc-seconds</em>.</li> |
| <li>Sign of rotation terms is fixed to the <em>Position Vector</em> convention (EPSG operation method 9606). |
| This is the opposite sign than the <cite>Coordinate Frame Rotation</cite> (EPSG operation method 9607). |
| The Position Vector convention is used by IAG and recommended by ISO 19111.</li> |
| </ul> |
| |
| <h2 id="source-and-target-geodetic-datum-heading">Source and target geodetic datum</h2> |
| The <var>source datum</var> in above coordinates transformation is the <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>DefaultGeodeticDatum</code></a> instance |
| that contain this <code>BursaWolfParameters</code>. It can be any datum, including datum that are valid only locally. |
| The <var><a href="#getTargetDatum()">target datum</a></var> is specified at construction time and is often, |
| but not necessarily, the <cite>World Geodetic System 1984</cite> (WGS 84) datum. |
| |
| <p>If the source and target datum does not have the same <a href="DefaultGeodeticDatum.html#getPrimeMeridian()">prime meridian</a>, then it is user's responsibility to apply longitude rotation before to use the Bursa-Wolf |
| parameters.</p> |
| |
| <h2 id="when-bursa-wolf-parameters-are-used-heading">When Bursa-Wolf parameters are used</h2> |
| <code>BursaWolfParameters</code> are used in three contexts: |
| <ol> |
| <li>Created as a step while creating a <a href="../operation/AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">coordinate operation</a> from the EPSG database.</li> |
| <li>Associated to a <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>DefaultGeodeticDatum</code></a> with the WGS 84 <a href="#getTargetDatum()">target datum</a> for |
| providing the parameter values to display in the <code>TOWGS84[…]</code> element of <cite>Well Known Text</cite> |
| (WKT) version 1. Note that WKT version 2 does not have <code>TOWGS84[…]</code> element anymore.</li> |
| <li>Specified at <code>DefaultGeodeticDatum</code> construction time for arbitrary target datum. |
| Apache SIS will ignore those Bursa-Wolf parameters, except as a fallback if no parameters |
| can be found in the EPSG database for a given pair of source and target CRS.</li> |
| </ol> |
| |
| In EPSG terminology, Apache SIS gives precedence to the <cite>late-binding</cite> approach |
| (case 1 above) over the <cite>early-binding</cite> approach (case 3 above).</div> |
| <dl class="notes"> |
| <dt>Since:</dt> |
| <dd>0.4</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list-long"> |
| <li><a href="DefaultGeodeticDatum.html#getBursaWolfParameters()"><code>DefaultGeodeticDatum.getBursaWolfParameters()</code></a></li> |
| <li><a href="https://en.wikipedia.org/wiki/Helmert_transformation">Wikipedia: Helmert transformation</a></li> |
| <li><a href="../../../../../../serialized-form.html#org.apache.sis.referencing.datum.BursaWolfParameters">Serialized Form</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <li> |
| <section class="field-summary" id="field-summary"> |
| <h2>Field Summary</h2> |
| <div class="caption"><span>Fields</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Field</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>double</code></div> |
| <div class="col-second even-row-color"><code><a href="#dS" class="member-name-link">dS</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">The scale difference in parts per million (EPSG:8611).</div> |
| </div> |
| <div class="col-first odd-row-color"><code>double</code></div> |
| <div class="col-second odd-row-color"><code><a href="#rX" class="member-name-link">rX</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">X-axis rotation in arc-seconds (EPSG:8608), sign following the <cite>Position Vector</cite> convention.</div> |
| </div> |
| <div class="col-first even-row-color"><code>double</code></div> |
| <div class="col-second even-row-color"><code><a href="#rY" class="member-name-link">rY</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Y-axis rotation in arc-seconds (EPSG:8609), sign following the <cite>Position Vector</cite> convention.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>double</code></div> |
| <div class="col-second odd-row-color"><code><a href="#rZ" class="member-name-link">rZ</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Z-axis rotation in arc-seconds (EPSG:8610), sign following the <cite>Position Vector</cite> convention.</div> |
| </div> |
| <div class="col-first even-row-color"><code>double</code></div> |
| <div class="col-second even-row-color"><code><a href="#tX" class="member-name-link">tX</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">X-axis translation in metres (EPSG:8605).</div> |
| </div> |
| <div class="col-first odd-row-color"><code>double</code></div> |
| <div class="col-second odd-row-color"><code><a href="#tY" class="member-name-link">tY</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Y-axis translation in metres (EPSG:8606).</div> |
| </div> |
| <div class="col-first even-row-color"><code>double</code></div> |
| <div class="col-second even-row-color"><code><a href="#tZ" class="member-name-link">tZ</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Z-axis translation in metres (EPSG:8607).</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <li> |
| <section class="constructor-summary" id="constructor-summary"> |
| <h2>Constructor Summary</h2> |
| <div class="caption"><span>Constructors</span></div> |
| <div class="summary-table two-column-summary"> |
| <div class="table-header col-first">Constructor</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)" class="member-name-link">BursaWolfParameters</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a> targetDatum, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a> domainOfValidity)</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Creates a new instance for the given target datum and domain of validity.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <li> |
| <section class="method-summary" id="method-summary"> |
| <h2>Method Summary</h2> |
| <div id="method-summary-table"> |
| <div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> |
| <div id="method-summary-table.tabpanel" role="tabpanel"> |
| <div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Method</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">BursaWolfParameters</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clone()" class="member-name-link">clone</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns a copy of this object.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Compares the specified object with this object for equality.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#formatTo(org.apache.sis.io.wkt.Formatter)" class="member-name-link">formatTo</a><wbr>(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a> formatter)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Formats this object as a <cite>Well Known Text</cite> <code>ToWGS84[…]</code> element.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDomainOfValidity()" class="member-name-link">getDomainOfValidity</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the region or timeframe in which a coordinate transformation based on those Bursa-Wolf parameters is |
| valid, or <code>null</code> if unspecified.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPositionVectorTransformation(java.util.Date)" class="member-name-link">getPositionVectorTransformation</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a> time)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the position vector transformation (geocentric domain) as an affine transform.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTargetDatum()" class="member-name-link">getTargetDatum</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the target datum for this set of parameters, or <code>null</code> if unknown.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double[]</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValues()" class="member-name-link">getValues</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the parameter values.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns a hash value for this object.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#invert()" class="member-name-link">invert</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Inverts in-place the transformation by inverting the sign of all numerical parameters.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isIdentity()" class="member-name-link">isIdentity</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform no operation.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isTranslation()" class="member-name-link">isTranslation</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform only a translation.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reverseRotation()" class="member-name-link">reverseRotation</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Inverts in-place the sign of rotation terms (<a href="#rX"><code>rX</code></a>, <a href="#rY"><code>rY</code></a>, <a href="#rZ"><code>rZ</code></a>).</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)" class="member-name-link">setPositionVectorTransformation</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix, |
| double tolerance)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Sets all Bursa-Wolf parameters from the given <cite>Position Vector transformation</cite> matrix.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setValues(double...)" class="member-name-link">setValues</a><wbr>(double... elements)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Sets the parameters to the given values.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-FormattableObject">Methods inherited from class <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()">toString</a>, <a href="../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">toString</a>, <a href="../../io/wkt/FormattableObject.html#toWKT()">toWKT</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-Object">Methods inherited from class <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <section class="details"> |
| <ul class="details-list"> |
| <!-- ============ FIELD DETAIL =========== --> |
| <li> |
| <section class="field-details" id="field-detail"> |
| <h2>Field Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="tX"> |
| <h3>tX</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">tX</span></div> |
| <div class="block">X-axis translation in metres (EPSG:8605). |
| The legacy OGC parameter name is <code>"dx"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="tY"> |
| <h3>tY</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">tY</span></div> |
| <div class="block">Y-axis translation in metres (EPSG:8606). |
| The legacy OGC parameter name is <code>"dy"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="tZ"> |
| <h3>tZ</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">tZ</span></div> |
| <div class="block">Z-axis translation in metres (EPSG:8607). |
| The legacy OGC parameter name is <code>"dz"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="rX"> |
| <h3>rX</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">rX</span></div> |
| <div class="block">X-axis rotation in arc-seconds (EPSG:8608), sign following the <cite>Position Vector</cite> convention. |
| The legacy OGC parameter name is <code>"ex"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="rY"> |
| <h3>rY</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">rY</span></div> |
| <div class="block">Y-axis rotation in arc-seconds (EPSG:8609), sign following the <cite>Position Vector</cite> convention. |
| The legacy OGC parameter name is <code>"ey"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="rZ"> |
| <h3>rZ</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">rZ</span></div> |
| <div class="block">Z-axis rotation in arc-seconds (EPSG:8610), sign following the <cite>Position Vector</cite> convention. |
| The legacy OGC parameter name is <code>"ez"</code>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="dS"> |
| <h3>dS</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">dS</span></div> |
| <div class="block">The scale difference in parts per million (EPSG:8611). |
| The legacy OGC parameter name is <code>"ppm"</code>. |
| |
| <h4 id="example-heading">Example</h4> |
| If a distance of 100 km in the source coordinate reference system translates into a distance of 100.001 km |
| in the target coordinate reference system, the scale difference is 1 ppm (the ratio being 1.000001).</div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <li> |
| <section class="constructor-details" id="constructor-detail"> |
| <h2>Constructor Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="<init>(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)"> |
| <h3>BursaWolfParameters</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">BursaWolfParameters</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a> targetDatum, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a> domainOfValidity)</span></div> |
| <div class="block">Creates a new instance for the given target datum and domain of validity. |
| All numerical parameters are initialized to 0, which correspond to an identity transform. |
| Callers can assign numerical values to the public fields of interest after construction. |
| For example, many coordinate transformations will provide values only for the translation |
| terms (<a href="#tX"><code>tX</code></a>, <a href="#tY"><code>tY</code></a>, <a href="#tZ"><code>tZ</code></a>). |
| |
| <p>Alternatively, numerical fields can also be initialized by a call to |
| <a href="#setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)"><code>setPositionVectorTransformation(Matrix, double)</code></a>.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>targetDatum</code> - the target datum (usually WGS 84) for this set of parameters, or <code>null</code> if unknown.</dd> |
| <dd><code>domainOfValidity</code> - area or region in which a coordinate transformation based on those Bursa-Wolf parameters |
| is valid, or <code>null</code> if unspecified.</dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ============ METHOD DETAIL ========== --> |
| <li> |
| <section class="method-details" id="method-detail"> |
| <h2>Method Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="getTargetDatum()"> |
| <h3>getTargetDatum</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a></span> <span class="element-name">getTargetDatum</span>()</div> |
| <div class="block">Returns the target datum for this set of parameters, or <code>null</code> if unknown. |
| This is usually the WGS 84 datum, but other targets are allowed. |
| |
| <p>The source datum is the <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>DefaultGeodeticDatum</code></a> that contain this <code>BursaWolfParameters</code> |
| instance.</p></div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the target datum for this set of parameters, or <code>null</code> if unknown.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getValues()"> |
| <h3>getValues</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double[]</span> <span class="element-name">getValues</span>()</div> |
| <div class="block">Returns the parameter values. The length of the returned array depends on the values: |
| |
| <ul> |
| <li>If this instance is an <a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum"><code>TimeDependentBWP</code></a>, then the array length will be 14.</li> |
| <li>Otherwise if this instance contains a non-zero <a href="#dS"><code>dS</code></a> value, then the array length will be 7 with |
| <a href="#tX"><code>tX</code></a>, <a href="#tY"><code>tY</code></a>, <a href="#tZ"><code>tZ</code></a>, <a href="#rX"><code>rX</code></a>, <a href="#rY"><code>rY</code></a>, <a href="#rZ"><code>rZ</code></a> and <a href="#dS"><code>dS</code></a> values |
| in that order.</li> |
| <li>Otherwise if this instance contains non-zero rotation terms, |
| then this method returns the first 6 of the above-cited values.</li> |
| <li>Otherwise (i.e. this instance <a href="#isTranslation()">is a translation</a>), |
| this method returns only the first 3 of the above-cited values.</li> |
| </ul> |
| |
| <h4 id="compatibility-note-heading">Compatibility note</h4> |
| The rules about the arrays of length 3, 6 or 7 are derived from the <cite>Well Known Text</cite> (WKT) |
| version 1 specification. The rule about the array of length 14 is an extension.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the parameter values as an array of length 3, 6, 7 or 14.</dd> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setValues(double...)"> |
| <h3>setValues</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setValues</span><wbr><span class="parameters">(double... elements)</span></div> |
| <div class="block">Sets the parameters to the given values. The given array can have any length. The first array elements will be |
| assigned to the <a href="#tX"><code>tX</code></a>, <a href="#tY"><code>tY</code></a>, <a href="#tZ"><code>tZ</code></a>, <a href="#rX"><code>rX</code></a>, <a href="#rY"><code>rY</code></a>, <a href="#rZ"><code>rZ</code></a> and <a href="#dS"><code>dS</code></a> |
| fields in that order. |
| |
| <ul> |
| <li>If the length of the given array is not sufficient for assigning a value to every fields, |
| then the remaining fields are left unchanged (they are <strong>not</strong> reset to zero, |
| but this is not a problem if this <code>BursaWolfParameters</code> is a new instance).</li> |
| <li>If the length of the given array is greater than necessary, then extra elements are ignored by this base |
| class. Note however that those extra elements may be used by subclasses like <a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum"><code>TimeDependentBWP</code></a>.</li> |
| </ul></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>elements</code> - the new parameter values, as an array of any length.</dd> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isIdentity()"> |
| <h3>isIdentity</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isIdentity</span>()</div> |
| <div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform no operation. |
| This is true when the value of all parameters is zero.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if the parameters describe no operation.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isTranslation()"> |
| <h3>isTranslation</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isTranslation</span>()</div> |
| <div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform only a translation.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if the parameters describe a translation only.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="reverseRotation()"> |
| <h3>reverseRotation</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">reverseRotation</span>()</div> |
| <div class="block">Inverts in-place the sign of rotation terms (<a href="#rX"><code>rX</code></a>, <a href="#rY"><code>rY</code></a>, <a href="#rZ"><code>rZ</code></a>). |
| This method can be invoked for converting a <cite>Coordinate Frame Rotation</cite> transformation |
| (EPSG operation method 9607) to a <em>Position Vector</em> transformation (EPSG operation method 9606). |
| The latter convention is used by IAG and recommended by ISO 19111.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="invert()"> |
| <h3>invert</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">invert</span>()</div> |
| <div class="block">Inverts in-place the transformation by inverting the sign of all numerical parameters. |
| The <a href="#getPositionVectorTransformation(java.util.Date)">position vector transformation</a> matrix |
| created from inverted Bursa-Wolf parameters will be <strong>approximately</strong> equals |
| to the <a href="../operation/matrix/MatrixSIS.html#inverse()">inverse</a> |
| of the matrix created from the original parameters. The equality holds approximately only |
| because the parameter values are very small (parts per millions and arc-seconds).</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getPositionVectorTransformation(java.util.Date)"> |
| <h3>getPositionVectorTransformation</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></span> <span class="element-name">getPositionVectorTransformation</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a> time)</span></div> |
| <div class="block">Returns the position vector transformation (geocentric domain) as an affine transform. |
| For transformations that do not depend on time, the formula is as below where <code>R</code> |
| is a conversion factor from arc-seconds to radians: |
| |
| <blockquote><pre> R = toRadians(1″) |
| S = 1 + <a href="#dS">dS</a>/1000000 |
| ┌ ┐ ┌ ┐ ┌ ┐ |
| │ X' │ │ S -<a href="#rZ">rZ</a>*RS +<a href="#rY">rY</a>*RS <a href="#tX">tX</a> │ │ X │ |
| │ Y' │ = │ +<a href="#rZ">rZ</a>*RS S -<a href="#rX">rX</a>*RS <a href="#tY">tY</a> │ │ Y │ |
| │ Z' │ │ -<a href="#rY">rY</a>*RS +<a href="#rX">rX</a>*RS S <a href="#tZ">tZ</a> │ │ Z │ |
| │ 1 │ │ 0 0 0 1 │ │ 1 │ |
| └ ┘ └ ┘ └ ┘</pre></blockquote> |
| |
| This affine transform can be applied on <strong>geocentric</strong> coordinates. |
| This is identified as operation method 1033 in the EPSG database. |
| Those geocentric coordinates are typically converted from geographic coordinates |
| in the region or timeframe given by <a href="#getDomainOfValidity()"><code>getDomainOfValidity()</code></a>. |
| |
| <p>If the source datum and the <a href="#getTargetDatum()">target datum</a> do not use the same |
| <a href="DefaultGeodeticDatum.html#getPrimeMeridian()">prime meridian</a>, then it is caller's responsibility |
| to apply longitude rotation before to use the matrix returned by this method.</p> |
| |
| <h4 id="time-dependent-transformation-heading">Time-dependent transformation</h4> |
| Some transformations use parameters that vary with time (e.g. operation method EPSG:1053). |
| Users can optionally specify a date for which the transformation is desired. |
| For transformations that do not depends on time, this date is ignored and can be null. |
| For time-dependent transformations, <code>null</code> values default to the transformation's |
| <a href="TimeDependentBWP.html#getTimeReference()">reference time</a>. |
| |
| <h4 id="inverse-transformation-heading">Inverse transformation</h4> |
| The inverse transformation can be approximated by reversing the sign of the 7 parameters before to use them |
| in the above matrix. This is often considered sufficient since <cite>position vector transformations</cite> |
| are themselves approximations. However, Apache SIS will rather use |
| <a href="../operation/matrix/MatrixSIS.html#inverse()"><code>MatrixSIS.inverse()</code></a> in order to increase the chances |
| that concatenation of transformations <var>A</var> → <var>B</var> followed by <var>B</var> → <var>A</var> |
| gives back the identity transform.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>time</code> - date for which the transformation is desired, or <code>null</code> for the transformation's reference time.</dd> |
| <dt>Returns:</dt> |
| <dd>an affine transform in geocentric space created from this Bursa-Wolf parameters and the given time.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list-long"> |
| <li><a href="DefaultGeodeticDatum.html#getPositionVectorTransformation(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)"><code>DefaultGeodeticDatum.getPositionVectorTransformation(GeodeticDatum, Extent)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)"> |
| <h3>setPositionVectorTransformation</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setPositionVectorTransformation</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix, |
| double tolerance)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div> |
| <div class="block">Sets all Bursa-Wolf parameters from the given <cite>Position Vector transformation</cite> matrix. |
| The matrix shall comply to the following constraints: |
| |
| <ul> |
| <li>The matrix shall be <a href="../operation/matrix/MatrixSIS.html#isAffine()">affine</a>.</li> |
| <li>The sub-matrix defined by <code>matrix</code> without the last row and last column shall be |
| <a href="https://en.wikipedia.org/wiki/Skew-symmetric_matrix">skew-symmetric</a> (a.k.a. antisymmetric).</li> |
| </ul></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>matrix</code> - the matrix from which to get Bursa-Wolf parameters.</dd> |
| <dd><code>tolerance</code> - the tolerance error for the skew-symmetric matrix test, in units of PPM or arc-seconds (e.g. 1E-8).</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the specified matrix does not met the conditions.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list-long"> |
| <li><a href="#getPositionVectorTransformation(java.util.Date)"><code>getPositionVectorTransformation(Date)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDomainOfValidity()"> |
| <h3>getDomainOfValidity</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a></span> <span class="element-name">getDomainOfValidity</span>()</div> |
| <div class="block">Returns the region or timeframe in which a coordinate transformation based on those Bursa-Wolf parameters is |
| valid, or <code>null</code> if unspecified. If an extent was specified at construction time, then that extent is |
| returned. Otherwise the datum domain of validity (which may be <code>null</code>) is returned.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>area or region or timeframe in which the coordinate transformation is valid, or <code>null</code>.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="../../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/extent/DefaultExtent.html" title="class in org.apache.sis.metadata.iso.extent"><code>DefaultExtent</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="clone()"> |
| <h3>clone</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">BursaWolfParameters</a></span> <span class="element-name">clone</span>()</div> |
| <div class="block">Returns a copy of this object.</div> |
| <dl class="notes"> |
| <dt>Overrides:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>a copy of all parameters.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="equals(java.lang.Object)"> |
| <h3>equals</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object)</span></div> |
| <div class="block">Compares the specified object with this object for equality.</div> |
| <dl class="notes"> |
| <dt>Overrides:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>object</code> - the object to compare with the parameters.</dd> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if the given object is equal to this <code>BursaWolfParameters</code>.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="hashCode()"> |
| <h3>hashCode</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">hashCode</span>()</div> |
| <div class="block">Returns a hash value for this object.</div> |
| <dl class="notes"> |
| <dt>Overrides:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the hash code value. This value does not need to be the same in past or future versions of this class.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="formatTo(org.apache.sis.io.wkt.Formatter)"> |
| <h3>formatTo</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span> <span class="element-name">formatTo</span><wbr><span class="parameters">(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a> formatter)</span></div> |
| <div class="block">Formats this object as a <cite>Well Known Text</cite> <code>ToWGS84[…]</code> element. |
| The WKT contains the parameters in <var>translation</var>, <var>rotation</var>, <var>scale</var> order, |
| like below: |
| |
| <blockquote><code>TOWGS84[<a href="#tX">tX</a>, <a href="#tY">tY</a>, <a href="#tZ">tZ</a>, <a href="#rX">rX</a>, |
| <a href="#rY">rY</a>, <a href="#rZ">rZ</a>, <a href="#dS">dS</a>]</code></blockquote> |
| |
| The element name is <code>"ToWGS84"</code> in the common case where the <a href="#getTargetDatum()">target datum</a> |
| is WGS 84. For other targets, the element name will be derived from the datum name. |
| |
| <h4 id="compatibility-note-heading1">Compatibility note</h4> |
| <code>TOWGS84</code> is defined in the WKT 1 specification only.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../io/wkt/FormattableObject.html#formatTo(org.apache.sis.io.wkt.Formatter)">formatTo</a></code> in class <code><a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>formatter</code> - The formatter where to format the inner content of this WKT element.</dd> |
| <dt>Returns:</dt> |
| <dd>Usually <code>"ToWGS84"</code>.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="tag-list"> |
| <li><a href="../../io/wkt/FormattableObject.html#toWKT()"><code>FormattableObject.toWKT()</code></a></li> |
| <li><a href="../../io/wkt/FormattableObject.html#toString()"><code>FormattableObject.toString()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| </div> |
| </div> |
| </body> |
| </html> |