Peter Briggs: mapslice - a map viewer for CCP4i



User Requirements

The basic list of requirements from a user perspective is:

This list is not in any order of importance.


Programming Issues

The basic mapslice program will consist of Tcl/Tk code interacting with external (non-Tcl) code of some description. The purpose is to perform the following basic functions:

  1. Read in an arbitrary map section
  2. Generate contour lines
  3. Display the contours

My present thinking is that steps 1 and 2 should be performed by non-Tcl code, producing a set of Tcl drawing commands which are then executed by the Tcl code (step 3). Some possible ways of achieving this are:

  1. Use an external program to read sections from a map directly each time a section is required. Call mapmask to reorder the map axes if sections along other axes are required.
    Issues:
    a. Requires calls to two programs (speed)
    b. Requires creating external temporary map files

  2. Use an external program to read in a whole map each time a section is required. Any axis reordering can be done inside the program before generating the contours.
    Issues:
    a. Reading in a whole map is slower than reading in a single section

  3. As (2) above, but: the external program runs "interactively" with the Tcl code. Each map is read into memory only once.
    Issues:
    a. Difficulties with extracting Tcl information from the interactive output.

Beyond this are options (?) which involving interfacing the Tcl directly with compiled Fortran (or C/Fortran) subroutines to read in and contour the sections. I really have no idea at this stage how feasible this would be, and how easy it would be to maintain.



[Back to home page]