org.geotools.coverage.grid
Class AbstractGridCoverage

java.lang.Object
  extended byjavax.media.jai.PropertySourceImpl
      extended byorg.geotools.coverage.AbstractCoverage
          extended byorg.geotools.coverage.grid.AbstractGridCoverage
All Implemented Interfaces:
org.opengis.coverage.Coverage, org.opengis.coverage.grid.GridCoverage, javax.media.jai.PropertySource, java.io.Serializable
Direct Known Subclasses:
GridCoverage2D

public abstract class AbstractGridCoverage
extends AbstractCoverage
implements org.opengis.coverage.grid.GridCoverage

Base class for Geotools implementation of grid coverage.

Since:
2.1
Version:
$Id: AbstractGridCoverage.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.geotools.coverage.AbstractCoverage
AbstractCoverage.Renderable
 
Field Summary
static java.util.logging.Logger LOGGER
          The logger for grid coverage operations.
 
Fields inherited from class org.geotools.coverage.AbstractCoverage
crs
 
Fields inherited from class javax.media.jai.PropertySourceImpl
cachedPropertyNames, properties, propertySources
 
Constructor Summary
protected AbstractGridCoverage(java.lang.CharSequence name, org.opengis.referencing.crs.CoordinateReferenceSystem crs, org.opengis.coverage.grid.GridCoverage[] sources, javax.media.jai.PropertySource source, java.util.Map properties)
          Constructs a grid coverage with sources.
protected AbstractGridCoverage(java.lang.CharSequence name, org.opengis.referencing.crs.CoordinateReferenceSystem crs, javax.media.jai.PropertySource source, java.util.Map properties)
          Constructs a grid coverage using the specified coordinate reference system.
protected AbstractGridCoverage(java.lang.CharSequence name, org.opengis.coverage.grid.GridCoverage coverage)
          Constructs a new coverage with the same parameters than the specified coverage.
 
Method Summary
 boolean[] getDataBlock(org.opengis.coverage.grid.GridRange range, boolean[] destination)
          Returns a sequence of byte values for a block.
 byte[] getDataBlock(org.opengis.coverage.grid.GridRange range, byte[] destination)
          Returns a sequence of byte values for a block.
 double[] getDataBlock(org.opengis.coverage.grid.GridRange range, double[] destination)
          Returns a sequence of double values for a block.
 float[] getDataBlock(org.opengis.coverage.grid.GridRange range, float[] destination)
          Returns a sequence of float values for a block.
 int[] getDataBlock(org.opengis.coverage.grid.GridRange range, int[] destination)
          Returns a sequence of integer values for a block.
 short[] getDataBlock(org.opengis.coverage.grid.GridRange range, short[] destination)
          Returns a sequence of short values for a block.
 org.opengis.coverage.grid.GridPacking getGridPacking()
          Returns information for the packing of grid coverage values.
 int getNumOverviews()
          Returns the number of predetermined overviews for the grid.
 org.opengis.coverage.grid.GridCoverage getOverview(int index)
          Returns a pre-calculated overview for a grid coverage.
 org.opengis.coverage.grid.GridGeometry getOverviewGridGeometry(int index)
          Returns the grid geometry for an overview.
 byte[] getPackedDataBlock(org.opengis.coverage.grid.GridRange range)
          Returns a block of grid coverage data for all sample dimensions.
 java.util.List getSources()
          Returns the source data for a grid coverage.
 boolean isDataEditable()
          Returns if grid data can be edited.
protected  java.lang.String pointOutsideCoverage(org.opengis.spatialschema.geometry.DirectPosition point)
          Constructs an error message for a point outside the coverage.
protected  java.lang.String pointOutsideCoverage(java.awt.geom.Point2D point)
          Constructs an error message for a point outside the coverage.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, boolean[] values)
          Set a block of values for all sample dimensions.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, byte[] values)
          Set a block of values for all sample dimensions.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, double[] values)
          Set a block of values for all sample dimensions.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, float[] values)
          Set a block of values for all sample dimensions.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, int[] values)
          Set a block of values for all sample dimensions.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, short[] values)
          Set a block of values for all sample dimensions.
 void setPackedDataBlock(org.opengis.coverage.grid.GridRange gridRange, byte[] values)
          Set a block of values for all sample dimensions.
 
