Class Stereographic
- Object
-
- Formattable
-
- AbstractMathTransform
-
- MapProjection
-
- 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:
"Oblique_Stereographic"
(EPSG code 9809), alias"Double_Stereographic"
in ESRI software"Stereographic"
in ESRI software (NOT EPSG code 9809)"Polar_Stereographic"
(EPSG code 9810, uses a series calculation for the inverse)"Polar_Stereographic (variant B)"
(EPSG code 9829, uses a series calculation for the inverse)"Stereographic_North_Pole"
in ESRI software (uses iteration for the inverse)"Stereographic_South_Pole"
in ESRI software (uses iteration for the inverse)
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 andlibproj
) 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:
- John P. Snyder (Map Projections - A Working Manual,
U.S. Geological Survey Professional Paper 1395, 1987) - "Coordinate Conversions and Transformations including Formulas",
EPSG Guidence Note Number 7, Version 19. - Gerald Evenden. "Supplementary PROJ.4 Notes - Oblique Stereographic Alternative"
- Krakiwsky, E.J., D.B. Thomson, and R.R. Steeves. 1977. A Manual For Geodetic Coordinate Transformations in the Maritimes. Geodesy and Geomatics Engineering, UNB. Technical Report No. 48.
- Thomson, D.B., M.P. Mepham and R.R. Steeves. 1977. The Stereographic Double Projection. Geodesy and Geomatics Engineereng, UNB. Technical Report No. 46.
- 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description 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, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor, SKIP_SANITY_CHECKS
-
Fields inherited from class Formattable
SINGLE_LINE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object object)
Compares the specified object with this map projection for equality.ParameterDescriptorGroup
getParameterDescriptors()
Returns the parameter descriptors for this map projection.int
hashCode()
Returns a hash value for this map projection.-
Methods inherited from class MapProjection
checkReciprocal, getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, inv_mlfn, inverse, inverseTransformNormalized, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform, transformNormalized
-
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform
-
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
-
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform
-
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
-
-
-
-
Method Detail
-
getParameterDescriptors
public ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this map projection. This is used for a providing a default implementation ofMapProjection.getParameterValues()
, as well as arguments checking.- Specified by:
getParameterDescriptors
in classMapProjection
- 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 classMapProjection
- 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.
-
hashCode
public int hashCode()
Description copied from class:MapProjection
Returns a hash value for this map projection.- Overrides:
hashCode
in classMapProjection
-
-