SWIFTVis

The Data Analysis and Visualization Package for SWIFT/SWIFTER


Download jar file. Downlaod the file this link points to to get the most recent version of SWIFTVis. It is an executable JAR file. From the command line run "java -jar SWIFTVis.jar". If you find that you are running out of memory you can use the -Xmx option. This code has been updated to use features of Java 5.0. You should have a version of it installed to run SWIFTVis. If not, go here to get one (you only need the JRE unless you want to develop new components). In Windows you can simply click on the JAR file icon (but don't tell Hal you are running Windows). If you have a machine with 1+ GB of RAM and are willing to have SWIFTVis use quite a bit of it (or if you get OutOfMemoryErrors otherwise) then use the -Xmx option. Placing -Xmx1000M before the -jar will allow Java to grow up to 1GB of memory if needed. You can go higher as well.

SWIFTVis is an open source work in project. If you find bugs or want to make contributions just contact me at mlewis@trinity.edu. Do not upgrade to a newer version of SWIFTVis lightly. You should probably keep your older JAR file around. The reason is that if the data in certain elements has changed, your previous saved files and templates will likely be invalid in the newer version.


SWIFTVis is a data analysis and visualization package that was written primarily for use with SWIFT and SWIFTER. However, the package also includes general functionality and expandability so that it can be used with other types of data as well (for example it has been used with planetary ring data). It has been written in Java to allow it to be usable across many platforms.

The SWIFTVis package is built on the fundamental design of having data sources that connect through multiple filters to process elements of data and which go to plots that display the data. Individual elements contain vectors of parameters and values. Below are lists of the sources, filters, and plot styles that are part of the normal SWIFTVis application. Others can be created by users to fill more specific needs. Users can submit these to the main package so that others can have access to them as well. The main SWIFTVis environment is broken into two regions, one that shows a graph of the connected sources, filters, and plots, and a second that shows the properties of the element selected in the graph. A sample session in SWIFTVis is shown below with the plot that is being generated.

The flexibility provided by the design of SWIFTVis is significant, but as a result there can be a bit of a learning curve. For that reason, we provide some basic information and a number of tutorials that walk you through the steps of doing various things with SWIFTVis.

Elements and SWIFTVis basics

Basic bin.dat tutorial

Binning and surface plots

Movies of evolution

Using discard information

General data files

Plotting functions (sequences and function filters)

Finding Particles in Resonance (*** Bill and Luke *** This is a draft so you can see how I'm thinking you could do this.)

Tips on reusing work and templates

Clickable tools

Options and Configurability (making your own sources, filters, and data sets)

Feedback and Bugs


Sources

SWIFT binary position data - This source reads in the primary output file from SWIFT

SWIFT discard data - This source reads in the discard data from SWIFT

SWIFT encounter data - This source reads in the encounter data from SWIFT

General data files - This allows the reading of virtually any text or binary file.

Sequences - This source does not read a file, but instead produces a linear sequence of values that can be passed through filters without forcing users to create simple "dummy" files.


Filters

Selection filter - This filter selects elements of the first source into it based on certain conditions provided by the user.

Thinning filter - This filter is designed to do more uniform cutting down of data. This can help you get a quick view of information without the overhead of processing all the data in a source.

Key selection filter - This another selection filter, but this one is intended to select items from one file based on values in another file.

Function filter - This filter will transform data using user specified functions. It can also be used to merge two parallel data sets into a simgle collection.

Coordinate conversion filter - Not yet implemented. Will convert from orbital elements to heliocentric and back.

Merge filter - This filter simply takes two or more data sets and produces and single one that is the concatenation of the two.

Sort filter - This filter will sort all elements based on a specified formula or value.

Binned filter - This filter will produce hystogram-like data from a data set in multiple dimensions.

Movie filter - This filter lets through a window of data from the source. It has functionality so that you can easily have the window move through the data. This can be used for seeing how a system evolves over time.

Group numbering filter - This is mainly for if you are pulling in outside data sets where the data is in groups but elements of the groups aren't numbered. It also numbers the groups themselves.

Wake peak filter - As one might guess from the name, this filter was intended to be used with planetary ring simulation data to pull the locations of wake peaks out of a surface plot. It finds local maxima along slices through a data set so could be used with other data as well to find things like points of maximum eccentricity for a particle.

Region selection filter (Listener) - This filter selects a rectangular region by only taking elements that fall in a certain range in two dimensions. It is also a listener so it can be set up to take click input from plots and move the viewing region or zoom in accordingly.

Slice selection filter (Listener) - This filter selects elements within a certain distance around a slice through the dataset. Slices are made in a 2-D space either vertically, horizontally, or along an arbitrary segment. Data is enhanced with the distance from and position along the slice. This is a listener so slices can be located by clicking on plots.


Plotting

Plot element - This is the element that you place in the graph. It has many options of its own in addition to being able to display multiple different plot styles.

Scatter plot - This is a standard plotting style set in the general 2-D SWIFTVis plotting mechanism.

Rectangular surface - This is for basic surface plots. It is intended to be used with a binned filter.

Vector field - This style plots positions and lines off them to show vector fields.

Image adder - This plot style will add a scaled image into a plot. It is a handy way to add outside graphics into a plot, or even just to put axes on images created with other tools.

Streamlines - This plot style was developed for some work in ring dynamics. It basically connects points in a data set. This behavior can be mimicked with a group numbering filter and a scatter plot.

General surface - This was also developed for ring dynamics, but also serves as a more powerful form of surface plotter. While it can be used with a binned filter in the same way that a rectangular surface can, it has the ability to make the regions of the surface non-rectangular and can also plot up to three data sets on one surface.


Javadocs