;+ ; Reads whole mission flare list, and any qflare_list files, returns ; the up to date object Hacked from hsi_whole_flare_list ; 13-sep-2003, jmm, jimm@ssl.berkeley.edu ; hsi_qlook_concat isn't doing too well for me, i don't know why, so ; am rewriting this to be similar to hsi_filedb_combine ;- Function hsi_mult_flare_list_inp, filedb_dir = filedb_dir, $ time_range = time_range, $ qtime_range = qtime_range, $ _extra = _extra If(keyword_set(filedb_dir)) Then fdbdir = filedb_dir $ Else fdbdir = '$HSI_FILEDB_DIR' ;read in qflare_list files hsi_read_all_flare_list, hsi_qflare_list, $ filename = 'hsi_qflare_list.fits', time_range = time_range, $ filedb_dir = fdbdir, _extra = _extra If(obj_valid(hsi_qflare_list) Eq 0) Then dqflr = -1 $ Else dqflr = hsi_qflare_list -> get(/data) If(is_struct(dqflr) Eq 0) Then Begin message, /info, 'No Data in qflare_list:' If(keyword_set(time_range)) Then print, $ anytim(/ccsds, time_range[0])+' -- '+anytim(/ccsds, time_range[1]) qtime_range = -1 ;For output purposes Endif Else Begin qtime_range = [min(dqflr.start_time), max(dqflr.start_time)] Endelse ;read in hessi_flare_list files hsi_read_all_flare_list, hessi_all_list, $ filename = 'hessi_flare_list.fits', time_range = time_range, $ filedb_dir = fdbdir, _extra = _extra If(obj_valid(hessi_all_list) Eq 0) Then dflr_old = -1 $ Else dflr_old = hessi_all_list -> get(/data) If(is_struct(dflr_old) Eq 0) Then Begin message, /info, 'No Data in flare_list:' If(keyword_set(time_range)) Then print, $ anytim(/ccsds, time_range[0])+' -- '+anytim(/ccsds, time_range[1]) Endif ;And combine if necessary If(is_struct(dqflr)) Then Begin If(is_struct(dflr_old)) Then Begin same_flare = where_arr(dflr_old.id_number, dqflr.id_number) If(same_flare[0] Eq -1) Then Begin ;this shouldn't happen... hessi_all_list = hsi_qlook_concat(hessi_all_list, hsi_qflare_list) Endif Else Begin ;be careful about time changes tst_diff = dflr_old[same_flare].start_time-dqflr.start_time ten_diff = dflr_old[same_flare].end_time-dqflr.end_time ok_to_switch = where(tst_diff Eq 0 And ten_diff Eq 0, nok) If(nok Gt 0) Then Begin dflr_old[same_flare[ok_to_switch]] = dqflr[ok_to_switch] Endif hessi_all_list -> set, data = dflr_old Endelse Endif Else hessi_all_list = hsi_qflare_list Endif Return, hessi_all_list End