Class DimapProductReader
- java.lang.Object
-
- org.esa.snap.core.dataio.AbstractProductReader
-
- org.esa.snap.core.dataio.dimap.DimapProductReader
-
- All Implemented Interfaces:
ProductReader
public class DimapProductReader extends AbstractProductReader
TheDimapProductReader
class is an implementation of theProductReader
interface exclusively for data products having the BEAM-DIMAP product format.- Version:
- $Revision$ $Date$
- See Also:
DimapProductReaderPlugIn
,DimapProductWriterPlugIn
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DimapProductReader.ReaderExtender
-
Constructor Summary
Constructors Constructor Description DimapProductReader(ProductReaderPlugIn readerPlugIn)
Construct a new instance of a product reader for the given BEAM-DIMAP product reader plug-in.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addExtender(DimapProductReader.ReaderExtender extender)
void
bindProduct(Object input, Product existingProduct)
void
close()
Closes the access to all currently opened resources such as file input streams and all resources of this children directly owned by this reader.File
getInputDir()
File
getInputFile()
Product
getProduct()
boolean
isSubsetReadingFullySupported()
Returns if the reader fully supports the reading of subsets.protected Product
processProduct(Product existingProduct)
protected void
readBandRasterDataImpl(int sourceOffsetX, int sourceOffsetY, int sourceWidth, int sourceHeight, int sourceStepX, int sourceStepY, Band destBand, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm)
The template method which is called by theAbstractProductReader.readBandRasterDataImpl(int, int, int, int, int, int, Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
} method after an optional spatial subset has been applied to the input parameters.protected Product
readProductNodesImpl()
Provides an implementation of thereadProductNodes
interface method.void
readTiePointGridRasterData(TiePointGrid tpg, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm)
-
Methods inherited from class org.esa.snap.core.dataio.AbstractProductReader
buildTiePointGrid, buildTiePointGrid, configurePreferredTileSize, convertInputToPath, createTiePointGrid, getGridDiscontinutity, getInput, getProductComponents, getReaderPlugIn, getSubsetDef, isInstanceOfValidInputType, isMetadataIgnored, isNodeAccepted, readBandRasterData, readProductNodes, setInput, setSubsetDef, toString
-
-
-
-
Constructor Detail
-
DimapProductReader
public DimapProductReader(ProductReaderPlugIn readerPlugIn)
Construct a new instance of a product reader for the given BEAM-DIMAP product reader plug-in.- Parameters:
readerPlugIn
- the given BEAM-DIMAP product writer plug-in, must not benull
-
-
Method Detail
-
getProduct
public Product getProduct()
-
getInputDir
public File getInputDir()
-
getInputFile
public File getInputFile()
-
readProductNodesImpl
protected Product readProductNodesImpl() throws IOException
Provides an implementation of thereadProductNodes
interface method. Clients implementing this method can be sure that the input object and eventually the subset information has already been set.This method is called as a last step in the
readProductNodes(input, subsetInfo)
method.- Specified by:
readProductNodesImpl
in classAbstractProductReader
- Returns:
- a new product instance
- Throws:
IOException
- if an I/O error occursIllegalFileFormatException
- if the input file in not decodeable
-
bindProduct
public void bindProduct(Object input, Product existingProduct) throws IOException
- Throws:
IOException
-
processProduct
protected Product processProduct(Product existingProduct) throws IOException
- Throws:
IOException
-
readBandRasterDataImpl
protected void readBandRasterDataImpl(int sourceOffsetX, int sourceOffsetY, int sourceWidth, int sourceHeight, int sourceStepX, int sourceStepY, Band destBand, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm) throws IOException
The template method which is called by theAbstractProductReader.readBandRasterDataImpl(int, int, int, int, int, int, Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
} method after an optional spatial subset has been applied to the input parameters.The destination band, buffer and region parameters are exactly the ones passed to the original
AbstractProductReader.readBandRasterDataImpl(int, int, int, int, int, int, org.esa.snap.core.datamodel.Band, int, int, int, int, org.esa.snap.core.datamodel.ProductData, com.bc.ceres.core.ProgressMonitor)
call. Since thedestOffsetX
anddestOffsetY
parameters are already taken into acount in thesourceOffsetX
andsourceOffsetY
parameters, an implementor of this method is free to ignore them.- Specified by:
readBandRasterDataImpl
in classAbstractProductReader
- Parameters:
sourceOffsetX
- the absolute X-offset in source raster co-ordinatessourceOffsetY
- the absolute Y-offset in source raster co-ordinatessourceWidth
- the width of region providing samples to be read given in source raster co-ordinatessourceHeight
- the height of region providing samples to be read given in source raster co-ordinatessourceStepX
- the sub-sampling in X direction within the region providing samples to be readsourceStepY
- the sub-sampling in Y direction within the region providing samples to be readdestBand
- the destination band which identifies the data source from which to read the sample valuesdestBuffer
- the destination buffer which receives the sample values to be readdestOffsetX
- the X-offset in the band's raster co-ordinatesdestOffsetY
- the Y-offset in the band's raster co-ordinatesdestWidth
- the width of region to be read given in the band's raster co-ordinatesdestHeight
- the height of region to be read given in the band's raster co-ordinatespm
- a monitor to inform the user about progress- Throws:
IOException
- if an I/O error occurs- See Also:
AbstractProductReader.getSubsetDef()
-
readTiePointGridRasterData
public void readTiePointGridRasterData(TiePointGrid tpg, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm) throws IOException
- Throws:
IOException
-
isSubsetReadingFullySupported
public boolean isSubsetReadingFullySupported()
Description copied from class:AbstractProductReader
Returns if the reader fully supports the reading of subsets. Including sub-sampling in X- and Y-direction. This method is intended to be a hint to the SNAP framework. Depending on the return value the reading can be optimised.Implementations of this class should override this method in order to specify if subset reading is fully supported. The default implementation returns
false
- Overrides:
isSubsetReadingFullySupported
in classAbstractProductReader
- Returns:
false
ortrue
, depending if subset reading is fully supported or not.
-
close
public void close() throws IOException
Closes the access to all currently opened resources such as file input streams and all resources of this children directly owned by this reader. Its primary use is to allow the garbage collector to perform a vanilla job.This method should be called only if it is for sure that this object instance will never be used again. The results of referencing an instance of this class after a call to
close()
are undefined.Overrides of this method should always call
super.close();
after disposing this instance.- Specified by:
close
in interfaceProductReader
- Overrides:
close
in classAbstractProductReader
- Throws:
IOException
- if an I/O error occurs
-
addExtender
public void addExtender(DimapProductReader.ReaderExtender extender)
-
-