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
The DimapProductReader class is an implementation of the ProductReader interface exclusively for data products having the BEAM-DIMAP product format.
Version:
$Revision$ $Date$
See Also:
  • Constructor Details

    • 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 be null
  • Method Details

    • getProduct

      public Product getProduct()
    • getInputDir

      public File getInputDir()
    • getInputFile

      public File getInputFile()
    • readProductNodesImpl

      protected Product readProductNodesImpl() throws IOException
      Provides an implementation of the readProductNodes 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 class AbstractProductReader
      Returns:
      a new product instance
      Throws:
      IOException - if an I/O error occurs
      IllegalFileFormatException - 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 the } 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 call. Since the destOffsetX and destOffsetY parameters are already taken into acount in the sourceOffsetX and sourceOffsetY parameters, an implementor of this method is free to ignore them.

      Specified by:
      readBandRasterDataImpl in class AbstractProductReader
      Parameters:
      sourceOffsetX - the absolute X-offset in source raster co-ordinates
      sourceOffsetY - the absolute Y-offset in source raster co-ordinates
      sourceWidth - the width of region providing samples to be read given in source raster co-ordinates
      sourceHeight - the height of region providing samples to be read given in source raster co-ordinates
      sourceStepX - the sub-sampling in X direction within the region providing samples to be read
      sourceStepY - the sub-sampling in Y direction within the region providing samples to be read
      destBand - the destination band which identifies the data source from which to read the sample values
      destOffsetX - the X-offset in the band's raster co-ordinates
      destOffsetY - the Y-offset in the band's raster co-ordinates
      destWidth - the width of region to be read given in the band's raster co-ordinates
      destHeight - the height of region to be read given in the band's raster co-ordinates
      destBuffer - the destination buffer which receives the sample values to be read
      pm - a monitor to inform the user about progress
      Throws:
      IOException - if an I/O error occurs
      See Also:
    • 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 class AbstractProductReader
      Returns:
      false or true, 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 interface ProductReader
      Overrides:
      close in class AbstractProductReader
      Throws:
      IOException - if an I/O error occurs
    • addExtender

      public void addExtender(DimapProductReader.ReaderExtender extender)