Extended IDL Help

vw2d.pro

At present this program is installed in the /usr/local/epics/extensions/idllib directory for EPICS R3.14. This program provides IDL users a widget application VW2D to load a 2D scan scan file saved by the IOC and obtaining various display features of the 2D data.

List of Routines


Routine Descriptions

BOX_CURSOR

[Next Routine] [List of Routines]
 NAME:
	BOX_CURSOR

 PURPOSE:
	Emulate the operation of a variable-sized box cursor (also known as
	a "marquee" selector).

 CATEGORY:
	Interactive graphics.

 CALLING SEQUENCE:
	BOX_CURSOR, x0, y0, nx, ny [, INIT = init] [, FIXED_SIZE = fixed_size]

 INPUTS:
	No required input parameters.

 OPTIONAL INPUT PARAMETERS:
	x0, y0, nx, and ny give the initial location (x0, y0) and 
	size (nx, ny) of the box if the keyword INIT is set.  Otherwise, the 
	box is initially drawn in the center of the screen.

 KEYWORD PARAMETERS:
	INIT:  If this keyword is set, x0, y0, nx, and ny contain the initial
	parameters for the box.

	FIXED_SIZE:  If this keyword is set, nx and ny contain the initial
	size of the box.  This size may not be changed by the user.

	MESSAGE:  If this keyword is set, print a short message describing
	operation of the cursor.

 OUTPUTS:
	x0:  X value of lower left corner of box.
	y0:  Y value of lower left corner of box.
	nx:  width of box in pixels.
	ny:  height of box in pixels. 

	The box is also constrained to lie entirely within the window.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	A box is drawn in the currently active window.  It is erased
	on exit.

 RESTRICTIONS:
	Works only with window system drivers.

 PROCEDURE:
	The graphics function is set to 6 for eXclusive OR.  This
	allows the box to be drawn and erased without disturbing the
	contents of the window.

	Operation is as follows:
	Left mouse button:   Move the box by dragging.
	Middle mouse button: Resize the box by dragging.  The corner
		nearest the initial mouse position is moved.
	Right mouse button:  Exit this procedure, returning the 
			     current box parameters.

 MODIFICATION HISTORY:
	DMS, April, 1990.
	DMS, April, 1992.  Made dragging more intutitive.
	June, 1993 - Bill Thompson
			prevented the box from having a negative size.
       04-18-96   bkc  Made the box color more visible.
       05-28-98   bkc  Reset bounding box color 

(See vw2d.pro)


FUNCTION READ_SCAN,FILENAME,SCAN,DUMP=DUMP,LASTDET=LASTDET,PICKDET=PICKDET,HEADER=HEADER

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       FUNCTION READ_SCAN,Filename,Scan,Dump=Dump,LastDet=LastDet,PickDet=PickDet,Header=Header

 PURPOSE:
       This function read any 1D/2D/3D scan file and returns a scan pointer 
       which consists of few heap pointers to point to the data extracted
       from the XDR  scan file.
 
       If succeed it returns the scan number, otherwise it returns -1.

 CATEGORY:
       Function.

 CALLING SEQUENCE:

       READ_SCAN(Filename,Scan, ...)

 INPUTS:
       Filename:    Input XDR scan filename
 
 KEYWORD PARAMETERS:
       DUMP :  Set this keyword to specify the plot title string.

       PICKDET: Specify the detector # , if specified only the 3D array
                for the specified detector is returned 
                If -1 is specified, no 3D data array is returned for
                the 3D scan
       LASTDET: [1,1,1] set the initial temp detector numbers for
                3D scan record, it returns the last detector # 
                defined in each scan record
                If pickDet is defined, then the lastDet[0]=1 will be 
                returned for 3D scan
       HEADER: Set this keyword to specify the xtitle string.

 OUTPUTS:
       SCAN: The scan data structure composed of heap data pointers.
             
             scanno   -  integer pointer of scan number
             dim      -  integer pointer of scan dimension 
             npts     -  pointer of requested data point vector (dim)
             cpt      -  pointer of current data point vector (dim)
             id_def   -  pointer of defined Pi & Di integer array (85,dim)
             pv       -  pointer of PV names string array  (85,dim)
             labels   -  pointer to PV labels string array (85*3,dim)
             pa       -  pointer to positioner array pointer  (dim)
             da       -  pointer to detecor array pointer  (dim)

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
 RESTRICTIONS: Required scan filename which is automatically saved
               by the scan record by IOC. The filename follows the
               special sequential rule which is ended with '.scan' type.

 EXAMPLES:
         filename = '/home/beams/CHA/data/xxx/cha:_0001.scan'
         scanno = read_scan(filename,SCAN)
          
 MODIFICATION HISTORY:
       Written by:     Originally written by Eric Boucher 
                       Modify and extended by Ben-chin K. Cha, Mar. 7, 2001.

(See vw2d.pro)


