Professional Documents
Culture Documents
MICHAEL A. NOWAK (MIT-CHANDRA X-RAY SCIENCE CENTER) -WITH HELP OVER THE YEARS FROMJRN WILMS, JOHN DAVIS, JOHN HOUCK, DAVE HEUNEMOERDER, MIKE NOBLE
OUTLINE:
THE COMPONENTS OF AN X-RAY SPECTRAL FIT: DATA, SPECTRUM, RMF, ARF, BACKGROUND ISIS EXAMPLES SPRINKLED THROUGHOUT THE DETAILS OF X-RAY SPECTRAL FITTING: ANALYSIS PROGRAMS, AND GENERAL STRATEGIES INTERACTIVE SPECTRAL INTERPRETATION SYSTEM (ISIS) GETTING STARTED WITH BASIC FITS & PLOTS
I (x)
SOURCE
* FLUX
DETECTED COUNTS
BACKGROUND COUNTS
CAN OVERLAP
(SEE J. DAVIS, 2001, APJ, 548, P. 1010) JUST FROM THE SOURCE ALSO NOT JUST FROM THE SOURCE
*NOT
dE, dT
cm2/photon 0.1 1
0.01
2 Energy (keV)
10
10
CHANDRA-HEG
SUZAKU
1 2 Energy (keV) 5 10
SOME OF THESE FEATURES ARE FIXED, OTHERS CAN VARY FROM OBSERVATION TO OBSERVATION
% Angstrom % keV
THIS IS JUST FOLDING A DELTA-FUNCTION THROUGH THE COUNTS EQUATION, YIELDING C(h) = RMF(h,E0)
0.1
R(h, E)
0.01
103
104
4 Energy [keV]
30
10
25
20
WIDTH
0.1
15
10
ESCAPE PEAK
0.01
103
10
15
20
25
104
(COURTESY J. DAVIS)
LONG WAVELENGTH
SHORT WAVELENGTH
m=-2
m=2
Escape Events
m=-1 m=1
m = 0
RMF proles
m
Fluorescence Events
(COURTESY J. DAVIS)
CCD ENERGY
CHANNEL
GAIN MAPPING (PHA ENERGY) IS NOT ALWAYS CORRECT. CAN ADD A CORRECTION IN THE FIT PROCESS. IF FIT DISAGREES WITH KNOWN LINE ENERGY SOMETIMES FOR CONVENIENCE, RMF & ARF ARE COMBINED IN A SINGLE RESPONSE (RESP) FILE. BUT NOT ALWAYS, ESPECIALLY WHEN SOME PARTS CHANGE WITH TIME, WHILE OTHERS DO NOT
BACKGROUND
C(h) =
0 i
UNRESOLVED SOURCES CAN BE BACKGROUND. X-RAY BACKGROUND, GALACTIC RIDGE EMISSION, ETC. RESOLVED, BUT DIFFUSE EMISSION CAN BE BACKGROUND. DUST, HOT GAS, ETC. IN PRINCIPLE, THESE COULD (SHOULD) BE ADDED TO S(E) BACKGROUND CAN BE INSTRUMENTAL (DETECTOR NOISE), NON X-RAY (COSMIC RAYS), PARTICLE BACKGROUND, ETC. THESE TYPES OF BACKGROUNDS ARE ADDED TO B(h).
BACKGROUND
C(h) =
0 i
BACKGROUND MIGHT BE MODELED OR MEASURED MODELED: ADDED TO THE S(E) -OR- B(h) TERMS. I.E., MAY, OR MAY NOT, BE FOLDED THROUGH RESPONSE IF MODELED WITH FIT PARAMETERS, (USUALLY) NO CHANGES TO THE STATISTICS. MEASURED: USUALLY ADDED TO THE B(h) TERM. NO FOLDING THROUGH THE RESPONSE. (USUALLY) CHANGES THE STATISTICS DEFINITION.
BACKGROUND
C(h) =
0 i
ISIS NEVER SUBTRACTS THE BACKGROUND. IT IS ADDED TO MODEL TERMS, AND COMPARED TO *TOTAL COUNTS*. THE ONLY QUESTION IS, DO YOU REDEFINE THE COMPARISON STATISTICS? DEFAULT STATISTICS (CHI2 BASED UPON DATA COUNTS) DOES CHANGE WITH BACKGROUND. THIS DEFAULT BEHAVIOR CAN BE ALTERED.
BACKGROUND
SOURCE BACKGROUND = MEASURED BACKGROUND *(SOURCE AREA)*(SOURCE TIME)/ [(BACKGROUND AREA)*(BACKGROUND TIME)] SOURCE REGION
BACKGROUND REGION
C(h) =
C(h) +
-OR- FROM NON-SIMULTANEOUS MEASUREMENTS, BLANK SKY OBSERVATIONS, DETECTOR MODELS, ETC.
Bm (h)
C(h) +
Bs (h)
BACKGROUND
BACKGROUNDS OFTEN CREATED BY SATELLITE-SPECIFIC SOFTWARE! CAN BE ACCESSED AND VISUALIZED:
isis> isis> isis> isis> isis> isis> isis> isis> isis> isis> % Load the data, including background if in header d = load_data("/path/to/rmf/data.pha"); ch = get_data_counts(d); % Data & bin edges bs = get_back(d); % Scaled background ts = get_data_exposure(d); % Ts(h) as = get_data_backscale(d); % As(h) tm = get_back_exposure(d); % Tm(h) am = get_back_backscale(d); % Am(h) plot_bin_integral; hplot(_A(ch.bin_lo),_A(ch.bin_hi), reverse(ch.value)); % keV plot isis> ohplot(_A(ch.bin_lo),_A(ch.bin_hi), reverse(bs)); % keV plot
SOURCE MODEL
C(h) =
0 i
SAVED FOR LAST, SINCE IN SOME WAYS THIS IS THE LEAST IMPORTANT THING YOU NEED TO WORRY ABOUT, BUT WHAT MOST PEOPLE ONLY WANT TO THINK ABOUT... MODELS ARE COMPUTED ON A DISCRETE GRID, *FINER* THAN THE h-GRID. (SOMETIMES RIDICULOUSLY SO.) OUTPUTS OF THESE MODELS ARE: COUNTS/SEC/CM2/*BIN* THE CONTENT OF THESE MODELS IS ASTROPHYSICS... I.E., THE SUBJECT OF THE NEXT 3-5 YEARS OF YOUR LIFE
SOURCE MODEL:
ISIS DEFAULTS TO WAVELENGTH GRID, WITH LO & HI BINS EXPLICITLY SPECIFIED. (IT HAS WRAPPERS TO INTERFACE WITH EXISTING XSPEC MODELS.) MODELS ARE COUNTS INTEGRATED OVER THE BIN WIDTHS! ISIS _A() FUNCTION CONVERTS ANGSTROMS <-> KEV KEEP THIS IN MIND WHEN ADDING NEW FUNCTIONS!
isis> define qpo_fit(lo,hi,par){ variable l,rms,qpo,q,f,al,ah; % Go from Angstrom to keV (which we pretend is Fourier Hz), al = _A(lo); ah = _A(hi); rms = par[0]; q = par[1]; f = par[2]; % RMS, Q-value, Frequency qpo = rms/(0.5 - atan(-2.*q)/PI); qpo = qpo^2/(al-ah)/PI*( atan(2.*q*(al-f)/f) - atan(2.*q*(ah-f)/f) ); return = reverse(qpo); } isis> add_slang_function("qpo",["norm [rms]","Q [f/FWHM]","f [Hz]"]);
GRPPHA CAN ALSO BE USED TO: BIN DATA SET SYSTEMATIC ERROR BARS SET CORRFILE (ADDITIONAL BACKGROUND) WE WILL DO ALL OF THESE DURING ANALYSIS.
0.1
1 Energy (keV)
10
2 Energy (keV)
FILES READ WITH FTOOLS/CFITSIO (HEASOFT), DMTOOLS (CIAO), OTHERS. INCORPORATED INTO ANALYSIS SYSTEMS. PHA (SPECTRAL FILES) HAVE TYPE 1 & TYPE 2. TYPE 1 - SINGLE SPECTRUM PER FILE. HEADER (WHAT GRPPHA ALTERS) CAN CONTAIN INFORMATION ON ASSOCIATED RESPONSES AND BACKGROUND. TYPE 2 - MULTIPLE SPECTRA PER FILE (E.G., MULTIPLE GRATING ORDERS), NO STANDARD STORAGE OF NAMES OF ASSOCIATED RESPONSES AND BACKGROUNDS.
FORWARD FOLDING - VARY A SET OF MODEL PARAMETERS, CALCULATING COUNTS/BIN, AND MINIMIZE A STATISTIC - TYPICALLY CHI2 THIS IS ALSO NOT UNIQUE! DIFFERENT MODELS CAN YIELD NEARLY IDENTICAL FIT STATISTICS.
dE + Bh
NOISE
Bh ) = SE dE T AE UNCERTAINTIES
Ratio 0.9 1 1.1 109 1 10 100 Ratio 0.9 1 1.1 1 10 100 Energy (keV) F! (ergs cm!2 s!1 keV!1) 1010 109 Energy (keV)
S
F! (ergs cm!2 s!1 keV!1) 1010
DATA OTHER USER XSPEC SCRIPTED USER PRODUCT FIT FIT LOCAL MODELS SCRIPTS ACCESS KERNEL KERNEL MODELS
Yes No Yes No
S-lang
S-lang
Yes Yes No No
Yes Yes No No
Yes Yes No No
No
ATOMIC MULTI- MULTI- MULTI- MULTICORE CORE SYSTEM SYSTEM DATA FITS ERRORS MODELS ACCESS ERRORS
Yes Yes
With Fake RMF, ARF
Yes No No Yes
ISIS 1.5 No No No
Yes No No No
Yes No No No
No
STARTING UP ISIS:
ISIS CAN MAKE USE OF VARIOUS ENVIRONMENT VARIABLES UPON START UP. USEFUL TO PLACE IN, E.G., A ~/.CSHRC FILE.
# If GNU readline has been set, saves input history. setenv ISIS_HISTORY_FILE /home/mnowak/.isis_history # Places to search for S-lang scripts setenv SLANG_LOAD_PATH /home/mnowak/slang_scripts setenv ISIS_LOAD_PATH /home/mnowak/slang_scripts # Places to search for modules. Modules are compiled binaries with # S-lang interfaces, e.g., GSL or histogram modules setenv SLANG_MODULE_PATH /home/mnowak/slang_modules setenv ISIS_MODULE_PATH /home/mnowak/slang_modules # The editor we will use when editing model parameter files # You might prefer to use vi instead. setenv EDITOR /usr/bin/emacs VERY USEFUL!!!
STARTING UP ISIS:
UPON START UP, ISIS LOADS THE CONTENTS OF ~/.isisrc - FILE CONTAINING S-LANG COMMANDS & FUNCTIONS
Isis_Append_Semicolon=1; DEFAULT -> Isis_List_Filenames=1; Isis_Use_PHA_Grouping=1; DEFAULT -> Fit_Verbose=0; DEFAULT -> Isis_Verbose=0; Minimum_Stat_Err=1.e-30; DEFAULT -> Rmf_OGIP_Compliance=2; % % % % % % % % % No ; required interactively Be verbose with list functions Use the grppha applied grouping Only final statistics printed Not too verbose on ISIS messages =0 forces Poisson errors; we choose a value for when we fit radio/IR data Lower number to read poorly written RMFs/ARFs (INTEGRAL requires even more)
putenv("PGPLOT_BACKGROUND=white"); % invert default for nicer putenv("PGPLOT_FOREGROUND=black"); % look - black on white % Define places to search for useful code. static variable path="/home/mnowak/"; add_to_isis_load_path(path+"isis_code"); add_to_isis_module_path(path+"isis_code"); % You can load-up useful bits of code automatically ... ()=evalfile(path+isis_code/isis_utility_functions_prerelease_1.5.sl); ()=evalfile(path+isis_code/isis_utility_functions.sl);
ISIS COMMANDS UNIQUE TO THESE SCRIPTS WILL BE HIGHLIGHTED IN BLUE (FOR COMMANDS TO BE ADDED TO ISIS 1.5) OR RED (FOR COMMANDS THAT WILL HAVE TO BE LOADED VIA SCRIPTS, EVEN IN ISIS 1.5). NOTE THAT ISIS ALLOWS YOU TO CHANGE THE NAMES OF ANY COMMANDS. DONT LIKE A NAME? CHANGE IT!
ISIS WILL ASSIGN NUMERIC IDENTIFIERS TO DATA SETS, RMFS, & ARFS. NOTE THAT FOR A GIVEN DATA SET, THESE 3 NUMBERS ARE *NOT* NECESSARILY THE SAME! LOAD_RMF(RMF.FITS); LOAD_ARF(ARF.FITS); WILL LOAD JUST THE RMF/ARF - USED WITH TYPE 2 PHA FILES.
file pcaresp_cygx1_I.rmf
FOR RXTE-PCA SPECTRA, RMF & ARF ARE COMBINED. DATA=1, RMF=1, ARF HAS NO NUMBER. THE NEXT RMF WE LOAD WOULD BE ASSIGNED #2, THE NEXT ARF WE LOAD WOULD BE ASSIGNED #1
STANDARD ISIS PLOTS ALWAYS LEAVE BACKGROUND IN, AND CAN BE DIFFICULT TO USE WHEN PLOTTING MULTIPLE DATASETS. MY CUSTOM ROUTINES PUT PLOT_BIN_INTEGRAL/DENSITY INTO SEPARATE FUNCTIONS - PLOT_COUNTS/PLOT_DATA
DETECTOR FEATURE
1 10 Energy (keV) 100
10
0.01
10 Energy (keV)
100
10 Energy (keV)
100
10
20
50
Energy (keV)
MOST UNFOLED SPECTRA IN THE LITERATURE HAVE *NOT* BEEN DONE THIS WAY! (THEYRE EVEN MORE DANGEROUS!)
ANETA WILL HAVE (RIGHTLY) WARNED YOU OF THE EVILS OF SYSTEMATIC ERRORS. BUT THEY OFTEN ARE NEEDED FOR PCA. WE APPLY 0.5% SYSTEMATICS, AND GROUP TO A S/N>=5, FOR keV ENERGIES >=3 keV, AND NOTICE DATA WHERE THE *ENTIRE* BIN IS >=3 keV AND <=22 keV.
ISIS TREATS FUNCTIONS AS VECTORS OF VALUES. ANYTHING THAT MAKES MATHEMATICAL SENSE WORKS. REMEMBER THAT MODELS ARE (USUALLY) COUNTS/BIN, SO MATH SENSE IS NOT NECESSARILY PHYSICAL SENSE! #S ARE USED TO IDENTIFY AN INSTANCE OF A MODEL. THUS YOU CAN HAVE GAUSSIAN(1), GAUSSIAN(5), .... THE NUMBERS KEEP THE INSTANCES DISTINCT. EACH CAN HAVE THEIR OWN PARAMETERS. WILD CARD CHARACTERS CAN BE USEFUL HERE: set_par_fun(gaussian(*).Sigma,0.1,0,0,0.5); PARAMETER NAMES ARE CASE SENSITIVE!
USE YOUR KNOWLEDGE OF PHYSICS AND THE PROPERTIES OF THE SOURCE TO GUIDE YOUR INITIAL PARAMETER GUESSES!
YOU CAN RENAME ANY MODEL WITH: alias_fun(old,new); NOTE THAT CONVOLUTION MODELS HAVE A UNIQUE SYNTAX. REFLECTION, RELATIVISTIC SMEARING = CONVOLUTION THE UNIQUE ISIS VARIABLE, Isis_Active_Dataset, CAN BE USED TO IDENTIFY & ISOLATE MODEL INSTANCES.
Isis_Active_Dataset = # OF DATA SET BEING EVALUATED. gaussian(Isis_Active_Dataset) = gaussian(1) FOR DATA SET 1, = gaussian(2) FOR DATA SET 2, ETC.
isis> isis> fit_fun(phabs(1)*(powerlaw(1)+line())); isis> % We wont be doing anything this fancy in this exercise!
THE FUNCTIONS WILL BE EVALUATED ON THE *INTERNAL* GRID OF THE ARF (USUALLY FINER THAN THE UNBINNED PHA CHANNELS). YOU CAN FORCE ISIS TO USE ANY GRID & REBIN TO ARF ISIS WILL LOOK AT THE RMF AND ONLY EVALUATE AT ENERGIES WHERE E->PHA BINS THAT ARE NOTICED. YOU CAN FORCE ISIS TO EVALUATE A WIDER RANGE SOMETIMES NECESSARY FOR CONVOLUTION MODELS. ISIS EVALUATES WHOLE MODEL FOR *EACH* DATA SET YOU CAN CACHE ON A GRID, AND REBIN TO EACH
isis> set_fit_method(subplex);
SUBPLEX CAN BE USED ON CASH STATISTICS. (NOTE- ISIS CASH IS THE SAME AS XSPEC/ SHERPA CSTAT.)
10 Energy (keV)
20
isis> plot_data(pca;dsym=4,dcol=4,decol=5,xrng={3,22},res=2);
10^22
keV keV
THE RESIDUALS SEEM TO INDICATE THAT A BREAK IN THE POWERLAW WOULD IMPROVE THE FIT. LETS ADD ONE.
5 10 Energy (keV) 20
!2 50 0 50
isis> fit_fun("phabs(1)*(bknpower(1)+gaussian(1))"); isis> list_par; phabs(1)*(bknpower(1)+gaussian(1)) idx param tie-to freeze value min max 1 phabs(1).nH 0 1 0.6 0 100000 2 bknpower(1).norm 0 0 1 0 1e+10 3 bknpower(1).PhoIndx1 0 0 1 -2 9 4 bknpower(1).BreakE 0 0 5 0.01 1000000 5 bknpower(1).PhoIndx2 0 0 2 -2 9 6 gaussian(1).norm 0 0 0.006378002 0 1 7 gaussian(1).LineE 0 1 6.4 6 7 8 gaussian(1).Sigma 0 0 5.283852e-05 0 1 isis> isis> set_par(2,1.5,0,0.1,10); % bknpower has same normalization as powerlaw isis> set_par(3,1.6,0,1,3); % slope wasn't too far off isis> set_par(4,10,0,8,13); % break looks to be around 9 or 10 keV isis> set_par(5,1.4,0,1,3); % second power law looks "harder" isis> isis> () = renorm_counts; Parameters[Variable] = 8[1] Data bins = 45 Chi-square = 397.054 Reduced chi-square = 9.023955 isis> isis> () = fit_counts; Parameters[Variable] = 8[6] Data bins = 45 Chi-square = 23.81623 Reduced chi-square = 0.6106725 isis> plot_data(pca;dsym=4,dcol=4,decol=5,xrng={3,22},res=2);
10^22
keV
keV keV
!2 5 0 5 1015
10 Energy (keV)
20
isis> thaw("gaussian(1).LineE"); isis> () = fit_counts; Parameters[Variable] = 8[7] Data bins = 45 Chi-square = 23.81605 Reduced chi-square = 0.6267381 isis> list_free; phabs(1)*(bknpower(1)+gaussian(1)) idx param tie-to freeze value min 2 bknpower(1).norm 0 0 1.77756 0.1 3 bknpower(1).PhoIndx1 0 0 1.677097 1 4 bknpower(1).BreakE 0 0 9.76005 8 5 bknpower(1).PhoIndx2 0 0 1.408868 1 6 gaussian(1).norm 0 0 0.008118369 0 7 gaussian(1).LineE 0 0 6.4 6 8 gaussian(1).Sigma 0 0 5.283852e-05 0 isis> isis> set_fit_method("subplex"); isis> () = fit_counts; Parameters[Variable] = 8[7] Data bins = 45 Chi-square = 20.52235 Reduced chi-square = 0.5400618 isis> isis> set_fit_method("lmdif"); isis> () = fit_counts; Parameters[Variable] = 8[7] Data bins = 45 Chi-square = 20.39472 Reduced chi-square = 0.5367033 isis> plot_data(pca;dsym=4,dcol=4,decol=5,xrng={3,22},res=2);
max 10 3 13 3 1 7 1
keV
keV keV
!2 0 5 10
10 Energy (keV)
20
isis> conf(8); % Can search for error bars individually **** Parameter range endpoint 0 is inside the confidence limit **** Lower confidence limit didn't converge[8]: allow wider parameter ranges? Found improved fit, stat= 15.072 for param[8] = 0.500079 **** Found improved fit 0.500079 0.500079 isis> isis> (,) = conf_loop("all",1,0.1;save,prefix="bknpower_gaussian"); Found improved fit, stat= 14.6825 for param[2] = 1.76451 **** Found improved fit Parameters[Variable] = 8[7] Data bins = 45 Chi-square = 14.62909 Reduced chi-square = 0.3849759 isis> isis> !more bknpower_gaussian.save phabs(1)*(bknpower(1)+gaussian(1)) idx param tie-to freeze value min max 1 phabs(1).nH 0 1 0.6 0 100000 10^22 2 bknpower(1).norm 0 0 1.769163 1.736502 1.803789 3 bknpower(1).PhoIndx1 0 0 1.676277 1.664857 1.688937 4 bknpower(1).BreakE 0 0 9.626676 9.136459 10.09752 keV 5 bknpower(1).PhoIndx2 0 0 1.410334 1.393771 1.426189 6 gaussian(1).norm 0 0 0.01083106 0.008576826 0.01347842 7 gaussian(1).LineE 0 0 6.160142 6.028331 6.29854 keV 8 gaussian(1).Sigma 0 0 0.4182171 0.192534 0.6204544 keV isis> isis> plot_data(pca;dsym=4,dcol=4,decol=5,xrng={3,22},res=2);
2: CHI
ERROR BARS IN LINE REGION A LITTLE TOO FLAT. NOTE ALSO THAT CUSTOM IN X-RAY ASTRONOMY IS TO QUOTE 90% CONFIDENCE LIMIT ERROR BARS.
!2 2 0
10 Energy (keV)
20
"2 2 0
10 Energy (keV)
20
CALCULATING FLUX
isis> % You can get flux from value_structure = get_model_flux(dataset_id); or from isis> % Isis_Active_Dataset=#; % Dataset of interest - they can have different norms! isis> % y = eval_fun(angstrom_lo,angstrom_hi); isis> % Then sum up the answer over the band of interest. The former *only* evaluates isis> % over the energy range in the internal grid of the ARF, the latter returns isis> % photons/bin/cm^2/sec for any specified grid. So, in both cases, some care isis> % must be exercised in their use. isis> isis> % Using the former, I have written a short script to calculate the flux, and isis> % and call it (somewhat stupidly) kev_flux(); You have it in the scripts. isis> % Exercise for the reader to write a nicer version using eval_fun()! isis> isis> kev_flux(1,2,10); % listed below: 2-10 keV ergs/cm^2/sec, photons/cm^2/sec 7.2141e-09 1.0128 isis> % Remember what we said about the order of putting on/popping off the stack! isis> (ergs_flux, photon_flux) = kev_flux(1,2,10); isis> isis> kev_flux(1,1.5,10); % The internal grid stops at 1.5 keV, hence ... 7.40266e-09 1.0738 isis> kev_flux(1,1,10); % ... the lack of change of the numbers here. 7.40266e-09 1.0738
2 CHI
isis> isis> isis> isis> isis> isis> isis>
% The functions fit_counts; renorm_counts; eval_counts; optionally return info % about the statistics. To do this, you must pass a reference to a variable % in which to store these statistics. The & in front of the variable name below % says that you are passing this reference. What you get back is a structure % with fields for statistic, num_variable_params, and num_bins. Heres a short % script that will do what steppar does: define steppar(par,lo,hi,nsteps) { variable par_vals=[lo:hi:(hi-lo)/nsteps]; variable info, stat, par_use; stat = Double_Type[length(par_vals)]; variable i = 0; foreach par_use (par_vals) { set_par(par,par_use,1); % Freeze parameter () = fit_counts(&info); stat[i] = info.statistic; i++; } thaw(par); () = fit_counts; return par_vals, stat; } isis> (par_vals,stat) = steppar("bknpower(1).BreakE",9,10.2,12); isis> xrange, yrange; xlin; ylin; xlabel("Break Energy"); ylabel("Chi\\u2\\d"); isis> plot(par_vals,stat);
2 CHI
Chi2 15 9 16
17
18
10
CONTOUR PLOTS
isis> isis> isis> isis> isis> isis> isis> isis> isis> % Confidence contours can be created with ISIS intrinsic functions. First you % Define the x & y grids, then create the contours, then plot and/or save them x = conf_grid(3,1.66,1.69,10); % Photon Index 1 y = conf_grid(5,1.385,1.415,10); % Photon Index 2 contr = conf_map_counts(x,y); % Create the contours xlabel("\\frPhoton Index 1"); ylabel("\\frPhoton Index 2"); plot_conf(contr); % Plot the contours save_conf(contr,file); % Save them (later load them with load_conf;)
1.66
1.68
1.69
DEFAULTS ARE 68%, 90%, AND 99% CONFIDENCE FOR 2 PARAMETERS. CUSTOM LEVELS CAN BE CHOSEN INSTEAD. THIS FUNCTION WILL BE PARALLELIZED IN ISIS 1.5.
1.39
1.41
YOU PROBABLY WANT TO SAVE FANCY_PLOT AS A SCRIPT SO YOU CAN MODIFY IT MORE EASILY.
5 Energy (keV)
10
20
MORE ON PLOTTING
PGPLOT IS A FAIRLY SIMPLE PROGRAM. ITS SERVICABLE, BUT LOTS OF PEOPLE (UNDERSTANDABLY) PREFER THINGS LIKE IDL. WITH MY PLOT ROUTINES, WRITE_PLOT WILL SAVE SIMPLE ASCII FILES FOR THE *LAST* PLOT YOU MADE WITH *MY ROUTINES*. THOSE SHOULD BE SUITABLE FOR READING INTO OTHER PROGRAMS, AND REPLOTTING. AGAIN, USE SCRIPTS TO MAKE REPRODUCING WHAT YOU DID A LITTLE EASIER.
THE SCRIPTS YOU HAVE FROM SCHOOL ARE *MORE RECENT* THAN THESE. HOWEVER, POST-ISIS 1.5 RELEASE, I WILL BE UPDATING THEM FURTHER. PLANS, AMONG OTHER THINGS, INCLUDE MODIFYING THE PLOTTING ROUTINES. SUGGESTIONS ON IMPROVEMENTS TO FUNCTIONALITY & SYNTAX VERY WELCOME! SUGGESTIONS ON NEW FUNCTIONS ALSO WELCOME!
FOR FURTHER HELP S-LANG & ISIS BUILDING & MANUALS, CHECK THE MAIN WEB-SITES: www.s-lang.org http://space.mit.edu/CXC/ISIS/ COMPARISONS TO XSPEC & TUTORIAL: http://space.mit.edu/home/mnowak/ isis_vs_xspec/index.html LOOK FOR UPDATE TO ABOVE LATER IN 2009!
FOR FURTHER HELP ISIS-USERS MAILING LIST: http://space.mit.edu/CXC/ISIS/ mailing_list.html OR CONTACT US DIRECTLY: FOR ISSUES WITH ISIS-BUILDS, ISIS-MODULES, AND BASIC ISIS-FUNCTIONALITY:
houck@space.mit.edu, mnoble@space.mit.edu
FOR TRANSLATING FROM XSPEC EQUIVALENTS AND ANY SCRIPTS SHOWN IN THIS PRESENTATION:
mnowak@space.mit.edu