- An Introduction to Prolate1 -

3-d EEG Potential Field Interpolation on a Prolate Spheroid



The image above shows 5 frames of an animation of real EEG potential field data generated by the Prolate1 program, starting with the upper left corner. The raw EEG data for this example was kindly provided by Dr. Stephen LaBerge (Stanford University / Lucidity Institute). At each point of the lattice of the spheroid, the potential field is being interpolated from a set of 28 sensor values which are contained in an extended 10-20 grid. The Prolate1 program can interpolate a potential field from any arbitrary set of sensor values and locations, not only those which form a grid.

Key aspects of the Prolate1 program operation are described below. You may downlaod the Prolate1 program and follow along with the following operations:

  1. Display of spheroid wireframe.
  2. Display of spheroid lattice points.
  3. Display of spheroid surface patches.
  4. Generation of sensor data and triangulation.
  5. Display of filled triangulation.
  6. Plot settings dialog.
  7. Generation of interpolated potential surface.
  8. Generation of high-resolution interpolation and animation.
  9. Display of lattice points and triangulation.
  10. Display of lattice points color-coded to triangulation.
  11. Reading and displaying input sensor data and triangulation.
  12. Generating an interpolation of input data.

1. Display of spheroid wireframe.

To display a prolate spheroid wireframe drawing, simply start the Prolate1 program. If you are already running the program, choose the "Draw Wireframe" item from the Plot menu. This will show a rough wireframe representation of the currently configured prolate spheroid.

To rotate the spheroid, drag the mouse in the image window, or press the arrow keys. To zoom the spheroid, hold down the shift key and drag the mouse away from or toward the center of the axes, or press the + and - keys.


2. Display of spheroid lattice points.

To show the current lattice points of the spheroid, choose "Draw Lattice" from the Plot menu. The lattice points, and all other displays, can be freely rotated or zoomed with the mouse or keyboard.


3. Display of spheroid surface patches.

To show the current surface patches of the spheroid, choose "Draw Patches" from the Plot menu. The surface patches are defined by the lattice points of the spheroid. Patches contain either 4 lattice points at each corner, or 3 points for patches near the poles.


4. Generation of sensor data and triangulation.

To show the current sensor locations and triangulation, choose "Draw Triangulation" from the Plot menu. Initially, you should see an empty set of axes. To create some test data for sensor locations and time-series values, choose "New Sensor Data" from the File menu. You should then see a set of sensor locations and a triangulation which connects them. Note that initially the Prolate1 program is configured to create a set of test sensors in a grid pattern, but a random pattern can also be created.


5. Display of filled triangulation.

To show a filled representation of the current sensor triangulation, choose "Draw Filled Triangulation" from the Plot menu.


6. Plot settings dialog.

Choose the "Draw Filled Patches" item from the Plot menu. Then, bring up the plot settings dialog by double-clicking in the image window, or by choosing the "Plot Settings..." item of the Edit menu. For now, check the box titled "Don't Draw Objects Outside of Sensor Domain", and click on OK.


7. Generation of interpolated potential surface.

You should now see the above image. Only those surface patches which lie within the hull of sensors will be drawn. The color of each surface patch is given by the interpolated values of each lattice point contained within the patch, according to the color map shown at right. Each lattice point is interpolated from the sensor triangulation using a simple planar method.

The test data generated contains 10 frames of individual sensor values. To see an animation of the data, click on the Go button, or press the > key. To step through each frame of data, click on the Step button or press the space key. To reset the animation to the first frame, click on the Reset button or press the < key. The animation will repeat as long as it is running.


8. Generation of high-resolution interpolation and animation.

To create a higher resolution animation of the potential field, bring up the plot settings dialog by double-clicking in the image window, or by choosing "Plot Settings..." from the Edit menu. In the "N (longitude)" box type 150. In the "N (latitude)" box type 75. Click on OK. You should now see the above image, which performs the field interpolation using a much finer lattice. Note that the image can be rotated and zoomed with the keyboard (arrows, +/-) if the mouse is too slow.

Here is a set of 5 frames of a high-resolution animation of the test data, starting at the upper right:


9. Display of lattice points and triangulation.

Choose the "Draw Triangulation" item of the Plot menu. You should now see the above image. This image shows the location of each lattice point within an element of the sensor triangulation. Each group of points is color-coded to show the triangulation element which contains it. Color-coded lattice points are included in the triangulation display whenever the "Don't Draw Objects Outside of Sensor Domain" box is checked in the plot settings dialog.


10. Display of lattice points color-coded to triangulation.

Choose the "Draw Lattice" item of the Plot menu. This will show the lattice points of the spheroid color-coded according to which of the triangulation elements they belong. Color-coded lattice points are displayed whenever the "Don't Draw Objects Outside of Sensor Domain" box is checked in the plot settings dialog.


11. Reading and displaying input sensor data and triangulation.

To read in a file of EEG sensor positions and time-series data, choose the "Read Sensor Data..." item from the File menu. You may read in several different types of EEG data, including text and binary formats. See the file formats page for a description of the text and binary file formats currently supported.

The above image shows sensor locations and triangulation for an input set of data with 28 sensors and 7250 frames of data sampled at 256 frames / second.


12. Generating an interpolation of input data.

Once you have read in an EEG file containing sensor locations and time-series data, you can interpolate and animate this data by choosing the "Draw Filled Patches" item of the Plot menu. The currently loaded data and triangulation will then be used to create and display each frame of the potential field interpolation. Clicking on the Step or Go buttons will generate a real-time animation of the data.

This image also shows the use of a wrapped polychromatic color map. An animation of this data set is shown at the top of this page.



©Copyright Sky Coyote and Dr. Thomas L. Ferrell, 1998-2002.