org.geotoolkit.referencing.operation.projection
Class LambertConformal

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

@Immutable
public class LambertConformal
extends UnitaryProjection

Lambert Conical Conformal Projection (EPSG codes 9801, 9802, 9803). See the Lambert conformal conic projection on MathWorld for an overview. See any of the following providers for a list of programmatic parameters:


Description
Areas and shapes are deformed as one moves away from standard parallels. The angles are true in a limited area. This projection is used for the charts of North America and some European countries.

This implementation provides transforms for four cases of the lambert conic conformal projection:

For the 1SP case the latitude of origin is used as the standard parallel (SP). To use 1SP with a latitude of origin different from the SP, use the 2SP and set the SP1 to the single SP. The standard_parallel_2" parameter is optional and will be given the same value as "standard_parallel_1" if not set (creating a 1 standard parallel projection).


References

Since:
1.0
Version:
3.19
Author:
Martin Desruisseaux (MPO, IRD, Geomatys), André Gosselin (MPO), Rueben Schulz (UBC), Rémi Maréchal (Geomatys)
See Also:
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 LambertConformal(UnitaryProjection.Parameters parameters)
          Constructs a new map projection from the supplied parameters.
 
Method Summary
static MathTransform2D create(ParameterDescriptorGroup descriptor, ParameterValueGroup values)
          Creates a Lambert projection from the given parameters.
 Matrix derivative(Point2D point)
          Gets the derivative of this transform at a point.
 boolean equals(Object object, ComparisonMode mode)
          Compares the given object with this transform for equivalence.
 ParameterDescriptorGroup getParameterDescriptors()
          Returns the parameter descriptors for this unitary projection.
 ParameterValueGroup getParameterValues()
          Returns a copy of the parameter values for this projection.
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).
protected  void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff)
          Transforms the specified (λ,φ) coordinates (units in radians) and stores the result in dstPts (linear distance on a unit sphere).
 
Methods inherited from class UnitaryProjection
computeHashCode, finish, getUnmarshalledParameters, inverse, resetWarnings, rollLongitude, transform, unrollLongitude
 
Methods inherited from class AbstractMathTransform2D
getSourceDimensions, getTargetDimensions, transform
 
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, ensureNonNull, equals, formatWKT, getName, hashCode, isIdentity, rollLongitude, transform, transform, transform, transform
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface MathTransform2D
createTransformedShape
 
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform, transform
 

Constructor Detail

LambertConformal

protected LambertConformal(UnitaryProjection.Parameters parameters)
Constructs a new map projection from the supplied parameters.

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

create

public static MathTransform2D create(ParameterDescriptorGroup descriptor,
                                     ParameterValueGroup values)
Creates a Lambert projection from the given parameters. The descriptor argument is usually one of the PARAMETERS constants defined in LambertConformal1SP or LambertConformal2SP, but is not restricted to. If a different descriptor is supplied, it is user's responsibility to ensure that it is suitable to a Lambert Conformal projection.

Parameters:
descriptor - Typically one of LambertConformal1SP.PARAMETERS or LambertConformal2SP.PARAMETERS.
values - The parameter values of the projection to create.
Returns:
The map projection.
Since:
3.00

getParameterDescriptors

public ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this unitary projection. Note that the returned descriptor is about the unitary projection, not the full one. Consequently the current implementation returns the descriptor of LambertConformal2SP in all cases, because the 1SP case is implemented as 2SP with both standard parallels set to the latitude of origin.

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

getParameterValues

public ParameterValueGroup getParameterValues()
Returns a copy of the parameter values for this projection. The default implementation returns the parameters defined in the super-class, with the addition of standard parallels. No other parameters are set, because the above ones are the only significant ones for this unitary projection.

Specified by:
getParameterValues in interface Parameterized
Overrides:
getParameterValues in class UnitaryProjection
Returns:
A copy of the parameter values for this unitary projection.
See Also:
SingleOperation.getParameterValues()

transform

protected void transform(double[] srcPts,
                         int srcOff,
                         double[] dstPts,
                         int dstOff)
                  throws ProjectionException
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result in dstPts (linear distance on a unit sphere).

Specified by:
transform in class UnitaryProjection
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 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.
Throws:
ProjectionException - if the point can't be converted.

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).

Specified by:
inverseTransform in class UnitaryProjection
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.

derivative

public Matrix derivative(Point2D point)
                  throws ProjectionException
Gets the derivative of this transform at a point.

Specified by:
derivative in interface MathTransform2D
Overrides:
derivative in class AbstractMathTransform
Parameters:
point - The coordinate point where to evaluate the derivative.
Returns:
The derivative at the specified point as a 2×2 matrix.
Throws:
ProjectionException - if the derivative can't be evaluated at the specified point.
Since:
3.19
See Also:
MathTransform2D.derivative(Point2D)

equals

public boolean equals(Object object,
                      ComparisonMode mode)
Compares the given object with this transform for equivalence.

Specified by:
equals in interface LenientComparable
Overrides:
equals in class UnitaryProjection
Parameters:
object - The object to compare with this unitary projection for equivalence.
mode - The strictness level of the comparison. Default to STRICT.
Returns:
true if the given object is equivalent to this unitary projection.


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