To Do List for map3d

Rob MacLeod and Bryan Worthen

March 17, 2005


Contents

1 Intro

Here is what we hope will be a dynamic list of needs, wishes, and dreams for map3d. The latest version 6 is a big improvement, and we are almost to the capabilities of the old map3dGL and have many new ones that map3dGL will never enjoy.

2 The Lists

2.1 Bugs that (may still) need fixn'

  1. Nothing; the program is perfect! (See bugzilla to dispell this illusion).

2.2 Rob's and Bryan's Top less-than-or-equal-to-20 List

From the list below, here are our current top picks for things to do. This list, last updated on March 17, 2005, lists first a number of ``small'' items, and then a few of the larger pieces we would like to tackle in the near future. See the more detailed list and the background sections below.

  1. Release source code version of map3d; include all necessary libraries and some documentation about how to make the program. Especially, make it clear that we have no facility to support changes; people can send things to us but we will have to evaluate their value before merging with the release version.
  2. Allow coloring of the nodes to match value.
  3. Allow some control over the number of significant digits get displayed when marking values on nodes or in scale bar.
  4. Add support for creating visualization geometry from a landmark file.
  5. Add support for labels in landmark file.
  6. In reponse to another of Ed Ciaccio's comments, we should find a way to recycle the colors for data sets that span a large range, typically of activation times. This arises when map3d sees multiple beats in a single data file and the user wishes to see activation times for the series. The solution Ed suggested was to reuse the colors. What we need to figure out is how to control this and let the user determine what range of data values maps to each pass through the colors.

  7. It may be time to consider a new interface to the clipping plans; as a start, we could have one clipping plane appear by default in the x-y screen plane, i.e., always cut the object at z=0 relative to the screen. Then the other could do the same in another plane, perhaps x-z. And perhaps we need some other way to control the plane, perhaps rotate it rather than the object? Ideas?

  8. Continue to develop the visualization of time series attributes, e.g., activation and recovery times together with time signals.

  9. Play with state saving and sript generation (Rob)
  10. Multiseries data file in .mat files
  11. Some features do not indicate their state i.e., whether it is turned on or not. (Bryan)
  12. Test: function to parse filenames and extract the experiment data and run number, which is encoded into the filenames for all tsdf files. Then use this information where we do labelling. (RSM)
  13. Add iconify/maximize for all surfaces at once rather than each surface
  14. Put the arrows on landmark fibers. (status??)
  15. Investigate some new color maps that have less green/yellow and use more colors in their place.
  16. Support for script writing in which the user can save current settings and layout in a script file for rerunning or editing. This needs more testing and perhaps some user driven selection of content; it is a little too inclusive at present.

2.3 Larger items

  1. Restore use of report level throughout the code and allow user to select it from a menu.

2.4 Release Documentation list

  1. (Done)Mac installation
  2. (Done)Frame control(set time to zero)
  3. (Done)Reference leads
  4. (Done)Pick Window more detailed info toggle
  5. Matlab file format
  6. (Done) Matlab file usage
  7. (Done) 'w' key to save image quickly
  8. (Done) more details on image saving dialog
  9. (Done) CTRL+SHIFT can be substituted for ALT
  10. (Done) script saving
  11. (Done) state saving
  12. (Done) new version of gouraud shading (textures) + method of reverting
  13. (Done) bug fixes: image saving (and many unknown ones)

3 The Rest of the List

Here is a list in outline form of some more things in the waiting list. See the background sections below for more details.

3.1 Display

  1. Dynamic waterfall plots of two-dimensional datasets on irregular grids.
  2. ``Video display'' options to thicken lines and increase font sizes or remove unnecessary lettering.
  3. Provide user options, via the command line and eventually a menu to enter text strings to show in the displayed material for the surface windows. This would allow the user to make some labels for the displays.
  4. Vector field visualization.
  5. Stereo viewing and VR control.

Figure 1: Comparison of color mapping between old (left) and new (right) map3d.
 
compare color mapping

3.2 Controls

  1. Window placement at start up or when launching new time series window.
  2. Control of lighting model
  3. Remote control of animations.

