<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hello,<br>
    <br>
    I am trying to resample a NetCDF file in Geotk.&nbsp; Here is my code:<br>
    <br>
    &nbsp;&nbsp;&nbsp; ImageCoverageReader reader = new ImageCoverageReader();<br>
    &nbsp;&nbsp;&nbsp; reader.setInput( file );<br>
    &nbsp;&nbsp;&nbsp; CompoundCRS targetCRS = new DefaultCompoundCRS( "Target CRS",new
    CoordinateReferenceSystem[]{ <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CRS.decode( "EPSG:4326"), //lat/lon on WGS84<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CRS.decode( "EPSG:3855" ) } ); //meters above geoid<br>
    <br>
    &nbsp;&nbsp;&nbsp; for( int i = 0; i &lt; reader.getCoverageNames().size(); i++ ){<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridCoverage cvg = reader.read( i, null );<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //here I manually set the ProjectedCRS - see
    <a class="moz-txt-link-freetext" href="http://jira.geotoolkit.org/browse/GEOTK-154">http://jira.geotoolkit.org/browse/GEOTK-154</a><br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Coverage resultCvg = Operations.DEFAULT.resample( cvg,
    targetCRS, cvg.getGridGeometry(), Interpolation.getInstance(
    Interpolation.INTERP_NEAREST ) );<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( "Resampled to "+resultCvg);<br>
    &nbsp;&nbsp;&nbsp; }<br>
    <br>
    The Hints are set to be lenient on datum shifts.&nbsp; The CRS that is on
    the GridCoverage when I make the resample() call is a CompoundCRS
    with the following components:<br>
    <ol>
      <li>PROJCS["Projection", <br>
        &nbsp; GEOGCS["WGS84(DD)", <br>
        &nbsp;&nbsp;&nbsp; DATUM["WGS84", <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPHEROID["WGS84", 6378137.0, 298.257223563,
        AUTHORITY["EPSG","7030"]], <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AUTHORITY["EPSG","6326"]], <br>
        &nbsp;&nbsp;&nbsp; PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], <br>
        &nbsp;&nbsp;&nbsp; UNIT["degree", 0.017453292519943295], <br>
        &nbsp;&nbsp;&nbsp; AXIS["Geodetic longitude", EAST], <br>
        &nbsp;&nbsp;&nbsp; AXIS["Geodetic latitude", NORTH]], <br>
        &nbsp; PROJECTION["Lambert_Conformal_Conic_2SP"], <br>
        &nbsp; PARAMETER["semi_major", 6371200.0], <br>
        &nbsp; PARAMETER["semi_minor", 6371200.0], <br>
        &nbsp; PARAMETER["central_meridian", -95.0], <br>
        &nbsp; PARAMETER["latitude_of_origin", 25.0], <br>
        &nbsp; PARAMETER["false_easting", 0.0], <br>
        &nbsp; PARAMETER["false_northing", 0.0], <br>
        &nbsp; PARAMETER["standard_parallel_2", 25.049999237060547], <br>
        &nbsp; PARAMETER["standard_parallel_1", 25.0], <br>
        &nbsp; UNIT["metre", 1.0], <br>
        &nbsp; AXIS["Easting", EAST], <br>
        &nbsp; AXIS["Northing", NORTH]]</li>
      <li>NetcdfCRS$Vertical instance (DefaultVerticalDatum.GEOIDAL -
        VERT_DATUM["Geoidal", "2005"] )</li>
      <li>NetcdfCRS$Temporal instance (custom DefaultTemporalDatum)<br>
      </li>
    </ol>
    <br>
    This results in the following Exception:<br>
    <br>
    Caused by:
    org.opengis.referencing.operation.OperationNotFoundException: No
    transformation available from system "CompoundCRS[NetCDF:"time
    altitude_above_msl y x"]" to "CompoundCRS[Target CRS]".<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperationStep(DefaultCoordinateOperationFactory.java:1329)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperationStep(DefaultCoordinateOperationFactory.java:1256)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperation(DefaultCoordinateOperationFactory.java:205)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.coverage.processing.operation.Resampler2D.reproject(Resampler2D.java:361)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.coverage.processing.operation.Resample.doOperation(Resample.java:249)<br>
    &nbsp;&nbsp;&nbsp; ... 22 more<br>
    Caused by:
    org.opengis.referencing.operation.OperationNotFoundException: No
    transformation available from system "VerticalDatum[Geoidal]" to
    "VerticalDatum[EGM2008 geoid]".<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperationStep(DefaultCoordinateOperationFactory.java:697)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperation(DefaultCoordinateOperationFactory.java:273)<br>
    &nbsp;&nbsp;&nbsp; at
org.geotoolkit.referencing.operation.DefaultCoordinateOperationFactory.createOperationStep(DefaultCoordinateOperationFactory.java:1306)<br>
    &nbsp;&nbsp;&nbsp; ... 26 more<br>
    <br>
    I may be making the wrong assumption, but it seems as if these two
    VerticalDatums should be transformable.&nbsp; The only thing I've noticed
    that may be a factor is the fact that EPSG 3855 references a 2008
    geoid and the DefaultVerticalDatum.GEOIDAL references a 2005 geoid.&nbsp;
    Any thoughts on why these two VerticalCRSs could not be transformed?<br>
    <br>
    Thanks,<br>
    Aaron<br>
  </body>
</html>