This file chronicles the changes to the ACE Science Center ACE level 1 processing software. For ACE, level1 and Browse parameter processing are performed in parallel, using the same software, so Browse parameter code changes are included here also. 3.2 -> 3.3 2010-01-15 CRIS - This change is due to the implementation of improved Level 1 data processing for the CRIS instrument. There are no (intentional) changes in the data processing for other instruments. ********** No increment to version number 2004/9/17 EPAM - Switch Ion browse params to LEMS120 telescope after 2003-302 ********** No increment to version number 2002/12/11 ULEIS - Browse data reprocessed using new full-mission calibration data from ULEIS team ********** No increment to version number 2002/02/11 EPAM - Excluded solar sectors from EPAM P5 and P7 browse params, these sectors were already excluded from the P1 and P3 channels. ********** No increment to version number 2001/11/24 MAG - Added code to read MAG cal data from an external file, for browse data processing SIS - New SIS browse code 3.1 -> 3.2 2001/04/16 SIS - Implemented new SIS Level 1 routines to handle change in instrument configuration on (reconfig occurred March 27 2001) 3.0 -> 3.1 2000/11/21 SIS - Implemented new SIS Browse routines to handle change in instrument configuration. ********** No increment to version number 1999/12/13 MAG - New Browse zeros and gains from Chuck Smith SWICS - Correct marking of bad EDB's in SWICS Browse output 2.9 -> 3.0 1999/09/01 MAG - QAC was not being set correctly in fft and snapshot data records. MAG Vector data not affected. EPAM - PowBits flags in EPAM housekeeping were being set incorrectly. SWICS - New code to support new SWICS Browse software from SWICS team. No increment to version number 1999/05/13 SEPICA - Browse data rates were being decompressed incorrectly. This problem did not affect level 1 data. 2.8 -> 2.9 1998/12/07 MAG - inhibited output of MAG data structures when scclock is not set. Minor, very few data records affected. SEPICA - Significant reorganization of all SEPICA data structures, per request of SEPICA team. Also, implementation of data collection time-stamps for SEPICA data. SWICS/SWIMS - Correction to data ACEepoch-collection time in edb data. S3DPU - Improved handling of missing data and S3DPU dummy data, should result in recovery of some Science Records which were being rejected due to unrecoverable processing errors. QAC value in S3DPU digital housekeeping records (s3_dhk.h) was being set incorrectly. Now it counts number of missing frames in each digital housekeeping record (EDB). SIS - added proton browse rates, to emulate SIS proton RTSW rates. SWEPAM - new version of SWEPAM Browse code from SWEPAM team. GENERAL - Take into account the leap second which occurred mid-1997 when calculating ACEepoch. This will add one second to all ACEepoch values compared with values calculated using versions earlier than 2.9. ( #define SC_ACE_epoch_offset 52069705.604 in ancil_subs.c ) 2.7 -> 2.8 1998/09/28 GENERAL - Reprocess data due to incorrect ACE_epoch values for 1998-226 and beyond. 2.6 -> 2.7 1998/09/28 EPAM - added code to correct browse fluxes for missing data in sectors 4 and 8. added fp6prime channel to browse rates, since W1 rate is noisy. MAG - changed the contents of the MagAvgVec data structure, per request from EPAM team. Structure now contains 16 second average mag vector in despun s/c inertial coordinates. MAG - Implemented version 2.3 of mag_browse.for, from Chuck Smith. S3DPU - dummy data output by the S3DPU was occasionally being mishandled. Problem occurred when a minor frame containing dummy data was lost during telemetry. The level 1 processing software was therefore unaware of the dummy data and subsequently lost synch, causing the current S3DPU Science Record to be rejected. S3DPU - added new HDF data structure to contain dummy data from the S3DPU. Each structure contains one minor frame of dummy data. SEPICA - added code to check FANXMODE during calculation of geometry factor for browse calculations. Added Ca rates to Fe browse parameter, since some Fe is falling into the Ca boxes. GENERAL - improved handling of botched LZP data files. 2.5 -> 2.6 1998/06/18 CRIS/SIS - Multiple changes submitted by Bob Radocinsky. GENERAL - added code to calculate sunpulse times from spinphase clock, during periods when the sunpulse time tags are invalid. Added flag in sunpulsetime data structure to indicate the source of sunpulsetime data (time tags or spinphase clock). - Added trap to set the values of the spinphase_latched_at_the_sunpulse to 16300 during the period 24530540 <= scclock <= 25143160, when the sunpulse time tags were invalid. In the level 1 housekeeping data, these variables are SunPulPhaAng0 and SunPulPhaAng8. - added new function ACE_position_J2GCI() to ancil_subs.c - implemented ACEepoch_to_SCclock() function in ancil_subs.c Arrays passed to the following functions in ancil_subs.c are now float64 instead of float32: ACE_attitude_RTN() ACE_position_GSE() ACE_velocity_GSE() 2.4 -> 2.5 1998/05/24 SEPICA - Fixed bug which caused invalid QAC flags. The bug was introduced in version 2.4 CRIS/SIS - improved handling of diagnostic events. 2.3 -> 2.4 1998/05/17 MAG - implemented new calibration offsets received from Chuck Smith 5-7-98. SWICS - switched to matrix rate 6 for Fe browse rate, per instructions from swics team. swics team is evaluating browse parameter output. S3DPU - now accumulate a full Science Record before outputting s3edb data. This means SR's will not be split between two level 1 HDF files. ULEIS - fixed bug which caused incorrect setting of data collection time. GENERAL - implemented code which scans for damaged minor frames. If a damaged frame is found it is treated as though it were missing. Damaged frames are found by scanning for inconsistencies in CRIS, EPAM, SIS and ULEIS science data. About 16 damaged frames per day are found, on average. GENERAL - implemented more efficient algorithm for calculating ACEepoch from scclock (SCclock_to_ACEepoch() in ancil_subs.c). CRIS/SIS - Multiple changes submitted by Bob Radocinsky. 2.2 -> 2.3 1998/04/16 MAG - made sure that 1sec averages in payload coords are filled with out-of-bounds values (-999.9) when input level zero data is invalid. MAG - implemented new version of browse code from Chuck Smith. Several variables have been added to the MAG browse data structure, in magframe_out_br.h. S3DPU - Fixed bug which caused QAC variable in edb data to be set incorrectly. Also, some edb's with missing minor frames were not being output to HDF files. S3DPU - set ACEepoch_collection = 0 in edb data, when previous spintime is not available. Was being set to an obscure offset value. SWICS - dpps voltage was not being set correctly in SWICS browse output. ULEIS - since ULEIS processing treats ADC mode data as if it were missing data, set all ULEIS data = 0xff during ADC mode. GENERAL - Implemented trap to handle out-of-sequence frame headers in the level zero data gracefully. - Implemented trap to handle missing frames between consequtive level zero data files gracefully. - FOT occasionally uses ADC mode data from real-time DSN pass to fill in data gaps. The ADC mode spurts are usually only a few frames long. Implemented code to handle spacecraft housekeeping data during short ADC mode spurts as gracefully as possible. hdfgen.pl - now warns if more than one variable declaration is made per line, in the input header file hdfgen.pl - when reporting RCS file headers, leaves off trailing "$" so as not to interfere with subsequent check ins of RCS (or CVS). Change suggested by Eduardo Santiago . 2.1 -> 2.2 1998/03/12 20:27:15 EPAM - Corrected EPAM Browse parameter processing bug. This bug was causing significant errors in all EPAM browse params. EPAM - Switched from DE2 to DE4 channel for high energy electron browse parameter. DE2 was being used in error. MAG - updated calibration offsets received from Chuck Smith 2-20-98 ULEIS - Removed condition which allowed skipping of ULEIS checksum check, when the ULEIS checksum was zero. CRIS/SIS - Several updates to CRIS/SIS level 1 processing code (see Bob Radocinski). GENERAL - Fixed bugs in calculation of sunpulse times in ADC mode (science mode was OK). 2.0 -> 2.1 1998/02/18 02:37:44 CRIS/SIS - Several updates to CRIS/SIS level 1 processing code (see Bob Radocinski). SWEPAM - new browse code from SWEPAM team 1.9 -> 2.0 1998/02/04 22:55:41 Send flag to CRIS/SIS routines to flush buffers before data gaps. 1.8 -> 1.9 1998/02/01 22:20:08 SEPICA - corrected problems with byte ordering of dspare data SWEPAM - data collection times now set properly ULEIS - update code to handle new geometry factor database 1.7 -> 1.8 1998/01/27 00:17:57 ULEIS - set all ULEIS data in dummy frames to 0xff (dummy frames are inserted when there are missing minor frames in the raw data). 1.6 -> 1.7 1998/01/08 00:25:33 SWICS/SWIMS - Fixed two bugs in s3edb processing code - first bug caused edb's ful of zeros to be written when a dummy-edb was encountered. Second bug caused incorrect s3edb.ACEepoch_collection (spin start time) to be written in the edb structure. 1.5 -> 1.6 1997/12/17 06:56:58 SEPICA - Fixed bug in sdiag processing code. SEPICA - added five new data structures to handle dspare data SEPICA - changes high energy He browse offset from 69 to 50 1.4 -> 1.5 1997/11/19 18:13:11 SEPICA - fixed problem with voltage set bits SWICS - corrected byte order for dpps voltages ULEIS - moved checksum checking code to accomodate browse processing. browse error flag now set if chk_sum_chk flag set. GENERAL - added sunpulse time data structure to level 1 dataset 1.3 -> 1.4 1997/11/13 19:58:44 EPAM - Fixed browse fluxes, off by 1000. SEPICA - fixed problems handling SEPICA pha event sizes corresponding to fractions of a pha event. SEPICA - dspare now limited to 66 bytes to exclude filler bytes. SEPICA - multiple pha event structures now all have the correct data, instead of repeating the first structure. GENERAL - revamped code to handle spurious ADC mode data. Now instruments which do not have data in ADC mode are handled properly. 1.2 -> 1.3 1997/10/26 19:31:05 Hmm, an arbitrary and senseless change of version numbers...? 1.1 -> 1.2 1997/10/26 19:30:04 MAG - Fixed vector unpacking routine. Every other value was incorrect. SEPICA - uses proper sunpulse times for start of cycle SEPICA - support new SEPICA diagnostic event processing SEPICA - fixed bug with DEDX{N}th values SEPICA - now uses dynamic geometry factor for different fan arrangements SEPICA - fixed bit shifting errors in HK data SEPICA - Fixed E-bin ranges for browse GENERAL - added function to get latest spin before a specified time. 1.0 -> 1.1 1997/10/07 18:19:12 SEPICA - fixed OOP errors with HK items