Data Analysis Design

From ParaQ Wiki
Jump to navigationJump to search

Requirements:

To be able to view a table and/or plot of one or more scalars for a user specified point, cell, or line over time. In short, implement in ParaView 3.0 the data analysis capabilities already in ParaView 2.X.

To filter or not to filter?

While I’m sure this decision was hashed out when it was implemented in ParaView 2, it doesn’t hurt to revisit it. Is there a viable alternative to implementing as a filter? There is the option of keeping the filter implementation but hiding it from the user. There could be a “Data Analysis” entry in the “View” menu that displays a dock widget which would contain the functionality formerly found in the filter panel. Then the user simply picks and probes the data and sees the output in a “global” chart widget. How feasible would it be to “detect” which data is being picked/probed? It seems to me that the Data Analysis filter in 2.X was unlike most others in that I can't think of a scenario where you would need to attach another filter to its output, and you need its input data to be visible for it to be usable. Does this strain the definition of a filter?

Location of chart widget

In ParaView 2, the chart was overlayed in the render window. Was this choice the result of user feedback? Assuming the chart widget gets its own dock widget in ParaView 3, the next decision is whether it should be located inside or outside the Data Analysis’ Object Inspector panel. To answer this, we have to address another question, will the user want to view plots from different datasets in the same chart widget? I think the answer to this will invariably be yes, in which case the only alternative is to have the output plot from a Data Analysis filter reside in a separate dock widget, shared among all Data Analysis filters in the pipeline. Turning off the visibility of a Data Analysis filter will remove its plot from the chart widget and turning it on would add it.

Aggregating data

It occurs to me that knowing how a single point or cell behaves over time only gets you so far. For small enough regions/blocks could we aggregate a scalar’s value over time? An example use case would be wanting to know how a bolt’s average pressure changes over time.

Proposed additions to pqChart:

Some of these may already be implemented, its been a while since I looked at the chart code:

- Legend editor: where the user can change the order, visibility, font, line color, etc, of entries in the legend

- Symbol table: so that the user can insert special symbols into text widgets

- Draggable legend

Other proposed changes/additions to ParaView 2 design:

- Option to plot a scalar on a chart’s right y-axis

- Be able to load and plot CSV data

- Allow plotting vs. other scalars, not just time

All of the above are only proposed ideas at this point. Let me know if you have any ideas or concerns.