This page was created by the IDL library routine
mk_html_help
. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Fri May 28 14:35:17 2010.
CHECKPARM -- Don Banfield -- ??? PURPOSE: This procedure will check that the given set of parameters is valid. It will adjust those that are allowed to vary to make them return to a valid state. SYNTAX: checkparm, a [, MAXPI0= , /no_vary , usevarylist= ] INPUT: a = parameters that are varying OPTIONAL KEYWORDS: maxpi0 = maximum value for pi0 parameters no_vary = check all parameters for valid values whether or not they are being varied usevarylist = vector containing the indices of the varying parameters (default is the current common variable "varylist") REQUIRED COMMON VARIABLES: afull, varyflag, varylist, npi0 REVISION HISTORY: 22 June 2009 - added the case of a higher pressure varying with a lower layer at the max 03 March 2010 - added the case of a middle layer varying with the layers above and below at equal values 02 April 2010 - vary flag can equal 3 to denote pi0 fixed at the pi0 value immediately redward
(See checkparm.pro)
CHISQD -- Don Banfield -- ??? PURPOSE: This function will compute the model and chisquared for a given set of data and parameters for the model. SYNTAX: result = chisqd(f,y,sigma,m,n,allchi) INPUTS: y is the observations vector (n) f is the model evaluation (n) given the parameters and independent variables sigma is the standard deviation vector (n) m is the number of varying paramaters n is the number of observations OPTIONAL OUTPUT: allchi = named variable to hold the vector (n) with chi^2 for all observations OUTPUT: result = reduced chi^2 value
(See chisqd.pro)
CUTTER_GEN -- Paul Strycker -- 21 May 2009 25 March 2010 PURPOSE: Makes data cuts from a list of FITS data cubes for Don Banfield's radiative transfer code (in FORTRAN). The user selects fiducial points to create regions to add to the data cut. The pixels included in each region are based on a Pricipal Component Analysis. SYNTAX: cutter = cutter_gen( cubelist [, maskname= , specdelta= , pixdelta= , /zr_include , cutnumber= , mu_max= , /no_spec_check] ) INPUT: cubelist = A file containing a list of FITS file names. OPTIONAL KEYWORDS: MASKNAME = FITS file name containing a pixel mask array specdelta = threshold for spectral similarity pixdelta = max height/width in pixels for a single region /zr_include = include the regional cut in the output (I/F, mu, mu_0, and phase for all fiducial pixels) cutnumber = internal counter used for recursive calls (not applicable to user) mu_max = range (+- this value) for mu and mu_0 allowed in a single region /no_spec_check = do not require spectral similarity between regions OUTPUT: cutter={ id = CUBELIST utcdate = UTC date of the creation of this structure nfilter = number of filters in the data set filterid = vector of wavelengths of the filters filter_images = vector [nfilter] with the number of images per filter image_name = vector [total(filter_images)] with each image file name pixdelta = threshold for +- mu and mu_0 (keyword pixdelta) mu_max = threshold for +- mu and mu_0 (keyword mu_max) npix = number of fiducial pixels nregion = number of averaged regions from the fiducial points for each filter len = vector [nregion] with the number of pixels per region regpix = the indices of the region's points in FIDPTS fidpts = the (x,y) locations of the fiducial points latlon = [avg(latitude),avg(longitude)] for all fiducial points z = the data cut by averaged regions [4,nregion] zr = the entire data cut by pixel [4,n_fidpts*nfilter] (must have set keyword /zr_include for this to be returned) } CALLS: READCOL, READHEADLIST, FITS_READ, PVIEW, SEL_BOX, UNDEFINE, PCA_EXE, PCACUBEPARMS, PCA_BADPIX, RGBIMG, SEL_PCA, SEL_DIM_PAIRS, SEL_DIST, READYESNO, CUT_COMBINE, WRITE_GIF, WRITE_BMP
(See cutter_gen.pro)
CUTTER_LON -- Paul Strycker -- 12 May 2010 PURPOSE: Makes data cuts from a list of FITS data cubes for Don Banfield's radiative transfer code (in FORTRAN). The user selects an area, in which fiducial points are automatically selected at the central longitude across all latitudes to create a series data cuts with one region each. The pixels included in each region are based on a Pricipal Component Analysis. SYNTAX: cutter_lon, cubelist, ncuts [, maskname= , specdelta= , pixdelta= , /zr_include , savepath= , mu_max= , startnum= ] INPUT: cubelist = A file containing a list of FITS file names. ncuts = total number of cuts to create across the selected latitudes OPTIONAL KEYWORDS: MASKNAME = FITS file name containing a pixel mask array specdelta = threshold for spectral similarity pixdelta = max height/width in pixels for a single region /zr_include = include the regional cut in the output (I/F, mu, mu_0, and phase for all fiducial pixels) savepath = full path to the directory in which to save output files mu_max = range (+- this value) for mu and mu_0 allowed in a single region startnum = the ID number (###) of the first cut: lon_cut###.dat default = 0 OUTPUT: A data file for each cut created with the file name convention: savepath+"lon_cut###.dat". Each file contains a structure variable named "z", where z = { id = CUBELIST utcdate = UTC date of the creation of this structure nfilter = number of filters in the data set filterid = vector of wavelengths of the filters filter_images = vector [nfilter] with the number of images per filter image_name = vector [total(filter_images)] with each image file name pixdelta = threshold for +- mu and mu_0 (keyword pixdelta) mu_max = threshold for +- mu and mu_0 (keyword mu_max) npix = number of fiducial pixels nregion = number of averaged regions from the fiducial points for each filter len = vector [nregion] with the number of pixels per region regpix = the indices of the region's points in FIDPTS fidpts = the (x,y) locations of the fiducial points latlon = [avg(latitude),avg(longitude)] for all fiducial points z = the data cut by averaged regions [4,nregion] zr = the entire data cut by pixel [4,n_fidpts*nfilter] (must have set keyword /zr_include for this to be returned) } CALLS: READCOL, READHEADLIST, FITS_READ, PVIEW, SEL_BOX, UNDEFINE, PCA_EXE, PCACUBEPARMS, PCA_BADPIX, RGBIMG, SEL_PCA, SEL_DIM_PAIRS, SEL_DIST, WRITE_GIF, WRITE_BMP
(See cutter_lon.pro)
CUT_COMBINE -- Paul Strycker -- 11 March 2010 25 March 2010 31 March 2010 PURPOSE: Combines two data cut structure variables from CUTTER_GEN into one. SYNTAX: result = cut_combine( z1, z2 [, /show, /verbose, /allow_different]) INPUTS: z1 = structure variable containing the first of two cuts to combine z2 = structure variable containing the second of two cuts to combine OPTIONAL KEYWORDS: /show = Display the data values from the selected regions with CUT_VIEW. /verbose = Report statistics on the pixels included in z1 and z2. /allow_different = Allow z1 and z2 to be cuts from different image cubes. OUTPUT: result = structure variable with the properly concatenated data from z1 and z2
(See cut_combine.pro)
CUT_SPECTRA -- Paul Strycker -- 11 March 2010 25 March 2010 31 March 2010 PURPOSE: Returns the I/F spectrum of a data cut created by CUTTER_GEN or CUTTER_LON. SYNTAX: result = cut_spectra( cutter [, savefile, /show, /verbose , /overwrite]) INPUT: cutter = Structure variable containing a data cut from CUTTER_GEN or CUTTER_LON. OPTIONAL INPUT: savefile = Full path to a FITS file name in which to save the spectra. OPTIONAL KEYWORDS: /show = Plot the spectra. /verbose = Print update messages to screen. /overwrite = Overwrite "savefile" if it already exists. OUTPUT: result = two spectra in the format: fltarr(number of filters,2), where [*,0] is the average I/F spectrum for the cut and [*,1] is the average (I/F)/(mu_0) spectrum for the cut. CALLS: FITS_READ, SEL_DIM_PAIRS, FITS_WRITE, PERCENTCOMPLETE
(See cut_spectra.pro)
CUT_VIEW -- Paul Strycker -- 26 March 2010 PURPOSE: Views values with the data cuts made by CUTTER_GEN. SYNTAX: cut_view, cutter [, /drawarea] INPUT: cutter = structure variable produced by function CUTTER_GEN. OPTIONAL KEYWORD: /drawarea = draw a line around the area CALLS: SEL_DIM_PAIRS, SEL_INVERT, PERCENTCOMPLETE, PVIEW
(See cut_view.pro)
DERIVATIVE -- Don Banfield -- ??? PURPOSE: This function will compute the derivatives of the linearized model about a given fiducial point with respect to the parameters of the model. SYNTAX: deriv = derivative( a0, f0, nvarying, n [, MAXPI0= , usevarylist= ] ) INPUTS: a0 = the fiducial parameter set (nvarying) f0 = the fiducial model evaluation (n) nvarying = number of varying parameters n = number of observations being modeled OPTIONAL KEYWORDS: maxpi0 = maximum value for pi0 parameters usevarylist = vector containing the indices of the varying parameters OUTPUT: deriv = the returned derivative matrix (n x nvarying) REQUIRED COMMON VARIABLES: workpath, fortrancode CALLS: PUTMODEL, fortrancode (location set in common variable) REVISION HISTORY (Paul Strycker): 08 February 2010 - NOSHELL keyword added to spawn command; use FILE_DELETE 03 March 2010 - modified the "endrep until" conditions (line 48)
(See derivative.pro)
DUBGEOM -- Don Banfield -- ??? PURPOSE: This procedure will take the data cube cuts (which have the form of Z(nelements,data_type)) and translate these into the form of input that the fortran doubling program is expecting. SYNTAX: dubgeom, z, nregion, nfilter REQUIRES COMMON VARIABLE: workpath
(See dubgeom.pro)
EVALMODELS -- Paul Strycker -- 16 June 2009 Evaluates the chi^2 error given a set of observations and a list of models (already with results). CALLS: ORGDAT, GETRESULT, CHISQD
(See evalmodels.pro)
GETMODEL -- Don Banfield -- ??? PURPOSE: This procedure will read from a given file the model parameters. It will also read from another file to determine which of these parameters are to be varied and which are to be fixed. The parameters pi0,tau and p and rp are included in the parameter list, and allowed to vary. The organization of the model parameter vector is p,p,p..., tau,tau,tau..., rp,rp,rp..., pi0(filter1),pi0(filter1),pi0(filter1)..., pi0(filter2),pi0(filter2),pi0(filter2)..., etc. The list array is organized the same way, and should hold 1's for those that vary and 0's for those that are fixed, and 2's for pressures that are linked to the pressure above them (i.e. sheets), and 3's for pi0s that are linked to the pi0 immediately redward of them. This procedure also returns the number of varying parameters (nvarying). SYNTAX: getmodel, num [, a , nvarying , prefix= , varyfile= ] INPUT: num = Model number to be read: "rawmodel###" OR prefix+"###". OPTIONAL OUTPUT: a = Named variable in which to store the values of the varying parameters (a vector with length "nvarying"). nvarying = Named variable in which to store the number of varying parameters. OPTIONAL KEYWORDS: prefix = String containing the full directory path and the characters preceeding "###" in the model to be read. EXAMPLE: prefix = '/home/user/radtrans/model/mymodel' GETMODEL will look for '/home/user/radtrans/model/mymodel###', where ### is the input "num". varyfile = Full path to the file containing the parameter-varying flags. REQUIRES COMMON VARIABLE: workpath CREATES/MODIFIES COMMON VARIABLES: afull, varyflag, varylist, npi0 CALLS: READCOL_N, READCOL REVISION HISTORY: 02 April 2010 - vary can EQ 3 for pi0s
(See getmodel.pro)
GETRESULT -- Don Banfield -- ??? PURPOSE: This function will read the result file and pull the computed dependant variables (akin to the observations) into a vector. REQUIRES COMMON VARIABLE: workpath CALLS: READCOL
(See getresult.pro)
GRIDFIT -- Paul Strycker -- 18 June 2009 18 May 2010 (last modified) PURPOSE: Beginning with data and an initial model, this fitting algorithm iteratively searches the grid of parameters produced by separately allowing every permutation of pairs of parameters to vary. Then it converges on a non-quantized solution. SYNTAX: gridfit, z, initialmodel [, last_iter= , savepath= , rawpath= , maxiter= , parmvaryfile= , fortrancode= , workpath= , /no_pressure , /no_radius , no_lev= , /no_pi0 , /no_tau] INPUTS: z = Structure created by CUTTER_GEN containing a data cut from the input images of location(s) with a single vertical structure. initialmodel = Number corresponding to the model parameter file (rawpath+"rawmodel###") to be used as the initial model. OPTIONAL KEYWORDS: last_iter = Starting iteration number, if previous results exist. (Default = 0) savepath = Full path to the directory in which results are saved. rawpath = Full path to the directory containing the initial model "rawmodel###". maxiter = Maximum number of iterations allowed. (Default = 4) parmvaryfile = Full path to the file containing the parameters to vary. fortrancode = Full path to the executable FORTRAN code. (Default = workpath+"fitmodl*") workpath = Full path to the working directory. /no_pressure = Do not set any pressure variables free to vary. /no_radius = Do not set any radii variables free to vary. no_lev = Vector containing the levels to ignore. (Do not set any variables free to vary in these aerosol layers.) /no_pi0 = Do not set any pi0 variables free to vary. /no_tau = Do not set any optical depth variables free to vary. CREATES COMMON VARIABLES: workpath, fortrancode CALLS: CHANGENAME, WORKSCAT, VARYMODEL, PATCHMODELS, EVALMODELS EXAMPLES: gridfit,z,4,savepath='results2/',raw='savedmodels/',$ parmvaryfile='savedmodels/toplev.vary',last_iter=2 gridfit,z,4,savepath='results2/',raw='savedmodels/',$ /no_rad,/no_pres,/no_tau,no_lev=[1,3]
(See gridfit.pro)
ORGDAT -- Don Banfield -- ??? PURPOSE: This procedure will take a data cut (z) as input and return as output the same information re-organized into independant variables (x) and observations (y). It will also define the standard deviations (sigma) for each observation, and return the number of observations (nobs).
(See orgdat.pro)
PARMFIT -- Don Banfield -- ??? PURPOSE: This is the main program that will do the SVD parameter fitting. SYNTAX: parmfit, zstruc, nmodel [, Xcutoff , Ncutoff , damping , /verbose , /WIDGFIT , MAXPI0= , savebest= , /noshow , /varymodel , /converge] INPUTS: zstruc = Structure created by CUTTER_GEN containing a data cut from the input images of location(s) with a single vertical structure. nmodel = Number corresponding to the model parameter file (workpath+"rawmodel###") to be used as the initial model. OPTIONAL INPUTS: Xcutoff = Convergence threshold value for delta Chi^2. Ncutoff = Maximum number of iterations. damping = Fraction of the estimated-parameter-change to use for the next iteration. OPTIONAL KEYWORDS: /verbose = Display fitting information. /WIDGFIT = Indicates that PARMFIT was called by WIDGFIT. maxpi0 = Maximum value for pi0 parameters. savebest = Integer (###), where the minimum Chi^2 model and result files ("workmodlXXX" and "workrslt.XXX") are copied to "tempmodl###" and "temprslt.###". (If not set, then the minimum Chi^2 model and result files are not copied.) /noshow = Do not plot the data and model results. /varymodel = Indicates that PARMFIT was called by VARYMODEL in the vary-parameter-pairs mode (Phase A of GRIDFIT). /converge = Indicates that PARMFIT was called by VARYMODEL in the convergence mode (Phase C of GRIDFIT). NOTES: The following common variables must already be set: workpath = Full path to the desired working directory. fortrancode = Full path to the FORTRAN code for the radiative-transfer modeling. This MUST be in the "workpath" directory! REQUIRED COMMON VARIABLES: workpath, fortrancode, afull, varyflag, varylist, npi0 CALLS: DUBGEOM, ORGDAT, GETMODEL, CHECKPARM, PUTMODEL, FORPRINT, GETRESULT, fortrancode (location set in common variable), CHISQD, DERIVATIVE, WORKSCAT REVISION HISTORY (Paul Strycker): 08 February 2010 - NOSHELL keyword added to SPAWN commands; use FILE_xxxxx 26 February 2010 - Copy model result files in addition to model structures.
(See parmfit.pro)
PATCHMODELS -- Paul Strycker -- 16 June 2009 PURPOSE: This procedure will take a set of models (vector MODELNUM) derived from an initial model (RAWNUM) and build a grid of model files that covers the range of each parameter's values (Phase B of GRIDFIT). These are input to the FORTRAN program (fortrancode). SYNTAX: patchmodels, rawnum, modelnum [, ngrid , nvary , parmvarypath= , gridparms= , gridflag= , parmstats= , modelpath= , savepath= , maxsamp= , /verbose] INPUTS: rawnum = Model number of the inital model: "rawmodel###". modelnum = Vector of model numbers from which to make the grid: "tempmodl*". OPTIONAL OUTPUTS: ngrid = Named variable to return the number of models in the grid. nvary = Named variable to return the number of parameters that vary > 1%. OPTIONAL KEYWORDS: parmvarypath = Full path to the directory in which to save/find the "tempvary###" files, which contain the individual permutations. gridparms = Named variable to return the grid of model parameters. gridflag = Named variable to return the vector of flags denoting which parameters vary > 1% in the provided set of models. parmstats = Named variable to return the parameter array sent to MAKEGRID. modelpath = Full path to the directory containing the models: "rawmodel###" and "tempmodl*". (Default = '') savepath = Full path to the directory in which to save grid models and results. maxsamp = Maximum number of samples per parameter in the grid. /verbose = Display fitting information. CALLS: GETMODEL, CHECKPARM, MAKEGRID, fortrancode (location set in common variable), PERCENTCOMPLETE REVISION HISTORY: 08 February 2010 - NOSHELL keyword added to SPAWN commands; use FILE_xxxxx 02 April 2010 - vary can EQ 3 04 May 2010 - clean working directory before modeling the grid
(See patchmodels.pro)
PREPARE_Z -- Paul Strycker -- 25 March 2010 Prepares the structure (Z) saved in DATAFILE (an IDL format save file) to be sent to the radiative transfer modeling programs (GRIDFIT, etc.). Essentially, this removes unnecessary data from Z so that it is not passed from program to program. INPUT: datafile = string containing the full path to the IDL save file that contains the structure Z NOTE: The structure variable must be named "z" in the save file! OPTIONAL KEYWORD: /zr_include = includes the structure tag "zr" if it exists in Z OUTPUT: z = structure with the minimum necessary data for use in the radiative transfer modeling code GRIDFIT CALLS: EXIST_TAG
(See prepare_z.pro)
PUTMODEL -- Don Banfield -- ??? PURPOSE: This procedure will take a parameter vector and build a model parameter file for input to the doubling program. SYNTAX: putmodel, num, a [, /no_vary , usevarylist=] INPUTS: num = Model number to be saved: workpath+"workmodl###". a = Vector containing values of the varying parameters. OPTIONAL KEYWORDS: /no_vary = Do not use the input vector "a", but only use the common variable "afull" to make the model. usevarylist = Vector containing the indices of the varying parameters. If not set, the indices are set by the common variable "varylist". REQUIRES COMMON VARIABLES: workpath, afull, varyflag, varylist, npi0
(See putmodel.pro)
This procedure will read from a given file the model parameters. It will also read from another file to determine which of these parameters are to be varied and which are to be fixed. The parameters pi0,tau and p and rp are included in the parameter list, and allowed to vary. The organization of the model parameter vector is pi0,pi0,pi0... tau,tau, tau..., p,p,p..., rp,rp,rp... The list array is organized the same way, and should hold 1's for those that vary and 0's for those that are fixed, and 2's for pressures that are linked to the pressure above them (i.e. sheets). This procedure also returns the number of varying parameters (nvarying). CALLS: READCOL_N
(See readmodel.pro)
SEL_PCA -- Paul Strycker -- 21 May 2009 14 May 2010 PURPOSE: Select pixels with spectra similar to the fiducial point (or bins all pixels by spectra) based on a previously run principal component analysis (PCA) using the procedure PCA_EXE on a spectral image cube. PCs containing a specified amount of the total variance (keyword "minvar") are used to reconstruct the image cube (thereby reducing noise), and the spectral-similarity test is conducted on this cube. SYNTAX: result = sel_pca ( coeff, eigenvectors, coeffheader, maskmap [, pixselmap, npix= , minvar= , nbins= , fidx= , fidy= , delta= , /verbose ] ) INPUTS: coeff = PCA coefficients (amplitude maps) eigenvectors = PCA eigen vectors (the principal components [PCs]) coeffheader = The header from the FITS file containing the coefficients. maskmap = Bad pixel map in either of two formats: (1) 2-D array ([naxis1,naxis2] of the image cube), with bad pixels set to 0 and good pixels set to 1. (2) Vector containing the indices of the good pixels. OPTIONAL OUTPUT: pixselmap = Named variable for a pixel map containing either of two results: If NOT using the keyword "nbins": 2-D array [naxis1,naxis2], with the selected pixels set to 1. If using the keyword "nbins": 2-D array [naxis1,naxis2] containing the ID number of the spectral bin for each pixel. (This is redundant with the returned result of the function in this case.) OPTIONAL KEYWORDS: npix = Named variable for the number of pixels selected. (Undefined if keyword "nbins" is set.) minvar = The minimum percentage of the total variance in the original image cube to be included when reconstructing the image cube from the supplied PCs (eigenvectors). Default = 95%. Example: minvar=98, variance in PCs (taken from coeffheader) for 5 PCs = [83,10,4,2,1]. The first three sum to 97%, and the first four sum to 99%. Then SEL_PCA will use PCs 1-4 (but not 5) to reconstruct the spectral image cube before searching for spectrally similar pixels to the fiducial pixel. nbins = The number of bins into which the spectra should be divided. Setting this sends the coefficients of the appropriate PCs (based on keyword "minvar") to the function BINSPEC, bins all pixels accordingly, and returns the result. This completely ignores keywords npix, fidx, fidy, and delta. fidx = The x-value of the fiducial pixel. (If not supplied, the user is prompted for this value.) fidy = The y-value of the fiducial pixel. (If not supplied, the user is prompted for this value.) delta = The spectral tolerance in units of standard deviations to be applied (separately) to each wavelength. Only pixels with an RMS difference from the fiducial point that is less than delta*stddev for all wavelengths in the reconstructed spectral cube (see keyword "minvar") will be included in the final selection. /verbose = Print information messages. OUTPUT: result = Either of two results: If NOT using the keyword "nbins": Vector with the indices of the selected pixels. If using the keyword "nbins": 2-D array [naxis1,naxis2] containing the ID number of the spectral bin for each pixel. (This is redundant with the returned result of the function in this case.) CALLS: PCACUBEPARMS, PCA_RECON, RMSDIFFMAP, BINSPEC
(See ../utils/sel_pca.pro)
VARYMODEL -- Paul Strycker -- 17 June 2009 05 May 2010 (last modified) PURPOSE: Takes data and an initial model and runs PARMFIT on every permutation of varying pairs of model parameters. SYNTAX: varymodel, z, modelnum [, dim, prefix= , savepath= , modelpath= , parmvarypath= , parmvaryfile= , /no_pressure , /no_radius , no_lev= , /no_pi0 , /no_tau , /converge , /verbose , /disp_all] INPUTS: z = Structure created by CUTTER_GEN containing a data cut from the input images of location(s) with a single vertical structure. modelnum = Number corresponding to the model parameter file (modelpath+"rawmodel###" OR modelpath+prefix+"###"). OPTIONAL INPUT: dim = Named variable to hold the number of permutations explored. OPTIONAL KEYWORDS: prefix = String to preceed "###" in the model name. (Default = "rawmodel") savepath = Full path to the directory in which results are saved. modelpath = Full path to the directory containing the model. (Default = workpath) parmvarypath = Full path to the directory in which to save/find the "tempvary###" files, which contain the individual permutations. parmvaryfile = Full path to the file containing the parameters to vary if it is NOT: modelpath+"varying.dat". /no_pressure = Do not set any pressure variables free to vary. /no_radius = Do not set any radii variables free to vary. no_lev = Vector containing the levels to ignore. (Do not set any variables free to vary in these aerosol layers.) /no_pi0 = Do not set any pi0 variables free to vary. /no_tau = Do not set any optical depth variables free to vary. /converge = Do not reset the model to the initial one after running each permutation of free variables. This results in a converged model. /verbose = Display minimal update messages. /disp_all = Display all information regarding permutation creation and modeling. REQUIRES COMMON VARIABLES: workpath, afull, varyflag, varylist, npi0 CALLS: READCOL_N, READCOL, GETMODEL, PARMFIT, PERCENTCOMPLETE, FORPRINT REVISION HISTORY: 02 April 2010 -- Vary/no vary flag values can be set to 3 for pi0 variables.
(See varymodel.pro)
WORKSCAT -- Don Banfield -- ??? PURPOSE: This procedure will take a look at the and rawmodelxxx files to determine the model, and then also the output file dubl.xxx to find the modelling result. It will then plot them in the 4 composite plot style modified 15 December 2009 to show pi0 for all layers CALLS: READMODEL, READCOL, PLOT_SETUP, MAPKEY
(See workscat.pro)