All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.coverage.processing.GridCoverageProcessor Maven / Gradle / Ivy

The newest version!
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2005 Open Geospatial Consortium Inc.
 *
 *    All Rights Reserved. http://www.opengis.org/legal/
 */
package org.opengis.coverage.processing;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;

import java.util.Collection;
import org.opengis.annotation.UML;
import org.opengis.coverage.SampleDimensionType;
import org.opengis.coverage.grid.GridCoverage;

/**
 * Provides operations for different ways of accessing the grid coverage values as well as image
 * processing functionality. The list of available processing operations is implementation
 * dependent. The interface has a discovery mechanism to determine the available processing
 * operations.
 *
 * 

These processing operations will transform values within a single sample dimension, and leave * the values in other sample dimensions unaffected. The modified sample dimension may also change * its type (e.g. from {@link SampleDimensionType#UNSIGNED_4BITS UNSIGNED_4BITS} to {@link * SampleDimensionType#UNSIGNED_1BIT UNSIGNED_1BIT}). The actual underlying grid data remains * unchanged. * *

The interface has been designed to allow the adaptations to be done in a "pipe-lined" manner. * The interface operates on {@link GridCoverage} to create new a {@link GridCoverage}. The * interface does not need to make a copy of the source grid data. Instead, it can return a grid * coverage object which applies the adaptations on the original grid coverage whenever a block of * data is requested. In this way, a pipeline of several grid coverages can be constructed cheaply. * *

This interface can perform any of the following: * *

    *
  • Change the number of bands being accessed. *
  • Change the value sequencing in which the grid values are retrieved. *
  • Allow re-sampling of the grid coverage for a different geometry. Creating a new {@link * GridCoverage} with different grid geometry allows for reprojecting the grid coverage to * another projection and another georeferencing type, resampling to another cell resolution * and subsetting the grid coverage. *
  • Modify the way the grid values are accessed (filtered, classified...). *
  • Change the interpolation method used when evaluating points which fall between grid cells. *
  • Filtering. *
  • Image enhancements. *
  • etc. *
* *

  * *

* *
*

WARNING: THIS CLASS WILL CHANGE. Current API is derived from OGC * Grid Coverages Implementation specification 1.0. * We plan to replace it by new interfaces derived from ISO 19123 (Schema for coverage geometry * and functions). Current interfaces should be considered as legacy and are included in this * distribution only because they were part of GeoAPI 1.0 release. We will try to preserve as much * compatibility as possible, but no migration plan has been determined yet.

*
* * @version Grid Coverage specification 1.0 * @author Martin Desruisseaux (IRD) * @since GeoAPI 1.0 */ @UML(identifier = "GP_GridCoverageProcessor", specification = OGC_01004) public interface GridCoverageProcessor { /** * Retrieves grid processing operations information. Each operation information will contain the * name of the operation as well as a list of its parameters. * * @return The available operations. */ @UML(identifier = "getOperation", obligation = MANDATORY, specification = OGC_01004) Collection getOperations(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy