Class AbstractGridCoverage2DReader
- All Implemented Interfaces:
GridCoverageReader
,GridCoverage2DReader
- Direct Known Subclasses:
ArcGridReader
,BaseGridCoverage2DReader
,GeoPackageReader
,GeoTiffReader
,GrassCoverageReader
,ImageMosaicReader
,ImagePyramidReader
,JP2KReader
,MBTilesReader
,NetCDFReader
,PGRasterReader
,TPKReader
,WMSCoverageReader
,WMTSCoverageReader
,WorldImageReader
The main drawback I see with the current GeoApi GridCoverageReader interface is that there is no way to get real
information about a raster source unless you instantiate a GridCoverage. As an instance it is impossible to know the
envelope, the number of overviews, the tile size. This information is needed in order to perform decimation on
reading or to use built-in overviews
This really impacts the ability to exploit raster datasets in a desktop environment where caching is crucial.
- Since:
- 2.3
- Author:
- Simone Giannecchini, GeoSolutions
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Temp variable used in many readers.protected GridCoverageFactory
GridCoverageFactory
instance.protected String
Coverage nameprotected CoordinateReferenceSystem
crs for this coverageprotected DatasetLayout
CoverageDatasetLayout
containing information about Overviews and Mask managementprotected static double
Small number used for double comparisonsprotected boolean
In case we are trying to read from a GZipped file this will be set to true.protected double[]
Highest resolution available for this reader.protected Hints
Hints used by theAbstractGridCoverage2DReader
subclasses.protected ImageInputStream
Input stream that can be used to initialize subclasses ofAbstractGridCoverage2DReader
.protected ImageInputStreamSpi
protected int
This contains the number of overviews.aaaprotected Double[]
protected GeneralBounds
Envelope read from fileprotected GridEnvelope
The originalGridRange
for theGridCoverage2D
of this reader.protected double[][]
Resolutions avialaible through an overviews based mechanism.protected MathTransform
2DGridToWorld math transform.protected Double[]
scales and offsets for rescalingprotected Object
Source to read fromFields inherited from interface GridCoverage2DReader
ELEVATION_DOMAIN, ELEVATION_DOMAIN_MAXIMUM, ELEVATION_DOMAIN_MINIMUM, ELEVATION_DOMAIN_RESOLUTION, FILE_SOURCE_PROPERTY, HAS_ELEVATION_DOMAIN, HAS_TIME_DOMAIN, MULTICRS_EPSGCODES, MULTICRS_READER, PAM_DATASET, REPROJECTING_READER, SOURCE_URL_PROPERTY, TIME_DOMAIN, TIME_DOMAIN_MAXIMUM, TIME_DOMAIN_MINIMUM, TIME_DOMAIN_RESOLUTION
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Default protected constructor.Creates a new instance of aAIGReader
.AbstractGridCoverage2DReader
(Object input, Hints hints) Creates a new instance of aAIGReader
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addAllSiblings
(File file, List<File> files, String... extensions) Adds all the siblings that could be found to exist to the given file listprotected void
addSiblings
(List<File> files, File... siblings) Adds the specified siblings, if not null, and existingprotected boolean
This method is responsible for checking the provided coverage name against the coverage name for thisGridCoverage2DReader
.protected void
collectScaleOffset
(IIOMetadata iioMetadata) Collects the scales and offsets for value rescaling from the metadata, if presentprotected final GridCoverage
createImageCoverage
(String coverageName, PlanarImage image) Creates aGridCoverage
for the providedPlanarImage
using theoriginalEnvelope
that was provided for this coverage.protected final GridCoverage2D
createImageCoverage
(String coverageName, PlanarImage image, MathTransform raster2Model) Creates aGridCoverage
for the providedPlanarImage
using theraster2Model
that was provided for this coverage.protected final GridCoverage
createImageCoverage
(PlanarImage image) Creates aGridCoverage
for the providedPlanarImage
using theoriginalEnvelope
that was provided for this coverage.protected final GridCoverage2D
createImageCoverage
(PlanarImage image, MathTransform raster2Model) Creates aGridCoverage
for the providedPlanarImage
using theraster2Model
that was provided for this coverage.protected final void
decimationOnReadingControl
(String coverageName, Integer imageChoice, ImageReadParam readP, double[] requestedRes) This method is responsible for evaluating possible subsampling factors once the best resolution level has been found, in case we have support for overviews, or starting from the original coverage in case there are no overviews available.void
dispose()
Disposes this reader.protected void
finalize()
Forcing disposal of thisAbstractGridCoverage2DReader
which may keep anImageInputStream
open.Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.getCoordinateReferenceSystem
(String coverageName) Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.DatasetLayout
Returns theDatasetLayout
for the coverage.DatasetLayout
getDatasetLayout
(String coverageName) Returns theDatasetLayout
for the specified coverage.Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader.getDynamicParameters
(String coverageName) Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader.protected List<FileGroupProvider.FileGroup>
getFiles()
Returns a list of files making up the source data for this reader (as a whole).int
Retrieve the number of coverages contained within the input source.String[]
Retrieve the list of coverages contained within the input source.Return the ground control points for the default coverage, or null if there are nonegetGroundControlPoints
(String coverageName) Return the ground control points for the specified, or null if there are noneprotected double[]
protected double[]
getHighestRes
(String coverageName) ImageLayout
Retrieve theImageLayout
for the default coverage.ImageLayout
getImageLayout
(String coverageName) Retrieve theImageLayout
for the specified coverage.getInfo()
Information about this source.Default implementation returns a FileResourceInfo containing same fileGroup list contained in the ServiceInfo object.String[]
Returns the list of metadata keywords associated with the input source as a whole (not associated with any particular grid coverage).String[]
getMetadataNames
(String coverageName) Returns the list of metadata keywords associated with a specific gridCoverage referred by name.getMetadataValue
(String name) Retrieve the metadata value for a given metadata name.getMetadataValue
(String coverageName, String name) Retrieve the metadata value for a given metadata name for a specified coverage.protected MultiLevelROIProvider
getMultiLevelROIProvider
(String coverageName) Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.getOriginalEnvelope
(String coverageName) Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.Retrieves theGeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.getOriginalGridRange
(String coverageName) Retrieves theGeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.getOriginalGridToWorld
(String coverageName, PixelInCell pixInCell) Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader
.getOriginalGridToWorld
(PixelInCell pixInCell) Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader
.getOverviewGridEnvelope
(int overviewIndex) getOverviewGridEnvelope
(String coverageName, int overviewIndex) static PAMDataset
getPamDataset
(TIFFImageMetadata metadata) If available, parses the GDAL_METADATA tag contents and transforms it into a PAMDatasetstatic PAMDataset
getPamDataset
(File sourceFile, IIOMetadata metadata) Method that looks for an externalPAMDataset
first, and if not found, checks for an internalGDALMetadata
inside a custom tag.double[]
getReadingResolutions
(String coverageName, OverviewPolicy policy, double[] requestedResolution) Returns the actual resolution used to read the data given the specified target resolution and the specified overview policydouble[]
getReadingResolutions
(OverviewPolicy policy, double[] requestedResolution) Returns the actual resolution used to read the data given the specified target resolution and the specified overview policyprotected AffineTransform
getRescaledRasterToModel
(RenderedImage coverageRaster) Computes the raster to model of a rescaled output raster, based on the original transform and output raster scaling factorprotected static final double[]
getResolution
(GeneralBounds envelope, Rectangle2D dim, CoordinateReferenceSystem crs) This method is responsible for computing the resolutions in for the provided grid geometry in the provided crs.double[][]
Retrieve the resolution levels for the default coverage.double[][]
getResolutionLevels
(String coverageName) Retrieve the resolution levels for the specified coverage.protected static File
getSibling
(File file, String extension) Retrieves the sibling of the specified file, if available, or null otherwisefinal Object
Retrieves the source for thisAbstractGridCoverage2DReader
.protected File
Returns the source as a File, if it can be converted to one, and it existsread
(String coverageName, GeneralParameterValue... parameters) Retrieves theGridEnvelope
associated to the specified coverageName for thisGridCoverage2DReader
.abstract GridCoverage2D
read
(GeneralParameterValue... parameters) Read the current grid coverage from the stream.protected void
setlayout
(ImageLayout layout) Set the provided layout for thisGridCoverage2DReader
-protected void
setLayout
(ImageReader reader) Extract the ImageLayout from the provided reader for the first available image.protected Integer
setReadParams
(String coverageName, OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam)
.protected Integer
setReadParams
(OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam)
.Methods inherited from class Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface GridCoverageReader
getFormat
-
Field Details
-
EPS
protected static double EPSSmall number used for double comparisons -
numOverviews
protected int numOverviewsThis contains the number of overviews.aaa -
raster2Model
2DGridToWorld math transform. -
crs
crs for this coverage -
originalEnvelope
Envelope read from file -
coverageName
Coverage name -
source
Source to read from -
hints
Hints used by theAbstractGridCoverage2DReader
subclasses. -
highestRes
protected double[] highestResHighest resolution available for this reader. -
closeMe
protected boolean closeMeTemp variable used in many readers. -
gzipped
protected boolean gzippedIn case we are trying to read from a GZipped file this will be set to true. -
originalGridRange
The originalGridRange
for theGridCoverage2D
of this reader. -
inStream
Input stream that can be used to initialize subclasses ofAbstractGridCoverage2DReader
. -
overViewResolutions
protected double[][] overViewResolutionsResolutions avialaible through an overviews based mechanism. -
coverageFactory
GridCoverageFactory
instance. -
scales
scales and offsets for rescaling -
offsets
-
inStreamSPI
-
dtLayout
protected DatasetLayout dtLayoutCoverageDatasetLayout
containing information about Overviews and Mask management
-
-
Constructor Details
-
AbstractGridCoverage2DReader
protected AbstractGridCoverage2DReader()Default protected constructor. Useful for wrappers. -
AbstractGridCoverage2DReader
Creates a new instance of aAIGReader
. I assume nothing about file extension.- Parameters:
input
- Source object for which we want to build anAIGReader
.- Throws:
DataSourceException
-
AbstractGridCoverage2DReader
Creates a new instance of aAIGReader
. I assume nothing about file extension.- Parameters:
input
- Source object for which we want to build anAIGReader
.hints
- Hints to be used by this reader throughout his life.- Throws:
DataSourceException
-
-
Method Details
-
checkName
This method is responsible for checking the provided coverage name against the coverage name for thisGridCoverage2DReader
.- Parameters:
coverageName
- the coverage name to check.- Returns:
true
if thisGridCoverage2DReader
contains the provided coverage name,false
otherwise.
-
read
public GridCoverage2D read(String coverageName, GeneralParameterValue... parameters) throws IllegalArgumentException, IOException Description copied from interface:GridCoverage2DReader
Retrieves theGridEnvelope
associated to the specified coverageName for thisGridCoverage2DReader
.- Specified by:
read
in interfaceGridCoverage2DReader
- Specified by:
read
in interfaceGridCoverageReader
- Parameters:
coverageName
- the name of the coverage to work withparameters
- an array ofGeneralParameterValue
that uses a subset of the available read params for thisGridCoverage2DReader
as specified by theFormat
- Returns:
- a
GridCoverage2D
for the underlying default coverage for thisGridCoverage2DReader
ornull
in case noGridCoverage2D
can be read for the provided parameters. - Throws:
IllegalArgumentException
- if the specified coverageName does not existIOException
- if a read operation failed for some other input/output reason, includingFileNotFoundException
if no file with the givenname
can be found, orIIOException
if an error was thrown by the underlying image library.
-
read
public abstract GridCoverage2D read(GeneralParameterValue... parameters) throws IllegalArgumentException, IOException Read the current grid coverage from the stream.Example:
- Specified by:
read
in interfaceGridCoverage2DReader
- Specified by:
read
in interfaceGridCoverageReader
- Parameters:
parameters
- Optional parameters matchingFormat.getReadParameters()
.- Returns:
- a grid coverage from the input source.
- Throws:
InvalidParameterNameException
- if a parameter inparameters
doesn't have a recognized name.InvalidParameterValueException
- if a parameter inparameters
doesn't have a valid value.ParameterNotFoundException
- if a parameter was required for the operation but was not provided in theparameters
list.CannotCreateGridCoverageException
- if the coverage can't be created for a logical reason (for example an unsupported format, or an inconsistency found in the data).IOException
- if a read operation failed for some other input/output reason, includingFileNotFoundException
if no file with the givenname
can be found, orIIOException
if an error was thrown by the underlying image library.InvalidParameterNameException
- if a parameter inparameters
doesn't have a recognized name.InvalidParameterValueException
- if a parameter inparameters
doesn't have a valid value.ParameterNotFoundException
- if a parameter was required for the operation but was not provided in theparameters
list.IllegalArgumentException
-
setReadParams
protected Integer setReadParams(OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) throws IOException, TransformException This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam)
.This method is responsible for preparing the read param for doing an
ImageReader.read(int, ImageReadParam)
. It sets the passedImageReadParam
in terms of decimation on reading using the provided requestedEnvelope and requestedDim to evaluate the needed resolution. It also returns andInteger
representing the index of the raster to be read when dealing with multipage raster.- Parameters:
overviewPolicy
- it can be one ofHints#VALUE_OVERVIEW_POLICY_IGNORE
,Hints#VALUE_OVERVIEW_POLICY_NEAREST
,Hints#VALUE_OVERVIEW_POLICY_QUALITY
orHints#VALUE_OVERVIEW_POLICY_SPEED
. It specifies the policy to compute the overviews level upon request.readP
- an instance ofImageReadParam
for setting the subsampling factors.requestedEnvelope
- theGeneralBounds
we are requesting.requestedDim
- the requested dimensions.- Returns:
- the index of the raster to read in the underlying data source.
- Throws:
IOException
TransformException
-
setReadParams
protected Integer setReadParams(String coverageName, OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) throws IOException, TransformException This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam)
.This method is responsible for preparing the read param for doing an
ImageReader.read(int, ImageReadParam)
. It sets the passedImageReadParam
in terms of decimation on reading using the provided requestedEnvelope and requestedDim to evaluate the needed resolution. It also returns andInteger
representing the index of the raster to be read when dealing with multipage raster.- Parameters:
overviewPolicy
- it can be one ofHints#VALUE_OVERVIEW_POLICY_IGNORE
,Hints#VALUE_OVERVIEW_POLICY_NEAREST
,Hints#VALUE_OVERVIEW_POLICY_QUALITY
orHints#VALUE_OVERVIEW_POLICY_SPEED
. It specifies the policy to compute the overviews level upon request.readP
- an instance ofImageReadParam
for setting the subsampling factors.requestedEnvelope
- theGeneralBounds
we are requesting.requestedDim
- the requested dimensions.- Returns:
- the index of the raster to read in the underlying data source.
- Throws:
IOException
TransformException
-
getReadingResolutions
public double[] getReadingResolutions(OverviewPolicy policy, double[] requestedResolution) throws IOException Returns the actual resolution used to read the data given the specified target resolution and the specified overview policy- Specified by:
getReadingResolutions
in interfaceGridCoverage2DReader
- Parameters:
policy
- theOverviewPolicy
to use during evaluation.requestedResolution
- the requested resolution- Returns:
- an array of 2 double with the resolution of the selected overview.
- Throws:
IOException
- in case an error occurs.
-
getReadingResolutions
public double[] getReadingResolutions(String coverageName, OverviewPolicy policy, double[] requestedResolution) throws IOException Returns the actual resolution used to read the data given the specified target resolution and the specified overview policy- Specified by:
getReadingResolutions
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage to work on.policy
- theOverviewPolicy
to use during evaluation.requestedResolution
- the requested resolution- Returns:
- an array of 2 double with the resolution of the selected overview.
- Throws:
IOException
- in case an error occurs.
-
decimationOnReadingControl
protected final void decimationOnReadingControl(String coverageName, Integer imageChoice, ImageReadParam readP, double[] requestedRes) This method is responsible for evaluating possible subsampling factors once the best resolution level has been found, in case we have support for overviews, or starting from the original coverage in case there are no overviews available.Anyhow this method should not be called directly but subclasses should make use of the setReadParams method instead in order to transparently look for overviews.
-
createImageCoverage
Creates aGridCoverage
for the providedPlanarImage
using theoriginalEnvelope
that was provided for this coverage.- Parameters:
image
- contains the data for the coverage to create.- Returns:
- a
GridCoverage
- Throws:
IOException
-
createImageCoverage
protected final GridCoverage createImageCoverage(String coverageName, PlanarImage image) throws IOException Creates aGridCoverage
for the providedPlanarImage
using theoriginalEnvelope
that was provided for this coverage.- Parameters:
image
- contains the data for the coverage to create.- Returns:
- a
GridCoverage
- Throws:
IOException
-
createImageCoverage
protected final GridCoverage2D createImageCoverage(PlanarImage image, MathTransform raster2Model) throws IOException Creates aGridCoverage
for the providedPlanarImage
using theraster2Model
that was provided for this coverage.This method is vital when working with coverages that have a raster to model transformation that is not a simple scale and translate.
- Parameters:
image
- contains the data for the coverage to create.raster2Model
- is theMathTransform
that maps from the raster space to the model space.- Returns:
- a
GridCoverage
- Throws:
IOException
-
createImageCoverage
protected final GridCoverage2D createImageCoverage(String coverageName, PlanarImage image, MathTransform raster2Model) throws IOException Creates aGridCoverage
for the providedPlanarImage
using theraster2Model
that was provided for this coverage.This method is vital when working with coverages that have a raster to model transformation that is not a simple scale and translate.
- Parameters:
image
- contains the data for the coverage to create.raster2Model
- is theMathTransform
that maps from the raster space to the model space.- Returns:
- a
GridCoverage
- Throws:
IOException
-
getResolution
protected static final double[] getResolution(GeneralBounds envelope, Rectangle2D dim, CoordinateReferenceSystem crs) throws DataSourceException This method is responsible for computing the resolutions in for the provided grid geometry in the provided crs.It is worth to note that the returned resolution array is of length of 2 and it always is lon, lat for the moment.
It might be worth to remove the axes reordering code when we are confident enough with the code to handle the north-up crs.TODO use orthodromic distance?
- Parameters:
envelope
- the GeneralEnvelope- Throws:
DataSourceException
-
getOriginalGridRange
Retrieves theGeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.- Specified by:
getOriginalGridRange
in interfaceGridCoverage2DReader
- Returns:
- the
GeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.
-
getOriginalGridRange
Retrieves theGeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.- Specified by:
getOriginalGridRange
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage to work with- Returns:
- the
GeneralGridEnvelope
that represents the raster grid dimensions of the highest resolution level in this dataset.
-
getCoordinateReferenceSystem
Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.- Specified by:
getCoordinateReferenceSystem
in interfaceGridCoverage2DReader
- Returns:
- the
GeneralBounds
for thisAbstractGridCoverage2DReader
.
-
getCoordinateReferenceSystem
Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.- Specified by:
getCoordinateReferenceSystem
in interfaceGridCoverage2DReader
- Returns:
- the
GeneralBounds
for thisAbstractGridCoverage2DReader
.
-
getOriginalEnvelope
Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.- Specified by:
getOriginalEnvelope
in interfaceGridCoverage2DReader
- Returns:
- the
GeneralBounds
for thisAbstractGridCoverage2DReader
.
-
getOriginalEnvelope
Retrieves theGeneralBounds
for thisAbstractGridCoverage2DReader
.- Specified by:
getOriginalEnvelope
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage to work on.- Returns:
- the
GeneralBounds
for thisAbstractGridCoverage2DReader
.
-
getOriginalGridToWorld
Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader
.- Specified by:
getOriginalGridToWorld
in interfaceGridCoverage2DReader
- Parameters:
pixInCell
- specifies the datum of the transformation we want.- Returns:
- the original grid to world transformation for this
AbstractGridCoverage2DReader
.
-
getOriginalGridToWorld
Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader
.- Specified by:
getOriginalGridToWorld
in interfaceGridCoverage2DReader
- Parameters:
pixInCell
- specifies the datum of the transformation we want.coverageName
- the name of the coverage to work with- Returns:
- the original grid to world transformation for this
AbstractGridCoverage2DReader
.
-
getSource
Retrieves the source for thisAbstractGridCoverage2DReader
.- Specified by:
getSource
in interfaceGridCoverageReader
- Returns:
- the source for this
AbstractGridCoverage2DReader
.
-
dispose
public void dispose()Disposes this reader.This method just tries to close the underlying
ImageInputStream
.- Specified by:
dispose
in interfaceGridCoverageReader
-
getGridCoverageNames
Description copied from interface:GridCoverageReader
Retrieve the list of coverages contained within the input source. Each grid can have a different coordinate system, number of dimensions and grid geometry. For example, a HDF-EOS file (GRID.HDF) contains 6 grid coverages each having a different projection. An empty array will be returned if no sub names exist.- Specified by:
getGridCoverageNames
in interfaceGridCoverageReader
- Returns:
- The list of grid coverages contained within the input source.
-
getMetadataNames
Description copied from interface:GridCoverageReader
Returns the list of metadata keywords associated with a specific gridCoverage referred by name. If no metadata is available, the array will be empty.- Specified by:
getMetadataNames
in interfaceGridCoverageReader
- Returns:
- The list of metadata keywords for the input source.
-
getMetadataNames
Description copied from interface:GridCoverageReader
Returns the list of metadata keywords associated with the input source as a whole (not associated with any particular grid coverage). If no metadata is available, the array will be empty.- Specified by:
getMetadataNames
in interfaceGridCoverageReader
- Returns:
- The list of metadata keywords for the input source.
- See Also:
-
getMetadataValue
Description copied from interface:GridCoverageReader
Retrieve the metadata value for a given metadata name.- Specified by:
getMetadataValue
in interfaceGridCoverageReader
- Parameters:
name
- Metadata keyword for which to retrieve metadata.- Returns:
- The metadata value for the given metadata name. Should be one of the name returned by
GridCoverageReader.getMetadataNames()
. - See Also:
-
getMetadataValue
Description copied from interface:GridCoverageReader
Retrieve the metadata value for a given metadata name for a specified coverage.- Specified by:
getMetadataValue
in interfaceGridCoverageReader
name
- Metadata keyword for which to retrieve metadata.- Returns:
- The metadata value for the given metadata name. Should be one of the name returned by
GridCoverageReader.getMetadataNames()
.
-
getGridCoverageCount
public int getGridCoverageCount()Description copied from interface:GridCoverageReader
Retrieve the number of coverages contained within the input source.- Specified by:
getGridCoverageCount
in interfaceGridCoverageReader
- Returns:
- The number of coverages contained within the input source.
- See Also:
-
getInfo
Information about this source.Subclasses should provide additional format specific information.
- Specified by:
getInfo
in interfaceGridCoverage2DReader
- Returns:
- ServiceInfo describing getSource().
-
getFiles
Returns a list of files making up the source data for this reader (as a whole). The default implementation returns the source, if it can be made into a File object, or null otherwise.- Throws:
IOException
-
getSourceAsFile
Returns the source as a File, if it can be converted to one, and it exists -
getInfo
Default implementation returns a FileResourceInfo containing same fileGroup list contained in the ServiceInfo object.- Specified by:
getInfo
in interfaceGridCoverage2DReader
- Returns:
- ResourceInfo describing a specific coverage.
-
finalize
Forcing disposal of thisAbstractGridCoverage2DReader
which may keep anImageInputStream
open. -
getDynamicParameters
Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader. Default implementation returns an empty set of parameters- Specified by:
getDynamicParameters
in interfaceGridCoverage2DReader
- Returns:
- the
Set
of dynamic read parameters supported by thisGridCoverage2DReader
. - Throws:
IOException
- in case an error occurs while creating theSet
of dynamic parameters.
-
getDynamicParameters
Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader. Default implementation returns an empty set of parameters- Specified by:
getDynamicParameters
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage to work with- Returns:
- the
Set
of dynamic read parameters supported by thisGridCoverage2DReader
. - Throws:
IOException
- in case an error occurs while creating theSet
of dynamic parameters.
-
getDatasetLayout
public DatasetLayout getDatasetLayout()Description copied from interface:GridCoverage2DReader
Returns theDatasetLayout
for the coverage.- Specified by:
getDatasetLayout
in interfaceGridCoverage2DReader
- Returns:
- a
DatasetLayout
object containing info about Overview number and Image masks.
-
getDatasetLayout
Description copied from interface:GridCoverage2DReader
Returns theDatasetLayout
for the specified coverage.- Specified by:
getDatasetLayout
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage for which we do want to get theDatasetLayout
- Returns:
- a
DatasetLayout
object containing info about Overview number and Image masks.
-
getOverviewGridEnvelope
- Throws:
IOException
-
getOverviewGridEnvelope
public GridEnvelope getOverviewGridEnvelope(String coverageName, int overviewIndex) throws IOException - Throws:
IOException
-
getImageLayout
Description copied from interface:GridCoverage2DReader
Retrieve theImageLayout
for the specified coverage.Throw an
IllegalArgumentException
in case the name is wrong and/or no such a coverage exists.- Specified by:
getImageLayout
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage for which we want to know theGridEnvelope
.- Returns:
- an
ImageLayout
that is useful for actually knowing theColorModel
, theSampleModel
as well as the tile grid for a certain coverage. - Throws:
IOException
-
getImageLayout
Description copied from interface:GridCoverage2DReader
Retrieve theImageLayout
for the default coverage.Throw an
IllegalArgumentException
in case the name is wrong and/or no such a coverage exists.- Specified by:
getImageLayout
in interfaceGridCoverage2DReader
- Returns:
- an
ImageLayout
that is useful for actually knowing theColorModel
, theSampleModel
as well as the tile grid for the default coverage. - Throws:
IOException
-
setLayout
Extract the ImageLayout from the provided reader for the first available image.- Parameters:
reader
- an istance ofImageReader
- Throws:
IOException
- in case an error occurs
-
setlayout
protected void setlayout(ImageLayout layout) Set the provided layout for thisGridCoverage2DReader
-- Parameters:
layout
- theImageLayout
to set. It must be nont null
-
getResolutionLevels
Description copied from interface:GridCoverage2DReader
Retrieve the resolution levels for the default coverage.Throw an
IllegalArgumentException
in case the name is wrong and/or no such a coverage exists.- Specified by:
getResolutionLevels
in interfaceGridCoverage2DReader
- Returns:
- the resolution levels for the default coverage.
- Throws:
IOException
-
getResolutionLevels
Description copied from interface:GridCoverage2DReader
Retrieve the resolution levels for the specified coverage.Throw an
IllegalArgumentException
in case the name is wrong and/or no such a coverage exists.- Specified by:
getResolutionLevels
in interfaceGridCoverage2DReader
- Parameters:
coverageName
- the name of the coverage for which we want to know the resolution levels.- Returns:
- the resolution levels for the specified coverage.
- Throws:
IOException
-
getHighestRes
-
getHighestRes
protected double[] getHighestRes() -
getGroundControlPoints
Return the ground control points for the default coverage, or null if there are none -
getGroundControlPoints
Return the ground control points for the specified, or null if there are none -
getRescaledRasterToModel
Computes the raster to model of a rescaled output raster, based on the original transform and output raster scaling factor -
getSibling
Retrieves the sibling of the specified file, if available, or null otherwise -
addAllSiblings
Adds all the siblings that could be found to exist to the given file list -
addSiblings
Adds the specified siblings, if not null, and existing -
getMultiLevelROIProvider
-
collectScaleOffset
Collects the scales and offsets for value rescaling from the metadata, if present -
getPamDataset
Method that looks for an externalPAMDataset
first, and if not found, checks for an internalGDALMetadata
inside a custom tag.The method is tolerant to invalid metadata contents and will log at INFO level in case of invalid metadata structure: there might be files with invalid metadata that used to be read just fine before PAM dataset reading was implemented.
-
getPamDataset
public static PAMDataset getPamDataset(TIFFImageMetadata metadata) If available, parses the GDAL_METADATA tag contents and transforms it into a PAMDataset
-