Commit 63c778b6 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit

Add "Plot Data Over Time" filter.

Exposing `vtkPExtractDataArraysOverTime` in ParaView. Also removing
use of deprecated `vtkPExtractArraysOverTime` and replacing it with its
new counterpart.

Fixes #16040.
parent ba6c121b
......@@ -181,6 +181,7 @@
<Proxy group="filters" name="ExtractHistogram" />
<Proxy group="filters" name="ExtractSelection" />
<Proxy group="filters" name="ExtractSelectionOverTime" />
<Proxy group="filters" name="PlotDataOverTime" />
<Proxy group="filters" name="FeatureEdges" />
<Proxy group="filters" name="FFTSelectionOverTime" />
<Proxy group="filters" name="GaussianSplatter"/>
......
......@@ -369,6 +369,7 @@ list(APPEND TESTS_WITH_BASELINES
${CMAKE_CURRENT_SOURCE_DIR}/OrthographicView.xml
${CMAKE_CURRENT_SOURCE_DIR}/OutOfRangeColors.xml
${CMAKE_CURRENT_SOURCE_DIR}/Plot3DReader.xml
${CMAKE_CURRENT_SOURCE_DIR}/PlotDataOverTime-NonDistributed.xml
${CMAKE_CURRENT_SOURCE_DIR}/PlotEdges2.xml
${CMAKE_CURRENT_SOURCE_DIR}/PlotEdges.xml
${CMAKE_CURRENT_SOURCE_DIR}/PlotGlobalVariablesOverTime.xml
......@@ -764,6 +765,11 @@ set (ChartAxisRangeAndLabels_THRESHOLD 60)
SET (ColorEditorControls_THRESHOLD 60)
SET (ColorEditorVolumeControls_THRESHOLD 300)
# PlotDataOverTime produces different block labels in parallel
# This leeway helps that.
set (PlotDataOverTime-NonDistributed_THRESHOLD 25)
# Plot image leeway.
set (SpreadSheet2_THRESHOLD 50)
set (PlotOverTimeAutoApply_THRESHOLD 50)
......
<?xml version="1.0" ?>
<!-- plot data over time using a dataset that's only non-empty on root node (can.ex2) -->
<pqevents>
<pqevent object="pqClientMainWindow/MainControlsToolbar/actionOpenData" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/FileOpenDialog" command="filesSelected" arguments="$PARAVIEW_DATA_ROOT/can.ex2" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget/1QHeaderView0" command="mousePress" arguments="1,1,0,0,0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget/1QHeaderView0" command="mouseRelease" arguments="1,0,0,0,0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget/1QHeaderView0" command="mousePress" arguments="1,1,0,0,0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget/1QHeaderView0" command="mouseRelease" arguments="1,0,0,0,0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget" command="setCheckState" arguments="1.0,2" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ArrayStatus/SelectionWidget" command="setCheckState" arguments="2.0,2" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/ElementBlocks/BlockSelectionWidget/TabWidget/qt_tabwidget_stackedwidget/1pqTreeView0" command="setCheckState" arguments="1.0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuFilters" />
<pqevent object="pqClientMainWindow/menubar/menuFilters/Alphabetical" command="activate" arguments="PlotDataOverTime" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/FieldAssociation/ComboBox" command="activated" arguments="Cells" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/SearchBox/SearchLineEdit" command="set_string" arguments="med" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/ShowMedian/CheckBox" command="set_boolean" arguments="true" />
<pqevent object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Splitter.0/Frame.1/Close" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuTools" />
<pqevent object="pqClientMainWindow/menubar/menuTools" command="activate" arguments="actionTesting_Window_Size" />
</pqevents>
......@@ -25,14 +25,17 @@
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/SeriesEditor/SeriesTable" command="setCheckState" arguments="4.0,0" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/ShowMedian/CheckBox" command="set_boolean" arguments="true" />
<pqevent object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Splitter.0/Frame.2/TitleBar/SplitVertical" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mousePress" arguments="1,1,0,31,5,/0:0/0:0" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mouseRelease" arguments="1,0,0,31,5,/0:0/0:0" />
<!-- select "Threshold1" -->
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mousePress" arguments="1,1,0,53,10,/0:0/0:0/0:0" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mouseRelease" arguments="1,0,0,53,10,/0:0/0:0/0:0" />
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuFilters" />
<pqevent object="pqClientMainWindow/menubar/menuFilters/Recent" command="activate" arguments="ExtractSelectionOverTime" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/OnlyReportSelectionStatistics/CheckBox" command="set_boolean" arguments="false" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/ShowMedian/CheckBox" command="set_boolean" arguments="true" />
<pqevent object="pqClientMainWindow" command="process_events" arguments="1000" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/ShowMedian/CheckBox" command="set_boolean" arguments="true" />
<pqevent object="pqClientMainWindow" command="process_events" arguments="500" />
<pqevent object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Splitter.0/Splitter.2/Frame.5/TitleBar/Maximize" command="activate" arguments="" />
<pqevent object="pqClientMainWindow" command="process_events" arguments="1000" />
......@@ -47,4 +50,5 @@
<pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Splitter.0/Splitter.2/Frame.6/CentralWidgetFrame/Viewport"
baseline="$PARAVIEW_DATA_ROOT/Baseline/QuartilePlotLines.png" width="300" height="300" />
<pqevent object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Splitter.0/Splitter.2/Frame.6/TitleBar/Minimize" command="activate" arguments="" />
-->
</pqevents>
......@@ -10,12 +10,11 @@ index 4f283bd..f05aa2b 100644
vtkProcessModuleAutoMPI.cxx
vtkProcessModule.cxx
vtkPVAlgorithmPortsInformation.cxx
@@ -48,8 +47,6 @@ set (Module_SRCS
@@ -48,7 +47,6 @@ set (Module_SRCS
vtkPVDataSizeInformation.cxx
vtkPVDisableStackTraceSignalHandler.cxx
vtkPVEnableStackTraceSignalHandler.cxx
- vtkPVExtractSelection.cxx
- vtkPVExtractArraysOverTime.cxx
vtkPVFileInformationHelper.cxx
vtkPVGenericAttributeInformation.cxx
vtkPVInformation.cxx
......
......@@ -97,8 +97,7 @@
"path":"ParaViewCore/ClientServerCore/Core",
"exclude": [
{ "path": "vtkPConvertSelection*" },
{ "path": "vtkPVExtractSelection*" },
{ "path": "vtkPVExtractArraysOverTime*" }
{ "path": "vtkPVExtractSelection*" }
],
"patches": [
{ "path": "ClientServerCore-Core-CMake.patch" }
......
# Plotting full dataset over time
A newly added filter **Plot Data Over Time** supports plotting entire datasets,
and not just the selected subset. When in distributed mode, however, the current
implementation show stats for each rank separately. This will be fixed in a future
release to correctly compute distributed statistical summaries.
......@@ -49,7 +49,6 @@ set (Module_SRCS
vtkPVDisableStackTraceSignalHandler.cxx
vtkPVEnableStackTraceSignalHandler.cxx
vtkPVExtractSelection.cxx
vtkPVExtractArraysOverTime.cxx
vtkPVFileInformationHelper.cxx
vtkPVGenericAttributeInformation.cxx
vtkPVInformation.cxx
......
/*=========================================================================
Program: Visualization Toolkit
Module: vtkPVExtractArraysOverTime.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkPVExtractArraysOverTime.h"
#include "vtkNew.h"
#include "vtkObjectFactory.h"
#include "vtkPVExtractSelection.h"
vtkStandardNewMacro(vtkPVExtractArraysOverTime);
//----------------------------------------------------------------------------
vtkPVExtractArraysOverTime::vtkPVExtractArraysOverTime()
{
vtkNew<vtkPVExtractSelection> se;
this->SetSelectionExtractor(se.GetPointer());
}
//----------------------------------------------------------------------------
vtkPVExtractArraysOverTime::~vtkPVExtractArraysOverTime()
{
}
//----------------------------------------------------------------------------
void vtkPVExtractArraysOverTime::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
}
/*=========================================================================
Program: Visualization Toolkit
Module: vtkPVExtractArraysOverTime.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkPVExtractArraysOverTime
* @brief extract point or cell data over time (parallel)
*
* vtkPVExtractArraysOverTime is a subclass of vtkPExtractArraysOverTime
* that overrides the default SelectionExtractor with a vtkPVExtractSelection
* instance.
* This enables query selections to be extracted at each time step.
* @sa
* vtkExtractArraysOverTime
* vtkPExtractArraysOverTime
*/
#ifndef vtkPVExtractArraysOverTime_h
#define vtkPVExtractArraysOverTime_h
#include "vtkPExtractArraysOverTime.h"
#include "vtkPVClientServerCoreCoreModule.h" // For export macro
class VTKPVCLIENTSERVERCORECORE_EXPORT vtkPVExtractArraysOverTime : public vtkPExtractArraysOverTime
{
public:
static vtkPVExtractArraysOverTime* New();
vtkTypeMacro(vtkPVExtractArraysOverTime, vtkPExtractArraysOverTime);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
protected:
vtkPVExtractArraysOverTime();
~vtkPVExtractArraysOverTime() override;
private:
vtkPVExtractArraysOverTime(const vtkPVExtractArraysOverTime&) = delete;
void operator=(const vtkPVExtractArraysOverTime&) = delete;
};
#endif // vtkPVExtractArraysOverTime_h
......@@ -711,7 +711,62 @@
</IntVectorProperty>
</SourceProxy>
<!-- ==================================================================== -->
<SourceProxy class="vtkPVExtractArraysOverTime"
<SourceProxy class="vtkPExtractDataArraysOverTime"
label="Plot Data Over Time"
name="PlotDataOverTime">
<InputProperty command="SetInputConnection"
name="Input"
panel_visibility="default">
<ProxyGroupDomain name="groups">
<Group name="sources" />
<Group name="filters" />
</ProxyGroupDomain>
<DataTypeDomain name="input_type">
<DataType value="vtkDataSet" />
<DataType value="vtkTable" />
<DataType value="vtkCompositeDataSet" />
</DataTypeDomain>
<Documentation>The input from which the selection is
extracted.</Documentation>
</InputProperty>
<IntVectorProperty command="SetFieldAssociation"
default_values="0"
name="FieldAssociation"
number_of_elements="1">
<Documentation>Select the attribute data to pass.</Documentation>
<EnumerationDomain name="enum">
<Entry text="Points" value="0" />
<Entry text="Cells" value="1" />
<Entry text="Vertices" value="4" />
<Entry text="Edges" value="5" />
<Entry text="Rows" value="6" />
</EnumerationDomain>
</IntVectorProperty>
<IntVectorProperty command="SetReportStatisticsOnly"
default_values="1"
name="Only Report Selection Statistics"
number_of_elements="1">
<BooleanDomain name="bool" />
<Documentation>If this property is set to 1, the min, max,
inter-quartile ranges, and (for numeric arrays) mean and standard
deviation of all the selected points or cells within each time step
are reported -- instead of breaking each selected point's or cell's
attributes out into separate time history tables.</Documentation>
</IntVectorProperty>
<Hints>
<!-- View can be used to specify the preferred view for the proxy -->
<View type="QuartileChartView" />
<WarnOnCreate title="Potentially slow operation">
**Plot Selection Over Time** filter needs to process all timesteps
available in your dataset and can potentially take a long time to complete.
Do you want to continue?
</WarnOnCreate>
</Hints>
<!-- End of ExtractSelectionOverTime -->
</SourceProxy>
<!-- ==================================================================== -->
<SourceProxy class="vtkPExtractSelectedArraysOverTime"
label="Plot Selection Over Time"
name="ExtractSelectionOverTime">
<Documentation long_help="Extracts selection over time and then plots it."
......@@ -770,6 +825,11 @@
are reported -- instead of breaking each selected point's or cell's
attributes out into separate time history tables.</Documentation>
</IntVectorProperty>
<SubProxy command="SetSelectionExtractor">
<Proxy name="SetSelectionExtractor" class="vtkPVExtractSelection" />
</SubProxy>
<Hints>
<!-- View can be used to specify the preferred view for the proxy -->
<View type="QuartileChartView" />
......
4df521190e516f49e93b0ae008331658
66c6568697a1520c8301410a2674a0f3
36f5448406e7ce4deef5a2f2bdbe3306
570a2fa46026959a80e2ade064ddba79
c2431a70bcdaa93178aeed46cd93476c
51f2b4d6524d1b6437405d481f97da45
8f1af9f033c131bec8dfb45de32979c5
c3a714fcba91c96dbe8016a6ec665142
b0cd49e5025727dbeb5bea79bc2630c4
c9b02c4b93f774d10bd527a35d3571fe
2d686608ce328f35fd76af5894508bf5
5d62258031b9dca3642031cdf56a558d
6fcd58ba4c5aab24127ab5c3007b6960
c9b02c4b93f774d10bd527a35d3571fe
Subproject commit c8ded06d4d18df151a27e5156af3aba0562aa31b
Subproject commit 14c10e355d1ff29a979c05350dda1a8beefeeea6
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment