Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
calculate_map [2011/07/25 01:30]
hermann [Notes]
calculate_map [2022/08/19 23:49] (current)
admin [Notes]
Line 7: Line 7:
 ===== Inputs ===== ===== Inputs =====
  
-^ Name       ​^ Type                                         ​^ Description ​                                                      ​+^ Name  ^ Type  ^ Description ​ 
-| Expression | [[Image Expression Type | Image Expression]] | Algebraic or logical expression used to calculate the output map. |+| Expression ​ | [[Image Expression Type]] ​ | Algebraic or logical expression used to calculate the output map.  |
  
 ===== Optional Inputs ===== ===== Optional Inputs =====
  
-^ Name             ​^ Type                           ​^ Description ​                                                                                                                                                                          ​^ Default Value         ​+^ Name  ^ Type  ^ Description ​ ^ Default Value  
-| Cell Type        | [[Cell Type Type | Cell Type]] | Data cell type                                                                                                                                                                        | Signed 32 Bit Integer | +| Cell Type  | [[Cell Type Type]] ​ | Data cell type  | Signed 32 Bit Integer ​ 
-| Null Value       ​| [[Int Type | Int]]             ​| Null value                                                                                                                                                                            -2147483648 ​          +| Null Value  | [[Null Value Type]] ​ | Null value  Default((Based on the value of the Cell Type input.))  ​
-| Result Is Sparse | [[Bool Type | Bool]]           ​| If true, the resulting map is created as a sparse image. Sparse images have the advantage of storing only the cells containing non-null values, but they have diminished access time. | False                 ​|+| Result Is Sparse ​ | [[Boolean Value Type]] ​ | If true, the resulting map is created as a sparse image. Sparse images have the advantage of storing only the cells containing non-null values, but they have diminished access time.  | False  | 
 +| Result Format ​ | [[Map Type]] ​ | Map representing the output format. Any category information presents in the given map is not used as part of the map format. ​ | None  ​|
  
 ===== Outputs ===== ===== Outputs =====
  
-^ Name   ​^ Type               ​^ Description ^ +^ Name  ^ Type  ^ Description ​ 
-| Result | [[Map Type | Map]] | Output map. |+| Result ​ | [[Map Type]] ​ | Output map.  |
  
 ===== Group ===== ===== Group =====
Line 30: Line 31:
 The expression result is calculated as a real value and converted to the data cell type of the output map. The expression result is calculated as a real value and converted to the data cell type of the output map.
  
-If the calculation of the expression diverges or if the data cell type is not large enough, the corresponding cell is filled with the null value.+If the calculation of the expression diverges, the corresponding cell is filled with the null value. In practice, it means that every time a null value is found in a expression calculation,​ the calculation results in null value, unless the occurrence of the null value is isolated from the rest of the expression by a special operator like ''​[[image_expression_type#​image_operators_and_functions|isNull()]]'' ​or ''​[[image_expression_type#​general_operators|?​]]''​. 
 + 
 +The examples below illustrates:​ 
 + 
 +^ Example ​ ^ Analysis ​ ^ 
 +| <code cpp>i1 / 0</​code> ​ | The expression always results in null value (division by zero). ​ | 
 +| <code cpp>i1 + i2 / i3 ^ 3</​code> ​ | If the current cell of any of the images involved in the calculation is null value, the expression results in null value .  | 
 +| <code cpp>if isNull(i1) then 
 +    1 
 +else 
 +    2 
 +</​code> ​ | The expression never results in null value. ​ | 
 +| <code cpp>if isNull(i1) then 
 +    i2 
 +else 
 +    i3 
 +</​code> ​ | The expression might result in null value depending on the the value of i2 and i3.  | 
 +| <code cpp>(100 / i2) ? 0</​code> ​ | The expression never results in null value. ​ | 
 +| <code cpp>(100 / i2) ? i1</​code> ​ | The expression might result in null value depending on the the value of i1.  | 
 + 
 +If the data cell type is not large enough, the corresponding cell is also filled with the null value.
  
 The list of mathematical and logical operators that can be employed in the logic/​algebraic expression can be found in the [[Image Expression Type | image expression reference]]. The list of mathematical and logical operators that can be employed in the logic/​algebraic expression can be found in the [[Image Expression Type | image expression reference]].
Line 36: Line 57:
 The maps used by the "​Calculate Map" must be provided by a corresponding [[Number Map]], the tables must be provided by a corresponding [[Number Table]] and the values must be provided by a corresponding [[Number Value]]. The maps used by the "​Calculate Map" must be provided by a corresponding [[Number Map]], the tables must be provided by a corresponding [[Number Table]] and the values must be provided by a corresponding [[Number Value]].
  
 +For additional information about how the null values are handled during image and value calculation,​ see [[Image Expression Null Value Handling|this reference]].
 ===== Internal Name ===== ===== Internal Name =====
  
 CalculateMap CalculateMap
-