org.geotools.referencing.operation.projection
Class Stereographic

java.lang.Object
  extended byorg.geotools.referencing.wkt.Formattable
      extended byorg.geotools.referencing.operation.transform.AbstractMathTransform
          extended byorg.geotools.referencing.operation.projection.MapProjection
              extended byorg.geotools.referencing.operation.projection.Stereographic
All Implemented Interfaces:
org.opengis.referencing.operation.MathTransform, org.opengis.referencing.operation.MathTransform2D, java.io.Serializable
Direct Known Subclasses:
StereographicOblique, StereographicPolar

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 itterative 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 B)" recieves its "latitude_of_origin" paramater value from the hemisphere of the "standard_parallel_1" value.

References:

Since:
2.1
Version:
$Id: Stereographic.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Andr? Gosselin, Martin Desruisseaux, Rueben Schulz
See Also:
Stereographic projection on MathWorld, Polar_Stereographic, Oblique_Stereographic, Stereographic, Some Random Stereographic Issues, Serialized Form

Nested Class Summary
static class Stereographic.Provider_North_Pole
          The MathTransformProvider for a Stereographic North Polar projection.
static class Stereographic.Provider_Oblique
          The MathTransformProvider for a Stereographic Oblique projection.
static class Stereographic.Provider_Polar_A
          The MathTransformProvider for a Stereographic Polar projection.
static class Stereographic.Provider_Polar_B
          The MathTransformProvider for a Stereographic Polar (Variant B) projection.
static class Stereographic.Provider_South_Pole
          The MathTransformProvider for a Stereographic North Polar projection.
static class Stereographic.Provider_USGS
          The MathTransformProvider for a Stereographic (USGS equations) projection.
 
Nested classes inherited from class org.geotools.referencing.operation.projection.MapProjection
MapProjection.AbstractProvider
 
Field Summary
protected static short EPSG
          Projection mode for switch statement.
protected static short POLAR_A
          Projection mode for switch statement.
protected static short POLAR_B
          Projection mode for switch statement.
protected static short POLAR_NORTH
          Projection mode for switch statement.
protected static short POLAR_SOUTH
          Projection mode for switch statement.
protected  short stereoType
          The type of stereographic projection, used for wkt parameters.
protected static short USGS
          Projection mode for switch statement.
 
Fields inherited from class org.geotools.referencing.operation.projection.MapProjection
centralMeridian, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, isSpherical, latitudeOfOrigin, scaleFactor, semiMajor, semiMinor
 
Method Summary
 org.opengis.parameter.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.
 
Methods inherited from class org.geotools.referencing.operation.projection.MapProjection
equals, getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, hashCode, inverse, inverseTransformNormalized, transform, transform, transform, transformNormalized
 
Methods inherited from class org.geotools.referencing.operation.transform.AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getDimSource, getDimTarget, isIdentity, needCopy, rollLongitude, transform
 
Methods inherited from class org.geotools.referencing.wkt.Formattable
toString, toWKT, toWKT, toWKT
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opengis.referencing.operation.MathTransform2D
createTransformedShape, derivative
 
Methods inherited from interface org.opengis.referencing.operation.MathTransform
derivative, isIdentity, toWKT, transform
 

Field Detail

EPSG

protected static final short EPSG
Projection mode for switch statement.

See Also:
Constant Field Values

USGS

protected static final short USGS
Projection mode for switch statement.

See Also:
Constant Field Values

POLAR_A

protected static final short POLAR_A
Projection mode for switch statement.

See Also:
Constant Field Values

POLAR_B

protected static final short POLAR_B
Projection mode for switch statement.

See Also:
Constant Field Values

POLAR_NORTH

protected static final short POLAR_NORTH
Projection mode for switch statement.

See Also:
Constant Field Values

POLAR_SOUTH

protected static final short POLAR_SOUTH
Projection mode for switch statement.

See Also:
Constant Field Values

stereoType

protected short stereoType
The type of stereographic projection, used for wkt parameters.

Method Detail

getParameterDescriptors

public org.opengis.parameter.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


Copyright © GeoTools. All Rights Reserved.