org.geotools.coverage.grid
Class AbstractGridCoverage

java.lang.Object
  extended by javax.media.jai.PropertySourceImpl
      extended by org.geotools.coverage.AbstractCoverage
          extended by org.geotools.coverage.grid.AbstractGridCoverage
All Implemented Interfaces:
java.io.Serializable, javax.media.jai.PropertySource, org.opengis.coverage.Coverage, org.opengis.coverage.grid.GridCoverage
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 33885 2009-09-10 17:35:27Z simonegiannecchini $
Author:
Martin Desruisseaux (IRD)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces 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 propertySource, 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 propertySource, 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
protected  java.lang.String formatEvaluateError(org.opengis.geometry.DirectPosition point, boolean outside)
          Constructs an error message for a position that can not be evaluated.
protected  java.lang.String formatEvaluateError(java.awt.geom.Point2D point, boolean outside)
          Constructs an error message for a point that can not be evaluated.
 boolean[] getDataBlock(org.opengis.coverage.grid.GridRange range, boolean[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 byte[] getDataBlock(org.opengis.coverage.grid.GridRange range, byte[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 double[] getDataBlock(org.opengis.coverage.grid.GridRange range, double[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 float[] getDataBlock(org.opengis.coverage.grid.GridRange range, float[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 int[] getDataBlock(org.opengis.coverage.grid.GridRange range, int[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 short[] getDataBlock(org.opengis.coverage.grid.GridRange range, short[] destination)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 org.opengis.coverage.grid.GridPacking getGridPacking()
          Deprecated. Not yet implemented, and maybe will never be implemented.
 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)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 java.util.List<org.opengis.coverage.grid.GridCoverage> getSources()
          Returns the source data for a grid coverage.
 boolean isDataEditable()
          Returns true if grid data can be edited.
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, boolean[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, byte[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, double[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, float[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, int[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setDataBlock(org.opengis.coverage.grid.GridRange gridRange, short[] values)
          Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).
 void setPackedDataBlock(org.opengis.coverage.grid.GridRange gridRange, byte[] values)
          Deprecated. This operation can hardly be implemented efficiently in Java with a byte[] argument type, since we can't easily cast an array of byte[] to an array of arbitrary type.
 
Methods inherited from class org.geotools.coverage.AbstractCoverage
dispose, evaluate, evaluate, evaluate, evaluate, evaluate, evaluate, evaluateInverse, find, find, getCommonPointRule, getCoordinateReferenceSystem, getDimension, getDomainElements, getDomainExtents, getEnvelope, getLocale, getName, getRangeElements, getRangeType, getRenderableImage, list, select, show, 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, evaluate, evaluateInverse, find, find, getCommonPointRule, getCoordinateReferenceSystem, getDomainElements, getDomainExtents, getEnvelope, getNumSampleDimensions, getRangeElements, getRangeType, getRenderableImage, getSampleDimension, list, select
 

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 propertySource,
                               java.util.Map<?,?> properties)
Constructs a grid coverage using the specified coordinate reference system. If the coordinate reference system is null, 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 evaluate(...) methods.
propertySource - The source for this coverage, or null if none. Source may be (but is not limited to) a PlanarImage or an other AbstractGridCoverage object.
properties - The set of properties for this coverage, or null if there is none. 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 propertySource,
                               java.util.Map<?,?> properties)
Constructs a grid coverage with sources. Arguments are the same than for the previous constructor, with an additional sources argument.

Parameters:
name - The grid coverage name.
crs - The coordinate reference system.
sources - The sources for a grid coverage, or null if none.
propertySource - The source for properties for this coverage, or null if none.
properties - Set of additional properties for this coverage, or null 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 null for the same than coverage.
coverage - The source coverage.
Method Detail

getSources

public java.util.List<org.opengis.coverage.grid.GridCoverage> getSources()
Returns the source data for a grid coverage. If the GridCoverage was produced from an underlying dataset, the returned list is an empty list. If the GridCoverage was produced using org.opengis.coverage.grid.GridCoverageProcessor, then it should return the source grid coverage of the one used as input to GridCoverageProcessor. In general the getSources() method is intended to return the original GridCoverage on which it depends. This is intended to allow applications to establish what GridCoverages 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
Specified by:
getSources in interface org.opengis.coverage.grid.GridCoverage
Overrides:
getSources in class AbstractCoverage

isDataEditable

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

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()
Deprecated. Not yet implemented, and maybe will never be implemented.

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

@Deprecated
public byte[] getPackedDataBlock(org.opengis.coverage.grid.GridRange range)
                          throws org.opengis.coverage.grid.InvalidRangeException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public boolean[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                         boolean[] destination)
                       throws org.opengis.coverage.grid.InvalidRangeException,
                              java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public byte[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                      byte[] destination)
                    throws org.opengis.coverage.grid.InvalidRangeException,
                           java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public short[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                       short[] destination)
                     throws org.opengis.coverage.grid.InvalidRangeException,
                            java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public int[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                     int[] destination)
                   throws org.opengis.coverage.grid.InvalidRangeException,
                          java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public float[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                       float[] destination)
                     throws org.opengis.coverage.grid.InvalidRangeException,
                            java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
public double[] getDataBlock(org.opengis.coverage.grid.GridRange range,
                                        double[] destination)
                      throws org.opengis.coverage.grid.InvalidRangeException,
                             java.lang.ArrayIndexOutOfBoundsException
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. We should use some higher level construct instead (multi-dimensional array or something similar).

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

@Deprecated
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
Deprecated. This operation can hardly be implemented efficiently in Java with a byte[] argument type, since we can't easily cast an array of byte[] to an array of arbitrary type.

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.

Throws:
org.opengis.coverage.grid.InvalidRangeException
org.opengis.coverage.grid.GridNotEditableException
java.lang.ArrayIndexOutOfBoundsException

formatEvaluateError

protected java.lang.String formatEvaluateError(java.awt.geom.Point2D point,
                                               boolean outside)
Constructs an error message for a point that can not be evaluated. This is used for formatting error messages.

Parameters:
point - The coordinate point to format.
outside - true if the evaluation failed because the given point is outside the coverage, or false if it failed for an other (unknown) reason.
Returns:
An error message.
Since:
2.5

formatEvaluateError

protected java.lang.String formatEvaluateError(org.opengis.geometry.DirectPosition point,
                                               boolean outside)
Constructs an error message for a position that can not be evaluated. This is used for formatting error messages.

Parameters:
point - The coordinate point to format.
outside - true if the evaluation failed because the given point is outside the coverage, or false if it failed for an other (unknown) reason.
Returns:
An error message.
Since:
2.5


Copyright © 1996-2010 Geotools. All Rights Reserved.