Class WriteOp
- java.lang.Object
-
- org.esa.snap.core.gpf.Operator
-
- org.esa.snap.core.gpf.common.WriteOp
-
@OperatorMetadata(alias="Write", category="Input-Output", version="1.3", authors="Marco Zuehlke, Norman Fomferra", copyright="(c) 2010 by Brockmann Consult", description="Writes a data product to a file.", autoWriteDisabled=true) public class WriteOp extends Operator
This standard operator is used to store a data product to a specified file location.It is used by the framework, e.g. the
gpt
command line tool, to write target products.It may also be used by clients to write out break-point product files. This is done by placing a
WriteOp
node after any node in a processing graph:<node id="anyNodeId"> <operator>Write</operator> <sources> <source>${anySourceNodeId}</source> </sources> <parameters> <file>/home/norman/eo-data/output/test.nc</file> <formatName>NetCDF</formatName> <deleteOutputOnFailure>true</deleteOutputOnFailure> <writeEntireTileRows>true</writeEntireTileRows> <clearCacheAfterRowWrite>true</clearCacheAfterRowWrite> </parameters> </node>
Clients may also use this operator in a programmatic way:
WriteOp writeOp = new WriteOp(sourceProduct, file, formatName); writeOp.setDeleteOutputOnFailure(true); writeOp.setWriteEntireTileRows(true); writeOp.writeProduct(progressMonitor);
- Since:
- BEAM 4.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WriteOp.Spi
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canComputeTile()
Determines whether this operator'scomputeTileStack
method can be used.boolean
canComputeTileStack()
Determines whether this operator'scomputeTileStack
method can be used.void
computeTile(Band targetBand, Tile targetTile, ProgressMonitor pm)
Called by the framework in order to compute a tile for the given target band.void
computeTileStack(Map<Band,Tile> targetTiles, Rectangle targetRectangle, ProgressMonitor pm)
Called by the framework in order to compute the stack of tiles for the given target bands.void
dispose()
Releases the resources the operator has acquired during its lifetime.void
doExecute(ProgressMonitor pm)
Executes the operator.File
getFile()
String
getFormatName()
void
initialize()
Initializes this operator and sets the one and only target product.boolean
isClearCacheAfterRowWrite()
boolean
isDeleteOutputOnFailure()
boolean
isWriteEntireTileRows()
void
setClearCacheAfterRowWrite(boolean clearCacheAfterRowWrite)
void
setDeleteOutputOnFailure(boolean deleteOutputOnFailure)
void
setFile(File file)
void
setFormatName(String formatName)
void
setIncremental(boolean incremental)
void
setWriteEntireTileRows(boolean writeEntireTileRows)
void
writeProduct(ProgressMonitor pm)
Writes the source product.-
Methods inherited from class org.esa.snap.core.gpf.Operator
checkForCancellation, ensureSceneGeoCoding, ensureSingleRasterSize, ensureSingleRasterSize, execute, finalize, getId, getLogger, getParameter, getParameter, getProductManager, getSourceProduct, getSourceProduct, getSourceProductId, getSourceProducts, getSourceTile, getSourceTile, getSpi, getTargetProduct, getTargetProperty, setLogger, setParameter, setParameterDefaultValues, setRequiresAllBands, setSourceProduct, setSourceProduct, setSourceProducts, setSpi, setTargetProduct, stopTileComputationObservation, update
-
-
-
-
Method Detail
-
getFile
public File getFile()
-
setFile
public void setFile(File file)
-
getFormatName
public String getFormatName()
-
setIncremental
public void setIncremental(boolean incremental)
-
setFormatName
public void setFormatName(String formatName)
-
isDeleteOutputOnFailure
public boolean isDeleteOutputOnFailure()
-
setDeleteOutputOnFailure
public void setDeleteOutputOnFailure(boolean deleteOutputOnFailure)
-
isWriteEntireTileRows
public boolean isWriteEntireTileRows()
-
setWriteEntireTileRows
public void setWriteEntireTileRows(boolean writeEntireTileRows)
-
isClearCacheAfterRowWrite
public boolean isClearCacheAfterRowWrite()
-
setClearCacheAfterRowWrite
public void setClearCacheAfterRowWrite(boolean clearCacheAfterRowWrite)
-
canComputeTile
public boolean canComputeTile()
Description copied from class:Operator
Determines whether this operator'scomputeTileStack
method can be used.The default implementation of this method checks if the this operator's class overrides the
Operator.computeTileStack
method.- Overrides:
canComputeTile
in classOperator
- Returns:
true
if so.
-
canComputeTileStack
public boolean canComputeTileStack()
Description copied from class:Operator
Determines whether this operator'scomputeTileStack
method can be used.The default implementation of this method checks if the this operator's class overrides the
Operator.computeTileStack
method.- Overrides:
canComputeTileStack
in classOperator
- Returns:
true
if so.
-
writeProduct
public void writeProduct(ProgressMonitor pm)
Writes the source product.- Parameters:
pm
- A progress monitor.
-
initialize
public void initialize() throws OperatorException
Description copied from class:Operator
Initializes this operator and sets the one and only target product.The target product can be either defined by a field of type
Product
annotated with theTargetProduct
annotation or by callingOperator.setTargetProduct(org.esa.snap.core.datamodel.Product)
method.This method shall never be called directly. The framework calls this method after it has created an instance of this
Operator
. This will occur only once durting the lifetime of anOperator
instance. If not already done, calling theOperator.getTargetProduct()
will always trigger a call to theinitialize()
method.Any client code that must be performed before computation of tile data should be placed here.
- Specified by:
initialize
in classOperator
- Throws:
OperatorException
- If an error occurs during operator initialisation.- See Also:
Operator.getTargetProduct()
-
doExecute
public void doExecute(ProgressMonitor pm)
Description copied from class:Operator
Executes the operator.For operators that compute raster data tiles, the method is usually a no-op. Other operators might perform their main work in this method, e.g. perform some image analysis such as extracting statistics and other features from data products.
Don't call this method directly. The framework may call this method
- once before the very first tile is computed, or
- as a result of a call to
Operator.execute(ProgressMonitor)
.
The default implementation only progresses the progress monitor.
-
computeTile
public void computeTile(Band targetBand, Tile targetTile, ProgressMonitor pm) throws OperatorException
Description copied from class:Operator
Called by the framework in order to compute a tile for the given target band.The default implementation throws a runtime exception with the message "not implemented".
This method shall never be called directly.
- Overrides:
computeTile
in classOperator
- Parameters:
targetBand
- The target band.targetTile
- The current tile associated with the target band to be computed.pm
- A progress monitor which should be used to determine computation cancellation requests.- Throws:
OperatorException
- If an error occurs during computation of the target raster.
-
computeTileStack
public void computeTileStack(Map<Band,Tile> targetTiles, Rectangle targetRectangle, ProgressMonitor pm) throws OperatorException
Description copied from class:Operator
Called by the framework in order to compute the stack of tiles for the given target bands.The default implementation throws a runtime exception with the message "not implemented".
This method shall never be called directly.
- Overrides:
computeTileStack
in classOperator
- Parameters:
targetTiles
- The current tiles to be computed for each target band.targetRectangle
- The area in pixel coordinates to be computed (same for all rasters intargetRasters
).pm
- A progress monitor which should be used to determine computation cancellation requests.- Throws:
OperatorException
- If an error occurs during computation of the target rasters.
-
-