Introduction to RHESSI Data Analysis
RHESSI Data and Software Center Web Page
Data Access Guide
Software Change History
Details and Links
RHESSI Data and Software Center Web Page at
Berkeley (mirror) -
The main RHESSI site for data analysis and software information.
Includes links to browse the flare catalog, look at quicklook plots, and find
documentation on imaging, spectroscopy, simulations, and more.
- The best place to start. It has links describing where the
data is, how to install and set up SSW for RHESSI, how to get started with
imaging and spectroscopy, and how to stay informed about RHESSI Data
Data Access Guide - Describes the types of RHESSI data that are available, and how to
installing and using SSW, setting up for RHESSI, using RHESSI data files and
Details and Links
All of the data products listed below are stored on the RHESSI
data archive. The
primary archive is at Goddard, and the
secondary archive is at ETH
>13,000 flares currently
Stored in monthly FITS files and ASCII files in the SSW hessi dbase
directory and on data archive.
Flares are detected automatically, so there is some error (e.g. a flare that
extends through a night period may be labeled as two flares)
Flare numbering scheme: ymmddnn = Last digit of year, 2-digit month, 2-digit
day, 2-digit flare number on that day (starts at 01 and increments), e.g.
2021806 is the sixth flare on February 18, 2002
Explanation of how it is generated, and meaning of each column
to read flare catalog or find flares
Explanation of these plots and
to interpreting them
Quicklook images for every flare in catalog at up at
7 energy bands
to get to these and other summary plots including GOES plots showing RHESSI
observing intervals, GOES / RHESSI / WIND combined plots
Huge database of processed images, spectra and more
through HEDC browser
Plots of the daily average of ~100 State of Health
values for the entire mission
Level-1 data stored in daily FITS files named hsi_obsumm_yymmdd_vvv.fits in
metadata/catalog area of data
Count Rates pre-binned in 4-second time bins, 9 energy bands
Additional pre-binned data includes ephemeris, pointing and roll data,
monitor rates, and more
Prepared plots are available online of count rate data for every orbit of
User can use IDL to accumulate these data directly for any time interval
Explanation of how to access these data in IDL
Stored as FITS files called hsi_yymmdd_hhmmss_vvv.fits on directories
organized by year, month, and day in the
Raw telemetry data for entire mission
Basic data is just a record of the time and energy of all counts detected by
the RHESSI hardware
All of the RHESSI software for imaging and spectroscopy starts with these
Need the RHESSI SSW software to read/interpret these data
Data Access Guide
- full description of how to access the RHESSI data from the IDL software
RHESSI software should automatically find the correct file based on the time
interval you request.
FILEDB files (files that contain a list of the file name for every time
interval) are distributed with SSW in the dbase directory.
Environment variables used to find the data are HSI_DATA_ARCHIVE and
HSI_DATA_USER. These should be set for each computer in the
$SSW/site/setup/setup.hessi_env file. Refer to the
Installation Guide and the
FAQ for more
If the full archive is available to you (at Goddard, ETH, and several other
unofficial mirror sites), set HSI_DATA_ARCHIVE to point to it.
If not, you can:
/enable in IDL to automatically copy files as needed. Files will be
copied to HSI_DATA_USER.
Or you can manually copy files from the data archive to your computer, into
either HSI_DATA_ARCHIVE or HSI_DATA_USER.
The software will look in both directories for any file it needs. You
do not need to replicate the directory structure of the data archive (i.e.
directories organized by year, month, day), but you can use sub-directories if
Minimum version of IDL required to run RHESSI software is now 5.6.
Instructions for installing SSW and completing the RHESSI-specific steps
required for both Unix and Windows. RHESSI
additional information if you have trouble.
Documentation for SSW:
Most SSW routines have documentation headers that describe purpose, calling
XCAT - browser
interface to find routines by category or name and view the routine
XDOC - Type xdoc in SSW IDL. Brings up a widget interface to search
and display routines
DOC_LIBRARY - Type doc_library, 'routine' in SSW IDL to see the header
documentation for 'routine'
In the 'gen' part of SSW, there are lots of routines that are generally
useful. Before writing a function from scratch, search around in SSW to
see if someone has already written what you need.
SSW is dynamic. It's constantly changing, which is both good and bad.
There are four ways to analyze RHESSI data.
IDL Command Line
Requires IDL, SSW, and access to Level-0 FITS files
Allows for complete analysis
Requires knowledge of IDL and RHESSI software calls
Graphical User Interface (GUI)
Requires IDL, SSW, and access to Level-0 FITS files
Simple to use
Limited in capabilities
Combination of GUI and Command Line
Mix and match, and get the best of both
Requires browser, does NOT require IDL or SSW
Many prepared plots to browse through
Allows you to initiate batch jobs to retrieve and plot data
Runs IDL on the HEDC server to handle batch jobs
To run the RHESSI GUI, in an SSW IDL session type:
Generate and display images, lightcurves, spectra, and observing summary
GUI remembers all plots created in a given session for quick retrieval and
multiple plots on a page
Interactive manipulation of plots
Output options include printing plot, creating plot file, creating FITS
file of image, and writing text file of data
Option to overlay observing summary flags (Night, SAA, Attenuator State,
Flare, Fast Rate) on any time plot (GOES, HESSI...)
Quicklook image viewer
Image movie maker and viewer
Access to synoptic data, including GOES
Options for overlaying images from any source (HESSI or one of the many
available through the synoptic interface) or stacking lightcurves from different
Note: You can achieve the same plot capabilities from the command line
using the plotman method (obj -> plotman).
You can easily share an object between the command line and the GUI.
If you have an existing object (image, lightcurve, spectrum, or observing
summary) you can start the GUI with that object, by typing the following.
Any parameters you had already set, or processing you had already done will be
If you've already started the GUI, you can retrieve any of the four
objects in the GUI and use them at the command line via the hessi_data
command. Just type hessi_data by itself to see the options.
For example, to retrieve the image object used in the GUI, type
In both cases, the object is totally shared between the GUI and the
command line; it is not a copy. Changes you make in either interface
If you change any object parameters in the command line, use the 'Refresh'
button on the GUI to show the new values in the widget.
There is a 'Write Script' button in the image, lightcurve, and spectrum
widgets to generate a script containing the commands to set up an object with
whatever parameters you've set in the widget. No actions are put in the
script, just parameter settings. Use the script as a starting point for
building your own procedure to analyze data with features not available in the
GUI, or to do repetitive operations without having to press GUI buttons a
You can write an image FITS file from the GUI and restore it in the
command line via obj = hsi_image_fitsread(/obj)
You can write a save file containing the object and restore it at the
command line (even in a new IDL session). The GUI has buttons to
do this, and from the command line, use the obj_save and obj_restore commands.
NOTE: This option should only be used for short-term storage - if the
software changes a lot and new parameters are added to the object, restoring
an old object may not work.
The RHESSI software is object-oriented. It is built from a hierarchy
of connected objects - one object for each data type.
An object is a package for storing data and the operations to execute on the
data. The data includes:
User-settable parameters that
control selections (e.g. time interval) called control
Informational parameters set by
the object as it carries out its operations called info parameters
The data product produced by the
object (e.g. an image)
The operations are called methods and are similar to subroutines or
functions. They are called with the arrow syntax ( -> ). Think of
sending the object to its method.
The main RHESSI objects are:
Below these are chains of objects containing all the intermediate data
products and operations need to produce an image, lightcurve, spectrum, etc.
A single variable name is used to refer to the entire chain of objects. For
example, to create an image object, type:
o = hsi_image()
o now refers to the entire chain of objects required to make an image.
When the object is instantiated (by creating it as in the line above), its
control parameters are set to default values. The user has to
change only the parameters they want to be different from default.
RHESSI objects all have the following standard methods:
GET - get control or info parameters out of object
SET - set control parameters into object
GETDATA - get data product from object
PLOT - plot data product
PLOTMAN - plot data product in interactive plotman widget
Normal sequence is to create an object, set non-default parameters, and
the data product. For example:
o = hsi_spectrum()
o -> set, obs_time_interval =
['12-feb-2004 00:20', '12-feb-2004 00:22']
o -> set,
spectrum = o ->
When you call getdata, the object starts at the bottom of its chain
of objects and processes each object as necessary, working through to the
highest level object to give you your data product. Each object in the
chain 'remembers' what it's done, so that if you change a control parameter,
only the objects affected by that parameter have to reprocess. In the
HESSI GUI, there's an asterisk next to the parameters that will require more
reprocessing when changed. For instance if we now ask for a plot without
changing any parameters, no reprocessing is required, just the steps necessary
for making a plot:
o -> plotman
Now, say we want to change detector segment selection to just front segments
1 and 2, and change the units of the plot to flux. We can type the
following and no reprocessing will be required since the data for all detectors
is always accumulated:
bytarr(9) ], sp_data_unit='flux'
These new parameter settings will now persist, since they are set into the
object before creating the new plot. We can see this by doing some gets:
IDL> print, o -> get(/seg_index_mask)
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
IDL> print, o -> get(/sp_data_unit)
Whereas if you changed the time interval, the object at the bottom of the
chain that reads the Level-0 data files must read new data and every object
along the path will reprocess as necessary.
Control and Info Parameters for RHESSI are listed in the
There are additional methods available for each object
You can retrieve the intermediate objects from the main object using get(/obj,class_name='xxx')
and work directly with them via set, get, getdata.
14 October 2004