You are here
Packet Identification
The main differences between the previous version of FeatureTrack and the current PacketIdentification version can be summarized as:
- The way the plugin works is changed in Visit. I.e. for packet identification (since currently the new Featuretrack algorithm requires vector inputs for 2D or 3D thresholding), now Featuretrack code uses the "Streamline" plot instead of "pseudocolor" plot. This change is done, since Pseudocolor gives only scalar values, (for vector inputs, it provides the norm of the vectors). However Streamline plot can allow you to access 3D vector values within the VtkDataset. (As shown on Figure 1).
- The extracted objects (features) are the joint isosurface results of the swirl and vorts_y values.
- The FeatureTrack options (attributes) are modified: On top of the existing attributes, the current version allows you to enter two "scalar" thresholds (such as the 4.5*mean value of the swirl), seperately.
- By using, delta_x, delta_y and delta_z thresholds, you can define your own box to look for another object to identify packets within a certain box to find new objects. delta_x is the threshold value along the x axis and it can be only positive. Similarly delta_z is the threshold value along the z axis and it can be only positive as well. However delta_y value can be both positive and negative since a new object can be slightly on the left or on the right of the previous objects within the same packet along the y axis.
How the algorithm works:
- Initially algorithm operates on the entire data to extract the 3D objects and creates the initial files. (.trak, .poly, .uocd, .attr). Now the algorithm also saves the (x,y,z) coordinates for both lower left and upperright corner points of the box when the smallest possible box is drawn around each object.
- Then in the first frame it sorts objects based on their centroid locations (from shortest to the highest norm). After that, the algorithm starts to group objects based on their centroid locations.Along the x axis, if the next object is within the box (which is defined by the delta_x, delta_y and delta_z thresholds), then the algorithm checks if the angle between two centroids is between 50 and -2 (these values can be easily set by the user as well, if needed). After this stage, the sucessful pair of objects (features) are having the same packet ID
- Algorithm runs untill all objects gets an Packet_ID. Then the same color is assigned to the same packet IDs. and based on this information, the initial colormap.txt file is being created.
- For the following frames, tracking algorithm tracks the same colors for the same objects..
-
Current issues that I am working on:
-
Tracking small objects might be a hard task for the algorithm because of the overlapping issue. (the small objects may not overlap at all.)
- new objects will get random colors in the following frames which may not be a good idea in every frame. This can be solved by running the packet identification code in each frame to assign these new objects to the appropriate packets, however I am not sure how to track each packet in that case (based on packet centroids maybe?). I am currently working on these problems.
New Attributes:
Figure 1: The FeatureTrack operator attributes (on Visit)
As shown on Figure1, the first 4 attributes are the same as defined on FeatureTrack user's guide.
The 5th attribute (percentThreshold) is the scalar threshold value for the first dimension (such as the swirl value) and it is no longer the percentage as in the previous version of FeatureTrack. It is the actual scalar value which will be compared to the data directly.
Similarly the 6th attribute (percentThreshold1) is the scalar threshold value for the second dimension (such as for the vorts_y value). This threshold is also the actual value (it is not percentage value). Although the 3rd threshold (for the 3rd dimension) is not specificied on this window, if needed, such threshold can also be added easily as well.
SmallestObjVolToTrack: This can be considered as a filter since it ignores the objects which have less number of nodes (points) than the specificied value.
TimestepPrecision: This is the same as in the previous version.
deltaxthreshold, deltaythreshold and the deltazthreshold values are the thresholds that define the box which will be used to search for a new object for the same packet. Here x,y,z defines the coordinate of the centroid for each object.
deltaxthreshold: The difference between the nextobject and the current object's x axis values should be less then this value while the difference is positive.
deltaythreshold: The difference between the nextobject and the current object's y axis values should be less then this value. since the object can be on either side of the current object (either on left or right), we do not look for the sign, and therefore take the absolute value of the difference for y axis.
deltazthreshold: The difference between the next object and the current object's z axis values should be less then this value while the difference is positive.
Figure 1 shows the actual values used for the results.
Click here to see the Packet Identification Results