Program graphs of functions F(x,y)
of two variables.
Parts of it stem from the sixties, and the user-friendliness reminds
of those days.
This program leans quite a bit on the works of
L.M. Taff and J. Kraak
and some contributors whose names have been lost.
On the commandline you have to specify the datafile you want to process, e.g.
plotxy si110.fla
This can be an ascii file, see below, or a flux output file. If the filename is left out the input is taken from the input stream.
When the program starts it asks for:
PostScript file: the output file, will be rewritten if existent.
One of the letters A/F/V/C/X (Ascii/Flux/Vfinal/Coord/Xcoord)
A: input is an ascii file containing NX * NY numbers, F(I,J) (F(I,J), I=1,NX),J=1,NY) (x is the fastest varying coordinate)
F: input is a hexadecimal flux outputfile, and the flux distribution is wanted
V: input is a hexadecimal flux outputfile, and the velocity distribution is wanted
C: input is an ascii file specifying events to be sorted into a distribution F(I,J). The input file consists of numbers arranged in columns per line. Two of these columns represent the x- and y-coordinates respectively. The data are sorted as z(x,y), where the width and the values associated with x- and y-bins depend on input parameters NX,NY, x-min, x-max, y-min, y-max. z(x,y) is the number of events in each bin. Lines beginning with # are skipped Optionally one can select lines starting with a search string, e.g. 'exit'.
X: input is an ascii file specifying events to be sorted, as produced by FLUX option EXITCOORD. It is similar to option 'C', except for some processing of the raw data. The search string is always the word 'exit'. Column 1 (event number) can not be accessed. Columns 2 and 3 (x and y) are incremented by their offsets. Columns 4 and 5 (px and py) are incremented by their offsets, converted to angles th_x and th_y, to the yz and zx plane, repectively, and expressed in degrees. Column 6 is the energy loss in keV as in the raw data. For angles < 15 deg there is not much difference between px,py and th_x,th_y, and one may use option 'C' as well.
The following input depends somewhat on which of these options was chosen.
Normal/Log type N for normal or L for logarithmic graphs
NX,NY: number of bins for X and Y (not needed for options F and V)
specific for option C: search string (see above. Type an empty line if not applicable) x-column y-column (specify which 2 columns to use) x_min, x_max, y_min, y_max : range of the numbers in these columns (numbers outside these ranges will be put at the borders) Here x and y are the horizontal and vertical coordinates
specific for option X: x-column y-column (specify which 2 columns to use) These should be from the set 2=x, 3=y, 4=th_x, 5=th_y, 6=dE x_min, x_max, y_min, y_max : range of the numbers in these columns (numbers outside these ranges will be put at the borders) Here x and y are the horizontal and vertical coordinates
In all cases input data are now obtained and the program types the 'menu':
Choose by typing an integer, called N below. The program returns to this point after a job. Option N = 0 (not listed) stops the program.
Option N > 8 cause new input to be read, skipping N-9 records. (exception: in the case C the file is rewound, allowing different columns to be selected).
You should first give option 5 if you want nice labels etc
XMIN,XMAX,YMIN,YMAX give the values to be used for axis labeling, i.e. the values corresponding to I=0, I=NX, J=0, J=NY. TEXT FOR X-AXIS, TEXT FOR Y-AXIS, TOP label (3 lines) The program asks 3 lines of text that you will see back in the graphs. The same scale for X and Y axes? (0=N0, 1=YES): If you type 1, the contour and gray scale plots will be scaled so that x and y have the same number of units per cm. This is all right if x and y are both angles or lengths and have the same dimension. If you type 0, the plot will fill as much of the screen as possible.
INL,ZMIN,DZ,NLABEL INL = number of contour levels (max value is 10, see however opt 2) ZMIN, DZ : start level, and increment NLABEL : write numeric labels every NLABEL intervals NLABEL=0: no labels
input as above. Can be used to put more contours in a previous contour plot, or to add contours to a gray scale plot
ZMIN, ZMAX : two values corresponding to the minimum and maximum brightness. It is allowed to have ZMIN > ZMAX. Then the highest intensity is the darkest, which is useful for output to printers.
HITE,ANGLA,ANGLB,XLEN,YLEN HITE : I usually type 10000 or -10000 here (0 may also be useful). for other options see program source ANGLA: rotation around the Z axis ANGLB: viewing angle; 0 = frontview, 90 = topview useful values are mostly between 30 and 70 XLEN, YLEN: size of the box in which the result is displayed values of 100 to 150 will usually do. If you give minus the value the x or y surface lines are omitted. This is sometimes useful. ZMIN,ZMAX,TIX,TIY,TIZ: (not asked if abs(HITE) < 10000) ZMIN, ZMAX: min and max values to be displayed (ZMAX=0: autoscaling) TIX,TIY,TIZ: distance between tic marks on the scales (TIX and TIY in array units). ANGLP, X0, Y0, Z0: (only if HITE < 0) ANGLP: amount of perspectivic distortion don't make larger then a few degrees X0, Y0, Z0: viewers position (X0, Y0 in array units) MX0,MY0,NX1,NY1: (only if HITE < 0) allow a subset of the data to be plotted. MX0, MY0 first point (in array units) NX1, NY1 number of points in x- and y-direction (default is 1 1 NX NY)
The data are smoothed. Each datapoint is averaged with its neighbours. Like with all smoothing procedures the penalty is loss of resolution. However in most cases a mild smoothing (give option 6 once or twice) works quite well.
suboptions: 1) SUM over X. Displays Z(Y), summed over X 2) SUM over Y. Displays Z(X), summed over Y 3) Reflect X 4) Reflect Y Reflect the distribution with respect to a line of constant x or constant y, respectively. Options 1 and 2 leave the distribution F(x,y) unaffected, but 3 and 4 modify it.
writes out the distribution (F(I,J), I=1,NX),J=1,NY) in ASCII format to logical unit 15. The filename is system dependent. Look for something like 'ftn15'.
Answer with a non-zero number if you want the previous graph to be written to the plot file.