org.deegree.cs.projections.azimuthal
Class StereographicAlternative
java.lang.Object
org.deegree.cs.CRSIdentifiable
org.deegree.cs.projections.Projection
org.deegree.cs.projections.azimuthal.AzimuthalProjection
org.deegree.cs.projections.azimuthal.StereographicAlternative
- All Implemented Interfaces:
- Object, TypedObjectNode, CRSResource, IProjection
public class StereographicAlternative
- extends AzimuthalProjection
StereographicAlternative
projection may be imagined to be a projection of the earth's surface onto a
plane in contact with the earth at a single tangent point from the opposite end of the diameter through that tangent
point.
An alternative approach is given by Snyder StereographicAzimuthal
, where, instead of defining a single
conformal sphere at the origin point, the conformal latitude at each point on the ellipsoid is computed. The
conformal longitude is then always equivalent to the geodetic longitude. This approach is a valid alternative to the
above, but gives slightly different results away from the origin point. It is therefore considered by EPSG to be a
different projection method. Hence this implementation.
This projection is best known in its polar form and is frequently used for mapping polar areas where it complements
the Universal Transverse Mercator used for lower latitudes. Its spherical form has also been widely used by the US
Geological Survey for planetary mapping and the mapping at small scale of continental hydrocarbon provinces. In its
transverse or oblique ellipsoidal forms it is useful for mapping limited areas centered on the point where the plane
of the projection is regarded as tangential to the ellipsoid., e.g. the Netherlands. The tangent point is the origin
of the projected coordinate system and the meridian through it is regarded as the central meridian. In order to
reduce the scale error at the extremities of the projection area it is usual to introduce a scale factor of less than
unity at the origin such that a unit scale factor applies on a near circle centered at the origin and some distance
from it.
The coordinate transformation from geographical to projected coordinates is executed via the distance and azimuth of
the point from the center point or origin. For a sphere the formulas are relatively simple. For the ellipsoid the
same formulas are used but with auxiliary latitudes, known as conformal latitudes, substituted for the geodetic
latitudes of the spherical formulas for the origin and the point .
from http://www.posc.org/
Determinations of oblique projections on an ellipsoid can be difficult to solve and result in long, complex
computations. Because conformal transformations can be made multiple time without loss of the conformal property a
method of determining oblique projections involves conformal transformation of the elliptical coordinates to
coordinates on a conformal sphere. The transformed coordinates can now be translated/rotated on the sphere and then
converted to planar coordinates with a conformal spherical projection. is Ce/2 1 − e sin φ 2 arctan K tanC (π/4 +
φ/2) − π/2 (3.6) χ = 1 + e sin φ λc = Cλ (3.7) √ 1 − e2 Rc = (3.8) 1 − e2 sin2 φ0
From the libproj4-manual by Gerald I.
Evenden
- Version:
- $Revision: 30120 $, $Date: 2011-03-22 10:04:15 +0100 (Tue, 22 Mar 2011) $
- Author:
- Rutger Bezema, last edited by: $Author: aschmitz $
Constructor Summary |
StereographicAlternative(double falseNorthing,
double falseEasting,
javax.vecmath.Point2d naturalOrigin,
IUnit units,
double scale)
Sets the id of this projection to epsg::9809 (Oblique Stereographic) |
StereographicAlternative(double falseNorthing,
double falseEasting,
javax.vecmath.Point2d naturalOrigin,
IUnit units,
double scale,
CRSResource id)
|
Methods inherited from class org.deegree.cs.projections.Projection |
equals, getCosphi0, getEccentricity, getEllipsoid, getFalseEasting, getFalseNorthing, getNaturalOrigin, getPrimeMeridian, getProjectionLatitude, getProjectionLongitude, getScale, getScaleFactor, getSemiMajorAxis, getSemiMinorAxis, getSinphi0, getSquaredEccentricity, getUnits, isConformal, isEqualArea, isSpherical, setFalseEasting, setScale, toString |
Methods inherited from class org.deegree.cs.CRSIdentifiable |
addAreaOfUse, addName, checkForNullObject, checkForNullObject, checkForNullObject, getAreaOfUse, getAreaOfUseBBox, getAreasOfUse, getCode, getCodeAndName, getCodes, getDescription, getDescriptions, getId, getName, getNames, getOrignalCodeStrings, getVersion, getVersions, hasCode, hasId, hasIdOrName, setDefaultAreaOfUse, setDefaultDescription, setDefaultId, setDefaultName, setDefaultVersion |
Methods inherited from interface org.deegree.cs.CRSResource |
addAreaOfUse, addName, getAreaOfUse, getAreaOfUseBBox, getAreasOfUse, getCode, getCodeAndName, getCodes, getDescription, getDescriptions, getName, getNames, getOrignalCodeStrings, getVersion, getVersions, hasCode, hasId, hasIdOrName, setDefaultAreaOfUse, setDefaultDescription, setDefaultId, setDefaultName, setDefaultVersion |
Methods inherited from interface org.deegree.commons.tom.Object |
getId |
StereographicAlternative
public StereographicAlternative(double falseNorthing,
double falseEasting,
javax.vecmath.Point2d naturalOrigin,
IUnit units,
double scale,
CRSResource id)
- Parameters:
geographicCRS
- falseNorthing
- falseEasting
- naturalOrigin
- units
- scale
- id
- an identifiable instance containing information about this projection
StereographicAlternative
public StereographicAlternative(double falseNorthing,
double falseEasting,
javax.vecmath.Point2d naturalOrigin,
IUnit units,
double scale)
- Sets the id of this projection to epsg::9809 (Oblique Stereographic)
- Parameters:
geographicCRS
- falseNorthing
- falseEasting
- naturalOrigin
- units
- scale
-
doInverseProjection
public javax.vecmath.Point2d doInverseProjection(IGeographicCRS geographicCRS,
double x,
double y)
throws ProjectionException
- Description copied from class:
Projection
- Do an inverse projection from projected (map) coordinates to geographic coordinates.
- Specified by:
doInverseProjection
in interface IProjection
- Specified by:
doInverseProjection
in class Projection
x
- coordinate on the mapy
- coordinate on the map
- Returns:
- the projected Point with x = lambda and y = phi;
- Throws:
ProjectionException
- if the given x and y coordinates could not be inverted to lambda and phi.
doProjection
public javax.vecmath.Point2d doProjection(IGeographicCRS geographicCRS,
double lambda,
double phi)
throws ProjectionException
- Description copied from class:
Projection
- The actual transform method doing a projection from geographic coordinates to map coordinates.
- Specified by:
doProjection
in interface IProjection
- Specified by:
doProjection
in class Projection
lambda
- the longitudephi
- the latitude
- Returns:
- the projected Point or Point(Double.NAN, Double.NAN) if an error occurred.
- Throws:
ProjectionException
- if the given lamba and phi coordinates could not be projected to x and y.
getImplementationName
public String getImplementationName()
- Specified by:
getImplementationName
in interface IProjection
- Specified by:
getImplementationName
in class Projection
- Returns:
- A deegree specific name which will be used for the export of a projection.
Copyright © 2011. All Rights Reserved.