Class SphericalToCartesian
java.lang.Object
org.apache.sis.io.wkt.FormattableObject
org.apache.sis.referencing.operation.transform.AbstractMathTransform
org.apache.sis.referencing.operation.transform.CoordinateSystemTransform
org.apache.sis.referencing.operation.transform.SphericalToCartesian
- All Implemented Interfaces:
Serializable
,Parameterized
,LenientComparable
,org.opengis.referencing.operation.MathTransform
Conversions from spherical coordinates to three-dimensional Cartesian coordinates.
This conversion assumes that there is no datum change. Axis order is:
- Spherical longitude (θ), also noted Ω or λ.
- Spherical latitude (Ω), also noted θ or φ′ (confusing).
- Spherical radius (r).
Note:
the spherical latitude is related to geodetic latitude φ by Ω(φ) = atan((1-ℯ²)⋅tan(φ)).
This order matches the EllipsoidToCentricTransform
axis order.
It shall also match the order defined by Normalizer
in org.apache.sis.referencing.cs
package.
Note that this is not the convention used neither in physics (ISO 80000-2:2009) or in mathematics.
Relationship with the convention used in physics
The ISO 80000-2 convention is (r,Ω,φ) where φ is like the spherical longitude, and Ω is measured from
the Z axis (North pole) instead of from the equator plane. The consequence in the formulas is that
sin(Ω)
needs to be replaced by cos(Ω)
and conversely.- Since:
- 0.7
- Version:
- 0.7
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform
AbstractMathTransform.Inverse
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final SphericalToCartesian
The singleton instance expecting input coordinates in radians.private static final long
For cross-version compatibility.Fields inherited from class org.apache.sis.referencing.operation.transform.CoordinateSystemTransform
context
Fields inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform
MAXIMUM_BUFFER_SIZE, MAXIMUM_FAILURES
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.opengis.referencing.operation.MathTransform
inverse()
Returns the inverse of this transform.private Object
Returns the singleton instance on deserialization.org.opengis.referencing.operation.Matrix
transform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) Converts a single coordinate and optionally computes the derivative.void
transform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts an array of coordinates.Methods inherited from class org.apache.sis.referencing.operation.transform.CoordinateSystemTransform
completeTransform, create, getContextualParameters, getParameterValues, getSourceDimensions, getTargetDimensions, passthrough
Methods inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform
beforeFormat, computeHashCode, derivative, equals, equals, formatTo, getDomain, getParameterDescriptors, hashCode, isIdentity, isInverseEquals, mismatchedDimension, transform, transform, transform, transform, tryConcatenate
Methods inherited from class org.apache.sis.io.wkt.FormattableObject
print, toString, toString, toWKT
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opengis.referencing.operation.MathTransform
toWKT
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDFor cross-version compatibility.- See Also:
-
INSTANCE
The singleton instance expecting input coordinates in radians. For the instance expecting input coordinates in degrees, useCoordinateSystemTransform.create(org.opengis.referencing.operation.MathTransformFactory, org.opengis.referencing.cs.CoordinateSystem, org.opengis.referencing.cs.CoordinateSystem, java.lang.ThreadLocal<org.opengis.referencing.operation.OperationMethod>)
instead.
-
-
Constructor Details
-
SphericalToCartesian
private SphericalToCartesian()Creates the singleton instance. Input coordinates are in radians.
-
-
Method Details
-
readResolve
Returns the singleton instance on deserialization.- Throws:
ObjectStreamException
-
inverse
public org.opengis.referencing.operation.MathTransform inverse()Returns the inverse of this transform.- Specified by:
inverse
in interfaceorg.opengis.referencing.operation.MathTransform
- Overrides:
inverse
in classAbstractMathTransform
-
transform
public org.opengis.referencing.operation.Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) Converts a single coordinate and optionally computes the derivative.- Specified by:
transform
in classAbstractMathTransform
- Parameters:
srcPts
- the array containing the source coordinates (cannot benull
).srcOff
- the offset to the point to be transformed in the source array.dstPts
- the array into which the transformed coordinates is returned. May be the same thansrcPts
. May benull
if only the derivative matrix is desired.dstOff
- the offset to the location of the transformed point that is stored in the destination array.derivate
-true
for computing the derivative, orfalse
if not needed.- Returns:
- the matrix of the transform derivative at the given source position,
or
null
if thederivate
argument isfalse
. - See Also:
-
transform
public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Converts an array of coordinates. This method performs the same conversion thantransform(double[], int, double[], int, boolean)
, but the formulas are repeated here for performance reasons.- Specified by:
transform
in interfaceorg.opengis.referencing.operation.MathTransform
- Overrides:
transform
in classAbstractMathTransform
- Parameters:
srcPts
- the array containing the source point coordinates.srcOff
- the offset to the first point to be transformed in the source array.dstPts
- the array into which the transformed point coordinates are returned. May be the same thansrcPts
.dstOff
- the offset to the location of the first transformed point that is stored in the destination array.numPts
- the number of point objects to be transformed.
-