Methods inherited from class org.geotools.coverage.AbstractCoverage
dispose, evaluate, evaluate, evaluate, evaluate, evaluate, getCoordinateReferenceSystem, getDimension, getDimensionNames, getDimensionNames, getEnvelope, getLocale, getMetadataNames, getMetadataValue, getName, getRenderableImage, show, show, toString
 
Methods inherited from class javax.media.jai.PropertySourceImpl
getProperties, getProperty, getPropertyClass, getPropertyNames, getPropertyNames
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opengis.coverage.grid.GridCoverage
getGridGeometry, getOptimalDataBlockSizes
 
Methods inherited from interface org.opengis.coverage.Coverage
evaluate, evaluate, evaluate, evaluate, evaluate, evaluate, getCoordinateReferenceSystem, getDimensionNames, getEnvelope, getMetadataNames, getMetadataValue, getNumSampleDimensions, getRenderableImage, getSampleDimension
 

Field Detail

LOGGER

public static final java.util.logging.Logger LOGGER
The logger for grid coverage operations.

Constructor Detail

AbstractGridCoverage

protected AbstractGridCoverage(java.lang.CharSequence name,
                               org.opengis.referencing.crs.CoordinateReferenceSystem crs,
                               javax.media.jai.PropertySource source,
                               java.util.Map properties)
Constructs a grid coverage using the specified coordinate reference system. If the coordinate reference system is , then the subclasses must override AbstractCoverage.getDimension().

Parameters:
name - The grid coverage name.
crs - The coordinate reference system. This specifies the coordinate system used when accessing a coverage or grid coverage with the methods.
source - The source for this coverage, or if none. Source may be (but is not limited to) a PlanarImage or an other object.
properties - The set of properties for this coverage, or if there is none. "Properties" in Java Advanced Imaging is what OpenGIS calls "Metadata". Keys are String objects (CaselessStringKey are accepted as well), while values may be any Object.

AbstractGridCoverage

protected AbstractGridCoverage(java.lang.CharSequence name,
                               org.opengis.referencing.crs.CoordinateReferenceSystem crs,
                               org.opengis.coverage.grid.GridCoverage[] sources,
                               javax.media.jai.PropertySource source,
                               java.util.Map properties)
Constructs a grid coverage with sources. Arguments are the same than for the previous constructor, with an additional argument.

Parameters:
name - The grid coverage name.
crs - The coordinate reference system.
sources - The source data for a grid coverage, or if none.
source - The source for properties for this coverage, or if none.
properties - Set of additional properties for this coverage, or if there is none.

AbstractGridCoverage

protected AbstractGridCoverage(java.lang.CharSequence name,
                               org.opengis.coverage.grid.GridCoverage coverage)
Constructs a new coverage with the same parameters than the specified coverage.

Parameters:
name - The name for this coverage, or for the same than .
coverage - The source coverage.
Method Detail

getSources

public java.util.List getSources()
Returns the source data for a grid coverage. If the was produced from an underlying dataset, the returned list is an empty list. If the was produced using org.opengis.coverage.grid.GridCoverageProcessor, then it should return the source grid coverage of the one used as input to . In general the method is intended to return the original on which it depends. This is intended to allow applications to establish what s will be affected when others are updated, as well as to trace back to the "raw data".

Specified by:
getSources in interface org.opengis.coverage.Coverage
Overrides:
getSources in class AbstractCoverage

isDataEditable

public boolean isDataEditable()
Returns if grid data can be edited. The default implementation returns .

Specified by:
isDataEditable in interface org.opengis.coverage.grid.GridCoverage

getNumOverviews

public int getNumOverviews()
Returns the number of predetermined overviews for the grid. The default implementation returns 0.