3.3 Input/output

  1. When saving the mesh, there appears to be a bug in the way the meshes are saved; the main need here is to adjust a mesh and then save it with that adjustment. The ambiguity arises with what we mean by adjustment. One would like to be able to move one surface relative the other and then save the moved mesh with just the transformations applied relative to the other geometry. It appears now that moving just one surface and save the results leads to both surfaces being transformed-and even then, their relative position is not preserved.
  2. Use feedback mode to capture screen contents as vector based postscript.
  3. When specified without extension, the program should look for sensible file extensions and complete them if possible; right now it does this for the first surface of a multisurface plot but then fails on the others.

3.4 Documentation

  1. Make some new screen dumps from the scalar display for the manual.
  2. Check on the controls available for landmarks and update controls.TEX accordingly.


3.5 Miscellaneous

4 Some background


4.1 Scaling options

There is a wide variety of options available for mapping scalar values to colour and contour levels. One can picture the process as based on four facets:

Extrema:
the extrema of the data and the selected colour maps determine the basic parameters of how value maps to color. map3d maintains a detailed list of data extrema organized both by time signal, time instant and by surface. Thus it is possible to determine extrema based on just the most local of conditions--a particular frame and surface--or by more global conditions--the full range of frames or the full set of surfaces.
Scaling function:
the mapping between value and color occurs according to some mathematical function, the simplest of which is linear. The scaling function uses the selected extrema and describes a complete mapping between value and color.
Mapping:
by scale mapping, we mean how the translation from value to color treats positive and negative values. We may choose to map uniformly between the extrema or to apply different extrema or functions to the positive and negative values.
Color maps:
the color displayed for a particular scalar value depends on the actual range of colors and their order in the color map.

map3d can adjust all four facets of the scaling to create a wide range of displays. We chose to limit some of these options, however, in an effort to create reproducible displays that reflect standard within the field. Of course, we chose our field, electrocardiography, as the basis, a fact for which we make no apologies and simply encourage others to make similar choices for their own field and implement map3d accordingly. Subsequent versions of map3d will support this flexibility.

Below are the specific choices that map3d offers to control data scaling and display

Scale range
map3d supports several selections of range over which to look for extrema. In local range, only the data presently visible are scanned for extrema--this is the default. In the full global range, all the data in the entire dataset are used, even those not presently visible on the display. In between these cases, one can have global in time and local in space, i.e., we scale each surface separately but use all time values for that surface. Or one can select local in time and global in space, in which map3d scans all surfaces for the data extrema, but for each time instant separately The user scaling scope uses the current user-selected values for maximum and minimum for the scaling (see -pl and -ph input parameters.

Scale function
The scale model describes the way in which scalar data are mapped to colours (or contours). The present choice is linear, but the next version of map3d will include: linear model, which simply maps the data to a range of colours in a completely linear fashion, i.e., colour = K$ \phi$; the logarithmic model, which highlights the lower level data values at the cost of poorer resolution at the higher levels i.e., colour = A log($ \phi$) + B; and the exponential model, which does the opposite, compressing the smaller levels and expanding the higher ones to span a wider colour range, i.e., colour = AeB$\scriptstyle \phi$.

Scale Mapping
There are several different ways to manage the way positive and negative data are treated in the scaling transformations in map3d. The current version supports the simplest, or true mapping, in which the data are used as they are with no consideration of positive or negative values--the color map spreads evenly across the range of the extrema. Subsequent versions will support the symmetric scale mapping, which sets the positive and negative extrema symmetrically--the larger (in the absolute value sense) determines both maximum and minimum data values. Also to appear in the net version is the separate scale mapping, in which the positive and negative extrema are treated completely separately--`half' the colours (and contours) are used for the positive values, half for the negative values. This is equivalent to producing maps with the same number of contours for both positive and negative values, even when the positive data have a different absolute maximum value than the negative data.

Contour spacing
the contour values are a function of the data and the user selection of scale range, model, and mapping (see following items). Fundamentally, the user selects between contour spacing based on the number of contours selected or based on fixed spacing between contours. The actual result depends, in turn, on the range of data values and the desired mapping between value and colour.

About this document ...

To Do List for map3d

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 3 -no_white -link 3 -no_navigation -no_math -html_version 3.2,math -show_section_numbers -local_icons todolist

The translation was initiated by Rob Macleod on 2005-03-17




Rob Macleod 2005-03-17