org.cts.datum
Class GeodeticDatum

java.lang.Object
  extended by org.cts.IdentifiableComponent
      extended by org.cts.datum.AbstractDatum
          extended by org.cts.datum.GeodeticDatum
All Implemented Interfaces:
Datum, Identifiable

public class GeodeticDatum
extends AbstractDatum

Geodetic Datum or horizontal Datum : a Datum used to determine positions relative to the Earth (longitude / latitude)

It is recommended that every GeodeticDatum has a toWGS84 SevenParameterTransformation attribute (which may eventually be a Translation or the Identity transformation). This operation must be the standard 3D transformation from/to the GeocentricCoordinateSystem defined by this Datum to/from the GeocentricCoordinateSystem defined by WGS84 Datum.

Moreover, a GeodeticDatum also contains a map which may contain other org.cts.CoordinateOperations from the standard Geographic2DCRS or Geographic3DCRS associated with this Datum to the one associated to another Datum.

Author:
Michaël Michaud, Jules Party

Field Summary
static Map<String,GeodeticDatum> datumFromName
          datumFromName associates each datum to a short string used to recognize it in CTS.
static GeodeticDatum ED50
          European Datum 1950.
static GeodeticDatum NAD27
           
static GeodeticDatum NAD83
           
static GeodeticDatum NTF
          Nouvelle Triangulation Française.
static GeodeticDatum NTF_PARIS
          Nouvelle Triangulation Française (Paris).
static GeodeticDatum RGF93
          Réseau géodésique français 1993.
static GeodeticDatum WGS84
          World Geodetic System 1984.
static GeodeticDatum WGS84GUAD
           
static GeodeticDatum WGS84MART
           
static GeodeticDatum WGS84SBSM
           
 
Fields inherited from interface org.cts.Identifiable
DEFAULT, LOCAL, UNKNOWN
 
Constructor Summary
GeodeticDatum(Identifier identifier, PrimeMeridian primeMeridian, Ellipsoid ellipsoid, GeographicExtent extent, String origin, String epoch)
          Creates a new Datum.
GeodeticDatum(PrimeMeridian primeMeridian, Ellipsoid ellipsoid)
          Creates a new Datum.
GeodeticDatum(PrimeMeridian primeMeridian, Ellipsoid ellipsoid, CoordinateOperation toWGS84)
          Creates a new Datum.
 
