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_lookup_table_keys_and_values [2026/07/07 16:10]
hermann
calculate_lookup_table_keys_and_values [2026/08/28 03:11] (current)
hermann Sync from local documentation review
Line 3: Line 3:
 ===== Description ===== ===== Description =====
  
-Generates a new lookup table by evaluating ​**two separate expressions** once per row of a base lookup table — one expression ​for the output key and one for the output value. This allows complete transformation of a table'​s key-value structure, or construction of an entirely new lookup table row by row.+Generates a new lookup table by evaluating two separate expressions once per row of a base lookup tableone expression ​computes ​the output key, the other computes ​the output value. This allows ​complete transformation of a table'​s key-value structure, or the construction of an entirely new lookup table row by row.
  
-This functor ​is one of five in the [[calculate_functors|calculator ​family]]. Use it when you need to recompute ​both the keys and the values of a lookup table. If only the values need to be recomputed and the keys should be inherited from the base table, use [[Calculate Lookup Table Values]] instead. +This is one of Dinamica EGO'​s ​five calculator ​functors. Use it when both the keys and the values of a lookup table need to be recomputed; use [[Calculate Lookup Table Values]] instead when only the values need to be recomputed and the keys should be inherited from the base table unchangedIts abbreviated (shorthand) ​syntax ​is ''​%%''​. See [[ego_script#​calculator_functor_shorthand|Calculator functor shorthand]] in the EGO Script documentation for the verbose and abbreviated forms, and [[Calculate Functors|Calculate Functors — Complete Operator Documentation]] for the full expression language reference.
- +
-The **abbreviated ​syntax** ​(also called **shorthand**for this functor ​is ''​%%''​. See [[ego_script#​calculator_functor_shorthand|Calculator functor shorthand]] in the EGO Script documentation for the full syntax of both the verbose and abbreviated forms, and [[calculate_functors|Calculate Functors — Complete Operator Documentation]] for the complete ​expression language reference.+
  
 ===== Inputs ===== ===== Inputs =====
  
-^ Name ^ Type ^ Description ^ +^ Name  ^ Type  ^ Description ​ 
-| Key Column Expression | [[Image Expression Type]] | The formula ​evaluated ​for each row to produce the output key. Must be enclosed in square brackets ''​[ ]''​ in EGO Script. | +| Key Column Expression ​ | [[Image Expression Type]] ​ Expression ​evaluated ​once per row to produce the output key. Must be enclosed in square brackets ''​[ ]''​ in EGO Script. ​ 
-| Value Column Expression | [[Image Expression Type]] | The formula ​evaluated ​for each row to produce the output value. Must be enclosed in square brackets ''​[ ]''​ in EGO Script. |+| Value Column Expression ​ | [[Image Expression Type]] ​ Expression ​evaluated ​once per row to produce the output value. Must be enclosed in square brackets ''​[ ]''​ in EGO Script. ​ |
  
 ===== Optional Inputs ===== ===== Optional Inputs =====
  
-^ Name ^ Type ^ Default ​^ Description ^ +^ Name  ^ Type  ^ Description ​ ^ Default Value  ​
-| Key Column Name | [[Name Type]] ​| None | Name of the key column in the output ​lookup table. If omitted, the corresponding name from the base table is used. | +| Key Column Name  | [[Name Type]] ​ | Name of the key column in the resulting ​lookup table. If omitted, the corresponding name from the table used as format ​is used.  | .none  ​
-| Value Column Name | [[Name Type]] ​| None | Name of the value column in the output ​lookup table. If omitted, the corresponding name from the base table is used. | +| Value Column Name  | [[Name Type]] ​ | Name of the value column in the resulting ​lookup table. If omitted, the corresponding name from the table used as format ​is used.  | .none  ​
-| Base Lookup Table | [[Lookup Table Type]] | None | The lookup ​table whose row set drives iteration. When not provided, the [[Number Table]] hook with the lowest list index that is connected to a **lookup table** (not a regular table) is used as the row source ​(verbose form), or the first lookup table referenced by name in the expression ​(abbreviated form— not a union of all connected tables. |+| Base Lookup Table  | [[Lookup Table Type]] ​ Lookup ​table whose row set drives iteration. When not provided, the [[Number Table]] hook with the lowest list index that is connected to a lookup table (rather than a regular table) is used as the row source ​in the verbose form, or the first lookup table referenced by name in the expression ​in the abbreviated form — not a union of all connected tables. ​Prefer this port over a Number Table hook when the table is needed only to define the row set and is not referenced in the expressions,​ to keep the abbreviated syntax available. ​ | .none  ​|
  
-===== Output ​=====+===== Outputs ​=====
  
-^ Name ^ Type ^ Description ^ +^ Name  ^ Type  ^ Description ​ 
-| Result | [[Lookup Table Type]] | A lookup ​table with both keys and values computed by the respective expressions. |+| Result ​ | [[Lookup Table Type]] ​ Lookup ​table whose keys and values ​were both computed by the respective expressions. ​ |
  
 ===== Group ===== ===== Group =====
  
-[[Functor List#Table | Table]]+[[Functor List#Lookup ​Table | Lookup ​Table]]
  
 ===== Notes ===== ===== Notes =====
Line 35: Line 33:
 ==== Connecting data inputs ==== ==== Connecting data inputs ====
  
-Tables, lookup tables, and scalar values referenced in either expression must be connected to the functor'​s ports before writing the expressions,​ using **hook** functors:+Tables, lookup tables, and scalar values referenced in either expression must be connected to the functor'​s ports before writing the expressions,​ using hook functors:
  
-  * Tables and lookup tables → [[Number Table]] → referenced in the expression as ''​t1''​''​t2''​, …, ''​t100''​ +  * Tables and lookup tables → [[Number Table]] → referenced in the expression as t1, t2, …, t100 
-  * Scalar values → [[Number Value]] → referenced as ''​v1''​''​v2''​, …, ''​v100''​+  * Scalar values → [[Number Value]] → referenced as v1, v2, …, v100
  
 Maps cannot be connected — there is no cell context in this functor. In the abbreviated syntax, tables are referenced as ''​%variableName''​ and values as ''​$variableName''​. Both expressions share the same set of connected operands. Maps cannot be connected — there is no cell context in this functor. In the abbreviated syntax, tables are referenced as ''​%variableName''​ and values as ''​$variableName''​. Both expressions share the same set of connected operands.
Line 46: Line 44:
 Both expressions are evaluated once per row of the base lookup table. Two keywords reflect the current row inside each expression: Both expressions are evaluated once per row of the base lookup table. Two keywords reflect the current row inside each expression:
  
-  * ''​line'' ​— the **key** of the current row +  * line — the key of the current row 
-  * ''​column'' ​— the **value already associated with that key** in the base lookup table+  * column — the value already associated with that key in the base lookup table
  
 If the key expression produces a key that already exists in the output table, the newly computed value replaces the existing one. If the key expression produces a key that already exists in the output table, the newly computed value replaces the existing one.
Line 53: Line 51:
 ==== Available expression features ==== ==== Available expression features ====
  
-Identical to [[Calculate Lookup Table Values]]: arithmetic and logical operators, scalar references (''​vX''​),​ table and lookup table queries (''​tX[...]''​) in all single-key and multi-column forms, and the ''​line'' ​and ''​column'' ​row-context keywords are available. Image operators (''​iX''​),​ neighbourhood functions, neighbourhood indexing, and convolution are not available. See [[calculate_functors#the_expression_language|The Expression Language]] for the complete reference, or [[Image Expression Type]] for the navigable operator index.+Identical to [[Calculate Lookup Table Values]]: arithmetic and logical operators, scalar references (''​vX''​),​ table and lookup table queries (''​tX[...]''​) in all single-key and multi-column forms, and the line and column row-context keywords are available. Image operators (''​iX''​),​ neighbourhood functions, neighbourhood indexing, and convolution are not available. See [[Calculate Functors#The Expression Language|The Expression Language]] for the complete reference, or [[Image Expression Type]] for the navigable operator index.
  
 ==== Null value handling ==== ==== Null value handling ====
  
-Null propagation rules and defensive patterns are covered in [[calculate_functors#null_value_handling|Null Value Handling]] in the Calculate Functors documentation.+Null propagation rules and defensive patterns are covered in [[Calculate Functors#Null Value Handling|Null Value Handling]] in the Calculate Functors documentation.
  
 ===== Internal Name ===== ===== Internal Name =====
  
-''​CalculateLookupTableKeysAndValues''​+CalculateLookupTableKeysAndValues