Package org.apache.sis.referencing.operation.transform
package org.apache.sis.referencing.operation.transform
Conversions or transformations of multi-dimensional coordinate tuples.
MathTransform
provides a single API for
coordinate conversions or transformations, including map projections.
Each MathTransform
instances can:
- transform a single point,
- transform efficiently an array of coordinates,
- transform a Java2D
Shape
(MathTransform2D
only), - compute the transform derivative at a location (for advanced users),
- be concatenated in a conversion or transformation chain.
MathTransform
are truly n-dimensional, but specialized implementations
for 1D and 2D cases are provided for performance reasons or for inter-operability with Java2D.
In the 2D case, Apache SIS provides instances of the standard AffineTransform
class when possible.
This package does not include map projections, which are a special kind of transforms defined in their own projection package.
Creating math transforms
MathTransform
instances can be created either directly or indirectly.
The recommended way is the indirect one: first
find the coordinate operation
(generally from a pair of source and target CRS), then invoke
CoordinateOperation.getMathTransform()
.
However, sophisticated users can also create math transforms explicitly from a group of parameter values
using the math
transform factory.
Non-spatial coordinates
MathTransform
usually performs conversions or transformations from points given in a
source coordinate reference system to coordinate values for the same points in the
target coordinate reference system. However, the conversions are not necessarily between CRS;
a MathTransform
can also be used for converting the sample values in a raster for example.
Such kind of transforms are named transfer functions.- Since:
- 0.5
- Version:
- 1.3
-
ClassDescriptionTwo-dimensional abridged Molodensky transform with all translation terms fixed to zero.Base class of linear transforms.Provides a default implementation for most methods required by the
MathTransform
interface.Base class for implementations of inverse math transforms.Base class for math transforms that are known to be one-dimensional in all cases.Base class for implementation of inverse math transforms.Base class for math transforms that are known to be two-dimensional in all cases.Base class for implementation of inverse math transforms.Conversions from two-dimensional Cartesian coordinates to polar coordinates.Conversions from three-dimensional Cartesian coordinates to spherical coordinates.Base class for concatenated transforms.Concatenated transform in which the resulting transform is one-dimensional.Concatenated transform in which the resulting transform is two-dimensional.Concatenated transform where the transfer dimension is the same than source and target dimension.Concatenated transform where both transforms are one-dimensional.Concatenated transform where both transforms are two-dimensional.A one dimensional, constant transform.A parameter value stored inContextualParameters
before they are made unmodifiable.The parameters that describe a sequence of normalize → non-linear kernel → denormalize transforms as a whole.Whether a matrix is used for normalization or denormalization before or after a non-linear operation.Base class of conversions between coordinate systems.A transform which copy the coordinates in the source array to different locations in the target array.Transforms between two CRS (usually geographic) based on different datum.Low level factory for creating math transforms.Source and target coordinate systems for which a new parameterized transform is going to be used.A factory performing no caching.Specification about how to estimate a domain of validity for transforms.The transform to apply on the envelope computed by a transform step in order to get an envelope in the units of the requested domain.Transform from two- or three- dimensional ellipsoidal coordinates to (geo)centric coordinates.Converts Cartesian coordinates (X,Y,Z) to ellipsoidal coordinates (λ,φ) or (λ,φ,h).Whether the output coordinate system is Cartesian or Spherical.A one dimensional exponential transform.The identity transform.A one dimensional, identity transform.Transforms between two geographic CRS by performing geocentric translations interpolated from a grid file.The inverse of the enclosingInterpolatedGeocentricTransform
.An interpolated geocentric transform for two-dimensional input and output coordinates.The inverse of the enclosingInterpolatedGeocentricTransform2D
.Transforms between two geographic CRS by performing geocentric translations interpolated from a grid file, but using Molodensky approximation.The inverse of the enclosingInterpolatedMolodenskyTransform
.An interpolated Molodensky transform for two-dimensional input and output coordinates.The inverse of the enclosingInterpolatedMolodenskyTransform2D
.Transforms between two CRS by performing translations interpolated from a grid file.Transforms target coordinates to source coordinates.An interpolated transform for two-dimensional input and output coordinates.Strategy for iterating over the point arrays given toAbstractMathTransform.transform(…)
methods.A transform that performs linear interpolation between values.The inverse of the enclosingLinearInterpolator1D
.A usually affine, or otherwise a projective transform, which convert coordinates using only linear equations.A one dimensional, linear transform.A one dimensional, logarithmic transform.Special case for base 10 taking advantage of extra precision provided byMath.log10(double)
.An object capable to createMathTransform
instances from given parameter values.Utility methods creating or working onMathTransform
instances.Implementation of Molodensky formulas.Two- or three-dimensional datum shift using the (potentially abridged) Molodensky transformation.A Molodensky transforms for two-dimensional input and output coordinates.An immutable and thread-safe set containing the operation methods given by anIterable
.Transform which passes through a subset of coordinates to another transform.A pass-through transform in the two-dimensional case.Conversions from polar coordinates to two-dimensional Cartesian coordinates.Computes latitudes and longitudes on a sphere where the south pole has been moved to given geographic coordinates.Raises the given value at some fixed power.A usually affine, or otherwise a projective transform for the generic cases.Projective transform in 2D case.An affine transform that multiply the coordinate values by constant values, and optionally drop the last coordinates.A transform having sub-areas where more accurate transforms can be used.The inverse ofSpecializableTransform
.The region where a transform is valid, together with the transform.Call of aMathTransform.transform(…)
method with source and target arrays fixed atTransformCall
creation time.A specializable transform in the two-dimensional case.The inverse ofSpecializableTransform2D
.Conversions from spherical coordinates to three-dimensional Cartesian coordinates.The function converting raster sample values to geophysics values.Wraps aMathTransform
as aMathTransform2D
.Extracts a sub-transform from a givenMathTransform
and source or target dimension indices.An affine transform that translate the coordinate values by constant values.Enforces coordinate values in the range of a wraparound axis (typically longitude).