schmitzm.data
Class RasterOperationTree

java.lang.Object
  extended by schmitzm.lang.tree.OperationTree
      extended by schmitzm.data.RasterOperationTree

public class RasterOperationTree
extends OperationTree

Diese Klasse stellt einen Operator-Baum dar, in dem neben den von der Oberklasse definitierten Operationen, Referenzen auf Raster und Filter enthalten sein koennen.
Der Operator-Baum wird auf einer bestimmten Raster-Koordinate ausgewertet.

Raster-Referenz: RasterOperationTree.RasterReferenceNode
Eine Raster-Referenz wird durch einen int-Wert dargestellt, der von einem # eingeleitet wird (z.B. #0). Bei der Auswertung des Operatorbaums (auf einer bestimmten Raster-Koordinate) wird diese Referenz durch den entsprechenden Zell-Wert des referenzierten Rasters ersetzt.

Filter-Referenz: RasterOperationTree.FilterReferenceNode
Eine Filter-Referenz wird durch einen int-Wert dargestellt, der von einem F eingeleitet wird (z.B. F1(.)) Die Auswertung eines Filters kann nur direkt auf einer Raster-Referenz erfolgen, da ansonsten keine zellen-weise Abarbeitung des Rasters mehr moeglich ist, sondern komplette Raster als Zwischenergebnisse ausgewertet werden muessten.
Koordinaten-Referenz: X oder Y
Stellt einen Alias fuer die X- bzw. Y-Koordinate der Rasterzelle dar, die verarbeitet wird.
NoData: Konstante NoData und Funktion isNoData(.)
Stellen einen Alias fuer NaN, bzw. isNaN(.) dar.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Nested Class Summary
static class RasterOperationTree.FilterReferenceNode
          Diese Knoten repraesentiert eine Referenz auf einen Filter im Operatorbaum.
static class RasterOperationTree.RasterReferenceNode
          Diese Knoten repraesentiert eine Referenz auf ein Raster im Operatorbaum.
 
Nested classes/interfaces inherited from class schmitzm.lang.tree.OperationTree
OperationTree.ConstantAliasNode, OperationTree.ConstantNode, OperationTree.ITENode, OperationTree.MultiParamOperatorNode, OperationTree.OperatorNode, OperationTree.UnaryOperatorNode
 
Field Summary
 
Fields inherited from class schmitzm.lang.tree.OperationTree
LOGGER, rootNode
 
Constructor Summary
RasterOperationTree(TreeNode root)
          Erzeugt einen neuen Raster-Operatorbaum
 
Method Summary
 Object evaluate()
          Deprecated.  
 Double evaluate(int x, int y, ReadableGrid[] inputRaster)
          Wertet den Operatorbaum auf einer bestimmten Raster-Koordinate aus.
 Double evaluate(int x, int y, ReadableGrid[] inputRaster, RasterFilter[] inputFilter)
          Wertet den Operatorbaum auf einer bestimmten Raster-Koordinate aus.
protected  Object evaluate(TreeNode opTreeNode)
          Wertet einen Knoten des Operator-Baums aus.
protected  Double performOperation(String operator)
          Wertet einen 0-stelligen Operator (Alias oder Variable) aus.
protected  Double performOperation(String operator, Object operand)
          Wertet einen 1-stelligen Operator aus.
 
Methods inherited from class schmitzm.lang.tree.OperationTree
getRoot, performOperation, performOperation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RasterOperationTree

public RasterOperationTree(TreeNode root)
Erzeugt einen neuen Raster-Operatorbaum

Parameters:
root - Wurzelknoten
Method Detail

evaluate

public Object evaluate()
Deprecated. 

Nicht unterstuetzt!

Overrides:
evaluate in class OperationTree
Throws:
UnsupportedOperationException - bei jedem Aufruf

evaluate

public Double evaluate(int x,
                       int y,
                       ReadableGrid[] inputRaster,
                       RasterFilter[] inputFilter)
Wertet den Operatorbaum auf einer bestimmten Raster-Koordinate aus.

Parameters:
x - X-Koordinate
y - Y-Koordinate
inputRaster - Eingabe-Raster auf die die #-Referenzen gemappt werden
inputFilter - Eingabe-Filter auf die die F-Referenzen gemappt werden

evaluate

public Double evaluate(int x,
                       int y,
                       ReadableGrid[] inputRaster)
Wertet den Operatorbaum auf einer bestimmten Raster-Koordinate aus.

Parameters:
x - X-Koordinate
y - Y-Koordinate
inputRaster - Eingabe-Raster auf die die Referenzen gemappt werden

evaluate

protected Object evaluate(TreeNode opTreeNode)
Wertet einen Knoten des Operator-Baums aus.

Overrides:
evaluate in class OperationTree
Parameters:
opTreeNode - BinaryTreeNode
Returns:
double

performOperation

protected Double performOperation(String operator,
                                  Object operand)
Wertet einen 1-stelligen Operator aus. Erweitert die Methode der Oberklasse, um die folgenden Operatoren:

Overrides:
performOperation in class OperationTree
Parameters:
operator - 1-stelliger Operator
operand - Operand auf den der Operator angewendet wird
Returns:
operator( operand )

performOperation

protected Double performOperation(String operator)
Wertet einen 0-stelligen Operator (Alias oder Variable) aus. Erweitert die Methode der Oberklasse, um die folgenden Operatoren:
  • X: Alias fuer die horizontale Raster-Koordinate
  • Y: Alias fuer die vertikale Raster-Koordinate
  • NoData: Alias fuer die Konstante "NaN"

Overrides:
performOperation in class OperationTree
Parameters:
operator - 0-stelliger Operator