The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
Loop attributes with generate aggregation for series processing bugging.
I have the following attributes:
att0_ts
att0_ts_2
att0_ts_3
att0_ts_4
att1_ts
... and so on, the idea is to work on an arbitrary amount of attribute time stamp blocks, ts stands for time stamp, having 4 ordered time measures for each attribute.
I want to calculate the difference and ratio between each ts, then aggregating horizontally sum, avg, min and max to get a sense of series progression.
I programmed it but I'm getting weird bugs, at first it worked, then it didn't, then it only calculates the first generate... I can't seem to reproduce an exact problem or reason. I don't know if it has anything to do with it, but first I tried selecting attributes for generate using %{loop_attribute}, and I noticed after running it it changes to looop_attribute.
You can copy paste this into excel to get the sample table:
id att0_ts att0_ts_1 att0_ts_2 att0_ts_3
1 5 4 3 2
2 3 4 5 6
Below the loop:
Thanks in advance!
att0_ts
att0_ts_2
att0_ts_3
att0_ts_4
att1_ts
... and so on, the idea is to work on an arbitrary amount of attribute time stamp blocks, ts stands for time stamp, having 4 ordered time measures for each attribute.
I want to calculate the difference and ratio between each ts, then aggregating horizontally sum, avg, min and max to get a sense of series progression.
I programmed it but I'm getting weird bugs, at first it worked, then it didn't, then it only calculates the first generate... I can't seem to reproduce an exact problem or reason. I don't know if it has anything to do with it, but first I tried selecting attributes for generate using %{loop_attribute}, and I noticed after running it it changes to looop_attribute.
You can copy paste this into excel to get the sample table:
id att0_ts att0_ts_1 att0_ts_2 att0_ts_3
1 5 4 3 2
2 3 4 5 6
Below the loop:
Thanks in advance!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.3.015">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="loop_attributes" compatibility="5.3.015" expanded="true" height="76" name="horizontal" width="90" x="380" y="300">
<parameter key="attribute_filter_type" value="regular_expression"/>
<parameter key="attribute" value=""/>
<parameter key="attributes" value="|att1|att0"/>
<parameter key="regular_expression" value=".*_ts"/>
<parameter key="use_except_expression" value="false"/>
<parameter key="value_type" value="attribute_value"/>
<parameter key="use_value_type_exception" value="false"/>
<parameter key="except_value_type" value="time"/>
<parameter key="block_type" value="attribute_block"/>
<parameter key="use_block_type_exception" value="false"/>
<parameter key="except_block_type" value="value_matrix_row_start"/>
<parameter key="invert_selection" value="false"/>
<parameter key="include_special_attributes" value="false"/>
<parameter key="iteration_macro" value="loop_attribute"/>
<parameter key="parallelize_subprocess" value="false"/>
<process expanded="true">
<operator activated="true" class="generate_attributes" compatibility="5.3.015" expanded="true" height="76" name="Generate Attributes" width="90" x="45" y="30">
<list key="function_descriptions">
<parameter key="dif1_%{loop_attribute}" value="%{loop_attribute} - %{loop_attribute}_2"/>
<parameter key="dif2_%{loop_attribute}" value="%{loop_attribute}_2 - %{loop_attribute}_3"/>
<parameter key="dif3_%{loop_attribute}" value="%{loop_attribute}_3 - %{loop_attribute}_4"/>
</list>
<parameter key="use_standard_constants" value="true"/>
<parameter key="keep_all" value="true"/>
</operator>
<operator activated="true" class="generate_aggregation" compatibility="5.3.015" expanded="true" height="76" name="Generate Aggregation (3)" width="90" x="246" y="30">
<parameter key="attribute_name" value="sum_dif"/>
<parameter key="attribute_filter_type" value="subset"/>
<parameter key="attribute" value=""/>
<parameter key="attributes" value="dif1_loop_attribute|dif2_loop_attribute|dif3_loop_attribute"/>
<parameter key="use_except_expression" value="false"/>
<parameter key="value_type" value="attribute_value"/>
<parameter key="use_value_type_exception" value="false"/>
<parameter key="except_value_type" value="time"/>
<parameter key="block_type" value="attribute_block"/>
<parameter key="use_block_type_exception" value="false"/>
<parameter key="except_block_type" value="value_matrix_row_start"/>
<parameter key="invert_selection" value="false"/>
<parameter key="include_special_attributes" value="false"/>
<parameter key="aggregation_function" value="sum"/>
<parameter key="keep_all" value="true"/>
<parameter key="ignore_missings" value="true"/>
</operator>
<operator activated="true" class="generate_aggregation" compatibility="5.3.015" expanded="true" height="76" name="Generate Aggregation (2)" width="90" x="380" y="30">
<parameter key="attribute_name" value="avg_dif"/>
<parameter key="attribute_filter_type" value="subset"/>
<parameter key="attribute" value=""/>
<parameter key="attributes" value="dif1_loop_attribute|dif2_loop_attribute|dif3_loop_attribute|"/>
<parameter key="use_except_expression" value="false"/>
<parameter key="value_type" value="attribute_value"/>
<parameter key="use_value_type_exception" value="false"/>
<parameter key="except_value_type" value="time"/>
<parameter key="block_type" value="attribute_block"/>
<parameter key="use_block_type_exception" value="false"/>
<parameter key="except_block_type" value="value_matrix_row_start"/>
<parameter key="invert_selection" value="false"/>
<parameter key="include_special_attributes" value="false"/>
<parameter key="aggregation_function" value="average"/>
<parameter key="keep_all" value="true"/>
<parameter key="ignore_missings" value="true"/>
</operator>
<operator activated="true" class="generate_aggregation" compatibility="5.3.015" expanded="true" height="76" name="Generate Aggregation (4)" width="90" x="514" y="30">
<parameter key="attribute_name" value="min_dif"/>
<parameter key="attribute_filter_type" value="subset"/>
<parameter key="attribute" value=""/>
<parameter key="attributes" value="dif1_loop_attribute|dif2_loop_attribute|dif3_loop_attribute|"/>
<parameter key="use_except_expression" value="false"/>
<parameter key="value_type" value="attribute_value"/>
<parameter key="use_value_type_exception" value="false"/>
<parameter key="except_value_type" value="time"/>
<parameter key="block_type" value="attribute_block"/>
<parameter key="use_block_type_exception" value="false"/>
<parameter key="except_block_type" value="value_matrix_row_start"/>
<parameter key="invert_selection" value="false"/>
<parameter key="include_special_attributes" value="false"/>
<parameter key="aggregation_function" value="minimum"/>
<parameter key="keep_all" value="true"/>
<parameter key="ignore_missings" value="true"/>
</operator>
<operator activated="true" class="generate_aggregation" compatibility="5.3.015" expanded="true" height="76" name="Generate Aggregation (13)" width="90" x="715" y="30">
<parameter key="attribute_name" value="max_dif"/>
<parameter key="attribute_filter_type" value="subset"/>
<parameter key="attribute" value=""/>
<parameter key="attributes" value="dif1_loop_attribute|dif2_loop_attribute|dif3_loop_attribute|"/>
<parameter key="use_except_expression" value="false"/>
<parameter key="value_type" value="attribute_value"/>
<parameter key="use_value_type_exception" value="false"/>
<parameter key="except_value_type" value="time"/>
<parameter key="block_type" value="attribute_block"/>
<parameter key="use_block_type_exception" value="false"/>
<parameter key="except_block_type" value="value_matrix_row_start"/>
<parameter key="invert_selection" value="false"/>
<parameter key="include_special_attributes" value="false"/>
<parameter key="aggregation_function" value="maximum"/>
<parameter key="keep_all" value="true"/>
<parameter key="ignore_missings" value="true"/>
</operator>
<connect from_port="example set" to_op="Generate Attributes" to_port="example set input"/>
<connect from_op="Generate Attributes" from_port="example set output" to_op="Generate Aggregation (3)" to_port="example set input"/>
<connect from_op="Generate Aggregation (3)" from_port="example set output" to_op="Generate Aggregation (2)" to_port="example set input"/>
<connect from_op="Generate Aggregation (2)" from_port="example set output" to_op="Generate Aggregation (4)" to_port="example set input"/>
<connect from_op="Generate Aggregation (4)" from_port="example set output" to_op="Generate Aggregation (13)" to_port="example set input"/>
<connect from_op="Generate Aggregation (13)" from_port="example set output" to_port="example set"/>
<portSpacing port="source_example set" spacing="0"/>
<portSpacing port="sink_example set" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
</process>
</operator>
</process>
0