In order to access sscan object from other IDL program, a suser has to make sure the following environment variable is set before invoking IDL:
setenv EPICS_EXTENSIONS /usr/local/epics/extensions
setenv IDL_STARTUP $EPICS_EXTENSIONS/idllib/viewer_startup.proThis program can be accessed directly from the IDL prompt. An example of using IDL to create an sscan object, and then use the object method image2d to access the 2D images are given below:
idl IDL> @os.init IDL> loadct,39 IDL> .run sscan__define IDL> file='/home/beams/CHA/Yorick/data/2idd_0002.mda' IDL> v = obj_new('sscan',file=file) IDL> v->image2d
NAME: sscan::det PURPOSE: This method returns the defind detects for the specified rank. OUTPUT: ID_DEF: returns the indicator vector of defined detectors IP_DEF: returns the indicator vector of defined positioners KEYWORDS: RANK: specify the axis rank, default is same as the scan dimension EXAMPLE: This example returns the indicater vector of defined vector of the rank 2 v->det,id_def,rank=2
(See sscan__define.pro)
NAME: sscan::get PURPOSE: This method allows the user to extract scan data info of an opened mda scan file through using the keyword specifications. CALLLING SEQUENCE: Obj->[sscan::]get,DA1D=da1d,DA2D=da2d,... KEYWORD: PA1D - extract positioner vector array of outer most scan PA2D - extract positioner vector array of inner scaan PA3D - extract positioner vector array of inner most scan DA1D - extract detector 1D vector array DA2D - extract detector 2D image array DA3D - extract detector 3D volume array LABELS - extract name,desc,units labels[89*3,3] of 4PIs+85DIs ID_DEF - extract indicator id_def[89,3] of defined 4PIs+85DIs RANK - return dimension or rank of scan XDESC - extract X positioner description YDESC - extract Y positioner description ZDESC - extract Z detector names description EXAMPLE: In this example extracts the 8th image from the 2D data array from the /home/beams/CHA/Yorick/data/2idd_0002.mda file, then displays the extracted image by the plot2d program. v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->get,da2d=da2d im = da2d(*,*,7) plot2d,im
(See sscan__define.pro)
NAME: sscan::image2d PURPOSE: This method allows the user to use mouse-drive image2d program to analyze any 2D image arrray extracted from a 2D/3D scan mda file. User can easily access ROI, Calibration, panimage subprograms. CALLING SEQUENCE: Obj->[sscan::]image2d EXAMPLE: v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->image2d
(See sscan__define.pro)
NAME: sscan::Init PURPOSE: This function create a sscan object from a selected mda file. If file name keyword is not specified then the mda file selection dialog will be used to select the desired mda file. The object created can be used by various methods defined in the program. CALLING SEQUENCE: Obj = obj_new('sscan' [,FILE=file ,PATH=path,...]) KEYWORD: file - specifies input mda file used path - dialog_pickfile will be used to select the mda file with specified path directory HD_pos - returns array of positioner info HD_det - returns array of detector info HD_trg - returns array of trigger info EXAMPLE: This example creates a sscan object v with known mda file: v = obj_new('sscan',file='/home/beams/CHA/data/xxx/cha_0001.mda') This example first uses the file selection dialog to pick a mda file from the specified path directory, then creates a sscan object for the selected file: v = obj_new('sscan',path='/home/beams/CHA/data/xxx')
(See sscan__define.pro)
NAME: sscan::panimage PURPOSE: This method allows the user flexiblely to display the panimage of the 2D data array extracted from a 2D/3D scan mda file. A user can easily generate the panimage output in various combination and format. CALLING SEQUENCE: Obj->[sscan::]panimage EXAMPLE: v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->panimage
(See sscan__define.pro)
NAME: sscan::plot1d PURPOSE: This method allows the user to use plot1d to view the extracted 1D array from any 1D/2D/3D scan mda file. By default, all the detectors defined will be plotted by plot1d. A user has great flexibility in plot re-configuration by pressing the PlotOptions... dialog. CALLING SEQUENCE: Obj->[sscan::]plot1d [,SCAN=scan] KEYWORD: SCAN: specify the 2D/3D zero based scan index number (applicable to 2D/3D scan only) If specified, then the 1D array extracted from the da2D array is plotted. If not specified, by default the da1D array is plotted. EXAMPLE: Following example extracts all the detectors from the da1D data array from the given scan mda file v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->plot1d Following example extracts all detectors from the da2D data array for 3D scan # 10. v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->plot1d,scan=10
(See sscan__define.pro)
NAME: sscan::plot2d PURPOSE: This method allows the user to use mouse-drive plot2d program to analyze a selected 2D image from 2D array extracted from a 2D/3D scan mda file. User can easily access PICK1D, ROI, Calibration subprograms. CALLING SEQUENCE: Obj->[sscan::]plot2d,ID INPUT: ID - zero based image index number, default to 0 EXAMPLE: Use plot2d to extract the 16th 2D image from the 2D image array. v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2idd_0002.mda') v->plot2d,15
(See sscan__define.pro)
NAME: sscan::print PURPOSE: This method print out the brief info about the extracted sscan object of the user specified mda file. CALLING SEQUENCE: Obj->[sscan::]print EXAMPLE: v = obj_new('sscan',file='/home/beams/CHA/data/xxx/cha_0001.mda') v->print
(See sscan__define.pro)
NAME: sscan::view3d_2d PURPOSE: This method allows the user to display 3D data array from a 3D scan. It calls view3d_2d program which allows the user to slice any cross section from any axis. It calls the sum image program and allows the user flexible to re-define the range of index includeed in sum image calculation. Various image subprograms are vailable in veiwe3d_2d. CALL SEQUENCE: v->view3d_2d,ID INPUT: ID: Specify the zero based seq # , default to 0 Integer ID can not exceed number of DIs defined in the inner most scan record for a 3D scan EXAMPLE: Following example get the second 3D array from the 3D scan file. v = obj_new('sscan',file='/home/beams/CHA/Yorick/data/2xfm_0020.mda') v->view3d_2d,1
(See sscan__define.pro)
1) Object method allows the user to access 1D/2D/3D data from the sscan object @os.init .run sscan__define.pro v = obj_new('sscan',file='/home/beams/CHA/data/xxx/cha_0001.mda') Pick mda file from the specified input directory v = obj_new('sscan',path='/home/beams/CHA/data/xxx') v->get,da1d=da1d,da2d=da2d,.... extract data array and descs info v->plot1d,scan=id where id zero based line seq # v->plot2d,id where id zero based image seq # v->image2d pass 2D image array to image2d program v->panimage pass 2D image array to panimage program v->view3d_2d pass 3D data array to 3D slicer view3d_2d program v->pickfile use file selection to pick another mda file 2) The ILD widget program sscan allows the user view data through packaged idl program sscan
(See sscan__define.pro)