Class 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
    • Constructor Detail

      • WriteOp

        public WriteOp()
    • 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's computeTileStack 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 class Operator
        Returns:
        true if so.
      • canComputeTileStack

        public boolean canComputeTileStack()
        Description copied from class: Operator
        Determines whether this operator's computeTileStack 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 class Operator
        Returns:
        true if so.
      • writeProduct

        public void writeProduct​(ProgressMonitor pm)
        Writes the source product.
        Parameters:
        pm - A progress monitor.
      • 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

        1. once before the very first tile is computed, or
        2. as a result of a call to Operator.execute(ProgressMonitor).

        The default implementation only progresses the progress monitor.

        Overrides:
        doExecute in class Operator
        Parameters:
        pm - A progress monitor to be notified for long-running tasks.
      • 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 class Operator
        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 class Operator
        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 in targetRasters).
        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.
      • dispose

        public void dispose()
        Description copied from class: Operator
        Releases the resources the operator has acquired during its lifetime. The default implementation does nothing.

        Overrides should make sure to call super.dispose() as well.

        Overrides:
        dispose in class Operator