Class Resample

  • All Implemented Interfaces:
    Serializable, Operation

    public class Resample
    extends Operation2D
    Resample a grid coverage using a different grid geometry. This operation provides the following functionality:

    • Resampling
      The grid coverage can be resampled at a different cell resolution. Some implementations may be able to do resampling efficiently at any resolution. Also a non-rectilinear grid coverage can be accessed as rectilinear grid coverage with this operation.
    • Reprojecting
      The new grid geometry can have a different coordinate reference system than the underlying grid geometry. For example, a grid coverage can be reprojected from a geodetic coordinate reference system to Universal Transverse Mercator CRS.
    • Subsetting
      A subset of a grid can be viewed as a separate coverage by using this operation with a grid geometry which as the same geoferencing and a region. Grid range in the grid geometry defines the region to subset in the grid coverage.

    Geotools extension:
    The "Resample" operation use the default CoordinateOperationFactory for creating a transformation from the source to the destination coordinate reference systems. If a custom factory is desired, it may be supplied as a rendering hint with the Hints.COORDINATE_OPERATION_FACTORY key. Rendering hints can be supplied to org.geotools.coverage.processing.DefaultProcessor at construction time.

    Name: "Resample"
    JAI operator: "Affine" or "Warp"
    Parameters:

    Name Class Default value Minimum value Maximum value
    "Source" GridCoverage2D N/A N/A N/A
    "InterpolationType" CharSequence "NearestNeighbor" N/A N/A
    "CoordinateReferenceSystem" CoordinateReferenceSystem Same as source grid coverage N/A N/A
    "GridGeometry" GridGeometry (automatic) N/A N/A
    "BackgroundValues" double[] N/A N/A N/A
    Since:
    2.2
    Author:
    Martin Desruisseaux (IRD), Giannecchini Simone, GeoSolutions SAS, Daniele Romagnoli, GeoSolutions SAS
    See Also:
    Operations.resample(org.geotools.api.coverage.Coverage, org.geotools.api.referencing.crs.CoordinateReferenceSystem), WarpDescriptor, Serialized Form
    • Field Detail

      • INTERPOLATION_TYPE

        public static final ParameterDescriptor<Object> INTERPOLATION_TYPE
        The parameter descriptor for the interpolation type.
      • BACKGROUND_VALUES

        public static final ParameterDescriptor<double[]> BACKGROUND_VALUES
        The parameter descriptor for the BackgroundValues.
      • OPERATION

        public static final String OPERATION
        Key for the reprojection operation being used (null if no operation is performed)
        See Also:
        Constant Field Values
      • WARP_TYPE

        public static final String WARP_TYPE
        Key for the warp operation Class, null otherwise
        See Also:
        Constant Field Values
      • GRID_DIMENSIONS

        public static final String GRID_DIMENSIONS
        Key for the warp grid dimensions, available only if a WarpGrid is being used. Returned as a Dimension object
        See Also:
        Constant Field Values
    • Constructor Detail

      • Resample

        public Resample()
        Constructs a "Resample" operation.
    • Method Detail

      • doOperation

        public Coverage doOperation​(ParameterValueGroup parameters,
                                    Hints hints)
        Resamples a grid coverage. This method is invoked by org.geotools.coverage.processing.DefaultProcessor for the "Resample" operation.
        Specified by:
        doOperation in class AbstractOperation
        Parameters:
        parameters - List of name value pairs for the parameters required for the operation.
        hints - A set of rendering hints, or null if none. The DefaultProcessor may provides hints for the following keys: Hints.COORDINATE_OPERATION_FACTORY and Hints.JAI_INSTANCE.
        Returns:
        The result as a coverage.
      • computeGridGeometry

        public static GridGeometry computeGridGeometry​(GridCoverage source,
                                                       Bounds target)
                                                throws TransformException
        Computes a grid geometry from a source coverage and a target envelope. This is a convenience method for computing the GRID_GEOMETRY argument of a "resample" operation from an envelope. The target envelope may contains a different coordinate reference system, in which case a reprojection will be performed.
        Parameters:
        source - The source coverage.
        target - The target envelope, including a possibly different coordinate reference system.
        Returns:
        A grid geometry inferred from the target envelope.
        Throws:
        TransformException - If a transformation was required and failed.
        Since:
        2.5