Specified by:
getNumOverviews in interface org.opengis.coverage.grid.GridCoverage

getOverviewGridGeometry

public org.opengis.coverage.grid.GridGeometry getOverviewGridGeometry(int index)
                                                               throws java.lang.IndexOutOfBoundsException
Returns the grid geometry for an overview. The default implementation always throws an exception, since the default number of overviews is 0.

Specified by:
getOverviewGridGeometry in interface org.opengis.coverage.grid.GridCoverage
Throws:
java.lang.IndexOutOfBoundsException - if the specified index is out of bounds.

getOverview

public org.opengis.coverage.grid.GridCoverage getOverview(int index)
                                                   throws java.lang.IndexOutOfBoundsException
Returns a pre-calculated overview for a grid coverage. The default implementation always throws an exception, since the default number of overviews is 0.

Specified by:
getOverview in interface org.opengis.coverage.grid.GridCoverage
Throws:
java.lang.IndexOutOfBoundsException - if the specified index is out of bounds.

getGridPacking

public org.opengis.coverage.grid.GridPacking getGridPacking()
Returns information for the packing of grid coverage values. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getGridPacking in interface org.opengis.coverage.grid.GridCoverage

getPackedDataBlock

public byte[] getPackedDataBlock(org.opengis.coverage.grid.GridRange range)
                          throws org.opengis.coverage.grid.InvalidRangeException
Returns a block of grid coverage data for all sample dimensions. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getPackedDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException

getDataBlock

public boolean[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                              boolean[] destination)
                       throws org.opengis.coverage.grid.InvalidRangeException,
                              java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of byte values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

getDataBlock

public byte[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                           byte[] destination)
                    throws org.opengis.coverage.grid.InvalidRangeException,
                           java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of byte values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

getDataBlock

public short[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                            short[] destination)
                     throws org.opengis.coverage.grid.InvalidRangeException,
                            java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of short values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

getDataBlock

public int[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                          int[] destination)
                   throws org.opengis.coverage.grid.InvalidRangeException,
                          java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of integer values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

getDataBlock

public float[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                            float[] destination)
                     throws org.opengis.coverage.grid.InvalidRangeException,
                            java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of float values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

getDataBlock

public double[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                             double[] destination)
                      throws org.opengis.coverage.grid.InvalidRangeException,
                             java.lang.ArrayIndexOutOfBoundsException
Returns a sequence of double values for a block. The default implementation throws an UnsupportedOperationException. We don't know at this time if and when this method will be implemented, since the API is going to change when we will shift to ISO 19123.

Specified by:
getDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         boolean[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         byte[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         short[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         int[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         float[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setDataBlock

public void setDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                         double[] values)
                  throws org.opengis.coverage.grid.InvalidRangeException,
                         org.opengis.coverage.grid.GridNotEditableException,
                         java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

setPackedDataBlock

public void setPackedDataBlock(org.opengis.coverage.grid.GridRange gridRange,
                               byte[] values)
                        throws org.opengis.coverage.grid.InvalidRangeException,
                               org.opengis.coverage.grid.GridNotEditableException,
                               java.lang.ArrayIndexOutOfBoundsException
Set a block of values for all sample dimensions. The default implementation always throws an exception, since this grid coverage is not editable by default.

Specified by:
setPackedDataBlock in interface org.opengis.coverage.grid.GridCoverage
Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

pointOutsideCoverage

protected java.lang.String pointOutsideCoverage(java.awt.geom.Point2D point)
Constructs an error message for a point outside the coverage. This is used for formatting error messages.

Parameters:
point - The coordinate point to format.
Returns:
An error message.

pointOutsideCoverage

protected java.lang.String pointOutsideCoverage(org.opengis.spatialschema.geometry.DirectPosition point)
Constructs an error message for a point outside the coverage. This is used for formatting error messages.

Parameters:
point - The coordinate point to format.
Returns:
An error message.


Copyright © GeoTools. All Rights Reserved.