Data reader with caching $SSW/hessi/offline/filecache__define.pro
[Previous] [Next]
 PROJECT:
       HESSI

 NAME:
       Data reader with caching

 PURPOSE: 
       Provides a reader for a generic data type, as well as the  

 CATEGORY:
       HESSI Utilities
 
 CONSTRUCTION: 
       obj = Obj_New( 'HSI_FILECACHE' ) ;

       The variable o is the object reference used to
       access the packets.

 INPUTS:
       Provided by the "Set" accessor method:
       obj->Set, KEYWORD=value
       The list of available keywords can be obtained with 
       Help, obj->Get(), /STRUCTURE
       For further information, see
       http://hessi.ssl.berkeley.edu/software/reference.html#set

 OUTPUTS:
       Control parameters are retrieved with:
       result = obj->Get( /KEYWORD1, /KEYWORD2, ... )
       If a single keyword is passed, the variable  "result"
       contains the value of the coprresponding control parameter.  
       If several keywords are  passed, then variable "result"
       contains a structure that has a tag for each keyword.
       For further information, see
       http://hessi.ssl.berkeley.edu/software/reference.html#get

       The actual data is accessed using the function method
       "GetData":
       result = obj->GetData()
       The variable "result" contains the retrieved data. "GetData"
       accepts a number of object-dependent selection parameters,
       see the keywords below. 

 GENERIC METHODS:
       Get
       Set
       GetData
       Print
       Plot
       Write
       
 OBJECT-SPECIFIC METHODS:
       GetData: Has several behaviour depending on the keyword passed
                - With no keywords, the corrent contents of the filecache
                is retrieved
                - With /ALL, all records in the file are retrieved
                - With /THIS_INDEX: the specific indexed dara records
                                    are retrieved. 
                                    - If a scalar, then only a single
                                    record is retrievd
                                    - if a 2d element vactro, then
                                    all records in the range are
                                    retrieved
                                    - if a n-element vecor, then all
                                    single recors are retrievd.
                - With /NEXT_BUNCH: the filecache is loaded with the next
                                    elements and those are returned.
                                 
       
       
 KEYWORDS: 
       ALL
       THIS_INDEX
      
   
 EXAMPLE:
       To read the packets 1000 to 9999 from the HESSI FILECACHE file
       therm6a.dat:

       obj = Obj_New( 'HSI_FILECACHE', FILENAME='therm6a.dat' )
       packet = obj->GetData( PACKET_INDEX = IndGen( 9000 ) + 1000 )

       To plot a "quick and dirty" lightcurve of the pac
       packet->Plot, file='abc.fits', time_resolution=2.

 CALLS: ***
	EXIST, FILECACHE::GETDATA, FILECACHE::GET_RECORD_EDGES, FILECACHE::INCACHE
	FILECACHE::INIT, FILECACHE::LOADCACHE, FILECACHE__DEFINE, HESSI_DATA_PATHS [1]
	HESSI_DATA_PATHS [2], LOC_FILE [1], LOC_FILE [2], LOC_FILE [3], get_uniq
 SEE ALSO:    
	http://hessi.ssl.berkeley.edu/software/reference.html
	HESSI Utility Reference
	HESSI telemetry formats http://hessi.ssl.berkeley.edu/internal/
 HISTORY:
       Release 4 development ACs March 2000: GetData has /all, /next,
       Release 4 development ACs February 2000: filecache is now a separate object 
       Release 2 development, May 1999, 
           A Csillaghy, csillag@ssl.berkeley.edu
       Based on: HSI_packet*.pro (Releases 0 and 1)