VW2D

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       VW2D	

 PURPOSE:
       This program provides the EPICS user a convenient IDL 2D scan data 
       display tool.  Its input image file is automatically saved by the  
       data catcher program CATCHER_V1. 

       Currently, this program provides TV, SURFACE, CONTOUR, SHOW3, PLOT2D
       and SHADE_SURF plot. It also provides simple xz, yz line plot and data
       value query information.

 CATEGORY:
	Widgets. 

 CALLING SEQUENCE:
	VW2D

 INPUTS:
       None.	

 KEYWORD PARAMETERS:
     GROUP:   The widget ID of the group leader of the widget.  If this 
              keyword is specified, the death of the group leader results in
              the death of VW2D.
     FILE:    The input image file name.  If this keyword is specified, the
              file should contain the image data must be in the data catcher
              created format. 
     CA:      If this keyword is specified, reset 2D positioners is possible
     DNAME:   If specified, the danme will be used instead of default names

 OUTPUTS:
       It provides option of postscript plot of drawing area.

 COMMON BLOCKS:
       None.

 RESTRICTIONS:
	Drawing area is 460 x 400 pixels.

 PROCEDURE:
       This program is available as an epics/extensions tool. It can be
       directly accessed from the view data menu of the scanSee - DC.  
 
 EXAMPLE:
       VW2D

 MODIFICATION HISTORY:
       Written by:     Ben-chin K. Cha, 02-27-96.
       10-19-98 bkc   R3.13.1 new XDR save format
       12-04-98 bkc   R1.2
                      Fix the 2D image width problem due to aborted 2D scan
       12-15-98 bkc   Use color shade values for shade_surf plot
       01-12-99 bkc   Fix TV plot of Step # option
                      Fix the problem in plotting the last detector 
       03-04-99 bkc   R1.2b
                      Replace xsurface by plot2d...
       04-09-99 bkc   Add color bar
       06-09-99 bkc   R1.2c
                      Add 2D ROI statistic menu
       02-15-00 bkc   R1.2d
                      Fix problem of saving ascii files, use ASCII subdirectory
                      Save tiff,gif file in the TIFF, GIF subdirectory
                      Use default xmax, ymax index
                      Add caput buttons for 2D positioner setting
        	       Add submenu FWHM on Y, FWHM on DY/DX
       04-20-00 bkc   R1.2e
                      Strip out read_scan.pro readScan.pro
       06-29-00 bkc   R2.0
                      Support 85 detectors
       08-19-00 bkc   R2.0.1
                      Detector name default to database definition
       11-19-00 bkc   R2.1
                      Support various sublist of panImage strips
                      Dynamic picking the sublist of panImage
                      The GIF is replaced by XDR, IDL 5.4 does not support GIF 
       02-09-01 bkc   R2.2
                      Created with new version of read_scan.pro.R2
		       Fix the renew image region
       05-29-01 bkc   R2.3
                      Accept both '.scan' or '.mda' suffix for scan files 
                      Add format control on 2D image ASCII data display
       06-07-01 bkc   R2.4
                      Assign detector name allowed on command lines
                      scan2d_roi allow save and read filter range
                      Mutiroi_pick can read the fileter ROI from scan2d_roi
                      ScanSee_overlay 1D scan plot is available
       06-27-01 bkc   R2.5
                      Add pickx into vw2d

       03-08-02 bkc   R2.5.1
                     -Use RMB zoom to set new 2D scan ranges of interest
                     -Add XL,XR,YL,YR, and Set button for setting new
                      2D scan ranges.
                     -Remove YZ, XZ probe
     
       04-22-02 bkc  -Remove loadct,39 in os.init, so it remember the last 
                      color table loaded into scanSee
                     -Modify the user interface for the Image Color Scheme
                      Close of Image Color Scheme returns autoScaled mode
                     -Replace D1-DF group button by list widget
		      -Include X,Y,Z data ranges in saving XDR image
                     -Fix scan setup allows any scan record name
       09-10-02 bkc  -R2.5.2
                      Update the read_scan routine
       03-03-03 bkc  -R2.5.3
		       Add timestamp to scan structure

(See vw2d.pro)


XSURFACE

[Previous Routine] [List of Routines]
 NAME:
	XSURFACE

 PURPOSE:
	This routine provides a graphical interface to the SURFACE and
	SHADE_SURFACE commands.  Different controls are provided to change 
	the viewing angle and other plot parameters.  The command used to 
	generate the resulting surface plot is shown in a text window.

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:
	XSURFACE, Data

 INPUT PARAMETERS:
	Data:	The two-dimensional array to display as a wire-mesh or
		shaded surface.

 KEYWORD PARAMETERS:
	GROUP:	The widget ID of the widget that calls XSURFACE.  When this
		keyword is specified, the death of the caller results in the
		death of XSURFACE.

 SIDE EFFECTS:
	The XMANAGER is initiated if it is not already running.

 RESTRICTIONS:
	XSURFACE does not accept any of the keywords that the IDL command 
	SURFACE does.

 PROCEDURE:
	Create and register the widget with the XMANAGER and then exit.

 MODIFICATION HISTORY:
	Created from a template written by: Steve Richards, January, 1991.
       02-12-96   BKC  Modify the Xsurface, returned the base widget ID,
			which provides a handle for the calling program
			and such that can be managed by the calling program

(See vw2d.pro)