org.geotoolkit.referencing.operation.projection
Class ObliqueStereographic

Object
  extended by FormattableObject
      extended by AbstractMathTransform
          extended by AbstractMathTransform2D
              extended by UnitaryProjection
                  extended by Stereographic
                      extended by ObliqueStereographic
All Implemented Interfaces:
Serializable, Formattable, Parameterized, LenientComparable, MathTransform, MathTransform2D

@Immutable
public class ObliqueStereographic
extends Stereographic

Oblique Stereographic projection (EPSG code 9809). The formulas used below are not from the EPSG, but rather those of the "Oblique Stereographic Alternative" in the libproj4 package written by Gerald Evenden. His work is acknowledged here and greatly appreciated.

The forward equations used in libproj4 are the same as those given in the UNB reports for the Double Stereographic. The inverse equations are similar, but use different methods to iterate for the latitude.


References

Since:
2.4
Version:
3.20
Author:
Gerald Evenden (USGS), Rueben Schulz (UBC), Martin Desruisseaux (Geomatys), Rémi Maréchal (Geomatys)
See Also:
PolarStereographic, EquatorialStereographic, Serialized Form
Module:
referencing/geotk-referencing (download)    View source code for this class

Nested Class Summary
 
Nested classes/interfaces inherited from class UnitaryProjection
UnitaryProjection.Parameters
 
Field Summary
 
Fields inherited from class UnitaryProjection
excentricity, excentricitySquared
 
Fields inherited from class FormattableObject
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE
 
Constructor Summary
protected ObliqueStereographic(UnitaryProjection.Parameters parameters)
          Constructs an oblique stereographic projection (EPSG equations).
 
Method Summary
protected  void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff)
          Transforms the specified (x,y) coordinates and stores the result in dstPts (angles in radians).
 Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate)
          Converts the specified (λ,φ) coordinate (units in radians) and stores the result in dstPts (linear distance on a unit sphere).
 
Methods inherited from class Stereographic
create, equals
 
Methods inherited from class UnitaryProjection
computeHashCode, finish, getParameterValues, getUnmarshalledParameters, inverse, resetWarnings, rollLongitude, unrollLongitude
 
Methods inherited from class AbstractMathTransform2D
getParameterDescriptors, getSourceDimensions, getTargetDimensions, transform
 
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, equals, formatWKT, getName, hashCode, isIdentity, rollLongitude, transform, transform, transform, transform, transform
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
 
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform, transform, transform
 

Constructor Detail

ObliqueStereographic

protected ObliqueStereographic(UnitaryProjection.Parameters parameters)
Constructs an oblique stereographic projection (EPSG equations).

Parameters:
parameters - The parameters of the projection to be created.
Method Detail

transform

public Matrix transform(double[] srcPts,
                        int srcOff,
                        double[] dstPts,
                        int dstOff,
                        boolean derivate)
                 throws ProjectionException
Converts the specified (λ,φ) coordinate (units in radians) and stores the result in dstPts (linear distance on a unit sphere). In addition, opportunistically computes the projection derivative if derivate is true.

Overrides:
transform in class Stereographic
Parameters:
srcPts - The array containing the source point coordinate, as (longitude, latitude) angles in radians.
srcOff - The offset of the point to be converted in the source array.
dstPts - The array into which the converted point coordinate is returned (may be the same than srcPts). Ordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.
dstOff - The offset of the location of the converted point that is stored in the destination array.
derivate - true for computing the derivative, or false if not needed.
Returns:
The matrix of the projection derivative at the given source position, or null if the derivate argument is false.
Throws:
ProjectionException - if the point can't be converted.
Since:
3.20 (derived from 3.00)
See Also:
AbstractMathTransform.derivative(DirectPosition), AbstractMathTransform.transform(DirectPosition, DirectPosition), MathTransforms.derivativeAndTransform(MathTransform, double[], int, double[], int)

inverseTransform

protected void inverseTransform(double[] srcPts,
                                int srcOff,
                                double[] dstPts,
                                int dstOff)
                         throws ProjectionException
Transforms the specified (x,y) coordinates and stores the result in dstPts (angles in radians).

Overrides:
inverseTransform in class Stereographic
Parameters:
srcPts - The array containing the source point coordinate, as linear distance on a unit sphere or ellipse.
srcOff - The offset of the point to be converted in the source array.
dstPts - the array into which the converted point coordinate is returned (may be the same than srcPts). Ordinates will be (longitude, latitude) angles in radians.
dstOff - The offset of the location of the converted point that is stored in the destination array.
Throws:
ProjectionException - if the point can't be converted.


Copyright © 2009-2012 Geotoolkit.org. All Rights Reserved.