[geotk] Transform from EPSG 4979 to 3D CRS

Martin Desruisseaux martin.desruisseaux at geomatys.fr
Tue May 3 07:15:10 EDT 2011


Hello Aaron

The issue is probably there:

Le 03/05/11 06:12, Aaron Braeckel a écrit :
> (...snip...)
> CoordinateReferenceSystem crs4979 = CRS.decode( "EPSG:4979" ); //3D CRS - lat,lon,ellipsoidal height
> (...snip...)
> CoordinateReferenceSystem vertCRS = CRS.decode( "EPSG:5714"); //mean sea level height
> CoordinateReferenceSystem compoundCRS = new DefaultCompoundCRS("compound", lambert, vertCRS );
> CRS.findMathTransform( crs4979, compoundCRS );  //this fails with "No transformation available from system "GeographicCRS[WGS 84]" to "CompoundCRS[ CompoundCRS ]"."

The source CRS (EPSG:4979) uses an ellipsoidal height. The target CRS uses a 
"mean sea level" height (EPSG:5714). The current Geotk version doesn't know by 
itself how to go from ellispoidal height to mean sea level.

I see two possible workarounds:

    * Use the DefaultVerticalCRS.ELLIPSOIDAL constant instead than EPSG:5714
      (easiest approach).
    * Instantiate explicitely a EarthGravitationalModel
      <http://www.geotoolkit.org/apidocs/org/geotoolkit/referencing/operation/transform/EarthGravitationalModel.html>
      transform from ellipsoidal height to geoidal height.


There is a JIRA task for implementing automatic instantiation of 
EarthGravitationalModel: http://jira.geotoolkit.org/browse/GEOTK-139

Regards,

     Martin



More information about the Geotoolkit mailing list