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.
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
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.
Info:
Data: Info:
Data: Info:
Data: Info:
Data: Info:
Data:
Info:
Data:
Info:
Data:
Observing Summary objects
Contents of Individual objects
Contents of the Individual Objects:
Hsi_obs_summ_rate
Hsi_Mod_variance
Hsi_Ephemeris
Hsi_obs_summ_flag
['SAA_FLAG', $ ;1 for SAA, from orbit data
'ECLIPSE_FLAG', $ ;1 for Eclipse, 0 for sunlight, from orbit data
'FLARE_FLAG', $ ;1 for flare
'IDPU_CONTROL', $ ;IDPU version control number
'CRYOCOOLER_POWER', $ ;average for 4 sec interval
'COLD_PLATE_TEMP', $ ;average for 4 sec interval
'FRONT_RATIO_1225', $ ;front-total count rate ratio for 12 to 25 keV
'COLD_PLATE_SUPPLY', $ ;percent on for 4 sec interval
'HV28_SUPPLY', $ ;percent on for 4 sec interval
'ACTUATOR_SUPPLY', $ ;percent on for 4 sec interval
'FAST_HOUSEKEEPING', $ ;percent on for 4 sec interval
'SC_TRANSMITTER', $ ;(may affect detector 8), percent on for 4 sec interval
'SC_IN_SUNLIGHT', $ ;percent on for 4 sec interval, from packets
'SSR_STATE', $ ;0-8 SSR fill level, average for 4 sec interval
'ATTENUATOR_STATE', $ ;0,1,2,3, average for 4 sec interval
'FRONT_RATIO', $ ;Front counts /(front+rear), flare diagnostic
'NON_SOLAR_EVENT', $ ;set to 1 for a non-solar event
'GAP_FLAG', $ ;1 if no count rate data
'DECIMATION_ENERGY', $ ;energy channel upper limit for decimation
'DECIMATION_WEIGHT', $ ;decimation multiplier true_rate=weight*obs_rate
'MAX_DET_VS_TOT', $ ;fraction of counts in 1 detector,to rule out 1 detector flares
'NMZ_FLAG', $ ;Set to 1 if in North High-latitude Magnetic Zone
'SMZ_FLAG', $ ;Set to 1 if in South High-latitude Magnetic Zone
'AAZ_FLAG', $ ;Set to 1 if in the Atmospheric Absorption Zone
'PARTICLE_FLAG', $ ;Set to 1 for a Particle Event
'REAR_DEC_CHAN/128',$ ;Channel below which rear segment counts are decimated divided by 128.
'REAR_DEC_WEIGHT', $ ;rear decimation multiplier true_rate=weight*obs_rate
'PARTSTORM', $ ;particle storm
'HLAT', $ ;high latitude
'ECLIPSE_EXT', $ ;another eclipse flag, can be different from 'ECLIPSE_FLAG', which is obtained from the GDS.
'FRONTS_OFF', $ ;Front detector events are turned off
'BAD_PACKETS'] ;Bad packets present in data
hsi_qlook_pointing
hsi_qlook_roll_period
hsi_qlook_roll_angle
hsi_flare_list
See also
http://sprg.ssl.berkeley.edu/~jimm/hessi/hsi_flare_list.html.
Info:
['SAA_AT_START', $ ; 1 if saa_at_start 'SAA_AT_END', $ ; 1 if saa_at_end 'SAA_DURING_FLARE', $ ;1 if saa_during_flare 'ECLIPSE_AT_START', $ ;1 if flare starts at end of eclipse 'ECLIPSE_AT_END', $;1 if flare ends at start of eclipse 'ECLIPSE_DURING_FLARE', $ ;1 if eclipse during flare 'FLARE_AT_SOF', $;1 for flare at start of file 'FLARE_AT_EOF', $;1 for flare at end of file 'NON_SOLAR', $ ;1 for non-solar event 'FRONT_DECIMATION', $ ;set to 1 if decimation is present 'REAR_DECIMATION', $ ;set to 1 if decimation is present 'ATT_STATE_AT_PEAK', $ ;0,1,3 'DATA_GAP_AT_START', $ 'DATA_GAP_AT_END', $ 'DATA_GAP_DURING_FLARE', $ 'PARTICLE_EVENT', $ ;set in the presence of particles > 3 per sec 'POSITION_QUALITY', $ ;set to 1 if position is ok 'ATTEN_0', 'ATTEN_1', 'ATTEN_2','ATTEN_3', $; set to 1 if that attenuator state is present 'MAGNETIC_REGION', $;set to 1 if at high magnetic latitude 'DATA_QUALITY', $ ;totals all the 1's for SAA, Eclipse, Data_gap, particles and decimation 'IMAGE_STATUS', $ ;set to 1 if the Qlook images for this flare have been done. 'SPECTRUM_STATUS'] ;set to 1 if the Qlook spectra for this flare have been done.
Data:
Info:
Data:
Info:
Data:
Info:
Data
Info:
Data is a string array
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)
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)
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)
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)
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')
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