DATETIME OBJECT $SSW/hessi/idl/gen/datetime__define.pro
[Previous] [Next]

 PROJECT:
       HESSI

 NAME:
       DATETIME OBJECT

 PURPOSE:
       This classes manages datetime objects. It provides any anytim
       formats as well as a number of utilities to print, compare,
       increment and round datetime valies 

 CATEGORY:
       Object

 CONSTRUCTION:
       obj = Obj_New( 'datetime', value )
       obj = datetime( value )

 PARAMETER:
       value: any date and time value, e.g. '2003/11/07 12:33:44'

 METHODS:
       obj->print -- prints the value
       obj->set, value -- sets a new value
       obj->get(/xxx ) -- get an anytim variable with the value of
                          the object
       obj->round, /month -- rounds the value stored to the month,
                     e.g. '2003/11/07 12:34:44' gets '2003/11/01'
       value = obj->round( /month, /obj_new ) -- returns the rounded
                                                 value but does not
                                                 change the contents
                                                 of obj. with
                                                 /obj_new, returns a
                                                 new datetime object
       obj->increment, /month -- increments the date by a month 
       value=obj->increment( /month, /obj_new ) -- similar to obj->round()
      
       yesno = obj->lessthan( other_datetime ) -- returns a boolean;
                                                  other_datetime can
                                                  be an anytim value or a
                                                  datetime object
       yesno = obj->lessorequal( other_datetime ) -- returns a boolean
   
       file_id = obj->file2index() -- returns a string that can be
                                      used in file names

       new_obj = obj->clone() -- returns a copy of the object

 EXAMPLES:
       o = datetime( '2003/01/07 12:34:56' )
       o->print

       o->print, /yoh

       oo = o->clone()
       print, o->lessthan( oo )
       print, o->lessorequal( oo )
       
       o->round
       print, o->lessthan( oo )

 CALLS: ***
	DATETIME::CLONE, DATETIME::DIFF, DATETIME::GET, DATETIME::INCREMENT
	DATETIME::INCREMENT, DATETIME::INIT, DATETIME::LESSOREQ, DATETIME::LESSTHAN
	DATETIME::OBJ_OR_ANY, DATETIME::PRINT, DATETIME::ROUND, DATETIME::ROUND
	DATETIME::SET, DATETIME::TIME2FILE, DATETIME__DEFINE, TIME2FILE, anytim [1]
	anytim [2], anytim [3], anytim [4], anytim [5], datetime, ptim
 SEE ALSO:
	e.g. checking for invalid dates, i.e. 30-feb, some checks needed
 HISTORY:
       2003-10: first version on ssw, in fact it is useful, so i
       reinserted it, acs
       2003-09: created, tested, used in roll_db_sw then taken out
       because it seemed to be just unuseful, acs


datetime $SSW/hessi/idl/gen/datetime.pro
[Previous] [Next]
 PROJECT:
       HESSI

 NAME:
       datetime

 PURPOSE:
       Creates a datetime object

 CATEGORY:
       gen/anytim (?)

 CONSTRUCTION:
       o = datetime( value )

 INPUT:
       value: an anytim date/time 

 KEYWORDS:
       any keyword accepted by the set method of the datetime object

 CALLS: ***
	EXIST
 CALLED BY:
	DATETIME OBJECT, FITS READER CLASS, HESSI ROLL_DB CLASS DEFINITION
 EXAMPLES:
       o = datetime( '11-nov-2003' )
       o->print       

 SEE ALSO
       datetime__define

 HISTORY:
       Oct-2003: created csillag@ssl.berkeley.edu


