org.geotools.referencing.operation.projection
Class Stereographic

Object
  extended by Formattable
      extended by AbstractMathTransform
          extended by MapProjection
              extended by Stereographic
All Implemented Interfaces:
Serializable, MathTransform, MathTransform2D
Direct Known Subclasses:
EquatorialStereographic, ObliqueStereographic, PolarStereographic

public abstract class Stereographic
extends MapProjection

Stereographic Projection. The directions starting from the central point are true, but the areas and the lengths become increasingly deformed as one moves away from the center. This projection is used to represent polar areas. It can be adapted for other areas having a circular form.

This implementation, and its subclasses, provides transforms for six cases of the stereographic projection:

Both the "Oblique_Stereographic" and "Stereographic" projections are "double" projections involving two parts: 1) a conformal transformation of the geographic coordinates to a sphere and 2) a spherical Stereographic projection. The EPSG considers both methods to be valid, but considers them to be a different coordinate operation methods.

The "Stereographic" case uses the USGS equations of Snyder. This employs a simplified conversion to the conformal sphere that computes the conformal latitude of each point on the sphere.

The "Oblique_Stereographic" case uses equations from the EPSG. This uses a more generalized form of the conversion to the conformal sphere; using only a single conformal sphere at the origin point. Since this is a "double" projection, it is sometimes called the "Double Stereographic". The "Oblique_Stereographic" is used in New Brunswick (Canada) and the Netherlands.

The "Stereographic" and "Double_Stereographic" names are used in ESRI's ArcGIS 8.x product. The "Oblique_Stereographic" name is the EPSG name for the later only.

WARNING: Tests points calculated with ArcGIS's "Double_Stereographic" are not always equal to points calculated with the "Oblique_Stereographic". However, where there are differences, two different implementations of these equations (EPSG guidence note 7 and libproj) calculate the same values as we do. Until these differences are resolved, please be careful when using this projection.

If a "latitude_of_origin" parameter is supplied and is not consistent with the projection classification (for example a latitude different from ±90° for the polar case), then the oblique or polar case will be automatically inferred from the latitude. In other words, the latitude of origin has precedence on the projection classification. If ommited, then the default value is 90°N for "Polar_Stereographic" and 0° for "Oblique_Stereographic".

Polar projections that use the series equations for the inverse calculation will be little bit faster, but may be a little bit less accurate. If a polar "latitude_of_origin" is used for the "Oblique_Stereographic" or "Stereographic", the iterative equations will be used for inverse polar calculations.

The "Polar Stereographic (variant B)", "Stereographic_North_Pole", and "Stereographic_South_Pole" cases include a "standard_parallel_1" parameter. This parameter sets the latitude with a scale factor equal to the supplied scale factor. The "Polar Stereographic (variant A)" receives its "latitude_of_origin" parameter value from the hemisphere of the "latitude_of_origin" value (i.e. the value is forced to ±90°).

References:

Since:
2.1
Author:
André Gosselin, Martin Desruisseaux (PMO, IRD), Rueben Schulz
See Also:
Stereographic projection on MathWorld, Polar_Stereographic, Oblique_Stereographic, Stereographic, Some Random Stereographic Issues, Serialized Form
Module:
modules/library/referencing (gt-referencing.jar)

Nested Class Summary
static class Stereographic.Provider
          The math transform provider for a Stereographic projections using USGS equations.
 
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
 
Field Summary
 
Fields inherited from class MapProjection
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor
 
Fields inherited from class Formattable
SINGLE_LINE
 
Method Summary
 boolean equals(Object object)
          Compares the specified object with this map projection for equality.
 ParameterDescriptorGroup getParameterDescriptors()
          Returns the parameter descriptors for this map projection.
 
Methods inherited from class MapProjection
getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, hashCode, inv_mlfn, inverse, inverseTransformNormalized, mlfn, resetWarnings, transform, transform, transform, transformNormalized
 
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, rollLongitude, transform, transform, transform
 
Methods inherited from class Formattable
cleanupThreadLocals, toString, 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
 

Method Detail

getParameterDescriptors

public ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this map projection. This is used for a providing a default implementation of MapProjection.getParameterValues(), as well as arguments checking.

Specified by:
getParameterDescriptors in class MapProjection
Returns:
The parameter descriptors for this math transform, or null.
See Also:
OperationMethod.getParameters()

equals

public boolean equals(Object object)
Compares the specified object with this map projection for equality.

Overrides:
equals in class MapProjection
Parameters:
object - The object to compare with this transform.
Returns:
true if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.


Copyright © 1996-2010 Geotools. All Rights Reserved.