Performs arithmetic operation over raster data. More...
#include <ArithmeticOperations.h>
Classes | |
class | ExecStackElement |
Execution stack element. More... | |
class | InputParameters |
ArithmeticOperations input parameters. More... | |
class | OutputParameters |
ArithmeticOperations output parameters. More... | |
Public Member Functions | |
ArithmeticOperations () | |
bool | execute (AlgorithmOutputParameters &outputParams) _NOEXCEPT_OP(false) |
Executes the algorithm using the supplied parameters. | |
const std::string & | getErrorMessage () const |
Return the current error message if there is any. | |
bool | initialize (const AlgorithmInputParameters &inputParams) _NOEXCEPT_OP(false) |
Initialize the algorithm instance making it ready for execution. | |
bool | isInitialized () const |
Returns true if the algorithm instance is initialized and ready for execution. | |
void | reset () _NOEXCEPT_OP(false) |
Clear all internal allocated objects and reset the algorithm to its initial state. | |
~ArithmeticOperations () | |
Protected Types | |
typedef void(ArithmeticOperations::* | BinOpFuncPtrT) (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Type definition for a operation function pointer. | |
typedef std::stack< ExecStackElement > | ExecStackT |
Execution stack type definition. | |
typedef void(ArithmeticOperations::* | UnaryOpFuncPtrT) (const double &inputValue1, double &outputValue) const |
Protected Member Functions | |
void | acosUnaryOp (const double &inputValue, double &outputValue) const |
Arc cosine unary operator function. | |
void | additionBinOp (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Addition binary operator function. | |
bool | allocResultRaster (const te::rst::Grid &grid, std::unique_ptr< te::rst::Raster > &rasterPtr) const |
Allocate a new RAM memory raster. | |
void | asinUnaryOp (const double &inputValue, double &outputValue) const |
Arc sine unary operator function. | |
void | atanUnaryOp (const double &inputValue, double &outputValue) const |
Arc Tangent unary operator function. | |
void | cosUnaryOp (const double &inputValue, double &outputValue) const |
Cosine unary operator function. | |
void | divisionBinOp (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Division binary operator function. | |
bool | execBinaryOperator (const std::string &token, ExecStackT &execStack, bool generateOutput) const |
Execute the given binary operator using the current given execution stack. | |
bool | execBinaryOperatorRasterXRaster (const te::rst::Raster &inRaster1, const unsigned int band1, const te::rst::Raster &inRaster2, const unsigned int band2, const BinOpFuncPtrT binOptFunctPtr, std::unique_ptr< te::rst::Raster > &outRasterPtr) const |
Execute the given binary operator using the given input rasters. | |
bool | execBinaryOperatorRasterXReal (const te::rst::Raster &inRaster, const unsigned int bandIdx, const double value, const BinOpFuncPtrT binOptFunctPtr, std::unique_ptr< te::rst::Raster > &outRasterPtr, const bool realNumberIsRigthtTerm) const |
Execute the given binary operator using the given input raster and a real number. | |
bool | execUnaryOperator (const std::string &token, ExecStackT &execStack, bool generateOutput) const |
Execute the given unary operator using the current given execution stack. | |
bool | execUnaryOperatorRaster (const te::rst::Raster &inRaster, const unsigned int band, const UnaryOpFuncPtrT unaryOptFunctPtr, std::unique_ptr< te::rst::Raster > &outRasterPtr) const |
Execute the given unary operator using the given input raster. | |
bool | execUnaryOperatorReal (const double value, const UnaryOpFuncPtrT unaryOptFunctPtr, std::unique_ptr< te::rst::Raster > &outRasterPtr, const bool realNumberIsRigthtTerm) const |
Execute the given unary operator using the given a real number. | |
bool | executeString (const std::string &aStr, const std::vector< te::rst::Raster * > &inRasters, std::unique_ptr< te::rst::Raster > &outRaster, bool generateOutput, te::common::TaskProgress *const progressPtr) const |
Execute the automata parsing the given input string. | |
void | exponencialBinOp (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Exponencial binary operator function. | |
void | getTokensStrs (const std::string &inputStr, std::vector< std::string > &outTokens) const |
Split the input string into a vector of token strings. | |
void | inFix2PostFix (const std::vector< std::string > &input, std::vector< std::string > &output) const |
Convert the input tokens vector from the infix notation to postfix notation. | |
bool | isBinaryOperator (const std::string &inputToken) const |
Returns true if the given token is a binary operator. | |
bool | isOperator (const std::string &inputToken) const |
Returns true if the given token is an operator. | |
bool | isRasterBandToken (const std::string &token, unsigned int &rasterIdx, unsigned int &bandIdx) const |
Returns true if the given token is a raster data token. | |
bool | isRealNumberToken (const std::string &token, double &realValue) const |
Returns true if the given token is a real number. | |
bool | isUnaryOperator (const std::string &inputToken) const |
Returns true if the given token is a unary operator. | |
void | lnUnaryOp (const double &inputValue, double &outputValue) const |
unary operator function. | |
void | logUnaryOp (const double &inputValue, double &outputValue) const |
Common logarithm unary operator function. | |
void | multiplicationBinOp (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Multiplication binary operator function. | |
bool | op1HasGreaterOrEqualPrecedence (const std::string &operator1, const std::string &operator2)const |
Returns true if operator1 has greater of equal precedence over operator2. | |
void | printTokens (const std::vector< std::string > &input) const |
Print tokens to stout. | |
void | setErrorMessage (const std::string &newErrorMessage) |
Set the current error message. | |
void | sinUnaryOp (const double &inputValue, double &outputValue) const |
Sine unary operator function. | |
void | sqrtUnaryOp (const double &inputValue, double &outputValue) const |
Square root unary operator function. | |
void | subtractionBinOp (const double &inputValue1, const double &inputValue2, double &outputValue) const |
Subtraction binary operator function. | |
void | tanUnaryOp (const double &inputValue, double &outputValue) const |
Tangent unary operator function. | |
Protected Attributes | |
ArithmeticOperations::InputParameters | m_inputParameters |
Input execution parameters. | |
bool | m_isInitialized |
Tells if this instance is initialized. | |
Private Attributes | |
std::string | m_errorMessage |
Current error message. | |
Performs arithmetic operation over raster data.
The expression (arithmetic stringIt) must be formed by a combination of the following elements, separated by spaces:
Operators: +(Sum of Rasters or a raster and a real number), -(Subtraction of Rasters or a raster and a real number), (Multiplication of Rasters or a raster and a real number), /(Division of Rasters or a raster and a real number) ^(Exponential of a raster and a real number) sqrt() (Square root of a raster) sin() (Sine of a raster) asin() (Arc Sine of a raster) cos() (Cosine of a raster) acos() (Arc Cosine of a raster) log() (Common (base-10) logarithm of a raster) tan() (Tangent of a raster) atan() (Arc tangent of a raster) ln() (Natural (base e) logarithm of a raster)
Real Numbers (negative numbers must follow the form "-1.0")
Raster bands: R0:1, R0:1, R1:0, .... (R0:1 is a reference to the first raster - with index 0 - from feeder, second band - with index 1).
Definition at line 80 of file ArithmeticOperations.h.
|
protected |
Type definition for a operation function pointer.
Definition at line 234 of file ArithmeticOperations.h.
|
protected |
Execution stack type definition.
Definition at line 229 of file ArithmeticOperations.h.
|
protected |
Definition at line 237 of file ArithmeticOperations.h.
te::rp::ArithmeticOperations::ArithmeticOperations | ( | ) |
te::rp::ArithmeticOperations::~ArithmeticOperations | ( | ) |
|
inlineprotected |
Arc cosine unary operator function.
Definition at line 303 of file ArithmeticOperations.h.
|
inlineprotected |
Addition binary operator function.
Definition at line 246 of file ArithmeticOperations.h.
|
protected |
Allocate a new RAM memory raster.
grid | The output raster grid. |
rasterPtr | The output raster pointer. |
|
inlineprotected |
Arc sine unary operator function.
Definition at line 291 of file ArithmeticOperations.h.
|
inlineprotected |
Arc Tangent unary operator function.
Definition at line 321 of file ArithmeticOperations.h.
|
inlineprotected |
Cosine unary operator function.
Definition at line 297 of file ArithmeticOperations.h.
|
inlineprotected |
Division binary operator function.
Definition at line 264 of file ArithmeticOperations.h.
|
protected |
Execute the given binary operator using the current given execution stack.
token | Operator token. |
execStack | Execution stack. |
generateOutput | if true the execution will generate valid output data, if false only dummy stack elements will be generated. |
|
protected |
Execute the given binary operator using the given input rasters.
inRaster1 | Input raster 1. |
band1 | Input raster 1 band. |
inRaster2 | Input raster 2. |
band2 | Input raster 2 band. |
binOptFunctPtr | The binary operation function pointer. |
outRasterPtr | The generated output raster. |
|
protected |
Execute the given binary operator using the given input raster and a real number.
inRaster | Input raster. |
bandIdx | Input raster band. |
binOptFunctPtr | The binary operation function pointer. |
outRasterPtr | The generated output raster. |
realNumberIsRigthtTerm | true if the real number is the right term. |
|
protected |
Execute the given unary operator using the current given execution stack.
token | Operator token. |
execStack | Execution stack. |
generateOutput | if true the execution will generate valid output data, if false only dummy stack elements will be generated. |
|
protected |
Execute the given unary operator using the given input raster.
inRaster | Input raster. |
band1 | Input raster band. |
unaryOptFunctPtr | The unary operation function pointer. |
outRasterPtr | The generated output raster. |
|
protected |
Execute the given unary operator using the given a real number.
unaryOptFunctPtr | The unary operation function pointer. |
outRasterPtr | The generated output raster. |
realNumberIsRigthtTerm | true if the real number is the right term. |
|
virtual |
Executes the algorithm using the supplied parameters.
outputParams | Output parameters. |
Implements te::rp::Algorithm.
|
protected |
Execute the automata parsing the given input string.
aStr | The input arithmetic expression string. |
inRasters | Input rasters pointers. |
outRaster | Output raster pointer (pre-initiated). |
generateOutput | If true, the output raster data will be generated, if false only the automata execution will be performed.. |
progressPtr | A pointer to a progress interface to be pulsed on each operation or a null pointer. |
|
inlineprotected |
Exponencial binary operator function.
Definition at line 273 of file ArithmeticOperations.h.
|
inherited |
Return the current error message if there is any.
|
protected |
Split the input string into a vector of token strings.
inputStr | The input string. |
outTokens | The generated output tokens vector. |
|
protected |
Convert the input tokens vector from the infix notation to postfix notation.
input | The input tokens vector. |
output | The output tokens vector. |
|
virtual |
Initialize the algorithm instance making it ready for execution.
inputParams | Input parameters. |
Implements te::rp::Algorithm.
|
protected |
Returns true if the given token is a binary operator.
inputToken | Input token. |
|
virtual |
Returns true if the algorithm instance is initialized and ready for execution.
Implements te::rp::Algorithm.
|
protected |
Returns true if the given token is an operator.
inputToken | Input token. |
|
protected |
Returns true if the given token is a raster data token.
token | Input token. |
rasterIdx | The output converted raster index value. |
bandIdx | The output converted band index value. |
|
protected |
Returns true if the given token is a real number.
token | Input token. |
realValue | The output converted value. |
|
protected |
Returns true if the given token is a unary operator.
inputToken | Input token. |
|
inlineprotected |
unary operator function.
Definition at line 327 of file ArithmeticOperations.h.
|
inlineprotected |
Common logarithm unary operator function.
Definition at line 309 of file ArithmeticOperations.h.
|
inlineprotected |
Multiplication binary operator function.
Definition at line 258 of file ArithmeticOperations.h.
|
protected |
Returns true if operator1 has greater of equal precedence over operator2.
operator1 | Operator1 input token. |
operator2 | Operator2 input token. |
|
protected |
Print tokens to stout.
input | The input tokens vector. |
|
virtual |
Clear all internal allocated objects and reset the algorithm to its initial state.
Reimplemented from te::rp::Algorithm.
|
protectedinherited |
Set the current error message.
newErrorMessage | New error message; |
|
inlineprotected |
Sine unary operator function.
Definition at line 285 of file ArithmeticOperations.h.
|
inlineprotected |
Square root unary operator function.
Definition at line 279 of file ArithmeticOperations.h.
|
inlineprotected |
Subtraction binary operator function.
Definition at line 252 of file ArithmeticOperations.h.
|
inlineprotected |
Tangent unary operator function.
Definition at line 315 of file ArithmeticOperations.h.
|
privateinherited |
Current error message.
Definition at line 104 of file Algorithm.h.
|
protected |
Input execution parameters.
Definition at line 239 of file ArithmeticOperations.h.
|
protected |
Tells if this instance is initialized.
Definition at line 241 of file ArithmeticOperations.h.