Extreme Graphics with Extrema
High-energy physics experiments tend to generate huge amounts of data. While this data is passed through analysis software, very often the first thing you may want to do is to graph it and see what it actually looks like. To this end, a powerful graphing and plotting program is an absolute must. One available package is called Extrema (http://exsitewebware.com/extrema/index.html). Extrema evolved from an earlier software package named Physica. Physica was developed at the TRIUMF high-energy centre in British Columbia, Canada. It has both a complete graphical interface for interactive use in data analysis and a command language that allows you to process larger data sets or repetitive tasks in a batch fashion.
Installing Extrema typically is simply a matter of using your distribution's package manager. If you want the source, it is available at the SourceForge site (http://sourceforge.net/projects/extrema). At SourceForge, there also is a Windows version, in case you are stuck using such an operating system.
Once it is installed
on your Linux box, launching it is as simple as typing in
pressing Enter. At start up, you should see two windows: a visualization
window and an analysis window (Figure 1). One of the most important buttons
is the help button. In the analysis window, you can bring it up by clicking
on the question mark (Figure 2). In the help window, you can get more
detailed information on all the functions and operators available
Figure 1. On startup, you are presented with a blank visualization window and an analysis window.
Figure 2. The help window gives you information on all of the available functions, operators and commands.
Extrema provides 3-D contour and density plots. For 2-D graphing, you can control almost all the features, like axes, plot points, colors, fonts and legends. You also can do some data analysis from within Extrema. You can do various types of interpolation, such as linear, Lagrange or Fritsch-Carlson. You can fit an equation to your data with up to 25 parameters. Extrema contains a full scripting language that includes nested loops, branches and conditional statements. You either can write out scripts in a text editor or use the automatic script-writing mode that translates your point-and-click actions to the equivalent script commands.
The first thing you will need to do is get your data into Extrema. Data is stored in variables and is referenced by the variable's name. The first character of a variable name must be alphabetic and cannot be any longer than 32 characters. Other than these restrictions, variable names can contain any alphabetic or numeric characters, underscores or dollar signs. Unlike most things in Linux, variable names are case-insensitive. And remember, function names are reserved, so you can't use them as variable names.
String variables can contain either
a single string of text or an array of text strings. Numeric variables
can contain a single number, a vector (1-D array), a matrix (2-D array)
or a tensor (3-D array). All numbers are stored as double-precision
real values. Unlike most other programming languages, these arrays
are indexed starting at 1, rather than 0. There are no limits to the
size of these arrays, other than the amount of memory available on your
machine. Indexing arrays in Extrema can be interesting. If you want the
eighth element of array x, you simply can reference it with
x. You can
grab elements 8, 9 and 10 with
x[8:10]. These indices can be replaced
with expressions, so you could get the eighth element with
Joey Bernard has a background in both physics and computer science. This serves him well in his day job as a computational research consultant at the University of New Brunswick. He also teaches computational physics and parallel programming.
- Integrating Trac, Jenkins and Cobbler—Customizing Linux Operating Systems for Organizational Needs
- New Products
- Tech Tip: Really Simple HTTP Server with Python
- Returning Values from Bash Functions
- EdgeRouter Lite
- Non-Linux FOSS: Remember Burning ISOs?
- RSS Feeds
- Cooking with Linux - Serious Cool, Sysadmin Style!