ChangeLog for odfingest ======================= Version 3.33.1 - 2021-09-29 (AI) ------------ + check if the FD130 column exists in the Housekeping file. SOC-SPR-7629 fixed Version 3.33 - 2021-09-17 (AI) ------------ + New implementation of a EPIC-PN filter detection using F1119 and FD130 Housekeeping columns. Version 3.32.1 - 2019-03-28 (RDS) ------------ + (src/OdfObject.cc, - Removes radiation monitor exposures from SUM.SAS file as the radmon files now handled directly (SCR-7462) Version 3.32 - 2018-09-10 (RDS) ------------ + (src/OdfObject.cc, - Introduced radiation monitor exposures into IppvExtractorImplementation.cc/h) the SUM.SAS output file (SCR-7462) Version 3.31 - 2018-02-13 (EO) ------------------------------ + This is a new major version of this package including a new GNU Public License Text disclaimer required to distribute the SAS source code to the Astronomical Community under the terms of the GNU Public License. The text as it is shown below is the same that has been included in all SAS source code files. ESA (C) 2000-2018 This file is part of ESA's XMM-Newton Scientific Analysis System (SAS). SAS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. SAS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with SAS. If not, see . --------------------------------------------------------------------- Version 3.30 - 2014-04-15 (AI) ------------ + gcc4.8.2 portability changes. Version 3.29 - 2012-12-18 (AI) ------------ + Implemented new functionality to deal with splitting mosaicing observations Version 3.28.3 - 2012-04-20 (AI) ------------ + Debug lines removed. Version 3.28.2 - 2012-04-16 (AI) ------------ + SOC-SPR-6703 fixed. Version 3.28.1 - 2011-02-02 (RDS) ------------ + (src/TimeOrderedTable.cc) - Fixed a spelling mistake in an error message. Version 3.28 - 2006-11-28 (AI) ------------ + Documentation updated. Version 3.27.1 - 2006-05-31 (AI) ------------ + (src/odfingest.cc) Check the two possible values of "SCATS" ATS keyword (SOC-SCR-214). Version 3.27 - 2005-09-12 (JSH) ------------ + Put metadata keywords in right place Version 3.26 - 2005-09-12 (JSH) ------------ + Add Date and odfversion information as Keywords (SCR 192) Version 3.25 - 2005-07-12 (JSH) ------------ + Fixed HDI calibration mode and time handling Version 3.24 - 2005-07-01 (JSH) ------------ + Recognition of Non-Scientific modes (SCR 117) via CAL + Recognition of 'odd' modes e.g. PN FF Low Gain, PN FF Masked (SCR 191) + Recognition of PN eFF in odfingest + Robust FW recognition for PN - Use FW Hardware position + Fix OM Mode detection with missing EXP_START/EXP_END pairs (SPR 2550) + Add new IPPVs to Summary File (e.g. OM Flood LED Bias, PN BP Info) + Do not consider HDI files when calculating Exposure time + For exposures wholly outside the HK window, bring them within the HK window (mainly ODI files) (SPR 2592) Version 3.23.6 - 2005-03-02 (JSH) ------------ + SPR2571 (Makefile) Don't need slatec or selector Version 3.23.5 - 2004-07-15 (JSH) ------------ + Fix stupid bug introduced in 3.23.3. Version 3.23.4 - 2004-07-15 (JSH) ------------ + SPR 2484 - Fix EPIC PN potentiometer to FW mapping Version 3.23.3 - 2004-07-15 (JSH) ------------ + odfingest needs to handle HDI files, in order to stop SUM.SAS file corruption Version 3.23.2 - 2004-05-20 (JSH) ------------ + Move nodfingest to new package for MacOS SAS 6.0 builds. TBD later if it needs to stay separate Version 3.23.1 - 2003-12-12 (JSH) ------------ + Fix Makefiles in New odfingest to fix bizarre run-time error caused by order of libraries in link phase of dynamic build. No, don't ask. Version 3.23 - 2003-11-12 (JSH) ------------ + (TestTimeRows.cc) Catch end() used in first test, don't print end() results in second test. + (HkparameterTest.cc) Modify duration to process to match reality Version 3.22 - 2003-08-29 (GV) ------------ + (TimeRows.cc) Get rid of a message that was being printed 100's of times without being informative. + (new) test harnesses: adjust a couple of constructors that had the wrong signature after Hkparameter had been changed. Version 3.21 - 2003-08-26 (GV) ------------ + Several fixes to nodfingest, test harnesses extended to cover the problems that showed up in testing. Version 3.20 - 2003-06-10 (GV) ------------ + ( Hkparameter_Descriptor.h) Parameter K1211 was incorrectly assigned to MOS1 instead of MOS2. Version 3.19 - 2003-05-13 (GV) ------------ + Add CMCORR parameters for PN (F1525/1625/1725/1825). Version 3.18 - 2003-05-07 (GV) ------------ + Add parameter MEAN_TEMPERATURE (E/K 1311) for MOS. Version 3.17 - 2003-05-06 (GV) ------------ + Add next-generation odfingest, temporarily called nodfingest. Version 3.16 - 2003-02-21 (GV) ------------ + (odfingest.cc) Make the name of the summary file available to calling meta-tasks. Version 3.15 - 2002-10-14 (GV) ------------ + (src/*.cc) remove a few remaining dts::ends that were apparently confusing selectlib (SOC-SPR-2350). Version 3.14 - 2002-09-17 (GV) ------------ + (testtot.cc) include so that it compiles on gcc-2.96. Version 3.13 - 2002-09-16 (GV) ------------ + Misc. source/header adjustments for gcc-3.1 Version 3.12 - 2002-07-09 (GV) ------------ + Restore DEPEND. Version 3.11 - 2002-07-08 (GV) ------------ + DEPEND updated. Version 3.10 - 2002-05-17 (GV) ------------ + updated for param 2.0 Version 3.9 - 2002-05-17 (GV) ----------- + (OdfObject.cc) make the messages about missing CONFIGURATIOn or PROPOSAL record more explicit. Version 3.8 - 2002-04-10 (GV) ----------- + (OdfObject.cc::proposal_summary_rec) Change how the PROPOSAL record is read from the original SUM.ASC file. This should make it more robust against those cases when the line of text containing the word PROPOSAL contains characters other than blank. SOC-SPR-2286. + A missing CONFIGURATION record in the SUM.ASC is no longer a warning, only a message. Version 3.7.5 - 2002-03-18 (GV) ------------- + Test harness against DCP 141 updated (odfconf). Relevant section was actually commented out. Version 3.7.4 - 2002-03-05 (GV) ------------- + (IppvImplementation.cc) When no translation from a value to string is found, IppvCommon::print writes UNDEFINED instead of NoTranslation in the summary file. + (OdfObject.cc:proposal_summary_rec()) copy the SUM.ASC into the SUM.SAS from the PROPOSAL section or, if present, the new CONFIGURATION section (SOC RCR 638, ODF ICD DCP 141). Version 3.7.3 - 2002-02-27 (UL) ------------- + fixed problem with incorrect Dal usage in test/testtot.cc (caused test failure under Linux) Version 3.7.2 - 2002-02-14 (GV) ------------- + (IppvImplementation.cc) setValue() tolerates one HK record with a different value than expected. In a few cases in fact (for instance 0102/0099020301, PNS012) the value for F1118 (FILTER) changes just for 8s to CLOSE (it was MEDIUM). Consider this a glitch in tm, and carry on. + (OdfObject.cc) DLI and DII files are now given an arbitrary duration of 1s instead of 4m as before. Giving them 4m may make exposures with both science and DLI/DII file too long -> HK extraction fails (see: 0101/0124710301, PNU002). Version 3.7.1 - 2002-01-28 (GV) ------------- + (OdfObject.cc) change tpad to 240s (was 90). There are two consequences: . the default arbitrary exposure duration for some type of exposures becomes 480s (it is coded as 2*tpad). . read the HK values from Tstart(exposure) + 240s to Tstop(exposure) - 240s Version 3.7 - 2002-01-24 (GV) ----------- + (IppvExtractionImplementation.cc) Add GAIN_CCD for MOS. This required also the addition of EmosGainTranslator. Version 3.6 - 2002-01-17 (GV) ----------- + ((OdfObject.cc) handle the case when DLI + science mode data are present in the same exposure, by giving priority to the science data. Version 3.5 - 2002-01-14 (GV) ----------- + (IppvExtractionImplementation.c) PN CAMEX_GAIN for CCD4 should have used F1234 instead of F1243. Version 3.4 - 2002-01-07 (GV) ----------- + (OdfObject.cc::scan) Modify slightly the algorithm used when DATE-END is not a valid time string. A dataset with an invalid DATE-END used to be assigned an arbitrary duration of 180s. But there are cases (mostly ODFs from the real time chain) that can have an invalid DATE-END and contain good data. Now the algorithm will, if possible, set DATE-END to be the time of the last record in the main HK dataset. + (IppvExtractionImplementation.cc) Add CAMEX_GAIN_CCDx for PN (SOC-SPR-2154). Doc updated. Version 3.3 - 2001-11-15 (GV) ----------- + re-upload of 3.2.8 with new version number for reltrack. Version 3.2.9 - 2001-11-15 (GV) ------------- + (src/OdfObject.cc) undo the i/f changes on OdfSet (3.2.4) so that it can work with oal as in SAS 5.2.0. NOTE: DEPEND cannot be updated meaningfully because we have oal-3.68.6 in SAS 5.2.0 and the interface change happened at oal-3.68.8 (as of today in release track). Version 3.2.8 - 2001-11-06 (GV) ------------ + (src/OdfObject.cc) Now also cope correctly with the case of TIE + NOI/ODI, neglected during the previous updates. Version 3.2.7 - 2001-11-02 (GV) ------------- + (src/OdfObject.cc) cope 'correctly' with the case of both NOI and IME data files in the same PN exposure. + SLEW identification: 9RRRR#####, but not 99999#####, as these are unscheduled observations. Version 3.2.6 - 2001-10-30 (GV) ------------- + (src/OdfObject.cc:scan) impose fixed duration for RGS DII exposures, as DATE-END is not reliable. + (src/OdfObject.cc::scan) determine latest possible DATE-END from instrument HK. If DATE-END from any dataset appears to be later than what reported in HK, use the value from the HK instead. + (src/OdfObject.cc:scan) catch STime errors when evaluating DATE-END. If an error occurs, set DATE-END to be start + 180s. + (OdfObject::observation_rec) write SLEW instead of OBSERVATION in the summary file if the observation identifier starts with a 9. + (OdfObject::configuration_sub_record) do not use any of the OM auxiliary datasets in the determination of the instrument mode. + (OdfObject.cc) cope 'correctly' with the case of both ODI and IME data files in the same PN exposure. Version 3.2.5 - 2001-10-30 (GV) ------------- + (calmode.cc) here too I should have adjusted the i/f to OdfSet. + (OdfObject.cc) remove condition whereby the cal was asked to identify the mode only if the dataset was science-related. This to increase the amount of information in the summary file (and hence in the ODF d/b and odfbrowser). + (src/OdfObject.cc:observation_rec) if there are no science files in the ODF, then try to determine the observation duration from the HK files. SOC-SPR-2094. This also required a change in scan(), where the ODFcan now also be identified from the names of the HK files. + (src/IppvTranslator.cc:EpnFilterWheelTranslator) All CAL positions are identified as Xmm::FILTER_NONE instead of the arbitrary "CalibrationPosition" that was breaking the OAL. SOC-SPR-2114. Version 3.2.4 - 2001-10-26 (GV) ------------- + OdfObject.cc: adjust how OdfSet is created, as the OAL in the reltrack decided to change this interface (!). + DEPEND updated accordingly. Version 3.2.3 - 2001-10-09 (GV) ------------- + Fix doco: parameter oalcheck defaults to no (SOC-SPR-2193). Version 3.2.2 - 2001-10-05 (GV) ------------- + (OdfObject.cc) when determining the OM instrument mode, ask to window 0 instead of window 1, otherwise the mode determination fails when there is only one OM window (SOC-SPR-2195). Version 3.2.1 - 2001-07-18 (UL) ------------- + fixed problem with too fragile test test/testtot.cc (see comments) Version 3.2 - 2001-07-12 (GV) ----------- +(src/TimeOrderedTble.cc) When the table is constructed time strings that cannot be translated to a valid time are ignored. That means that a TOT could have less rows than the table it was constructed from. A new method (validTimes) introduced to report on the number of good time entries. When a time is accessed through time_of_row(k), the k is mean to refer to the orginal table instead of the TOT. This fixes SOC-SPR-2095, in relation to ODF 0061_0122700201. + (src/OdfObject.cc) during the calculation of the OM exposure start/stop make sure to check that the TIME column in the NPHK file is valid (SOC-SPR-2095). + (src/IppvImplementation.cc::setValue) if the value of a parameter changes during the exposure and that parameter is supposed to be constant, write the record number and the table name in the warning message, to make visual checking easier. Version 3.1.1 - 2001-06-08 (GV) ------------- + (src/odfingest.cc) Change the manner of setting the target ODF directory. If the directory is given on the command line, use that value, else ask the OAL (that'll read it through SAS_ODF or --odf). This prevents the OAL from being activated when it is not the user intention (SOC-SPR-2088). Also check that writing to the output file completes correctly (SOC-SPR-2089). + (doc/odingest_description.tex) updated with the new error condition. + (src/OdfObject.cc) use 'window' and not CCD when referring to OM (SOC-SPR-1969). Version 3.1 - 2001-05-18 (GV) ----------- + (src/IppvTranslator.cc) EpnFilterWheelTranslator maps HK names to CAL filter names. + (src/IppvExtractorImplementation.cc) F1118 is now used to determine the filter. Introduce FILTER_POTENTIOMETER to monitor what the old algorithm does. + (src/odfingest_description.tex) updated. Version 3.0 - 2001-05-08 (GV) ----------- + (src/IppvExtractorImplementation.cc) FILTER_WHEEL_POSITION is now constrained with "F1120 == ACTIVE && F1119 == STOPPED". + (src/IppvExtractorImplementation.cc) MOS CLOCK_RESET_TIME_* should have been treated as periodic parameters instead of non-periodic (SOC-SPR-2035). + (doc/odfingest_description.tex) regenerate the documentation of the parameters to take into account PN filter changes. Version 2.2.1 - 2001-05-07 (GV) ------------- + (doc/odfingest_description.tex) use appropriate macros to refer to the cal and the oal. + (tools/calmode.cc) change the output format. Version 2.2 - 2001-04-04 (UL) ----------- + brought in line with caloalutils-1.47 (Xmm::ATTITUDE -> Xmm::ATTITUDE_HISTORY) + updated old-style include statements Version 2.1 - 2001-04-02 (GV) ----------- + (src/IppvTranslator.cc) EpnFilterWheelTranslator now recognizes also the string 'NO STOP POS.' (final `.') after somebody decided to fix the puntuation of the ODF HK (SOC-SPR-1974). + (src/IppvExtractorImplementation.cc) fix typo in error message. Version 2.0 - 2001-03-19 (GV) ----------- + (src/odfingest.cc) by default use the ODF pointed to by SAS_ODF. This is in SAS-SCR-0038. + (config/odfingest.par) introduce --withodfdir (default = no). + (config/odfingest.lyt) use it. + (src/OdfObject.cc) allow OM to have IMI + FAE combinations (SOC-SPR-1940). Version 1.0.9 - 2001-02-05 (GV) ------------- + SOC-SPR-1907: - (src/IppvExtractorImplementation.cc) in function hkname change the check d.size !=1 to d.size > 1. That is, it is ok to have 0 or 1 HK files, but it is not ok to have more than 1. Version 1.0.8 - 2001-01-29 (GV) ------------- + SOC-SPR-1907: - (src/IppvExtractorImplementation.cc) check if required HK file exists. If not issue a warning, set all HK parameters to unknown, and continue. + SOC-SPR-1908: - (src/IppvExtractor*): add _label data member. In OdfObject.cc the label is set to instrument/exposure, so that warning messages from the HK extraction process can be made clearer. - (src/IppvImplementation.cc) HK file and table name, sought time entry, and available time range are given in the warning messages. + SOC-SPR-1909: - (src/IppvImplementation.*) warning about new parameter value changed into an exception throw. - (src/Ippv.h) add exception ParameterChange. + SOC-SPR-1910: - (src/OdfObject.*) introduce _tpad; - (src/OdfObject.*) introduce _no_ippv_modes, a list of data modes that are not considered when extracting IPPVs. For instance: Discarded Lines Images. + (doc/odfingest_description.tex) updates required by the changes above. + SOC-SPR-1915: - (src/OdfObject.cc) use cmodes.clear() and not cmodes.empty() (same for dmodes. Former erases all elements, latter checks if there are any elements. This prevented odfingest from correctly writing MODE = UNDEFINED when data files of more than one type where found in one exposure. Version 1.0.7 - 2000-12-15 (GV) ------------- + (src/OdfObject.cc) remove assertions (that are triggered by bad ODFs more often then they should) and replace them with errors. Same result, but one gets an error message now. SOC-SPR-1864. + (src/OdfObject.cc) introduce member _valid, to indicate whether a directory scan returned a non empty list of ODF constituents. + (src/odfingest.cc) use _valid to prevent segfault and unfriendly message (SOC-SPR-1855). + (doc/odfingest_description.tex) update list of warnings. Version 1.0.6 - 2000-11-16 (GV) ------------- + (src/IppvTranslator.cc) change position of calthin1 filter for PN fromm 113.85 to 110.65, where it should have always been! Version 1.0.5 - 2000-11-13 (GV) ------------- + (src/OdfObject.cc) make DLI duration 60s. + (src/OdfObject.cc) add/subtract 90s (instead of 60) to DAT-OBS/END when considering the exposure time range over which HK parameters are to be extracted (SOC-SPR-1833). + (src/OdfObject.cc) calculate observation duration more accurately (SOC-SPR-1831). Version 1.0.4 - 2000-11-09 (GV) ------------- + (odfingest.lyt) filled in. Version 1.0.3 - 2000-11-08 (GV) ------------- + (src/OdfObject.cc): when determining the observation duration, treat the PN discarded lines data sets in a different manner, assigning and arbitray duration of 120s to each of them. This to prevent making the observation unrealistically long (the discarded lines data sets have the wrong DATE-END, often several hours later than the actual observation end time). Version 1.0.2 - 2000-10-16 (GV) ------------- + (IppvImplementation.cc) add explicit instantiations to satisfy linker on DEC/OSF (SOC-SPR-1765). Version 1.0.1 - 2000-10-13 (GV) ------------- + add parameter oalcheck (true by default). The newly created summary file is passed on to the OAL. This guarantees that the summary file can be parsed by the OAL. Also, a number of rough sanity checks are performed: existence of attitude, time correlation, and orbit file. + change name to the LOWER_THRESHOLD_Qy_CCDx parameters, as requested by MPE. x=0,1,2 now. Version 1.0 - 2000-10-06 (GV) ----------- + approved. + exposure start/end for OM now relies on SID=148/149 instead of dates in DATE-OBS DATE-END. Version 0.18 - 2000-09-29 (GV) ------------ + (src/IppvTranslator.cc) in line with new Xmm::* names for the PN-related filters. Version 0.17 - 2000-09-29 (GV) ------------ + (src/OdfObject.cc) also ask the cal server to be silent about being unable to match the FILTER. This is required because the OM data files have since ODS 10.2.3 a FILTER attribute, but this attribute is the hardware value (a number) and not a cal-friendly string. Version 0.16 - 2000-09-26 (GV) ------------ + (src/odfingest.cc) now remove ODF (SUM.ASC) file from the file list to remove an ambiguity for the OAL. + (src/OdfObject.*) add removeFile(string) to implement the above. Method icdosf() was private is now public. Version 0.15 - 2000-09-25 (GV) ------------ + review the instrument mode determination code. + doc updated and extended. Version 0.14 - 2000-09-22 (GV) ------------ + make instrument determination optional (findinstrumentmodes=no). When mode determination is switched off odfingest does not need a CIF. + make ippv extraction optional (usehousekeeping=no). When ippv extraction is switched off odfingest does not need any HK files. + make use of new cal interface to set state without issuing a warning, then intercept the condition mode->isUncertain(). Issue a warning and set the mode to unknown. Version 0.13 - 2000-09-19 (GV) ------------ + implement PN filter translation from potentiometer readout to string. + fix translation of PN fileter wheel name, as ODF ICD contained a typo (FILTRA-THIN should have been FILTRA-THIN1). Expect more of these. + when translation cannot be made, issue warning instead of aborting. + Ippv class can now be told _not_ to check that a parameter value remains constant throughout the exposure. This is used for the EPIC clock RESET times: here we're interested in the value when the exposure start and we don't care if the value changes during the exposure, as this change is normal for exposures lasting more than 2^15s. + Ippv: real32 version calculates the mean of the parameter over the exposure instead of taking the first value. This is used to calculate the mean position of the PN filter wheel. This value is then translated to a string. Version 0.12 - 2000-09-18 (GV) ------------ + (src/IppvExtractorImplementation.cc) start looking for IPPVs from tstart + 60s to tstop - 60s. This is to make sure that when we look the relevant telemetry packets have been received. Version 0.11 - 2000-09-18 (GV) ------------ + (src/OdfObject.cc) improve camera mode, ccd mode determination algorithm. Version 0.10 - 2000-09-18 (GV) ------------ + add CCD/camera mode string to the IPPV list (via CAL, hence it now requires SAS_CCF to be set). Look for MODE = in the summary file. + (config/odfingest.par) usecanonicalname=yes by default. Version 0.9 - 2000-09-15 (GV) ----------- + add IppvTranslators, so that the MOS/OM filter (hw) positions are translated to CAL-friendly strings. PN filter (string) is also edited for typos. Version 0.8 - 2000-09-14 (GV) ----------- + (src/IppvImplementation.cc) string Ippv were being extracted incorrectly because the DAL does not report the correct number of elements when a column segment is extracted. See comments in th source for the details (look for FIXME). Version 0.7 - 2000-09-07 (GV) ----------- + (doc/odfingest_description.tex) complete re-write with parameter names, errors and warnings, housekeeping parameter names, output file structure. Version 0.6 - 2000-09-06 (GV) ----------- + add IPPV handling: all instruments are covered. Version 0.5 - 2000-07-08 (GV) ----------- + disable test harness, as at present there are no compliant ODFs to run on. Version 0.4 - 2000-06-22 (GV) ----------- + sort file list (through copy, as it fails directly) + Remove extra line when copying PROPOSAL record. + Have both exposure-level and observation-level identifiers for the exposures. Version 0.3 - 2000-06-21 (GV) ----------- + absolute exposure identifier redefined to be [SU]nnn. Version 0.2 - 2000-06-21 (GV) ----------- + first functional version. + implement IPPV support, however not activated because of shortcoming in the ODF HK datasets. Version 0.1 - 2000-06-08 (GV) ----------- + Created. First version.