DEMODULATOR_TEST $SSW/hessi/idl/util/demodulator_test.pro
[Previous] [Next]
 PROJECT:
	HESSI

 NAME:
	DEMODULATOR_TEST

 PURPOSE:
 	Interim shell procedure for using 'hsi_demodulator' algorithm to demodulate RHESSI light curves.

 CATEGORY:

 CALLING SEQUENCE:
 	DEMODULATOR_TEST, obs_time_interval,  xyoffset,  time_resolution, energy_band, 				$
 		SUBCOLL=subcoll, DIAGNOSTIC_MODE=diagnostic_mode, OUTPUT=output, PS=ps, 				$
		PLOT_TYPE = plot_type

	For example,
		demodulator_test, '2002-apr-21 '+['02:10:00', '02:10:30'], [985,-268], 0.125, [12,25], OUTPUT=output, /PS, /DIAG

 CALLS: ***
	HSI_CALIB_EVENTLIST, MOMENT, UTPLOT [1], UTPLOT [2], UTPLOT [3], UTPLOT [4]
	UTPLOT [5], UTPLOT [6], hsi_demodulator [1], hsi_demodulator [2]
 INPUTS:
 	obs_time_interval	= 2-element string vector indicating time interval (eg '2002-apr-21 '+['02:40:00', '02:41:00'] )
 	xyoffset			= 2-element vector defining the approximate location of source (arcsec W,N of sun center)
 	time_resolution 	= output time resolution [seconds] (For now, it should be in range ~0.05 to ~0.25 seconds.)
 	energy_band			= 2-element vector giving the energy band(keV) (default = [12,25])

 OPTIONAL INPUTS:
	SUBCOLL 	= 9-element vector indicating which subcollimators to use.  Default=[1,0,1, 1,1,1, 1,1,1] excludes D2.
	PLOT_TYPE 	= 0 ==> no plotted output
				= 1 ==> final plot has linear Y-axis
				= 2 ==> final plot has logarithmic Y-axis
				= 3 ==> 2 final plots are generated, with linear and log axes (default)
 OUTPUTS:
	Generates plot of demodulated light curve

 OPTIONAL OUTPUTS:
	/DIAGNOSTIC_MODE generates plots of interim results as well as printing helpful statistical data.
	/PS writes plotted output as a postscript file, idl.ps instead of to screen.
	output = structure containing the final demodulated light curve.  Elements are:
			   OBS_TIME_INTERVAL = 2-element string array echoing input.
			   ENERGY_BAND       = 2-element string array echoing input.
			   TIMEOUT           = DOUBLE array of times of bin centers relative to obs_time_interval[0]
			   INTENSITY         = DOUBLE array of intensities (incident counts/s/detector)
	Note that there are no elements in timeout or intensity for missing points.

 KEYWORDS:
	none
 COMMON BLOCKS:
	none
 SIDE EFFECTS:
	none

 RESTRICTIONS:
		Requires at least 150 counts per output time interval (summed over detectors) to be useful.
		For now, time_resolution should be limited to a value roughly between 0.05 and 0.25 s.
		Error bars have not been generated yet.
		Weighting factors are not yet optimized.
		Does not yet have user-selectable detector selection.
		Does not yet have automated and optimized selection of time bins.

 MODIFICATION HISTORY:
  8-Nov-03 gh	Initial version (ghurford@ssl.berkeley.edu)
 16-Dec-03 gh	Added xyoffset, energy_range, diagnostic_mode as input parameters or keywords.
				Added primitive output structure.
 26-Dec-03 gh	Plot individual detector rates.
				Changed keyword name, 'energy_range' to 'energy_band' for compatibility.
 25-Feb-04	gh	Add energy and time range to output structure.
				Make energy_band a parameter instead of a keyword.
 17-Mar-04 gh	Check that user hasn't forgotten some input arguments.
  7-Apr-04 gh	Adapt plot output to revised hsi_demodulator output structure.
  8-Apr-04 gh	Modify labelling to conform to corrected normalization
 27-Oct-04 gh	Add ssw wrapper.
				Add SUBCOLL keyword
 28-Oct-04 gh	Add PLOT_TYPE keyword to support log-scaled plot of final output.
 29-Oct-04 gh	Minor changes to diagnostic plots


dummy [5] $SSW/hessi/idl/flare_stat/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dummy [6] $SSW/hessi/idl/image_spec/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dummy [7] $SSW/hessi/idl/self_cal/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dwc_latest_model_971204 $SSW/hessi/idl/sims/dwc_latest_model_971204.pro
[Previous] [Next]
PROJECT:
	HESSI
PROCEDURE:   
	HESSI_Telem_model
PURPOSE:
	Reads the Model Counts from Richard Schwartz' Model of the HESSI reponse to
	the March 1989 Flare period (March 1-28)
	Outputs plots to the screen and IDL.PS
USAGE:
	HESSI_TELEM_MODEL
INPUTS:
  Model Counts files, etc.:
   $SSW_HESSI_SIMS/hessi_telem_sim.sav
   $SSW_HESSI_SIMS/counts_cutoff.sav
KEYWORDS:
CREATED BY:	David Curtis  97-11-10

VERSION:  1.
LAST MODIFICATION:  09-11-13
VERSION: 2
	Richard.schwartz@gsfc.nasa.gov, Changed name to HESSI_Telem_model from model
	Code needs revision after installation.  Not working yet. 6-aug-1998.