Method Summary
 void addCoordinateOperation(Datum datum, CoordinateOperation coordOp)
          Add a Transformation to another Datum.
 GeodeticDatum checkExistingGeodeticDatum()
          If the GeodeticDatum is equal to one of the wellknown GeodeticDatum (WGS84, RGF93, NTF, NTF_PARIS and ED50), the method return this wellknown GeodeticDatum.
 boolean equals(Object o)
          Returns true if object is equals to this.
 List<CoordinateOperation> getCoordinateOperations(GeodeticDatum datum)
          Get a transformation to another datum.
 Ellipsoid getEllipsoid()
          Return the ellipsoid of this Datum.
 PrimeMeridian getPrimeMeridian()
          Return the PrimeMeridian of this Datum.
 CoordinateOperation getToWGS84()
          Returns the default transformation to WGS84 of this Datum.
 int hashCode()
          Returns the hash code for this GeodeticDatum.
 void setDefaultToWGS84Operation(CoordinateOperation toWGS84)
          Set the default transformation to WGS84 in two forms : toWGS84 Geocentric transformation toWGS84 is an operation to transform geocentric coordinates based on this datum to geocentric coordinates based on WGS84 datum, generally a translation or a SevenParameterTransformation (ex.
 void setToOtherDatumOperation(CoordinateOperation toOtherDatum, GeodeticDatum targetDatum)
          Set a transformation to a target Datum.
 String toString()
          Returns a String representation of this GeodeticDatum.
 String toWKT()
          Returns a WKT representation of the geodetic datum.
 
Methods inherited from class org.cts.datum.AbstractDatum
getEpoch, getExtent, getOrigin
 
Methods inherited from class org.cts.IdentifiableComponent
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getComponent, getIdentifier, getName, getRemarks, getShortName, setIdentifier, setRemarks, setShortName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.cts.Identifiable
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getName, getRemarks, getShortName, setRemarks, setShortName
 

Field Detail

datumFromName

public static final Map<String,GeodeticDatum> datumFromName
datumFromName associates each datum to a short string used to recognize it in CTS.


WGS84

public static final GeodeticDatum WGS84
World Geodetic System 1984.


NTF_PARIS

public static final GeodeticDatum NTF_PARIS
Nouvelle Triangulation Française (Paris).


NTF

public static final GeodeticDatum NTF
Nouvelle Triangulation Française.


RGF93

public static final GeodeticDatum RGF93
Réseau géodésique français 1993.


ED50

public static final GeodeticDatum ED50
European Datum 1950.


WGS84GUAD

public static final GeodeticDatum WGS84GUAD

WGS84MART

public static final GeodeticDatum WGS84MART

WGS84SBSM

public static final GeodeticDatum WGS84SBSM

NAD27

public static final GeodeticDatum NAD27

NAD83

public static final GeodeticDatum NAD83
Constructor Detail

GeodeticDatum

public GeodeticDatum(PrimeMeridian primeMeridian,
                     Ellipsoid ellipsoid)
Creates a new Datum.

Parameters:
primeMeridian - the prime meridian to use with this datum
ellipsoid - the ellipsoid to use with this datum

GeodeticDatum

public GeodeticDatum(PrimeMeridian primeMeridian,
                     Ellipsoid ellipsoid,
                     CoordinateOperation toWGS84)
Creates a new Datum.

Parameters:
primeMeridian - the prime meridian to use with this datum
ellipsoid - the ellipsoid to use with this datum

GeodeticDatum

public GeodeticDatum(Identifier identifier,
                     PrimeMeridian primeMeridian,
                     Ellipsoid ellipsoid,
                     GeographicExtent extent,
                     String origin,
                     String epoch)
Creates a new Datum.

Parameters:
identifier - identifier.
primeMeridian - the prime meridian to use with this datum
ellipsoid - the ellipsoid to use with this datum
extent - this datum extension
origin - origin decription this datum
epoch - realization epoch of this datum
Method Detail

getPrimeMeridian

public PrimeMeridian getPrimeMeridian()
Return the PrimeMeridian of this Datum.


getEllipsoid

public Ellipsoid getEllipsoid()
Return the ellipsoid of this Datum.


setDefaultToWGS84Operation

public final void setDefaultToWGS84Operation(CoordinateOperation toWGS84)
Set the default transformation to WGS84 in two forms :

toWGS84 Geocentric transformation

toWGS84 is an operation to transform geocentric coordinates based on this datum to geocentric coordinates based on WGS84 datum, generally a translation or a SevenParameterTransformation (ex. Bursa-Wolf).

toWGS84 does not use PrimeMerdian nor ellipsoid parameters.

datumTransformations map (direct Geographic3D transformations)

The toWGS84 transformation is also stored in the datumTransformations map, inherited from AbstractDatum, but this time, the operation is not stored as Geocentric to Geocentric transformation but as a Geographic3D to Geographic3D transformation.

The convention for this transformation is to start from Geographic3D coordinates in radians, to include required longitude rotation, and ellipsoid transformations, and to return GeographicCoordinates in radian. Advantage is that it makes it possible to use algorithm which do not involve Geographic to Geocentric transformation like the use of NTv2 grids.

Parameters:
toWGS84 - geocentric transformation from this to geocentric WGS 84

setToOtherDatumOperation

public final void setToOtherDatumOperation(CoordinateOperation toOtherDatum,
                                           GeodeticDatum targetDatum)
Set a transformation to a target Datum.

toOtherDatum is an operation to transform geocentric coordinates based on this datum to geocentric coordinates based on target datum, generally a translation or a SevenParameterTransformation (ex. Bursa-Wolf).

toOtherDatum does not use PrimeMerdian nor ellipsoid parameters.

The toOtherDatum transformation is stored in the datumTransformations map, inherited from AbstractDatum. The operation is not stored as Geocentric to Geocentric transformation but as a Geographic3D to Geographic3D transformation.

The convention for this transformation is to start from Geographic3D coordinates in radians, to include required longitude rotation, and ellipsoid transformations, and to return GeographicCoordinates in radian. Advantage is that it makes it possible to use algorithm which do not involve Geographic to Geocentric transformation like the use of NTv2 grids.

Parameters:
toOtherDatum - geocentric transformation from this to targetDatum
targetDatum - the GeodeticDatum to which the transformation is defined

addCoordinateOperation

public void addCoordinateOperation(Datum datum,
                                   CoordinateOperation coordOp)
Add a Transformation to another Datum.

Parameters:
datum - the target datum of the transformation to add
coordOp - the transformation linking this Datum and the target datum

getCoordinateOperations

public List<CoordinateOperation> getCoordinateOperations(GeodeticDatum datum)
Get a transformation to another datum.

Parameters:
datum - the datum that must be a target for returned transformation

getToWGS84

public CoordinateOperation getToWGS84()
Returns the default transformation to WGS84 of this Datum.


checkExistingGeodeticDatum

public GeodeticDatum checkExistingGeodeticDatum()
If the GeodeticDatum is equal to one of the wellknown GeodeticDatum (WGS84, RGF93, NTF, NTF_PARIS and ED50), the method return this wellknown GeodeticDatum. If there is no such datum, the method return the GeodeticDatum to which the method is applied.


toWKT

public String toWKT()
Returns a WKT representation of the geodetic datum.


toString

public String toString()
Returns a String representation of this GeodeticDatum.

Overrides:
toString in class AbstractDatum

equals

public boolean equals(Object o)
Returns true if object is equals to this. Tests equality between identifiers, then tests if the components of this ProjectedCRS are equals : the toWGS84 transformations, the Ellipsoid and the PrimeMeridian.

Overrides:
equals in class IdentifiableComponent
Parameters:
object - The object to compare this GeodeticDatum against

hashCode

public int hashCode()
Returns the hash code for this GeodeticDatum.

Overrides:
hashCode in class IdentifiableComponent


Copyright © 2014 IRSTV CNRS-FR-2488. All Rights Reserved.