Class ProductFlipper
- java.lang.Object
-
- org.esa.snap.core.dataio.AbstractProductReader
-
- org.esa.snap.core.dataio.AbstractProductBuilder
-
- org.esa.snap.core.dataio.ProductFlipper
-
- All Implemented Interfaces:
ProductReader
- Direct Known Subclasses:
ProductFlipperExt
public class ProductFlipper extends AbstractProductBuilder
- Version:
- $Revision$ $Date$
-
-
Field Summary
Fields Modifier and Type Field Description static int
FLIP_BOTH
static int
FLIP_HORIZONTAL
static int
FLIP_VERTICAL
-
Fields inherited from class org.esa.snap.core.dataio.AbstractProductBuilder
bandMap, newProductDesc, newProductName, sceneRasterHeight, sceneRasterWidth, sourceProduct, sourceProductOwner
-
-
Constructor Summary
Constructors Constructor Description ProductFlipper(int flipType)
ProductFlipper(int flipType, boolean sourceProductOwner)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.static Product
createFlippedProduct(Product sourceProduct, boolean sourceProductOwner, int flipType, String name, String desc)
static Product
createFlippedProduct(Product sourceProduct, int flipType, String name, String desc)
int
getFlipType()
void
readBandRasterData(Band destBand, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm)
Reads raster data from the data source specified by the given destination band into the given in-memory buffer and region.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 thereadBandRasterDataSubSampling
method after an optional spatial subset has been applied to the input parameters.protected Product
readProductNodesImpl()
Reads a data product and returns a in-memory representation of it.-
Methods inherited from class org.esa.snap.core.dataio.AbstractProductBuilder
addAttribString, addFlagCodingsToProduct, addIndexCodingsToProduct, addMetadataToProduct, cloneFlags, cloneIndexes, cloneMetadataAttributes, cloneMetadataElements, cloneMetadataElementsAndAttributes, disposeBandMap, getSceneRasterHeight, getSceneRasterWidth, getSourceProduct, isInstanceOfValidInputType, isSourceProductOwner, readProductNodes, setNewProductDesc, setNewProductName
-
Methods inherited from class org.esa.snap.core.dataio.AbstractProductReader
buildTiePointGrid, buildTiePointGrid, configurePreferredTileSize, convertInputToPath, createTiePointGrid, getGridDiscontinutity, getInput, getProductComponents, getReaderPlugIn, getSubsetDef, isMetadataIgnored, isNodeAccepted, isSubsetReadingFullySupported, readProductNodes, setInput, setSubsetDef, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.esa.snap.core.dataio.ProductReader
readTiePointGridRasterData
-
-
-
-
Field Detail
-
FLIP_HORIZONTAL
public static final int FLIP_HORIZONTAL
- See Also:
- Constant Field Values
-
FLIP_VERTICAL
public static final int FLIP_VERTICAL
- See Also:
- Constant Field Values
-
FLIP_BOTH
public static final int FLIP_BOTH
- See Also:
- Constant Field Values
-
-
Method Detail
-
createFlippedProduct
public static Product createFlippedProduct(Product sourceProduct, int flipType, String name, String desc) throws IOException
- Throws:
IOException
-
createFlippedProduct
public static Product createFlippedProduct(Product sourceProduct, boolean sourceProductOwner, int flipType, String name, String desc) throws IOException
- Throws:
IOException
-
getFlipType
public int getFlipType()
-
readProductNodesImpl
protected Product readProductNodesImpl() throws IOException
Reads a data product and returns a in-memory representation of it. This method was called byreadProductNodes(input, subsetInfo)
of the abstract superclass.- Specified by:
readProductNodesImpl
in classAbstractProductBuilder
- Returns:
- a new product instance
- Throws:
IllegalArgumentException
- ifinput
type is not one of the supported input sources.IOException
- if an I/O error occurs
-
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 classAbstractProductBuilder
- Throws:
IOException
- if an I/O error occurs
-
readBandRasterData
public void readBandRasterData(Band destBand, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, ProgressMonitor pm) throws IOException
Reads raster data from the data source specified by the given destination band into the given in-memory buffer and region.For a complete description, please refer to the
ProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
interface definition} of this method.The
AbstractProductReader
implements this method using the Template Method pattern. The template method in this case is the abstract method to which the call is delegated after an optional spatial subset given byAbstractProductReader.getSubsetDef()
has been applied to the input parameters.- Specified by:
readBandRasterData
in interfaceProductReader
- Overrides:
readBandRasterData
in classAbstractProductReader
- Parameters:
destBand
- the destination band which identifies the data source from which to read the sample valuesdestOffsetX
- 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-ordinatesdestBuffer
- the destination buffer which receives the sample values to be readpm
- a monitor to inform the user about progress- Throws:
IOException
- if an I/O error occursIllegalArgumentException
- if the number of elements destination buffer not equalsdestWidth * destHeight
or the destination region is out of the band's raster- See Also:
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)
,AbstractProductReader.getSubsetDef()
,ProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
,AbstractBand.getRasterWidth()
,AbstractBand.getRasterHeight()
-
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 thereadBandRasterDataSubSampling
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
readBandRasterDataSubSampling
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 valuesdestOffsetX
- 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-ordinatesdestBuffer
- the destination buffer which receives the sample values to be readpm
- a monitor to inform the user about progress- Throws:
IOException
- if an I/O error occurs- See Also:
AbstractProductReader.getSubsetDef()
-
-