blob: 2276b6eed0ec80b3aee625aabc92ca656a15b898 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>org.apache.sis.referencing.operation (Apache SIS 1.3 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="description" content="declaration: package: org.apache.sis.referencing.operation">
<meta name="generator" content="javadoc/PackageWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.operation package">
<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">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-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">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</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 class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-use.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#package">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Package:</p>
<ul>
<li><a href="#package-description">Description</a></li>
<li><a href="#related-package-summary">Related Packages</a></li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</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">
<div class="header">
<h1 title="Package org.apache.sis.referencing.operation" class="title">Package org.apache.sis.referencing.operation</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">org.apache.sis.referencing.operation</span></div>
<section class="package-description" id="package-description">
<div class="block">Relationship between any two <a href="../crs/AbstractCRS.html" title="class in org.apache.sis.referencing.crs">Coordinate Reference Systems</a> (CRS).
An explanation for this package is provided in the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/package-summary.html" class="external-link">OpenGIS® javadoc</a>.
The remaining discussion on this page is specific to the Apache SIS implementation.
<p>This package provides an ISO 19111 <a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">Coordinate Operation implementation</a> and support classes. The actual transform work is performed by the following
sub-packages, but most users will not need to deal with them directly:</p>
<ul>
<li><a href="projection/package-summary.html"><code>org​.apache​.sis​.referencing​.operation​.projection</code></a> — map projections,</li>
<li><a href="transform/package-summary.html"><code>org​.apache​.sis​.referencing​.operation​.transform</code></a> — any transform other than map projections.</li>
</ul>
<h2>Apache SIS extensions</h2>
Some SIS implementations provide additional methods that are not part of OGC/ISO specifications:
<ul>
<li><a href="AbstractCoordinateOperation.html#getLinearAccuracy()"><code>Abstract­Coordinate­Operation​.get­Linear­Accuracy()</code></a>
— tries to convert the accuracy to metres,</li>
<li><a href="DefaultConversion.html#specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)"><code>Default­Conversion​.specialize(…)</code></a>
— changes a <cite>defining conversion</cite> into a complete conversion.</li>
</ul>
<h2>Apache SIS specific behavior</h2>
The following operations have a behavior in Apache SIS which may be different
than the behavior found in other software products. Those particularities apply only when the math transform is
<a href="transform/DefaultMathTransformFactory.html#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">created directly</a>. Users do not need to care about them when the coordinate operation is
<a href="DefaultCoordinateOperationFactory.html#createOperation(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem)">inferred by Apache SIS for a given pair of CRS</a>.
<ul>
<li><b>Longitude rotation</b> (EPSG:9601) — the longitude offset may be specified in any units,
but SIS unconditionally converts the value to degrees. Consequently, the user is responsible
for converting the longitude axis of source and target CRS to degrees before this operation is applied.</li>
</ul>
<h2><cite>Early binding</cite> versus <cite>late binding</cite> implementations</h2>
There is sometimes multiple ways of transforming coordinates for a given pair of source and target CRS.
For example, the <a href="../datum/BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">Bursa-Wolf parameters</a>
may vary depending on the area of interest, like in the transformations from NAD27 to WGS84.
Even for a fixed set of Bursa-Wolf parameter, there is various ways to use them (<cite>Molodensky</cite>,
<cite>Abridged Molodensky</cite>, <cite>Geocentric translation</cite>, <cite>etc.</cite>).
<p>EPSG identifies two approaches for addressing this multiplicity problem.
Quoting the GIGS guideline:</p>
<blockquote>
<ul class="verbose">
<li><b>Early binding:</b>
A priori association of a coordinate transformation with a geodetic CRS.
The association is usually made at start-up of the session or project, as that is defined in the software,
but always before any data is associated with the ‘CRS’. In general the ‘coordinate transformation’ specified
uses the ‘CRS’ of the data as the source ‘CRS’ and WGS 84 as the target ‘CRS’.</li>
<li><b>Late binding:</b>
Association at run time of a coordinate transformation with a CRS.
Late binding allows the user to select the appropriate transformation upon import of ‘geospatial data’
or merge of two geospatial datasets. This means that, in cases where there are multiple existing transformations,
the user can choose the appropriate one, possibly aided by additional information.</li>
</ul>
<p style="text-align:right; font-size:small"><b>Source:</b>
<u>Geospatial Integrity of Geoscience Software Part 1 – GIGS guidelines.</u>
<i>OGP publication, Report No. 430-1, September 2011</i></p>
</blockquote>
Apache SIS is a <cite>late binding</cite> implementation, while a little trace for <cite>early binding</cite>
exists in the form of the <a href="../datum/DefaultGeodeticDatum.html#getBursaWolfParameters()"><code>Default­Geodetic­Datum​.get­Bursa­Wolf­Parameters()</code></a>
method for those who really need it. This means that when searching for a coordinate operation between a given
pair of CRS, Apache SIS will query <a href="../factory/sql/EPSGFactory.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGFactory</code></a> before to try to
<a href="CoordinateOperationFinder.html" title="class in org.apache.sis.referencing.operation">infer the operation path by itelf</a>.
The <a href="CoordinateOperationContext.html" title="class in org.apache.sis.referencing.operation"><code>Coordinate­Operation­Context</code></a> can be used for further refinements,
for example by specifying the area of interest.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.6</dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">org.apache.sis.referencing</a></div>
<div class="col-last even-row-color">
<div class="block">Base classes for reference systems used for general positioning.</div>
</div>
<div class="col-first odd-row-color"><a href="builder/package-summary.html">org.apache.sis.referencing.operation.builder</a></div>
<div class="col-last odd-row-color">
<div class="block">Helper classes for creating <a href="transform/AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Math Transforms</a> from a set of points.</div>
</div>
<div class="col-first even-row-color"><a href="matrix/package-summary.html">org.apache.sis.referencing.operation.matrix</a></div>
<div class="col-last even-row-color">
<div class="block">Matrix implementations for spatiotemporal referencing.</div>
</div>
<div class="col-first odd-row-color"><a href="projection/package-summary.html">org.apache.sis.referencing.operation.projection</a></div>
<div class="col-last odd-row-color">
<div class="block">Map projection implementations.</div>
</div>
<div class="col-first even-row-color"><a href="transform/package-summary.html">org.apache.sis.referencing.operation.transform</a></div>
<div class="col-last even-row-color">
<div class="block">Conversions or transformations of multi-dimensional coordinate tuples.</div>
</div>
<div class="col-first odd-row-color"><a href="../crs/package-summary.html">org.apache.sis.referencing.crs</a></div>
<div class="col-last odd-row-color">
<div class="block">Coordinate Reference System (CRS) definitions as coordinate systems related to the earth through datum.</div>
</div>
<div class="col-first even-row-color"><a href="../cs/package-summary.html">org.apache.sis.referencing.cs</a></div>
<div class="col-last even-row-color">
<div class="block">Coordinate System (CS) definitions as the set of coordinate system axes that spans the coordinate space.</div>
</div>
<div class="col-first odd-row-color"><a href="../datum/package-summary.html">org.apache.sis.referencing.datum</a></div>
<div class="col-last odd-row-color">
<div class="block">Relationship of a <code>Coordinate­System</code> (an abstract mathematical entity) to the earth or other system.</div>
</div>
<div class="col-first even-row-color"><a href="../factory/package-summary.html">org.apache.sis.referencing.factory</a></div>
<div class="col-last even-row-color">
<div class="block">Creates Coordinate Reference System (CRS) objects from given properties or authority codes.</div>
</div>
<div class="col-first odd-row-color"><a href="../gazetteer/package-summary.html">org.apache.sis.referencing.gazetteer</a></div>
<div class="col-last odd-row-color">
<div class="block">Mapping between geographic identifiers (addresses, grid indexes…) and locations (descriptions, coordinates…).</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button><button id="class-summary-tab5" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab5', 2)" class="table-tab">Exception Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">AbstractCoordinateOperation</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Describes the operation for transforming coordinates in the source CRS to coordinates in the target CRS.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="CoordinateOperationContext.html" title="class in org.apache.sis.referencing.operation">CoordinateOperationContext</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Optional information about the context in which a requested coordinate operation will be used.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="CoordinateOperationFinder.html" title="class in org.apache.sis.referencing.operation">CoordinateOperationFinder</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Finds a conversion or transformation path from a source CRS to a target CRS.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">DefaultConversion</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">A parameterized mathematical operation that converts coordinates to another CRS without any change of
<a href="../datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a>.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="DefaultCoordinateOperationFactory.html" title="class in org.apache.sis.referencing.operation">DefaultCoordinateOperationFactory</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Creates <a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">operations</a> capable to transform coordinates
from a given source CRS to a given target CRS.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="DefaultFormula.html" title="class in org.apache.sis.referencing.operation">DefaultFormula</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Specification of the coordinate operation method formula.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">DefaultOperationMethod</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Describes the algorithm and parameters used to perform a coordinate operation.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="DefaultPassThroughOperation.html" title="class in org.apache.sis.referencing.operation">DefaultPassThroughOperation</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Specifies that a subset of a coordinate tuple is subject to a specific coordinate operation.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="DefaultTransformation.html" title="class in org.apache.sis.referencing.operation">DefaultTransformation</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">A parameterized mathematical operation that transforms coordinates to another CRS with a change of
<a href="../datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a>.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab5"><a href="MismatchedDatumException.html" title="class in org.apache.sis.referencing.operation">MismatchedDatumException</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab5">
<div class="block">Thrown when the source and target CRS of a <a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">conversion</a> use different datum.</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>