RHESSI Quicklook Data products:

Observing Summary and Instrument Log

The Observing Summary is obtained directly from the telemetry packets. The photons are time-binned and the count rate is compressed to bytes (0.03 accuracy up to 1.0e6 counts/sec). Aspect solution, pointing, roll angle and roll period are given also. The nominal interval time for the count rates is the spin period of the spacecraft, 4 seconds, ephemeris info is given every 20 seconds , aspect info is given every second, roll period is given every 20 seconds.

The instrument log contains count rates summed over all energies for each detector, monitor rates, and packet rates, with 20 second time resolution.

Observing Summary objects

In the software, the data in the Observing Summary, the Flare List , and the Quicklook images and spectra are held in objects which are subclasses of the "Framework" object used for all HESSI objects. Thus the Qlook objects have the same data access methods as the other objects, Get and Getdata.

The Hsi_qlook objects are:

Hsi_obs_summ_rate -- contains spin-averaged count rates

Hsi_mod_variance -- The variance in the count rate in collimators 8 and 9.

hsi_ephemeris -- Spacecraft position

hsi_particle_rate -- particle rate

hsi_obs_summ_flags -- Various data flags

hsi_qlook_pointing -- Spacecraft pointing

hsi_qlook_roll_period -- Roll (spin) period

hsi_qlook_roll_angle -- Roll angle

hsi_flare_list -- Flare list


Contents of Individual objects

Each object contains its own info structure, and data structure. Each object can be read individually from the data file also, using getdata. If the data is already in the object, use the Get method.


IDL> rate_obj = obj_new('hsi_obs_summ_rate')

IDL> rate_data = rate_obj -> getdata(filename = filename, /all)

IDL> rate_info = rate_obj -> get(/info)

IDL> rate_data = rate_obj -> get(/data)

IDL> rate_data = rate_obj -> get(/control)


The Get method can be used to recall any control or info parameter as well.

Contents of the Individual Objects:

Hsi_obs_summ_rate

Info:

Data:

Hsi_Mod_variance

Info:

Data:

Hsi_Ephemeris

Info:

Data:

Hsi_obs_summ_flag

Info:

Data:

hsi_qlook_pointing

Info:

Data:

hsi_qlook_roll_period

Info:

Data:

hsi_qlook_roll_angle

Info:

Data:

hsi_flare_list See also http://sprg.ssl.berkeley.edu/~jimm/hessi/hsi_flare_list.html.

Info:

Data:

hsi_qlook_rate_per_det:

Info:

Data:

hsi_qlook_monitor_rate:

Info:

Data:

hsi_qlook_packet_rate:

Info:

Data

hsi_qlook_summary_page:

Info:

Data is a string array


Accessing Observing Summary Data from the individual objects

The Observing Summary data is most easily accessed using the HSI_OBS_SUMMARY object. Here in this document we discuss how to deal with the individual objects contained in the HSI_OBS_SUMMARY object. To get an individual object from the obs_summary object, use the get(/object_reference) method, for example:


IDL> t = ['4-sep-2002 0:00','4-sep-2002 1:00']

Then

IDL> obj = hsi_obs_summary(obs_time_interval = t)

IDL> data = obj -> getdata(class_name='hsi_obs_summ_rate')

IDL> obs_summ_rate_obj = obj -> get(class_name='hsi_obs_summ_rate', /Object_reference)


Control Parameters

All of the hsi_qlook objects have the same control structure, To access : obj ->get(/control)

There are 6 control parameters for specifying the time range for the data returned in the Qlook object. Control parameters can be set in the initialization statement, or by using the Set method, or in the getdata statement. For any of these objects, either obs_time_interval or filename must be set, if not then a -1 is returned. See below for an example.

Archived data: obs_time_interval

If obs_time_interval is set, then the databaseis accessed and the data is otained from the data files in the directory which is pointed to by the env variable HSI_CATALOG_ARCHIVE. (See instructions on how to get test data and set up a data archive. ) This can be changed by setting the data_dir keyword in the getdata call to the appropriate directory.

Obs_time_interval is a two element array if time, in any ANYTIM readable format, for example:


IDL> t = ['4-jul-2000 0:00','4-jul-2000 1:00']

Then

IDL> obj = obj_new('hsi_obs_summ_rate', obs_time_interval = t)

Or

IDL> obj = hsi_obs_summ_rate(obs_time_interval = t)

Then

IDL> data = obj -> getdata()

Or just

IDL> obj = obj_new('hsi_obs_summ_rate')

IDL> data = obj -> getdata(obs_time_interval = t)


will return the countrate data for the time range from 0:00 to 1:00 on 4-jul-2000. If the data is not in the archive, then -1 is returned.

We expect that most data access will be via obs_time_interval, but you can also access the data using the filename parameter. This should almost never be needed

Non-Archived Data: filename

If the filename is set, then the data will be read in from that file. Note that the filename parameter is not looked at if obs_time_interval is set, if both filename and obs_time_interval are set, then the data will be read from the archive. When passing in a filename, the full path for the file is necessary.

The control parameters all , and time_range are only used if filename is set. If all is set, then all the data from the given file is input. The data time range can be specified by the parameter time_range , which is a 2-element vector of times in ANYTIM format.


IDL> obj = hsi_obs_summ_rate()

IDL> obj -> set, filename = 'hsi_000.fits'

IDL> t = ['4-jul-2000 0:00','4-jul-2000 1:00']

IDL> data = obj -> getdata(time_range = t)


Time Arrays

Data times are not saved with the observing summary, but they can be obtained using Get, e.g.,


IDL> data_times = obs_summ_obj -> get(/time_array)


returns the time array for the given observing summary. This is to be interpreted as the interval start time for each interval, for the interval center time, which is what you will want to use if you are interpolating count rates, for example, or for the ephemeris data, set the /center keyword:


IDL> data_times = obs_summ_obj -> get(/time_array, /center)


Hsi_obs_summ_flag object

Unlike the other Obs summary objects, the Hsi_obs_summ_flag object contains more than one kind of data. To access a given data flag, use the flag_name keyword and the Get method:


IDL> obs_summ_flag_obj = hsi_obs_summ_flag(obs_time_interval = '...')

IDL> flag_data = obs_summ_flag_obj -> getdata()

IDL> saa_flag = obs_summ_flag_obj -> get(flag_name = 'saa_flag')


The different data flags are listed above.

The flag_name keyword also works for the hsi_flare_list object; if you want to see what flares in the object have the SAA in the flare interval, do:


IDL> flare_list_obj = hsi_flare_list(obs_time_interval = '...')

IDL> flag_data = flare_list_obj -> getdata()

IDL> saa_flag = flare_list_obj -> get(flag_name = 'saa')


The Plot Method

Each object (except for the flare list object) has a plot method associated with it. After the getdata is called, just do


IDL> obs_summ_obj -> plot


For the hsi_obs_summ_flag object, use the flag_name keyword for the individual flags , e.g., to plot the attenuator state,


IDL> obs_summ_flag_obj -> plot, flag_name='attenuator_state'


16-Oct-2004, jmm