This document: (1) Presents the class diagram of the HESSI data analysis Software; (2) Describes the object classes used in run-time configurations of the data analysis software; (3) Describes the object accessor methods available to retrieve data from the objects; (4) Describes control parameters and keywords allowing to modify the contents of the objects; (5) Describes data structures used by the classes. This document needs not to be read for analyzing HESSI data. Instead, users of the data analysis software might want to look at the HESSI Imaging Overview describing the command-line user interface or by using the hessi graphical user interface (type hessi at the prompt). Furthermore, you may also read the utility quick reference guide for an introduction to HESSI object classes. This manual is intended to developers who need to understand all low-level details. It is assumed that you have installed both IDL version 5.3, as well as the Solar Soft Tree with at least the HESSI, SPEX and XRAY branches of the tree.
Last modified: Mon Jun 18 17:28:17 2001 (csillag@sunlight)
Release 6
See the diagram on your browser or get a printable pdf version of the diagram.
| Name | Purpose | Data type | Control parameters | Info parameters |
|---|---|---|---|---|
| Framework | Generic abstract data analysis class | Defined in concrete class | Defined in concrete class | Defined in concrete class |
| HSI_Binned_Eventlist | Binned event list | Array of {hsi_binned_event} | tba | tba |
| HSI_BProj | Back projection | Image of dimension rmap_dim | flatfield, vrate | none |
| HSI_BProj_Strategy | Abstract class for the back projection methods | N/A | N/A | none |
| HSI_BProj_Annsec | Back projection annular sector strategy | Image of dimension rmap_dim | flatfield, vrate | none |
| HSI_Calib_Eventlist | Calibrated event list | Array of {hsi_calib_event} | tba | tba |
| HSI_Clean | CLEAN algorithm | 2D array | tba | tba |
| HSI_Eventlist | Event list | Array of {hsi_event} | none | eventlist_strategy |
| HSI_Eventlist_Packet | Event lists from telemetry packets | Array of {hsi_event} | same as HSI_Eventlist_Strategy | same as HSI_Eventlist_Strategy |
| HSI_Eventlist_Simulation | Event lists from simulations | Array of {hsi_event} | same as HSI_Eventlist_Strategy | same as HSI_Eventlist_Strategy |
| HSI_Eventlist_Strategy | Parent class of | Array of {hsi_event} | a2d_index_mask, energy_band, time_range, time_unit | absolute_time_range n_event ut_ref |
| HSI_FITS | FITS file handler | tba | tba | tba |
| HSI_GSE | Ground Support Equipment file handler | {hsi_gse_data} | tba | tba |
| HSI_Image | Images | FltArr( image_dim[0], image_dim[1] ) | image_algorithm | |
| HSI_Image_Alg | Abstract class for imaging algorithms | Through concrete class | Through concrete class | Through concrete class |
| HSI_Lightcurve | Generation and access of light curves | FltArr( n_time_bins, n_energy_bands, n_a2ds, | tba | |
| HSI_MEM_Sato | Maximum entropy algorithm | 2D arrray | tba | tba |
| HSI_Modul_Pattern | Modulation patterns | 3D arrray | tba | tba |
| HSI_Monitor_Rate | Monitor rate reader | {hsi_monitor_rate} | mon_time_range, det_index_mask | dtime, mon_ut_ref, ncyles |
| HSI_Packet | Unpacked telemetry packet | {hsi_packet_source} | file_type, app_id | n_record |
| HSI_PSF | Point Spread Function | fltarr(image_dim[0], image_dim[1]) | xy_pixel | |
| HSI_Simulation | Simulations | Replicate( {hsi_event}, n_event ) | sim_out_time_unit, sim_ref_time | |
| HSI_Spectrogram | Spectrogram abstract class | FltArr( n_channel_bins or n_energy_bins, n_time_intervals, n_a2ds, n_coincidences ) | poisson, seed, coincidence_flag, sum_flag | binning |
| HSI_Spectrum | Generates count rate spectra | FltArr( n_energy_bins or n_channel_bins, n_time_intervals, n_a2ds, coincidence_flag+1 ), | sp_time_interval, sp_chan_binning, sp_energy_binning | |
| Selection Manager | Allows keeping track of selected elements in a list | N/A | N/A | N/A |
| Structure Manager | Manages setting and getting values from data structures | N/A | N/A | N/A |
If a parameter has no default value, it is an info parameter (read-only), iterwise it is a control parameter (read/write).
| Name | Purpose | Control or Info | Default | Range | Defined in the class |
|---|---|---|---|---|---|
| a2d_index_mask | Mask for the selection of a2ds. | Control | BytArr( 27 ) + 1B | 0 or 1 | HSI_Eventlist_Strategy |
| binning | Binning scheme for spectrograms | Info | N/A | Structure | HSI_Spectrogram |
| det_index_mask | Flags for selecting detectors | Control | [0,0,0,1,1,1,1,1,0] | 0 or 1 | HSI_Binned_Eventlist, HSI_Monitor_Rate |
| dtime | ? | Info | ? | ? | HSI_Monitor_Rate |
| energy_band | Minimum and maximum energy value of the analysis interval | Control | [12,25] keV | 3..15000 | HSI_Eventlist_Strategy |
| eventlist_strategy | strategy used by getdata to get event lists | Info | "HSI_EVENTLIST_PACKET" | < a href=#hsi_eventlist_packet>"HSI_EVENTLIST_PACKET" < a href=#hsi_eventlist_simulation>"HSI_EVENTLIST_SIMULATION" | HSI_Eventlist |
| filename | The name(s) of the level-0/telemetry data file(s) | Control | '' | Valid filename | HSI_Packet |
| file_type | The type of the level-0 data files | Control | 'fits' | fits, gse, smex, raw | HSI_Packet |
| flatfield | ? | Control | 1 | 0 or 1 | HSI_BProj |
| mr_time_range | Time interval for which moniro rates are requested | Control | [0D,0D] sec. | 0...100 | HSI_Monitor_Rate |
| ncycles | Number of cycles available in the monitor rate packets selected | Info | HSI_Monitor_Rate | ||
| new_gain | Controls which gain is used for channel-energy correspondance | Control | 1 | 0 or 1 | HSI_Eventlist |
| saszero | If 1 assumes a perefect aspect solution | Control | 0 | 0 or 1 | HSI_Aspect_Solution |
| sp_chan_binning | Defines the channel binning | Control | 0 | 0 .. 8192 | HSI_Spectrum | sp_energy_binning | Defines the energy binning | Control | 7 (# of table) | 0 ... ? | HSI_Spectrum | sp_semi_calib | Semi-calibrate the count rates | Control | 0 | 0 or 1 | HSI_Spectrum | sp_time_interval | Defines the time interval for spectra | Control | 60sec | >0 ... ? | HSI_Spectrum |
| time_bin_def | Factors multipling time_bin_min for the definition of the detector-dependent time bin size | Control | [1,1,2,4,8,8,16,32,64] | 2^0 ... 2^6 | HSI_Binned_Eventlist |
| time_bin_min | The minimum time binning | Control | 1024 binary microsec. (= 2^-20 sec) | 2^0 ... 2^7 | HSI_Binned_Eventlist |
| time_range | Time range of the analysis interval | Control | [0,4] sec. | 0...100 | HSI_Eventlist |
| time_unit | Time unit used in the event list time tags | Control | 16 binary microseconds | 1...32 | HSI_Eventlist |
The basic implementation of the methods defined below are implented in the abstract class Framework and either extended or overridden in the concrete classes
A procedure method is called by obj->proc_name whereby proc_name is the name of the method. A function method is called by result = obj->func_name whereby result is any IDL variable name and func_name is the name of the method. Methods and functions accept any keyword parameters of type "Set" as defined in the section Keywords below.
| Name | Purpose | Keywords | |
|---|---|---|---|
| Get() | Retrieves control or info parameters | ADMIN_ONLY, CLASS_NAME, /CONTROL_ONLY, FOUND, /SOURCE_ONLY, /THIS_CLASS_ONLY, /THIS_OBJECT_ONLY, /INFO_ONLY, /NO_DEREFERENCE, /NOSINGLE, /POINTER, /OBJECT_REFERENCE | |
| GetData() | Retrieves primary data | /ALL, CLASS_NAME, DONE, THIS_A2D_INDEX, THIS_INDEX, NEXT_BUNCH | |
| Set | Sets control parameter values | SOURCE_OBJECT, CONTROL_STRUCT, INFO_STRUCT | |
| SetData | Inputs primary data into the object | TBA | |
| Plot | Plots the primary data | Same as GetData | |
| Prints parameter values | Same as Get, /XSTRUCT | ||
| Write | Writes a FITS binary table with the data of the class | TBA | TBA |
Each name of a control parameter is associated with a keyword that allows to set or get its value using the procedures set and get. Similarly, each name of an infor parameter is associated with a keyword that allows to get its value. Control parameters can be set with any method. Once a control parameter is set, its value is kept in the object, i.e. it does not need to be set for each method call.
Furthermore, some keywords are used to request a specific subset of the data associated with a specific object. These keywords start in general with the prefix THIS_ and are used only with the method GetData. The default value of a keyword is the value used when the keyword is not used.
Only by inheritance in concrete classes.
Computes the backprojection for a given count rate. The count rate is given either using the parameter vrate, or if vrate is empty (null pointer), the count rate used is the observed count rate.
obj = Obj_New( 'hsi_bproj' )
Control parameters for the back projection are defined in the structure hsi_bproj_control.
Provides a wrapper for the clean image algorithm.
obj = Obj_New( 'hsi_clean' )
Control parameters for the clean algorithm are defined in the structure hsi_clean_parameters.
No accessor methods are implemented in this class.
No display methods are implemented in this class.
Provides data structures and methods to build and access an event list.
{hsi_event}
{hsi_eventlist_control}
{hsi_eventlist_info}
Provides data structures and methods for HESSI imaging tasks.
obj = Obj_New( 'hsi_image' )
obj = hsi_image()
{hsi_image_control}
{hsi_image_info}
HESSI IMAGING ALGORITHM ABSTRACT CLASS DEFINITION. This abstract class defines operations common to all imaging algorithms used for HESSI image processing. It leaves up to the subclasses the behavior that can vary. It is inherited by a concrete class that usually has the same name as the algorithm it implements. This class is a realization of the Template Method design pattern.
Only through the concrete classes
The procedure Process loads the control parameters and passes the control to the child class with image_alg_hook. Once it returns from image_alg_hook, it stores the information parameters that may come out of the concrete class into the object. Image_alg_hook must be defined in the concrete class.
Through concrete classes
Through concrete classes
HSI_Clean, HSI_Forwardfit, HSI_Pixon.
This class implements methods to access monitor rates data.
obj = HSI_Monitor_Rate()
TBA
Provides data structures and methods to build and access the calibrated event list.
obj = Obj_New( 'hsi_calib_eventlist' )
obj = hsi_calib_eventlist()
result = obj->Get()
result = obj->GetData()
obj->Plot
obj->Print
obj->Set
{hsi_calib_event}
{hsi_calib_eventlist_control}
{hsi_calib_eventlist_info}
HSI_Eventlist(direct)
HSI_Packet
HSI_Super
This class provides data structures and methods to work with HESSI
telemetry packets. Packets come in several formats, and one of the
main task of this class is to provide a common interface to all
formats. The formats (1)
construction of a packet object associates a data file with the
object. This file can be either a HESSI FITS file, an ITOS-formatted
telemetry file or a file containing GSE data.
A selection list determines which packets are to be returned. The
selection list is built by requesting specific time range and packet types.
obj = Obj_New( 'hsi_packet' )
obj = hsi_packet()
The function Get returns control data. The type of the returned
parameter depends on the keyword set. The
SELECTION keyword used
alone
returns an index list packets given a time range and an
application id. The SELECTION
keyword used with other keywords will return the corresponding
data for only the selected packets
The function GetPacket returns packet data, of type
{hsi_packet_source}
Provides data structure and methods to process and access HESSI point spread functions. This class has a memory: already processed point spread function will not be recalculated.
obj = Obj_New( 'hsi_psf' )
obj = hsi_psf()
psf = obj->GetData(
NO_SUM=no_sum,
THIS_DET_INDEX=this_det_index )
THIS_HARMONIC_INDEX=this_harmonic_index )
The function GetData allows retrieving point spread functions
Abstract class generating spectrograms for a given channel binning / energy binning and time binning.
Used with a concrete class, see hsi_lighctcurve and hsi_spectrum
TBA
Generates and provides access to count rate spectra.
obj = Obj_New( 'hsi_spectrum' )
obj = hsi_spectrum()
result = obj->Get( )
result = obj->GetData()
TBA
Allows selecting which a2ds to use. Note that this setting is very low level. Usually you may want to select the detectors instead, with det_index_mask
o->Set, A2D_INDEX_MASK = [0,0,0,1,1,1,1,0,0, BytArr(18)]
This selects the a2ds 3 to 6.Specifies the filename containing the level-0 data. The filename may be of type FITS, ITOS, GSE, SMEX or RAW. See the HESSI file formats document for more information on the different formats. Note that usually you may use obs_time_interval to select data, whereby the filename will be automatically selected.
o->Set, FILENAME = ['gaga1.fits', 'gaga2.fits']
Specifies which algorithm is used to reconstruct the image.
o->Set, IMAGE_ALG = 'clean'
Specifies the dimension of the image in pixels.
o->Set, IMAGE_DIM=[128,128]
Returns the number of packets in the file. If used with SELECTION keyword, then returns the number of packets selected.
print, o->Get( /N_PACKET )
Specifies the size of the image pixel in arcseconds. See also: IMAGE_DIM
o->Set, PIXEL_SIZE=[1.,1.]
Returns the indices of the selected packets
Help, o->Get( /SELECTION )
Specifies that the Aspect solution sould be considered as perfect.
o->Set, /SASZERO
Specifies the time bin definition factor for each detector. It is multiplied by TIME_BIN_MIN.
o->Set, TIME_BIN_DEF=[1,1,2,4,8,8,16,32,64]
Specifies the minimum time bin in binary microseconds. It is multiplied by TIME_BIN_DEF.
o->Set, IMAGE_DIM=[128,128]
Flag for controlling whether process messages are printed or not.
o->Set, /VERBOSE, /THIS_CLASS_ONLY
will set the verbose flag for the clas o only, i.e. the source classes of o will not be influenced by this setting.Allows allows passing an arbitrary count rate to the backprojection object. It must have the dimensions defined by time_bin_min and time_bin_def in hsi_binned_eventlist. The best way to know these dimensions is to look at the observed count rates (see example below)
be = o->getdata( class='hsi_binned_eventlist' )
vrate = be
modify_vrate_here_as_you_want
bp = o->getdata( vrate = vrate )
Specifies the offset of the map center from the sun center in arcsecs.
o->Set, XYOFFSET=[200,400]
Keywords are different from parameters in the sense that they are used to change a standard behaviour of a procedure, but the values they pass are not sorted in the object
Returns the x axis of the data in the class. This may be the pixel location (in arcseconds) if the class is HSI_Image, or time if the class is HSI_Binned_Eventlist
image_x_axis = o->GetData( /XAXIS )
Returns the y axis of the data in the class. This may be the pixel location (in arcseconds) if the class is HSI_Image, or the energy edges for the class HSI_Lightcurve
image_x_axis = o->GetData( /XAXIS )