Prefuse Filterstage like in VTK

  • Sasti

    Sasti - 2013-10-10

    Hi. What I want to realize with Prefuse is a visualization that displays an wireless mesh network (ZigBee). The Data I have for this are the signalstrength values between those devices.
    Well as you can imagine this dataset is not complete, so there probably is some sort of interpolation necessary. Also from this dataset, which is just an table with the measured values over time, I need to create a Graph which has nodes for the devices and edges for the signalstrength.

    So when I understand Prefuse right the is no build in way to interpolate values or to transform data into another format. Something like "Filters" in VTK.
    Now my question is, where should I start to implement a functionality like this.
    I can think of two ways.
    1. Implement some class which derives from the prefuse graph class. This class would get the source tables and instructions in some way. The instructions would describe or implement the way to transform the data. The rest is Prefuse default.
    2. Change the Visualization class so that every data will get transformed through some sort of filter.

    Any opinion is welcome. Thanks in advance!

  • Björn Kruse

    Björn Kruse - 2013-10-11

    There is the prefuse expression language. You can build a data column based on data from another column (see java doc for ExpressionParser).

    I didn't fully get why you need to interpolate and to transform.
    If you have the data (signs strength between two nodes is the edges data) then you can put it into a csv file and read it. Ok if there are multiple values for one edge.

    I would create a column in your edges table and populate it with the data you have.
    Create a second column to hold the final/calculated value.
    If you can't use Expression to fill the latter column, then create ate a continuously running action that iterates over the graph and calculates the final values.

    Hope that helps,

    • Sasti

      Sasti - 2013-10-18

      Hi. Thanks for the answer.
      Expressions and Actions seam to only work in one row. But to calculate the final values I need to consider multiple rows. These rows need to be merged.
      Well its much like an group by in SQL.

      And yes there are multiple values for one edge. The measurement is done over time. So there are multiple values which indicate the signal strength between two nodes, each at a given time.

      I want to achieve that the user can select a point in time and the systems displays the most likely value for this time.

      I hope my problem is now more understandable.


Log in to post a comment.