Click here to see the OSPEX Documentation
|September 2015||New web page showing OSPEX command line examples here.|
|July 2015||New Functions Components added over the last year or so
thick_warm - Warm Thick Target Bremsstrahlung
|14-Jul-2015||SMM/HXRBS data can now be analyzed in OSPEX.|
|24-Nov-2014||Added feature to enable input from 'ANY' type of data file. See 'ANY' input documentation.|
|14-Jul-2014||Added ability to plot electron spectrum (electron
distribution function) for thick and thin target models
|11-Jul-2014||Added ability to plot thermal energy of plasma
|11-Jul-2014||Reference energy for THICK2_VNORM and THICK2_RC functions are now under user control|
|25-Mar-2014||Added ability to plot DEM for multi_therm_xxx models
|30-Oct-2013||Changed Auto-setting Energy Range to Fit
spex_auto_erange now sets the upper limit of the energy range to fit by finding the first energy bin where the counts/bin becomes less than a threshold (defined by new parameter spex_fit_auto_emax_thresh). Previously used count rate > .01 test, and rounded the energy up to the next multiple of 10.
Added option to set lower limit (spex_fit_auto_emin) for RHESSI based on attenuator state.
|17-Sep-2013||Changed background calculation method options
each energy band for defining background can use any of these options:
|Aug-2013||Added three new function components
2vth - sum of
two vth functions, with a shared abundance value
|31-Jul-2013||Made BK_RATIO method for background calculations more
|15-Aug-2012||Added improved nuclear templates
When you select the template function, there are new broad, narrow, and broad+narrow line nuclear templates, as well as pion decay templates for five spectral indices. See http://hesperia.gsfc.nasa.gov/ssw/packages/spex/idl/object_spex/fit_model_components.txt - scroll down to the template component.
|30-Jul-2012||Added MULTI_THERM_GAUSS function component
Function returns the photon spectrum at the Earth, d(Flux)(eph)/dt, from a differential emission measure distribution which has a Gaussian dependence on the logarithm of the temperature.
|26-Jan-2012||Fermi GBM CTIME data can be analyzed in OSPEX
Please see http://hesperia.gsfc.nasa.gov/fermi_solar/analyzing_fermi_gbm.htm for more information.
|5-Dec-2011||Albedo and Pileup_mod contribution now calculated and
Previously the albedo and pileup_mod corrections
were applied to the model (for counts units) or the data (for photon units),
but not shown explicitly. Now they are calculated (by taking difference of
spectrum with and without correction), and returned by calc_func_components
and displayed on plots showing the separate function components.
|14-Nov-2011||Added more options to control fit intervals in 'Fit
1.New option to remove highlighted intervals
|20-Oct-2011||Increased number of photon energy bins in Fermi BGO
RSP files for the b0 detector are now written with 200 input energy bins rather than 140 bins, still covering the range 100 keV to 200 MeV. All existing b0 RSP files were regenerated. See PS plot of changed bins
|12-Oct-2011||Added THICK_NUI function component
Nonthermal bremsstrahlung X-ray spectrum from a thick target with step-function or linear-function ionization profiles. Relativistic energy loss and full cross section are included. Based on THICK2.
|2-Oct-2011||Fermi GBM Poshist file is now automatically downloaded
with data files
The poshist file contains information about the directions of the NaI detectors. Now when you download a data file for a specified time, the corresponding poshist file is downloaded too. That way, if you go offline, you have the file and can plot the detector angles if desired.
|28-Sep-2011||Fixed error in OSPEX assigning times to Fermi GBM data
Error introduced in Feb 2011:
|13-Jun-2011||Added THICK2_VNORM function component
Thick2_vnorm is similar to the thick2 component, but has a variable normalization. A seventh parameter was added - the reference energy at which the function is normalized. This allows a, electron flux at ref energy, to be independent of a, the low energy cutoff. In thick2 a, the total integrated electron flux, and a, the low energy cutoff, are closely coupled.
|7-Jun-2011||Change in normalization for the OSPEX template fitting
The template function component supports photon functions of
any shape over a specified energy domain given by enucl in the save file.
The function is interpolated onto the energy bins used with the detector
response so the count response of the detector can be computed. Previously,
the function was normalized to 1 photon/cm2/sec over the range of the
response energy bins. Now it is normalized over the domain of the input
template, enucl. This makes a difference when the energy domain spanned by
the input side of detector response matrix does not fully include the range
of enucl. We noticed that this was causing problems understanding the
normalization of a Pion template for LAT data where the low end of the LAT
range was 70 MeV but the template enucl started at 200 keV. For the
gamma-ray line spectral templates this would also cause a problem when
looking at the low energy counts from a nuclear line spectrum where the
detector response input does not extend to 8 MeV. Now, with the fix, the
normalization parameter in the template function, A, returns the same
photon spectrum regardless of the span of the energies on the detector
|18-Mar-2011||Change in weights used in fitting when not using model to
When spex_error_use_expected is set to 0 (the default is 1), the weights used in fitting are determined from the error on the observed data combined with the error on the background. Previously the error on the observed data was computed by sqrt(observed counts). Now we use the error in observed counts that was set when the input data was initialized. These are often the same, but may not be (e.g. RHESSI data, user input data through SPEX_USER_DATA or replacedata).
|23-Feb-2011||Added option to show angle of Fermi GBM detectors from
When Fermi GBM input is selected, a new button appears on the
'Select Input' widget to either plot the GBM detector angles to the Sun as a
function of time, or to print the angles at the peak of whatever flares are
in the selected time interval. From the command line (for 12-jun-2010
|4-Feb-2011||Added THIN_NDISTR function component
A thin-target bremsstrahlung spectrum for electron n-distribution function component called thin_ndistr is now available (from J. Kasparova).
|25-Jan-2011||LAT data type added
Lat data can now be analyzed in OSPEX. Spectrum and response files must be requested from LAT team.
|29-Sep-2010||Corrected chi2_map method to use fixed weights
When spex_use_expected is set, the weights used in fitting depend on the model, and therefore the current model parameter values. Chisquare mapping should be done with fixed weights. Now the weights matching the best-fit parameters are used throughout the chisquare mapping process.
|29-Sep-2010||Two changes that affect the weights used in fitting
1. The weights used in fitting are 1./errors^2, where
2. Previously, the error in the background was the sum of two terms, the
statistical error in the counts used in the fit, and the error from the fit.
The second term is no longer included.
For in-orbit background, these two changes will change the fitting errors in opposite directions, so it's not obvious whether your new chisquare will be larger or smaller. For inserted background, the second change has no effect, so the fitting errors will be larger, and your chisquare will be smaller.
|23-Aug-2010||Added chi2_map method to compute uncertainties on fit
Chisquare mapping analysis consists of varying one parameter through a range of values surrounding the best-fit value, fitting the other parameters, and then examining the chisqr vs parameter value curve to determine 1- and 2-sigma error estimates. More details are in the full OSPEX documentation.
|8-Jul-2010||Added ability to search across network for data files
(added for FERMI GBM data and response files)
In GUI, Browse button now has two options - the normal browse on your computer, and browse across the network by time. Downloads necessary files. Use spex_find_data (see header in .pro file for arguments) to find and download files from command line.
|13-May-2010||Added albedo function component
Now you can fit on the anisotropy value in the albedo correction by adding the 'albedo' function component to your fit function.
|7-May-2010||Corrected albedo error
Previously if you enabled albedo correction, but also used the RHESSI drm_mod function component, the albedo correction was undone. This has been corrected.
|15-Mar-2010||Added monte_carlo method to compute uncertainties on fit
Monte Carlo analysis consists of doing many fits to Poisson random deviates of the model computed from the best-fit parameters, and determining the spread of the resulting fit parameters. More details are in the full OSPEX documentation.
|Jan-2010||FERMI GBM data can now be analyzed by OSPEX
Please see http://hesperia.gsfc.nasa.gov/fermi_solar/ for more documentation.
|16-Dec-2009||Added option to ignore filter states
In some regimes (e.g. high-energy rear detector RHESSI data analysis), you may want OSPEX to ignore the filter states. There's a new button on the Input widget called 'Ignore filters', From the command line: o->set, spex_ignore_filters=1.
|11-Dec-2009||Added bpow_ep function
bpow_ep is the same as bpow, but allows the user to select the pivot energy easily (via an additional parameter).
|10-Dec-2009||Corrected error with overlapping ROIs in imaging
Previously if you created a spectrum from multiple ROIs, any overlapping parts of the ROIs were counted twice.
|9-Dec-2009||Corrected calculation of background error when grouping
Background estimated from pre- and post-flare intervals is only as good as the fit to those intervals. The percentage uncertainty should not change when binning over multiple time bins. Previously, combined time bins by summing the error in quadrature, as though the background were based on statistics - this resulted in an incorrectly small error for larger time integrations.
A new parameter, spex_bk_poisson_error (default is 0) can be set to 1 if your background is in fact uncoupled (e.g. if you inserted background from a previous orbit).
|3-Dec-2009||Corrected problem with sigma of fit parameters
A new version of mcurvefit was onlined that provides more reliable, stable sigmas on fit parameters. A problem with the old version allowed sigmas to become unreasonably small in some cases.
|30-Nov-2009||YOHKOH GRS data can now be analyzed by OSPEX
selecting a YOHKOH data file (wda...):
|21-Sep-2009||New template_select method for nuclear template functions
o->template_select, ['a.sav','b.sav'], [3,4] ; sets template file for template components 3 and 4
Also made it possible to enter user template file names in the fit components widget.
|18-Sep-2009||Added 1pow and exp and 1pow_exp functions|
|17-Sep-2009||New easy way to get observed and background data in
d = o -> getdata (class='spex_fitint') now returns the observed data and background data (and errors for both) binned into the fit analysis time intervals (previously only returned bk-subtracted data). Adding spex_units='rate' or 'flux' returns those units.
|24-Aug-2009||New RHESSI OSPEX User Guide online
Visit the RHESSI wiki site for a detailed guide to using OSPEX to analyze RHESSI data. Direct link is here.
|14-Jul-2009||New option for parameter initialization
On fit widget, new button called 'Init Fit Parameters Only' allows you to keep values of min, max, free, erange, uncertainty, #iter and only transfer the fit parameter values depending on your selections for first and subsequent interval initialization method. Parameter name is spex_fit_init_params_only.
|8-Dec-2008||Automatically set upper limit for energy range to fit
Button on fit and fit components widgets called Auto-set Max to select automatically selecting upper limit for energy range to fit based on background-subtracted flux levels. New parameter name is spex_fit_auto_erange.
|24-Jun-2008||New CALC_FUNC_COMPONENTS method
Returns the separate or combined fit function components as a function of energy in counts, rate, or flux, in photon or count space. See Methods section of OSPEX document for more details.
|17-Jun-2008||Multiple input files for MESSENGER data allowed
SPEX_SPECFILE parameter is now an array. For MESSENGER data, concatenates data from files (any number, don't have to be consecutive). This can be done for other data types if needed, but currently only done for MESSENGER.
|3-Apr-2008||Methods for Getting Start Fit Parameters - New Option and
'Previous Interval' Fixed
The new option, 'current', enters the fitting process without changing the fit parameters from their current value for the first interval. For subsequent intervals, the 'previous interval' method is used. (Note that this was how the 'previous interval' method used to work.)
In the 'Previous Interval' method, the first interval selected for fitting now gets its starting values from the previous interval (in the full list of intervals). Note that the meaning of 'previous' depends on whether you are looping forward or backward through intervals.
|27-Mar-2008||New Plot Residuals Button on Fit Options Widget
Plots residuals for selected fit intervals, showing chi-square.
|25-Mar-2008||New Parameter Added - SPEX_ALLOW_DIFF_ENERGY
If this parameter is set to 1, then you can use fit results whose energies are different (in value but not number) from the current data set. Useful if you use RHESSI native energy bins which are slightly different for each detector.
|25-Mar-2008||Changing Fit Time Intervals now Allowed
Previously if you changed the fit time intervals (spex_fit_time_interval), the spex_summ arrays would be reinitialized and you would lose any fits you had already done. Now you can modify your fit time intervals and the spex_summ arrays are adjusted accordingly.
|13-Mar-2007||Reset button in Fit Component Widget
There is now a 'Reset All Comp.' button in the fit component widget that lets you reset the parameter values, minima, maxima, and/or free masks for all components at once to default values, previous interval, previous iteration, or original (values when you entered the widget). It is similar to the Reset button that applies to each fit component separately.
Also a bug was fixed so that now if you select Reset to previous interval, and your loop direction is backwards, then it resets to the interval+1 values (previous in the reverse direction).
|9-Nov-2006||Changing Fit Function is now Allowed
Previously you had to include all fit function components you might possibly need for every interval right from the start - otherwise if you changed them, the spex_summ arrays would be reinitialized. Now you can change the fit function after you've started saving fits - the spex_summ arrays are adjusted accordingly.
|1-Nov-2006||Selecting Fit Intervals based on Filter State Enabled
In the fit widget, the Select button now has some options to help you choose
intervals based on filter state.
|18-Sep-2006||Background Ratio Method Implemented
New option to use the time profile of the background in the highest energy band to define the shape of the background for all energy bands. The amplitude is adjusted by the ratio of the data in the lower energies to the high-energy profile. Refer to the 'Background' section in the OSPEX documentation for details.
|23-Jun-2006||Albedo Source Position now Defaults to XYOFFSET from File|
|18-May-2006||Region Selection Tool Enhanced
There are new
options for selecting contours in the ROI selection tool. There's also a new
HELP button on the widget to explain the region selection options.
|12-May-2006||Changes in Thermal Functions
Relative abundance of
Fe, Ni is now a fit parameter.
|12-May-2006||GENX (save) File Format Option for Fit Results Output
Previously had a choice of genx (save) or FITS format for fit results output file. Now FITS is the only choice. Existing genx files can still be read into OSPEX.
|12-May-2006||New LIST_FUNCTION and MAKE_FUNC_OBJ Methods
displays the details of the function components you've selected and their
|15 -Mar-2006||New gui_label Keyword for Differentiating between OSPEX
Start OSPEX main widget or any sub-widget with gui_label
keyword to put a label on the widget title bars:
|21-Feb-2006||Full SRM Option for RHESSI Image Cubes Added
A new parameter, spex_image_full_srm, was added (in the GUI, it's a check box on the Select Input widget).
When spex_image_full_srm is not set (the default), the image cube is in units of photons/cm^2/sec/asec^2. The conversion from counts to photons was made using the diagonal SRM in the RHESSI image object. No SRM is used in OSPEX in this case. You shouldn't analyze images at low energies in this mode since K-escape is a significant factor, and the off-diagonal elements of the SRM have not been taken into account.
When spex_image_full_srm is set, the spectrum computed from your selected image regions is converted back to counts by applying the diagonal SRM to reverse the original conversion. The full SRM is calculated and used to convert to photons.
|21-Feb-2006||All GUI Panels are now Stored
Previously in the
GUI, when you created a new plot with the same name as an existing panel
(e.g. SPEX HESSI Count Flux vs Energy), the old panel was replaced by the
new panel in order to limit the number of panels stored. Since panels
showing different information may have the same name, all panels are now
stored. You can delete selected panels via the Multi-Panel Options
button under Window_Control.
|21-Feb-2006||Key Control Parameters Reinitialized when Input File is
When you change to a new input source file by changing the spex_specfile parameter, now all of the input-dependent parameters (but not parameters to control configuration options) are reinitialized to program defaults.
You can always initialize all parameters via o->init_params (or via the Reset... button under File in the GUI).
To see which parameters are reinitialized with a new input file, type print, o->get_param_names(/new_input)
|30-Sep-2005||Imaging Spectroscopy - Users can choose which Region to
use for Spectra
In the OSPEX Select Input widget, when you select a
RHESSI Image Cube input file, the Region # button becomes sensitized.
After you select all ROIs (up to 4) on all images, then you can select which
ROI (0,1, 2, 3 or All) to make spectra from. From the command line,
|30-Sep-2005||Imaging Spectroscopy - New, Improved Region Selection
In the OSPEX Select Input widget, when you select a RHESSI Image Cube input file, the Select Regions button becomes sensitized. This button has two options to configure the region selection parameters, and to make the region selections on the images. Right or left click in the image panel display to get a list of options for defining ROIs or displaying spectra and time profiles.
To use the Region selection tools from the command line, after selecting
an image cube input file, type
Full explanations of these features are found in Imaging Spectroscopy with OSPEX.
|30-Sep-2005||Users can Define Their Own Fit Functions
There's a new environment variable, OSPEX_MODELS_DIR, used to find the file fit_model_components.txt which lists the available functions. Users can copy that file to a local directory, add functions, and define OSPEX_MODELS_DIR to point to that directory.
|5-Oct-2004||Set Parameters from Script
In the GUI, there is now a button under File to set parameters from a script procedure file (either initializing all parameters first, or not). To do the same from the command line, type:
|5-Oct-2004||Script is now a Procedure
The writescript method now writes a procedure instead of a main program. Previously we ran it with the .RUN executive command. Now we run it by calling the procedure, with obj as a keyword argument. If obj is an existing OSPEX object, the script will set parameters in it, otherwise a new OSPEX object will be created. The procedure name will be the same as the file name you selected. For example, if you write the script in ospex_script.pro, then call it as follows:
|16-Sep-2004||Background Rate and Error Now Stored in Fit Results
The spex_summ... parameters now include spex_summ_bk_rate and spex_summ_bk_error. These are written to the save or FITS output file along with the other spex_summ.. parameters. The calc_summ method has two new allowed values for 'item': 'bk_ct_flux' and 'bk_ph_flux'.
|15-Sep-2004||Error Bars on Plots
In the "Fit Options" widget, there is now a button to "Show Error" bars when plotting spectra. From the command line, use the /show_err keyword when calling plot_spectrum. To show errors on plots while looping through fit intervals, set spex_autoplot_show_err to 1.
|14-Sep-2004||Albedo Correction Implemented
There is an option to correct for albedo now. In the GUI, the controls are in the "Select Input" widget. From the command line, there are four new parameters: spex_albedo_correct, spex_source_angle, spex_source_xy, and spex_anisotropy. (Note: currently DRM edges must be on integer boundaries.)
|10-Sep-2004||Option to Write Fit Results in FITS file
Previously fit results were stored in IDL save file (.geny file). Now have additional option to store them in FITS file. FITS files are more standard and can be read without SSW or IDL, whereas save file require SSW IDL to read them. The spex_summ... parameters are stored in both, but the FITS files contain additional general information in standard FITS keywords, as well as an extension storing the values of all OSPEX control parameters.
|9-Aug-2004||Option to Manually Set any Parameter through Widget
In the OSPEX GUI, under File, there is a new button called 'Set Params Manually'. From the command line, use the setparams method (o -> setparams).
Either of these brings up a widget interface with all OSPEX control parameters. You can change them through this interface and click Commit to change them in the OSPEX object. Be careful - it's easy to mess things up unless you're sure of what you're doing.
|5-Aug-2004||Added Nonuniform Target Ionization Fit Function
f_ion is now included in the fit function choices in OSPEX. f_vth_ion is not included because you can use the vth component combined with the ion component to form f_vth_ion.
|29-Jul-2004||Multiple Filter (Attenuator) States Handled Transparently
RHESSI SRM files written after this date will contain the response matrices for all attenuator states that occurred during the time interval of the spectrum file. In OSPEX, you set spex_drmfile to that one SRM file, and OSPEX will automatically retrieve the correct response matrix for each fit time interval. The 'Plot Time Profile' button in the Input Widget will display the filter states on the plot. Also in the Fit Options Widget, the 'Show Filter States' button shows the filter states on a time plot. In the 'Fit Options Widget', the 'Remove Bad Intervals' button will remove fit time intervals that include a change in filter state.
|22-Jun-2004||Progress Bar Fixed
The progress bar now always (almost) responds when you click the 'Cancel' button. Previously, it usually ignored 'Cancel' clicks.
|21-Jun-2004||Non-Contiguous Selection of Intervals to Fit
The spex_interval_range control parameter was replaced by the spex_intervals_tofit parameter. Previously you specified the range of intervals to fit, and all intervals in that range were fit. Now you specify an array of the interval numbers to fit.
|16-Jun-2004||Added Triple Broken Power-law Fit Function.
f_3pow is now included in the fit function choices in OSPEX.
|7-Jun-2004||Replace Data Read from FITS Files
You now have the option to initialize OSPEX with a FITS file, and then replace the data or background array in the objects with your own data arrays. Refer to the 'Input Data from Command Line' section in the OSPEX Documentation.
|26-May-2004||Separate Background Energy Bands
Implemented the option to select different background time intervals and fitting polynomial order for separate energy bands.
|26-Apr-2004||User Data Input Option
Now you can set data directly into OSPEX without a FITS file. You need to supply, at the minimum, a spectrum and an array of energy edges. Refer to the 'User Data' section in the OSPEX documentation for details.
|15-Apr-2004||Multiple Energy Ranges for Fitting
Previously you were limited to specifying a single energy range to fit over (spex_erange parameter). Now you can select multiple energy ranges. This will allow you to exclude artifacts in the spectrum.
Last updated 28 September, 2015 by Kim Tolbert, 301-286-3965