org.esa.beam.framework.datamodel
Class Product

java.lang.Object
  extended by com.bc.ceres.core.ExtensibleObject
      extended by org.esa.beam.framework.datamodel.ProductNode
          extended by org.esa.beam.framework.datamodel.Product
All Implemented Interfaces:
com.bc.ceres.core.Extensible

public class Product
extends ProductNode

Product instances are an in-memory representation of a remote sensing data product. The product is more an abstract hull containing references to the data of the product or readers to retrieve the data on demant. The product itself does not hold the remote sensing data. Data products can contain multiple geophysical parameters stored as bands and can also have multiple metadata attributes. Also, a Product can contain any number of TiePointGrids holding the tie point data.

Every product can also have a product reader and writer assigned to it. The reader represents the data source from which a product was created, whereas the writer represents the data sink. Both, the source and the sink must not necessarily store data in the same format. Furthermore, it is not mandatory for a product to have both of them.

Version:
$Revision: 8401 $ $Date: 2010-02-12 17:17:06 +0100 (Fr, 12 Feb 2010) $
Author:
Norman Fomferra

Nested Class Summary
static interface Product.AutoGrouping
          AutoGrouping can be used by an application to auto-group a long list of product nodes (e.g.
 
Field Summary
static String GCP_MASK_NAME
          Deprecated. 
static String GEOMETRY_FEATURE_TYPE_NAME
           
static String HISTORY_ROOT_NAME
           
static String METADATA_ROOT_NAME
           
static String PIN_MASK_NAME
          Deprecated. 
static String PROPERTY_NAME_GEOCODING
           
static String PROPERTY_NAME_PRODUCT_TYPE
           
 
Fields inherited from class org.esa.beam.framework.datamodel.ProductNode
PROPERTY_NAME_DESCRIPTION, PROPERTY_NAME_NAME
 
Constructor Summary
Product(String name, String type, int sceneRasterWidth, int sceneRasterHeight)
          Creates a new product without any reader (in-memory product)
Product(String name, String type, int sceneRasterWidth, int sceneRasterHeight, ProductReader reader)
          Constructs a new product with the given name and the given reader.
 
Method Summary
 void acceptVisitor(ProductVisitor visitor)
          Accepts the given visitor.
 void addBand(Band band)
          Adds the given band to this product.
 Band addBand(String bandName, int dataType)
          Creates a new band with the given name and data type and adds it to this product and returns it.
 Band addBand(String bandName, String expression)
          Creates a new band with the given name and adds it to this product and returns it.
 Band addBand(String bandName, String expression, int dataType)
          Creates a new band with the given name and data type and adds it to this product and returns it.
 void addBitmaskDef(BitmaskDef bitmaskDef)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 Mask addMask(String maskName, Mask.ImageType imageType)
          Creates a new mask with the given name and image type and adds it to this product and returns it.
 Mask addMask(String maskName, String expression, String description, Color color, double transparency)
          Creates a new mask using a band arithmetic expression and adds it to this product and returns it.
 Mask addMask(String maskName, VectorDataNode vectorDataNode, String description, Color color, double transparency)
          Creates a new mask based on the geometries contained in a vector data node, adds it to this product and returns it.
 boolean addProductNodeListener(ProductNodeListener listener)
          Adds a ProductNodeListener to this product.
 void addTiePointGrid(TiePointGrid tiePointGrid)
          Adds the given tie-point grid to this product.
 boolean canBeOrthorectified()
          Checks whether or not this product can be ortorectified.
 void closeIO()
          Closes the file I/O for this product.
 void closeProductReader()
          Closes and clears this product's reader (if any).
 void closeProductWriter()
          Closes and clears this product's writer (if any).
 boolean containsBand(String name)
          Tests if a band with the given name is contained in this product.
 boolean containsBitmaskDef(BitmaskDef def)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 boolean containsPixel(float x, float y)
          Tests if the given pixel position is within the product pixel bounds.
 boolean containsPixel(PixelPos pixelPos)
          Tests if the given pixel position is within the product pixel bounds.
 boolean containsRasterDataNode(String name)
          Tests if a raster data node with the given name is contained in this product.
 boolean containsTiePointGrid(String name)
          Tests if a tie-point grid with the given name is contained in this product.
 WritableNamespace createBandArithmeticDefaultNamespace()
          Creates a namespace to be used by parsers for band arithmetic expressions.
 Parser createBandArithmeticParser()
          Creates a parser for band arithmetic expressions.
 Product createFlippedProduct(int flipType, String name, String desc)
          Creates flipped raster-data version of this product.
 String createPixelInfoString(int pixelX, int pixelY)
          Creates a string containing all available information at the given pixel position.
 Product createProjectedProduct(MapInfo mapInfo, String name, String desc)
          Creates a map-projected version of this product.
 Product createSubset(ProductSubsetDef subsetDef, String name, String desc)
          Creates a subset of this product.
 BitRaster createValidMask(String expression, com.bc.ceres.core.ProgressMonitor pm)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 BitRaster createValidMask(Term term, com.bc.ceres.core.ProgressMonitor pm)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 void dispose()
          Releases all of the resources used by this object instance and all of its owned children.
protected  void fireNodeAdded(ProductNode childNode, ProductNodeGroup nodeGroup)
           
protected  void fireNodeChanged(ProductNode sourceNode, String propertyName, Object oldValue, Object newValue)
           
protected  void fireNodeDataChanged(DataNode sourceNode)
           
protected  void fireNodeRemoved(ProductNode childNode, ProductNodeGroup nodeGroup)
           
 String[] getAllFlagNames()
          Returns the names of all flags of all flag datasets contained this product.
 Product.AutoGrouping getAutoGrouping()
          Gets the auto-grouping applicable to product nodes contained in this product.
 Band getBand(String name)
          Returns the band with the given name.
 Band getBandAt(int index)
          Returns the band at the given index.
 ProductNodeGroup<Band> getBandGroup()
          Gets the band group of this product.
 int getBandIndex(String name)
          Returns the index for the band with the given name.
 String[] getBandNames()
          Returns a string array containing the names of the bands contained in this product
 Band[] getBands()
          Returns an array of bands contained in this product
 BitmaskDef getBitmaskDef(String name)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 BitmaskDef getBitmaskDefAt(int index)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 String[] getBitmaskDefNames()
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 BitmaskDef[] getBitmaskDefs()
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 ProductData.UTC getEndTime()
          Gets the (sensing) stop time associated with the last raster data line.
 File getFileLocation()
          Retrieves the disk location of this product.
 ProductNodeGroup<FlagCoding> getFlagCodingGroup()
           
 PlacemarkGroup getGcpGroup()
          Gets the group of ground-control points (GCPs).
 GeoCoding getGeoCoding()
          Returns the geo-coding used for this data product.
 ProductNodeGroup<IndexCoding> getIndexCodingGroup()
           
 ProductNodeGroup<Mask> getMaskGroup()
           
 MetadataElement getMetadataRoot()
          Gets the root element of the associated metadata.
 int getNumBands()
           
 int getNumBitmaskDefs()
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 int getNumTiePointGrids()
          Returns the number of tie-point grids contained in this product
 PlacemarkGroup getPinGroup()
          Gets the group of pins.
 PointingFactory getPointingFactory()
          Gets the pointing factory associated with this data product.
 Dimension getPreferredTileSize()
          Gets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.
 ProductManager getProductManager()
          Returns the product manager for this product.
 ProductNodeListener[] getProductNodeListeners()
           
 ProductReader getProductReader()
          Returns the reader which was used to create this product in-memory represention from an external source and which will be used to (re-)load band rasters.
 String getProductType()
          Gets the product type string.
 ProductWriter getProductWriter()
          Returns the writer which will be used to write modifications of this product's in-memory represention to an external destination.
 String getQuicklookBandName()
          Gets the name of the band suitable for quicklook generation.
 RasterDataNode getRasterDataNode(String name)
          Gets the raster data node with the given name.
 long getRawStorageSize(ProductSubsetDef subsetDef)
          Gets an estimated, raw storage size in bytes of this product node.
 int getRefNo()
           
 ProductNode[] getRemovedChildNodes()
           
 int getSceneRasterHeight()
          Returns the scene height in pixels for this data product.
 int getSceneRasterWidth()
          Returns the scene width in pixels for this data product.
 ProductData.UTC getStartTime()
          Gets the (sensing) start time associated with the first raster data line.
 TiePointGrid getTiePointGrid(String name)
          Returns the tie-point grid with the given name.
 TiePointGrid getTiePointGridAt(int index)
          Returns the tie-point grid at the given index.
 ProductNodeGroup<TiePointGrid> getTiePointGridGroup()
          Gets the tie-point grid group of this product.
 int getTiePointGridIndex(String name)
          Deprecated. since BEAM 4.9. No usage, considered useless.
 String[] getTiePointGridNames()
          Returns a string array containing the names of the tie-point grids contained in this product
 TiePointGrid[] getTiePointGrids()
          Returns an array of tie-point grids contained in this product
 BitRaster getValidMask(String id)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 ProductNodeGroup<VectorDataNode> getVectorDataGroup()
           
protected  boolean hasProductNodeListeners()
           
 boolean isCompatibleBandArithmeticExpression(String expression)
          Tests if the given band arithmetic expression can be computed using this product.
 boolean isCompatibleBandArithmeticExpression(String expression, Parser parser)
          Tests if the given band arithmetic expression can be computed using this product and a given expression parser.
 boolean isCompatibleBitmaskDef(BitmaskDef bitmaskDef)
          Deprecated. since BEAM 4.7
 boolean isCompatibleProduct(Product product, float eps)
          Checks whether or not the given product is compatible with this product.
 boolean isCompatibleTerm(Term term)
          Deprecated. since BEAM 4.9. No usage, considered useless.
 boolean isUsingSingleGeoCoding()
          Tests if all bands of this product are using a single, uniform geo-coding.
 void moveBitmaskDef(BitmaskDef bitmaskDef, int index)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 Term parseExpression(String expression)
          Parses a mathematical expression given as a text string.
 void readBitmask(int offsetX, int offsetY, int width, int height, Term bitmaskTerm, boolean[] bitmask)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 void readBitmask(int offsetX, int offsetY, int width, int height, Term bitmaskTerm, boolean[] bitmask, com.bc.ceres.core.ProgressMonitor pm)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 void readBitmask(int offsetX, int offsetY, int width, int height, Term bitmaskTerm, byte[] bitmask, byte trueValue, byte falseValue)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 void readBitmask(int offsetX, int offsetY, int width, int height, Term bitmaskTerm, byte[] bitmask, byte trueValue, byte falseValue, com.bc.ceres.core.ProgressMonitor pm)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 boolean removeBand(Band band)
          Removes the given band from this product.
 boolean removeBitmaskDef(BitmaskDef bitmaskDef)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 void removeProductNodeListener(ProductNodeListener listener)
          Removes a ProductNodeListener from this product.
 boolean removeTiePointGrid(TiePointGrid tiePointGrid)
          Removes the tie-point grid from this product.
 void resetRefNo()
           
 void setAutoGrouping(Product.AutoGrouping autoGrouping)
          Sets the auto-grouping applicable to product nodes contained in this product.
 void setAutoGrouping(String pattern)
          Sets the auto-grouping applicable to product nodes contained in this product.
 void setEndTime(ProductData.UTC endTime)
          Sets the (sensing) stop time associated with the first raster data line.
 void setFileLocation(File fileLocation)
          Sets the file location for this product.
 void setGeoCoding(GeoCoding geoCoding)
          Geo-codes this data product.
 void setModified(boolean modified)
          Sets this node's modified flag.
protected  void setOwner(ProductNode owner)
          Overwrites theProductNode.setOwner(ProductNode) method in order to throw an IllegalStateException, since products currently cannot have an owner.
 void setPointingFactory(PointingFactory pointingFactory)
          Sets the pointing factory for this data product.
 void setPreferredTileSize(Dimension preferredTileSize)
          Sets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.
 void setPreferredTileSize(int tileWidth, int tileHeight)
          Sets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.
 void setProductReader(ProductReader reader)
          Sets the product reader which will be used to create this product in-memory represention from an external source and which will be used to (re-)load band rasters.
 void setProductType(String productType)
          Sets the product type of this product.
 void setProductWriter(ProductWriter writer)
          Sets the writer which will be used to write modifications of this product's in-memory represention to an external destination.
 void setQuicklookBandName(String quicklookBandName)
          Sets the name of the band suitable for quicklook generation.
 void setRefNo(int refNo)
          Sets the reference number.
 void setStartTime(ProductData.UTC startTime)
          Sets the (sensing) start time of this product.
 void setValidMask(String id, BitRaster validMask)
          Deprecated. since BEAM 4.7, use getMaskGroup() instead
 boolean transferGeoCodingTo(Product destProduct, ProductSubsetDef subsetDef)
          Transfers the geo-coding of this product instance to the destProduct with respect to the given subsetDef.
 void writeHeader(Object output)
          Writes the header of a data product.

 
Methods inherited from class org.esa.beam.framework.datamodel.ProductNode
fireProductNodeChanged, fireProductNodeChanged, getDescription, getDisplayName, getName, getOwner, getProduct, getProductReaderSafe, getProductRefString, getProductSafe, getProductWriterSafe, getRawStorageSize, isModified, isPartOfSubset, isValidNodeName, removeFromFile, setDescription, setName, toString, updateExpression
 
Methods inherited from class com.bc.ceres.core.ExtensibleObject
getExtension
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

METADATA_ROOT_NAME

public static final String METADATA_ROOT_NAME
See Also:
Constant Field Values

HISTORY_ROOT_NAME

public static final String HISTORY_ROOT_NAME
See Also:
Constant Field Values

PIN_MASK_NAME

@Deprecated
public static final String PIN_MASK_NAME
Deprecated. 
See Also:
Constant Field Values

GCP_MASK_NAME

@Deprecated
public static final String GCP_MASK_NAME
Deprecated. 
See Also:
Constant Field Values

PROPERTY_NAME_GEOCODING

public static final String PROPERTY_NAME_GEOCODING
See Also:
Constant Field Values

PROPERTY_NAME_PRODUCT_TYPE

public static final String PROPERTY_NAME_PRODUCT_TYPE
See Also:
Constant Field Values

GEOMETRY_FEATURE_TYPE_NAME

public static final String GEOMETRY_FEATURE_TYPE_NAME
See Also:
Constant Field Values
Constructor Detail

Product

public Product(String name,
               String type,
               int sceneRasterWidth,
               int sceneRasterHeight)
Creates a new product without any reader (in-memory product)

Parameters:
name - the product name
type - the product type
sceneRasterWidth - the scene width in pixels for this data product
sceneRasterHeight - the scene height in pixels for this data product

Product

public Product(String name,
               String type,
               int sceneRasterWidth,
               int sceneRasterHeight,
               ProductReader reader)
Constructs a new product with the given name and the given reader.

Parameters:
name - the product identifier
type - the product type
sceneRasterWidth - the scene width in pixels for this data product
sceneRasterHeight - the scene height in pixels for this data product
reader - the reader used to create this product and read data from it.
See Also:
ProductReader
Method Detail

getFileLocation

public File getFileLocation()
Retrieves the disk location of this product. The return value can be null when the product has no disk location (pure virtual memory product)

Returns:
the file location, may be null

setFileLocation

public void setFileLocation(File fileLocation)
Sets the file location for this product.

Parameters:
fileLocation - the file location, may be null

setOwner

protected void setOwner(ProductNode owner)
Overwrites theProductNode.setOwner(ProductNode) method in order to throw an IllegalStateException, since products currently cannot have an owner.

Overrides:
setOwner in class ProductNode
Parameters:
owner - the new owner

getProductType

public String getProductType()
Gets the product type string.

Returns:
the product type string

setProductType

public void setProductType(String productType)
Sets the product type of this product.

Parameters:
productType - the product type.

setProductReader

public void setProductReader(ProductReader reader)
Sets the product reader which will be used to create this product in-memory represention from an external source and which will be used to (re-)load band rasters.

Parameters:
reader - the product reader.
Throws:
IllegalArgumentException - if the given reader is null.

getProductReader

public ProductReader getProductReader()
Returns the reader which was used to create this product in-memory represention from an external source and which will be used to (re-)load band rasters.

Overrides:
getProductReader in class ProductNode
Returns:
the product reader, can be null

setProductWriter

public void setProductWriter(ProductWriter writer)
Sets the writer which will be used to write modifications of this product's in-memory represention to an external destination.

Parameters:
writer - the product writer, can be null

getProductWriter

public ProductWriter getProductWriter()
Returns the writer which will be used to write modifications of this product's in-memory represention to an external destination.

Overrides:
getProductWriter in class ProductNode
Returns:
the product writer, can be null

writeHeader

public void writeHeader(Object output)
                 throws IOException

Writes the header of a data product.

Parameters:
output - an object representing a valid output for this writer, might be a ImageOutputStream or a File or other Object to use for future decoding.
Throws:
IllegalArgumentException - if output is null or it's type is none of the supported output types.
IOException - if an I/O error occurs

closeProductReader

public void closeProductReader()
                        throws IOException
Closes and clears this product's reader (if any).

Throws:
IOException - if an I/O error occurs
See Also:
closeIO()

closeProductWriter

public void closeProductWriter()
                        throws IOException
Closes and clears this product's writer (if any).

Throws:
IOException - if an I/O error occurs
See Also:
closeIO()

closeIO

public void closeIO()
             throws IOException
Closes the file I/O for this product. Calls in sequence closeProductReader() and closeProductWriter(). The dispose() method is not called, but should be called if the product instance is no longer in use.

Throws:
IOException - if an I/O error occurs
See Also:
closeProductReader(), closeProductWriter(), dispose()

dispose

public void dispose()
Releases all of the resources used by this object instance and all of its owned children. 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 dispose() are undefined.

Overrides of this method should always call super.dispose(); after disposing this instance.

This implementation also calls the closeIO in order to release all open I/O resources.

Overrides:
dispose in class ProductNode

getPointingFactory

public PointingFactory getPointingFactory()
Gets the pointing factory associated with this data product.

Returns:
the pointing factory or null, if none

setPointingFactory

public void setPointingFactory(PointingFactory pointingFactory)
Sets the pointing factory for this data product.

Parameters:
pointingFactory - the pointing factory

setGeoCoding

public void setGeoCoding(GeoCoding geoCoding)
Geo-codes this data product.

Parameters:
geoCoding - the geo-coding, if null geo-coding is removed
Throws:
IllegalArgumentException -
- if the given GeoCoding is a TiePointGeoCoding and latGrid or lonGrid are not instances of tie point grids in this product.
- if the given GeoCoding is a MapGeoCoding and its MapInfo is null
- if the given GeoCoding is a MapGeoCoding and the sceneWith or sceneHeight of its MapInfo is not equal to this products sceneRasterWidth or sceneRasterHeight

getGeoCoding

public GeoCoding getGeoCoding()
Returns the geo-coding used for this data product.

Returns:
the geo-coding, can be null if this product is not geo-coded.

isUsingSingleGeoCoding

public boolean isUsingSingleGeoCoding()
Tests if all bands of this product are using a single, uniform geo-coding. Uniformity is tested by comparing the band's geo-coding against the geo-coding of this product using the Object.equals(Object) method. If this product does not have a geo-coding, the method returns false.

Returns:
true, if so

transferGeoCodingTo

public boolean transferGeoCodingTo(Product destProduct,
                                   ProductSubsetDef subsetDef)
Transfers the geo-coding of this product instance to the destProduct with respect to the given subsetDef.

Parameters:
destProduct - the destination product
subsetDef - the definition of the subset, may be null
Returns:
true, if the geo-coding could be transferred.

getSceneRasterWidth

public int getSceneRasterWidth()
Returns the scene width in pixels for this data product.

Returns:
the scene width in pixels for this data product.

getSceneRasterHeight

public int getSceneRasterHeight()
Returns the scene height in pixels for this data product.

Returns:
the scene height in pixels for this data product.

getStartTime

public ProductData.UTC getStartTime()
Gets the (sensing) start time associated with the first raster data line.

For Level-1/2 products this is the data-take time associated with the first raster data line. For Level-3 products, this could be the start time of first input product contributing data.

Returns:
the sensing start time, can be null e.g. for non-swath products

setStartTime

public void setStartTime(ProductData.UTC startTime)
Sets the (sensing) start time of this product.

For Level-1/2 products this is the data-take time associated with the first raster data line. For Level-3 products, this could be the start time of first input product contributing data.

Parameters:
startTime - the sensing start time, can be null

getEndTime

public ProductData.UTC getEndTime()
Gets the (sensing) stop time associated with the last raster data line.

For Level-1/2 products this is the data-take time associated with the last raster data line. For Level-3 products, this could be the end time of last input product contributing data.

Returns:
the stop time , can be null e.g. for non-swath products

setEndTime

public void setEndTime(ProductData.UTC endTime)
Sets the (sensing) stop time associated with the first raster data line.

For Level-1/2 products this is the data-take time associated with the last raster data line. For Level-3 products, this could be the end time of last input product contributing data.

Parameters:
endTime - the sensing stop time, can be null

getMetadataRoot

public MetadataElement getMetadataRoot()
Gets the root element of the associated metadata.

Returns:
the metadata root element

getBandGroup

public ProductNodeGroup<Band> getBandGroup()
Gets the band group of this product.

Returns:
The group of all bands.
Since:
BEAM 4.7

getTiePointGridGroup

public ProductNodeGroup<TiePointGrid> getTiePointGridGroup()
Gets the tie-point grid group of this product.

Returns:
The group of all tie-point grids.
Since:
BEAM 4.7

addTiePointGrid

public void addTiePointGrid(TiePointGrid tiePointGrid)
Adds the given tie-point grid to this product.

Parameters:
tiePointGrid - the tie-point grid to added, ignored if null

removeTiePointGrid

public boolean removeTiePointGrid(TiePointGrid tiePointGrid)
Removes the tie-point grid from this product.

Parameters:
tiePointGrid - the tie-point grid to be removed, ignored if null
Returns:
true if node could be removed

getNumTiePointGrids

public int getNumTiePointGrids()
Returns the number of tie-point grids contained in this product

Returns:
the number of tie-point grids

getTiePointGridAt

public TiePointGrid getTiePointGridAt(int index)
Returns the tie-point grid at the given index.

Parameters:
index - the tie-point grid index
Returns:
the tie-point grid at the given index
Throws:
IndexOutOfBoundsException - if the index is out of bounds

getTiePointGridNames

public String[] getTiePointGridNames()
Returns a string array containing the names of the tie-point grids contained in this product

Returns:
a string array containing the names of the tie-point grids contained in this product. If this product has no tie-point grids a zero-length-array is returned.

getTiePointGrids

public TiePointGrid[] getTiePointGrids()
Returns an array of tie-point grids contained in this product

Returns:
an array of tie-point grids contained in this product. If this product has no tie-point grids a zero-length-array is returned.

getTiePointGrid

public TiePointGrid getTiePointGrid(String name)
Returns the tie-point grid with the given name.

Parameters:
name - the tie-point grid name
Returns:
the tie-point grid with the given name or null if a tie-point grid with the given name is not contained in this product.

containsTiePointGrid

public boolean containsTiePointGrid(String name)
Tests if a tie-point grid with the given name is contained in this product.

Parameters:
name - the name, must not be null
Returns:
true if a tie-point grid with the given name is contained in this product, false otherwise

addBand

public void addBand(Band band)
Adds the given band to this product.

Parameters:
band - the band to added, must not be null

addBand

public Band addBand(String bandName,
                    int dataType)
Creates a new band with the given name and data type and adds it to this product and returns it.

Parameters:
bandName - the new band's name
dataType - the raster data type, must be one of the multiple ProductData.TYPE_X constants
Returns:
the new band which has just been added

addBand

public Band addBand(String bandName,
                    String expression)
Creates a new band with the given name and adds it to this product and returns it. The new band's data type is float and it's samples are computed from the given band maths expression.

Parameters:
bandName - the new band's name
expression - the band maths expression
Returns:
the new band which has just been added
Since:
BEAM 4.9

addBand

public Band addBand(String bandName,
                    String expression,
                    int dataType)
Creates a new band with the given name and data type and adds it to this product and returns it. The new band's samples are computed from the given band maths expression.

Parameters:
bandName - the new band's name
expression - the band maths expression
dataType - the raster data type, must be one of the multiple ProductData.TYPE_X constants
Returns:
the new band which has just been added
Since:
BEAM 4.9

removeBand

public boolean removeBand(Band band)
Removes the given band from this product.

Parameters:
band - the band to be removed, ignored if null
Returns:
true if removed succesfully, otherwise false

getNumBands

public int getNumBands()
Returns:
the number of bands contained in this product.

getBandAt

public Band getBandAt(int index)
Returns the band at the given index.

Parameters:
index - the band index
Returns:
the band at the given index
Throws:
IndexOutOfBoundsException - if the index is out of bounds

getBandNames

public String[] getBandNames()
Returns a string array containing the names of the bands contained in this product

Returns:
a string array containing the names of the bands contained in this product. If this product has no bands a zero-length-array is returned.

getBands

public Band[] getBands()
Returns an array of bands contained in this product

Returns:
an array of bands contained in this product. If this product has no bands a zero-length-array is returned.

getBand

public Band getBand(String name)
Returns the band with the given name.

Parameters:
name - the band name
Returns:
the band with the given name or null if a band with the given name is not contained in this product.
Throws:
IllegalArgumentException - if the given name is null or empty.

getBandIndex

public int getBandIndex(String name)
Returns the index for the band with the given name.

Parameters:
name - the band name
Returns:
the band index or -1 if a band with the given name is not contained in this product.
Throws:
IllegalArgumentException - if the given name is null or empty.

containsBand

public boolean containsBand(String name)
Tests if a band with the given name is contained in this product.

Parameters:
name - the name, must not be null
Returns:
true if a band with the given name is contained in this product, false otherwise
Throws:
IllegalArgumentException - if the given name is null or empty.

containsRasterDataNode

public boolean containsRasterDataNode(String name)
Tests if a raster data node with the given name is contained in this product. Raster data nodes can be bands or tie-point grids.

Parameters:
name - the name, must not be null
Returns:
true if a raster data node with the given name is contained in this product, false otherwise

getRasterDataNode

public RasterDataNode getRasterDataNode(String name)
Gets the raster data node with the given name. The method first searches for bands with the given name, then for tie-point grids. If neither bands nor tie-point grids exist with the given name, null is returned.

Parameters:
name - the name, must not be null
Returns:
the raster data node with the given name or null if a raster data node with the given name is not contained in this product.

getMaskGroup

public ProductNodeGroup<Mask> getMaskGroup()

getVectorDataGroup

public ProductNodeGroup<VectorDataNode> getVectorDataGroup()

getFlagCodingGroup

public ProductNodeGroup<FlagCoding> getFlagCodingGroup()

getIndexCodingGroup

public ProductNodeGroup<IndexCoding> getIndexCodingGroup()

containsPixel

public boolean containsPixel(float x,
                             float y)
Tests if the given pixel position is within the product pixel bounds.

Parameters:
x - the x coordinate of the pixel position
y - the y coordinate of the pixel position
Returns:
true, if so
See Also:
containsPixel(PixelPos)

containsPixel

public boolean containsPixel(PixelPos pixelPos)
Tests if the given pixel position is within the product pixel bounds.

Parameters:
pixelPos - the pixel position, must not be null
Returns:
true, if so
See Also:
containsPixel(float, float)

getGcpGroup

public PlacemarkGroup getGcpGroup()
Gets the group of ground-control points (GCPs). Note that this method will create the group, if none exists already.

Returns:
the GCP group.

getPinGroup

public PlacemarkGroup getPinGroup()
Gets the group of pins. Note that this method will create the group, if none exists already.

Returns:
the pin group.

isCompatibleProduct

public boolean isCompatibleProduct(Product product,
                                   float eps)
Checks whether or not the given product is compatible with this product.

Parameters:
product - the product to compare with
eps - the maximum lat/lon error in degree
Returns:
false if the scene dimensions or geocoding are different, true otherwise.

parseExpression

public Term parseExpression(String expression)
                     throws ParseException
Parses a mathematical expression given as a text string.

Parameters:
expression - a expression given as a text string, e.g. "radiance_4 / (1.0 + radiance_11)".
Returns:
a term parsed from the given expression string
Throws:
ParseException - if the expression could not successfully be parsed

acceptVisitor

public void acceptVisitor(ProductVisitor visitor)
Accepts the given visitor. This method implements the well known 'Visitor' design pattern of the gang-of-four. The visitor pattern allows to define new operations on the product data model without the need to add more code to it. The new operation is implemented by the visitor.

The method subsequentially visits (calls acceptVisitor for) all bands, tie-point grids and flag codings. Finally it visits product metadata root element and calls visitor.visit(this).

Specified by:
acceptVisitor in class ProductNode
Parameters:
visitor - the visitor, must not be null

addProductNodeListener

public boolean addProductNodeListener(ProductNodeListener listener)
Adds a ProductNodeListener to this product. The ProductNodeListener is informed each time a node in this product changes.

Parameters:
listener - the listener to be added
Returns:
boolean if listener was added or not

removeProductNodeListener

public void removeProductNodeListener(ProductNodeListener listener)
Removes a ProductNodeListener from this product.

Parameters:
listener - the listener to be removed.

getProductNodeListeners

public ProductNodeListener[] getProductNodeListeners()

hasProductNodeListeners

protected boolean hasProductNodeListeners()

fireNodeChanged

protected void fireNodeChanged(ProductNode sourceNode,
                               String propertyName,
                               Object oldValue,
                               Object newValue)

fireNodeDataChanged

protected void fireNodeDataChanged(DataNode sourceNode)

fireNodeAdded

protected void fireNodeAdded(ProductNode childNode,
                             ProductNodeGroup nodeGroup)

fireNodeRemoved

protected void fireNodeRemoved(ProductNode childNode,
                               ProductNodeGroup nodeGroup)

getRefNo

public int getRefNo()
Returns:
The reference number of this product.

setRefNo

public void setRefNo(int refNo)
Sets the reference number.

Parameters:
refNo - the reference number to set must be in the range 1 .. Integer.MAX_VALUE
Throws:
IllegalArgumentException - if the refNo is out of range
IllegalStateException

resetRefNo

public void resetRefNo()

getProductManager

public ProductManager getProductManager()
Returns the product manager for this product.

Returns:
this product's manager, can be null

isCompatibleBandArithmeticExpression

public boolean isCompatibleBandArithmeticExpression(String expression)
Tests if the given band arithmetic expression can be computed using this product.

Parameters:
expression - the mathematical expression
Returns:
true, if the band arithmetic is compatible with this product
See Also:
isCompatibleBandArithmeticExpression(String, com.bc.jexp.Parser)

isCompatibleBandArithmeticExpression

public boolean isCompatibleBandArithmeticExpression(String expression,
                                                    Parser parser)
Tests if the given band arithmetic expression can be computed using this product and a given expression parser.

Parameters:
expression - the band arithmetic expression
parser - the expression parser to be used
Returns:
true, if the band arithmetic is compatible with this product
See Also:
createBandArithmeticParser()

createBandArithmeticParser

public Parser createBandArithmeticParser()
Creates a parser for band arithmetic expressions. The parser created will use a namespace comprising all tie-point grids, bands and flags of this product.

Returns:
a parser for band arithmetic expressions for this product, never null

createBandArithmeticDefaultNamespace

public WritableNamespace createBandArithmeticDefaultNamespace()
Creates a namespace to be used by parsers for band arithmetic expressions. The namespace created comprises all tie-point grids, bands and flags of this product.

Returns:
a namespace, never null

createSubset

public Product createSubset(ProductSubsetDef subsetDef,
                            String name,
                            String desc)
                     throws IOException
Creates a subset of this product. The returned product represents a true spatial and spectral subset of this product, but it has not loaded any bands into memory. If name or desc are null or empty, the name and the description from this product was used.

Parameters:
subsetDef - the product subset definition
name - the name for the new product
desc - the description for the new product
Returns:
the product subset, or null if the product/subset combination is not valid
Throws:
IOException - if an I/O error occurs

createProjectedProduct

public Product createProjectedProduct(MapInfo mapInfo,
                                      String name,
                                      String desc)
                               throws IOException
Creates a map-projected version of this product.

Parameters:
mapInfo - the map information
name - the name for the new product
desc - the description for the new product
Returns:
the product subset, or null if the product/subset combination is not valid
Throws:
IOException - if an I/O error occurs

createFlippedProduct

public Product createFlippedProduct(int flipType,
                                    String name,
                                    String desc)
                             throws IOException
Creates flipped raster-data version of this product.

Parameters:
flipType - the flip type, see ProductFlipper
name - the name for the new product
desc - the description for the new product
Returns:
the product subset, or null if the product/subset combination is not valid
Throws:
IOException - if an I/O error occurs

setModified

public void setModified(boolean modified)
Description copied from class: ProductNode
Sets this node's modified flag.

If the modified flag changes to true and this node has an owner, the owner's modified flag is also set to true.

Overrides:
setModified in class ProductNode
Parameters:
modified - whether or not this node is beeing marked as modified.
See Also:
fireNodeChanged(org.esa.beam.framework.datamodel.ProductNode, java.lang.String, java.lang.Object, java.lang.Object)

getRawStorageSize

public long getRawStorageSize(ProductSubsetDef subsetDef)
Gets an estimated, raw storage size in bytes of this product node.

Specified by:
getRawStorageSize in class ProductNode
Parameters:
subsetDef - if not null the subset may limit the size returned
Returns:
the size in bytes.

getQuicklookBandName

public String getQuicklookBandName()
Gets the name of the band suitable for quicklook generation.

Returns:
the name of the quicklook band, or null if none has been defined

setQuicklookBandName

public void setQuicklookBandName(String quicklookBandName)
Sets the name of the band suitable for quicklook generation.

Parameters:
quicklookBandName - the name of the quicklook band, or null

createPixelInfoString

public String createPixelInfoString(int pixelX,
                                    int pixelY)
Creates a string containing all available information at the given pixel position. The string returned is a line separated text with each line containing a key/value pair.

Parameters:
pixelX - the pixel X co-ordinate
pixelY - the pixel Y co-ordinate
Returns:
the info string at the given position

getRemovedChildNodes

public ProductNode[] getRemovedChildNodes()
Returns:
All removed child nodes. Array may be empty.

canBeOrthorectified

public boolean canBeOrthorectified()
Checks whether or not this product can be ortorectified.

Returns:
true if RasterDataNode.canBeOrthorectified() returns true for all bands, false otherwise

getPreferredTileSize

public Dimension getPreferredTileSize()
Gets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.

Returns:
the preferred tile size, may be null if not specified
See Also:
RasterDataNode.getSourceImage(), setSourceImage (java.awt.image.RenderedImage)

setPreferredTileSize

public void setPreferredTileSize(int tileWidth,
                                 int tileHeight)
Sets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.

Parameters:
tileWidth - the preferred tile width
tileHeight - the preferred tile height
See Also:
setPreferredTileSize(java.awt.Dimension)

setPreferredTileSize

public void setPreferredTileSize(Dimension preferredTileSize)
Sets the preferred tile size which may be used for a the rendered image created for a RasterDataNode of this product.

Parameters:
preferredTileSize - the preferred tile size, may be null if not specified
See Also:
RasterDataNode.getSourceImage(), setSourceImage (java.awt.image.RenderedImage)

getAllFlagNames

public String[] getAllFlagNames()
Returns the names of all flags of all flag datasets contained this product.

A flag name contains the dataset (a band of this product) and the actual flag name as defined in the flag-coding associated with the dataset. The general format for the flag name strings returned is therefore "dataset.flag_name".

The method is used to find out which flags a product has in order to use them in bit-mask expressions.

Returns:
the array of all flag names. If this product does not support flags, an empty array is returned, but never null.
See Also:
parseExpression(String)

getAutoGrouping

public Product.AutoGrouping getAutoGrouping()
Gets the auto-grouping applicable to product nodes contained in this product.

Returns:
The auto-grouping or null.
Since:
BEAM 4.8

setAutoGrouping

public void setAutoGrouping(Product.AutoGrouping autoGrouping)
Sets the auto-grouping applicable to product nodes contained in this product.

Parameters:
autoGrouping - The auto-grouping or null.
Since:
BEAM 4.8

setAutoGrouping

public void setAutoGrouping(String pattern)
Sets the auto-grouping applicable to product nodes contained in this product. A given pattern parameter is a textual representation of the auto-grouping. The syntax for the pattern is:
 pattern    :=  <groupPath> {':' <groupPath>} | "" (empty string)
 groupPath  :=  <groupName> {'/' <groupName>}
 groupName  :=  any non-empty string without characters ':' and '/'
 
An example for pattern applicable to Envisat AATSR data is
 nadir/reflec:nadir/btemp:fward/reflec:fward/btemp:nadir:fward
 

Parameters:
pattern - The auto-grouping pattern.
Since:
BEAM 4.8

addMask

public Mask addMask(String maskName,
                    Mask.ImageType imageType)
Creates a new mask with the given name and image type and adds it to this product and returns it. The new mask's samples are computed from the given image type.

Parameters:
maskName - the new mask's name
imageType - the image data type used to compute the mask samples
Returns:
the new mask which has just been added
Since:
BEAM 4.10

addMask

public Mask addMask(String maskName,
                    String expression,
                    String description,
                    Color color,
                    double transparency)
Creates a new mask using a band arithmetic expression and adds it to this product and returns it.

Parameters:
maskName - the new mask's name
expression - the band arithmetic expression
description - the mask's description
color - the display color
transparency - the display transparency
Returns:
the new mask which has just been added
Since:
BEAM 4.10

addMask

public Mask addMask(String maskName,
                    VectorDataNode vectorDataNode,
                    String description,
                    Color color,
                    double transparency)
Creates a new mask based on the geometries contained in a vector data node, adds it to this product and returns it.

Parameters:
maskName - the new mask's name
vectorDataNode - the vector data node
description - the mask's description
color - the display color
transparency - the display transparency
Returns:
the new mask which has just been added
Since:
BEAM 4.10

addBitmaskDef

@Deprecated
public void addBitmaskDef(BitmaskDef bitmaskDef)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Adds the given bitmask definition to this product.

Parameters:
bitmaskDef - the bitmask definition to added, ignored if null

moveBitmaskDef

@Deprecated
public void moveBitmaskDef(BitmaskDef bitmaskDef,
                                      int index)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Moves the given bitmask definition to the given index.

Parameters:
bitmaskDef - the bitmask definition which is to move
index - the destination index for the given bitmask definition

removeBitmaskDef

@Deprecated
public boolean removeBitmaskDef(BitmaskDef bitmaskDef)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Removes the given bitmask definition from this product.

Parameters:
bitmaskDef - the bitmask definition to be removed, ignored if null
Returns:
true on success

getNumBitmaskDefs

@Deprecated
public int getNumBitmaskDefs()
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Gets the number of bitmask definitions contained in this product.

Returns:
the number of bitmask definitions

getBitmaskDefAt

@Deprecated
public BitmaskDef getBitmaskDefAt(int index)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Returns the bitmask definition at the given index.

Parameters:
index - the bitmask definition index
Returns:
the bitmask definition at the given index
Throws:
IndexOutOfBoundsException - if the index is out of bounds

getBitmaskDefNames

@Deprecated
public String[] getBitmaskDefNames()
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Returns a string array containing the names of the bitmask definitions contained in this product.

Returns:
a string array containing the names of the bitmask definitions contained in this product. If this product has no bitmask definitions a zero-length-array is returned.

getBitmaskDef

@Deprecated
public BitmaskDef getBitmaskDef(String name)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Returns the bitmask definition with the given name.

Parameters:
name - the bitmask definition name
Returns:
the bitmask definition with the given name or null if a bitmask definition with the given name is not contained in this product.

getBitmaskDefs

@Deprecated
public BitmaskDef[] getBitmaskDefs()
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Returns an array of bitmask definitions contained in this product

Returns:
an array of bitmask definition contained in this product. If this product has no bitmask definitions a zero-length-array is returned.

containsBitmaskDef

@Deprecated
public boolean containsBitmaskDef(BitmaskDef def)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Tests if the given bitmask definition is contained in this container.

Parameters:
def - the bitmask definition, must not be null
Returns:
true if the bitmask definition is contained in this cotainer, false otherwise

isCompatibleBitmaskDef

@Deprecated
public boolean isCompatibleBitmaskDef(BitmaskDef bitmaskDef)
Deprecated. since BEAM 4.7

Checks whether or not the given bitmask definition is compatible with this product.

Parameters:
bitmaskDef - The bitmask definition.
Returns:
false if the bitmask has a valid expression and(!) the flag name is not contained in this data product, true otherwise.

getValidMask

@Deprecated
public BitRaster getValidMask(String id)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Gets a valid-mask for the given ID.

Parameters:
id - the ID
Returns:
a cached valid mask for the given ID or null
See Also:
createValidMask(String, com.bc.ceres.core.ProgressMonitor)

setValidMask

@Deprecated
public void setValidMask(String id,
                                    BitRaster validMask)
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Sets a valid-mask for the given ID.

Parameters:
id - the ID
validMask - the pixel mask
See Also:
createValidMask(String, com.bc.ceres.core.ProgressMonitor)

createValidMask

@Deprecated
public BitRaster createValidMask(String expression,
                                            com.bc.ceres.core.ProgressMonitor pm)
                          throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Creates a bit-packed valid-mask for all pixels of the scene covered by this product. The given expression is considered to be boolean, if it evaluates to true the related bit in the mask is set.

Parameters:
expression - the boolean expression, e.g. "l2_flags.LAND && reflec_10 >= 0.0"
pm - a progress monitor
Returns:
a bit-packed mask for all pixels of the scene, never null
Throws:
IOException - if an I/O error occurs
See Also:
parseExpression(String)

createValidMask

@Deprecated
public BitRaster createValidMask(Term term,
                                            com.bc.ceres.core.ProgressMonitor pm)
                          throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Creates a bit-packed mask for all pixels of the scene covered by this product. The given term is considered to be boolean, if it evaluates to true the related bit in the mask is set.

Parameters:
term - the boolean term, e.g. "l2_flags.LAND && reflec_10 >= 0.0"
pm - a progress monitor
Returns:
a bit-packed mask for all pixels of the scene, never null
Throws:
IOException - if an I/O error occurs
See Also:
createValidMask(String, com.bc.ceres.core.ProgressMonitor)

readBitmask

@Deprecated
public void readBitmask(int offsetX,
                                   int offsetY,
                                   int width,
                                   int height,
                                   Term bitmaskTerm,
                                   boolean[] bitmask)
                 throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Throws:
IOException
See Also:
readBitmask(int, int, int, int, com.bc.jexp.Term, boolean[], com.bc.ceres.core.ProgressMonitor)

readBitmask

@Deprecated
public void readBitmask(int offsetX,
                                   int offsetY,
                                   int width,
                                   int height,
                                   Term bitmaskTerm,
                                   boolean[] bitmask,
                                   com.bc.ceres.core.ProgressMonitor pm)
                 throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Creates a bit-mask by evaluating the given bit-mask term.

The method first creates an evaluation context for the given bit-mask term and the specified region and then evaluates the term for each pixel in the subset (line-by-line, X varies fastest). The result of each evaluation - the resulting bitmask - is stored in the given boolean array buffer bitmask in the same order as pixels appear in the given region. The buffer must at least have a length equal to width * height elements.

If flag providing datasets are referenced in the given bit-mask expression which are currently not completely loaded, the method reloads the spatial subset from the data source in order to create the evaluation context.

The parseExpression(String) method can be used to create a bit-mask term from a textual bit-mask expression.

Parameters:
offsetX - the X-offset of the spatial subset in pixel co-ordinates
offsetY - the Y-offset of the spatial subset in pixel co-ordinates
width - the width of the spatial subset in pixel co-ordinates
height - the height of the spatial subset in pixel co-ordinates
bitmaskTerm - a bit-mask term, as returned by the parseExpression(String) method
bitmask - a buffer used to hold the results of the bit-mask evaluations for each pixel in the given spatial subset
pm - a monitor to inform the user about progress
Throws:
IOException - if an I/O error occurs, when referenced flag datasets are reloaded
See Also:
parseExpression(String)

readBitmask

@Deprecated
public void readBitmask(int offsetX,
                                   int offsetY,
                                   int width,
                                   int height,
                                   Term bitmaskTerm,
                                   byte[] bitmask,
                                   byte trueValue,
                                   byte falseValue)
                 throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Throws:
IOException
See Also:
readBitmask(int, int, int, int, com.bc.jexp.Term, byte[], byte, byte, com.bc.ceres.core.ProgressMonitor)

readBitmask

@Deprecated
public void readBitmask(int offsetX,
                                   int offsetY,
                                   int width,
                                   int height,
                                   Term bitmaskTerm,
                                   byte[] bitmask,
                                   byte trueValue,
                                   byte falseValue,
                                   com.bc.ceres.core.ProgressMonitor pm)
                 throws IOException
Deprecated. since BEAM 4.7, use getMaskGroup() instead

Creates a bit-mask by evaluating the given bit-mask term.

The method first creates an evaluation context for the given bit-mask term and the specified region and then evaluates the term for each pixel in the subset (line-by-line, X varies fastest). The result of each evaluation - the resulting bitmask - is stored in the given boolean array buffer bitmask in the same order as pixels appear in the given region. The buffer must at least have a length equal to width * height elements.

If flag providing datasets are referenced in the given bit-mask expression which are currently not completely loaded, the method reloads the spatial subset from the data source in order to create the evaluation context.

The parseExpression(String) method can be used to create a bit-mask term from a textual bit-mask expression.

Parameters:
offsetX - the X-offset of the spatial subset in pixel co-ordinates
offsetY - the Y-offset of the spatial subset in pixel co-ordinates
width - the width of the spatial subset in pixel co-ordinates
height - the height of the spatial subset in pixel co-ordinates
bitmaskTerm - a bit-mask term, as returned by the parseExpression(String) method
bitmask - a byte buffer used to hold the results of the bit-mask evaluations for each pixel in the given spatial subset
trueValue - the byte value to be set if the bitmask-term evauates to true
falseValue - the byte value to be set if the bitmask-term evauates to false
Throws:
IOException - if an I/O error occurs, when referenced flag datasets are reloaded
See Also:
parseExpression(String)

isCompatibleTerm

@Deprecated
public boolean isCompatibleTerm(Term term)
Deprecated. since BEAM 4.9. No usage, considered useless.

Checks whether or not the given term is compatible with this product.

Parameters:
term - The term to examine.
Returns:
false if the term has an expression referencing nodes which are not contained in this product, true otherwise.

getTiePointGridIndex

@Deprecated
public int getTiePointGridIndex(String name)
Deprecated. since BEAM 4.9. No usage, considered useless.

Returns the index for the tie-point grid with the given name.

Parameters:
name - the tie-point grid name
Returns:
the tie-point grid index or -1 if a tie-point grid with the given name is not contained in this product.
Throws:
IllegalArgumentException - if the given name is null or empty.


Copyright © 2002-2012 Brockmann Consult GmbH. All Rights Reserved.