Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
calculate_lookup_table_keys_and_values [2026/07/04 23:56] 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 table: one expression computes the output key, the other computes the output value. This allows a 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 unchanged. Its 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, written using the [[Image Expression Type|image expression editor]]. 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, written using the [[Image Expression Type|image expression editor]]. 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 lowest-indexed connected [[Number Table]] (verbose form) or the first lookup table referenced by name in the expression (abbreviated form) is used — 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 |