uves_dfs.h

00001 /*
00002  * This file is part of the UVES Pipeline
00003  * Copyright (C) 2002, 2003, 2004, 2005 European Southern Observatory
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
00018  */
00019 
00020 /*
00021  * $Author: amodigli $
00022  * $Date: 2007/06/06 08:17:33 $
00023  * $Revision: 1.112 $
00024  * $Name: uves-3_3_1 $
00025  * $Log: uves_dfs.h,v $
00026  * Revision 1.112  2007/06/06 08:17:33  amodigli
00027  * replace tab with 4 spaces
00028  *
00029  * Revision 1.111  2007/05/16 11:47:18  amodigli
00030  * added FLAMES_SCI_COM_RED
00031  *
00032  * Revision 1.110  2007/05/03 15:19:12  jmlarsen
00033  * Added const version of uves_load_linetable()
00034  *
00035  * Revision 1.109  2007/04/26 13:19:13  jmlarsen
00036  * Exported function copy_if_possible
00037  *
00038  * Revision 1.108  2007/04/24 16:44:26  amodigli
00039  * changed interface uves_load_ordertable to return also extention table
00040  *
00041  * Revision 1.107  2007/04/24 12:50:29  jmlarsen
00042  * Replaced cpl_propertylist -> uves_propertylist which is much faster
00043  *
00044  * Revision 1.106  2007/04/23 06:59:29  amodigli
00045  * added uves_save_imagelist
00046  *
00047  * Revision 1.105  2007/04/03 06:28:26  amodigli
00048  * uves_load_ordertable provides now fibre_mask and fibre_pos if appropriate
00049  *
00050  * Revision 1.104  2007/03/20 15:39:54  amodigli
00051  * added FLAMES tags
00052  *
00053  * Revision 1.103  2007/03/15 15:04:37  jmlarsen
00054  * Allow spaces in HISTORY keyword string values
00055  *
00056  * Revision 1.102  2007/02/09 13:36:06  jmlarsen
00057  * Added function to load ref_flat
00058  *
00059  * Revision 1.101  2007/02/08 07:33:17  jmlarsen
00060  * Added uves_load_cd_align()
00061  *
00062  * Revision 1.100  2007/01/17 13:25:41  jmlarsen
00063  * Added uves_load_image()
00064  *
00065  * Revision 1.99  2007/01/10 12:37:18  jmlarsen
00066  * Exported function to warn about mismatching calibration frames
00067  *
00068  * Revision 1.98  2007/01/09 17:45:42  amodigli
00069  * added uves_check_rec_status
00070  *
00071  * Revision 1.97  2006/12/12 12:09:12  jmlarsen
00072  * Added function to load corvel table
00073  *
00074  * Revision 1.96  2006/12/07 08:23:02  jmlarsen
00075  * uves_load_raw_imagelist: support FLAMES
00076  *
00077  * Revision 1.95  2006/12/01 08:26:58  jmlarsen
00078  * Load FLAMES order table oshift/yshift
00079  *
00080  * Revision 1.94  2006/11/24 16:21:32  jmlarsen
00081  * Added FIB_LINE_TABLE_x
00082  *
00083  * Revision 1.93  2006/11/22 08:41:12  jmlarsen
00084  * Exported and fixed bug in uves_read_midas_array
00085  *
00086  * Revision 1.91  2006/11/22 08:22:29  jmlarsen
00087  * Set message level according to preprocessor symbol
00088  *
00089  * Revision 1.90  2006/11/16 14:09:27  jmlarsen
00090  * Fixed definition of FLAMES order table tag
00091  *
00092  * Revision 1.89  2006/11/15 15:02:14  jmlarsen
00093  * Implemented const safe workarounds for CPL functions
00094  *
00095  * Revision 1.87  2006/11/15 14:04:08  jmlarsen
00096  * Removed non-const version of parameterlist_get_first/last/next which is already
00097  * in CPL, added const-safe wrapper, unwrapper and deallocator functions
00098  *
00099  * Revision 1.86  2006/11/13 12:44:31  jmlarsen
00100  * Support FLAMES FIB_ARC_LAMP_RED frames
00101  *
00102  * Revision 1.85  2006/11/07 14:01:12  jmlarsen
00103  * Moved flames_load_ functions to separate source file
00104  *
00105  * Revision 1.84  2006/11/03 15:01:21  jmlarsen
00106  * Killed UVES 3d table module and use CPL 3d tables
00107  *
00108  * Revision 1.83  2006/10/24 14:05:25  jmlarsen
00109  * Generalized load functions to support FLAMES
00110  *
00111  * Revision 1.82  2006/10/19 13:53:25  jmlarsen
00112  * Changed guess line table tag to LINE_GUESS_TAB
00113  *
00114  * Revision 1.81  2006/10/12 11:37:28  jmlarsen
00115  * Temporarily disabled FLAMES code generation
00116  *
00117  * Revision 1.80  2006/10/02 08:34:06  jmlarsen
00118  * Added REF_TFLAT
00119  *
00120  * Revision 1.79  2006/09/27 13:13:24  jmlarsen
00121  * Use dynamic memory allocation to store bad pixels
00122  *
00123  * Revision 1.78  2006/09/20 15:42:18  jmlarsen
00124  * Implemented MASTER_RESPONSE support
00125  *
00126  * Revision 1.77  2006/09/20 10:57:19  jmlarsen
00127  * Fixed typo
00128  *
00129  * Revision 1.76  2006/09/20 07:26:54  jmlarsen
00130  * Shortened max line length
00131  *
00132  * Revision 1.75  2006/09/19 14:25:32  jmlarsen
00133  * Propagate FITS keywords from master flat, not science, to WCALIB_FLAT_OBJ
00134  *
00135  * Revision 1.74  2006/09/19 07:12:58  jmlarsen
00136  * Exported function uves_write_statistics
00137  *
00138  * Revision 1.73  2006/09/14 08:46:51  jmlarsen
00139  * Added support for TFLAT, SCREEN_FLAT frames
00140  *
00141  * Revision 1.72  2006/09/11 08:19:10  jmlarsen
00142  * Renamed identifier reserved by POSIX
00143  *
00144  * Revision 1.71  2006/08/24 11:36:58  jmlarsen
00145  * Write recipe start/stop time to header
00146  *
00147  * Revision 1.70  2006/08/17 13:56:52  jmlarsen
00148  * Reduced max line length
00149  *
00150  * Revision 1.69  2006/08/11 08:59:41  jmlarsen
00151  * Take into account the different meanings of line table 'Y' column
00152  *
00153  * Revision 1.68  2006/08/07 14:42:02  jmlarsen
00154  * Implemented on-the-fly correction of a line table when its order
00155  * numbering is inconsistent with the order table (DFS02694)
00156  *
00157  * Revision 1.67  2006/08/07 12:14:19  jmlarsen
00158  * Removed unused function
00159  *
00160  * Revision 1.66  2006/08/01 14:43:36  amodigli
00161  * fixed bug loading fitsheader in uves_load_masterformatcheck
00162  *
00163  * Revision 1.65  2006/07/31 06:29:05  amodigli
00164  * added flames_load_frame_index
00165  *
00166  * Revision 1.64  2006/07/14 12:20:10  jmlarsen
00167  * Added LINE_INTMON_TABLE
00168  *
00169  * Revision 1.63  2006/06/26 07:54:15  amodigli
00170  * flames_load_image flames_load_table
00171  *
00172  * Revision 1.62  2006/06/23 15:31:32  amodigli
00173  * added useful stuff for flames
00174  *
00175  * Revision 1.61  2006/06/22 15:25:35  amodigli
00176  * changes for flames_cal_prep_sff_ofpos
00177  *
00178  * Revision 1.60  2006/06/19 06:51:14  amodigli
00179  * added support flames-old format
00180  *
00181  * Revision 1.59  2006/06/16 08:22:01  jmlarsen
00182  * Manually propagate ESO.DET. keywords from 1st/2nd input header
00183  *
00184  * Revision 1.58  2006/06/13 11:55:06  jmlarsen
00185  * Shortened max line length
00186  *
00187  * Revision 1.57  2006/06/06 09:04:14  jmlarsen
00188  * Bugfix: UVES_CHIP_REDU -> UVES_CHIP_REDL
00189  *
00190  * Revision 1.56  2006/06/06 08:40:10  jmlarsen
00191  * Shortened max line length
00192  *
00193  * Revision 1.55  2006/05/22 06:47:15  amodigli
00194  * fixed some bugs on msflat
00195  *
00196  * Revision 1.54  2006/05/19 13:07:52  amodigli
00197  * modified to support SFLATs
00198  *
00199  * Revision 1.53  2006/05/17 09:54:55  amodigli
00200  * added supposr SFLATs
00201  *
00202  * Revision 1.52  2006/05/15 06:09:52  amodigli
00203  * added support for some FLAMES input frames
00204  *
00205  * Revision 1.51  2006/04/25 14:58:48  amodigli
00206  * added paf creation functionalities
00207  *
00208  * Revision 1.50  2006/04/24 09:19:01  jmlarsen
00209  * Simplified code
00210  *
00211  * Revision 1.49  2006/04/06 13:13:04  jmlarsen
00212  * Added const modifier
00213  *
00214  * Revision 1.48  2006/04/06 12:56:50  jmlarsen
00215  * Added support for PDARK, IFLAT, DLFAT frames
00216  *
00217  * Revision 1.47  2006/04/06 11:48:17  jmlarsen
00218  * Support for SCI_POINT_-, SCI_EXTND_- and SCI_SLICER-frames
00219  *
00220  * Revision 1.46  2006/04/06 09:48:15  amodigli
00221  * changed uves_frameset_insert interface to have QC log
00222  *
00223  * Revision 1.45  2006/04/06 08:31:15  jmlarsen
00224  * Added support for reading MASTER_DFLAT, MASTER_IFLAT, MASTER_PDARK
00225  *
00226  * Revision 1.44  2006/03/24 14:19:19  jmlarsen
00227  * Recognize background tables
00228  *
00229  * Revision 1.43  2006/03/06 09:22:43  jmlarsen
00230  * Added support for reading MIDAS line tables with MIDAS tags
00231  *
00232  * Revision 1.42  2006/02/15 13:19:15  jmlarsen
00233  * Reduced source code max. line length
00234  *
00235  * Revision 1.41  2006/01/09 15:22:55  jmlarsen
00236  * Removed some warnings
00237  *
00238  * Revision 1.40  2006/01/03 16:56:53  amodigli
00239  * Added MASTER_ARC_FORM
00240  *
00241  * Revision 1.39  2005/12/19 16:17:56  jmlarsen
00242  * Replaced bool -> int
00243  *
00244  */
00245 
00246 #ifndef UVES_DFS_H
00247 #define UVES_DFS_H
00248 
00249 /*-----------------------------------------------------------------------------
00250                                 Includes
00251   -----------------------------------------------------------------------------*/
00252 
00253 #include <uves_propertylist.h>
00254 #include <uves_utils_polynomial.h>
00255 #include <uves_chip.h>
00256 #include <uves_utils.h>
00257 #include <cpl.h>
00258 
00259 #include <stdbool.h>
00260 #include <math.h>
00261 /*-----------------------------------------------------------------------------
00262                 Defines
00263  -----------------------------------------------------------------------------*/
00264 /* FLAMES */
00265 /*
00266  * reduce
00267  */
00268 #define FLAMES_SCI_RED   "FIB_SCI_RED"
00269 #define FLAMES_SCI_COM_RED   "FIB_SCI_COM_RED"
00270 
00271 #define FLAMES_LINE_TABLE(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_LINE_TABLE_REDL" : \
00272                       (chip) == UVES_CHIP_REDU ? "FIB_LINE_TABLE_REDU" : "???")
00273 
00274 #define FLAMES_SLIT_FF_DT1(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT1_REDL" : \
00275                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT1_REDU" : "???")
00276 
00277 #define FLAMES_SLIT_FF_DT2(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT2_REDL" : \
00278                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT2_REDU" : "???")
00279 
00280 #define FLAMES_SLIT_FF_DT3(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT3_REDL" : \
00281                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT3_REDU" : "???")
00282 
00283 #define FLAMES_SLIT_FF_DTC(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DTC_REDL" : \
00284                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_DTC_REDU" : "???")
00285 
00286 
00287 
00288 #define FLAMES_SLIT_FF_BP1(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP1_REDL" : \
00289                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP1_REDU" : "???")
00290 
00291 #define FLAMES_SLIT_FF_BP2(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP2_REDL" : \
00292                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP2_REDU" : "???")
00293 
00294 #define FLAMES_SLIT_FF_BP3(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP3_REDL" : \
00295                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP3_REDU" : "???")
00296 
00297 #define FLAMES_SLIT_FF_BPC(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BPC_REDL" : \
00298                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BPC_REDU" : "???")
00299 
00300 
00301 #define FLAMES_SLIT_FF_BN1(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN1_REDL" : \
00302                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN1_REDU" : "???")
00303 
00304 #define FLAMES_SLIT_FF_BN2(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN2_REDL" : \
00305                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN2_REDU" : "???")
00306 
00307 #define FLAMES_SLIT_FF_BN3(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN3_REDL" : \
00308                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN3_REDU" : "???")
00309 
00310 #define FLAMES_SLIT_FF_BNC(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BNC_REDL" : \
00311                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_BNC_REDU" : "???")
00312 
00313 
00314 #define FLAMES_SLIT_FF_SG1(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG1_REDL" : \
00315                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG1_REDU" : "???")
00316 
00317 #define FLAMES_SLIT_FF_SG2(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG2_REDL" : \
00318                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG2_REDU" : "???")
00319 
00320 #define FLAMES_SLIT_FF_SG3(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG3_REDL" : \
00321                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG3_REDU" : "???")
00322 
00323 #define FLAMES_SLIT_FF_SGC(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SGC_REDL" : \
00324                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_SGC_REDU" : "???")
00325 
00326 
00327 
00328 #define FLAMES_SLIT_FF_COM(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_COM_REDL" : \
00329                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_COM_REDU" : "???")
00330 
00331 #define FLAMES_SLIT_FF_NOR(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_NOR_REDL" : \
00332                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_NOR_REDU" : "???")
00333 
00334 #define FLAMES_SLIT_FF_NSG(chip)  ((chip) == UVES_CHIP_REDL ? "SLIT_FF_NSG_REDL" : \
00335                        (chip) == UVES_CHIP_REDU ? "SLIT_FF_NSG_REDU" : "???")
00336 
00337 
00338 
00339 
00340 
00341 #define FLAMES_FIB_FF_DT1(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT1_REDL" : \
00342                       (chip) == UVES_CHIP_REDU ? "FIB_FF_DT1_REDU" : "???")
00343 
00344 #define FLAMES_FIB_FF_DT2(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT2_REDL" : \
00345                       (chip) == UVES_CHIP_REDU ? "FIB_FF_DT2_REDU" : "???")
00346 
00347 #define FLAMES_FIB_FF_DT3(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT3_REDL" : \
00348                       (chip) == UVES_CHIP_REDU ? "FIB_FF_DT3_REDU" : "???")
00349 
00350 #define FLAMES_FIB_FF_DTC(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_DTC_REDL" : \
00351                       (chip) == UVES_CHIP_REDU ? "FIB_FF_DTC_REDU" : "???")
00352 
00353 
00354 
00355 #define FLAMES_FIB_FF_BP1(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP1_REDL" : \
00356                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BP1_REDU" : "???")
00357 
00358 #define FLAMES_FIB_FF_BP2(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP2_REDL" : \
00359                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BP2_REDU" : "???")
00360 
00361 #define FLAMES_FIB_FF_BP3(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP3_REDL" : \
00362                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BP3_REDU" : "???")
00363 
00364 #define FLAMES_FIB_FF_BPC(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BPC_REDL" : \
00365                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BPC_REDU" : "???")
00366 
00367 
00368 #define FLAMES_FIB_FF_BN1(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN1_REDL" : \
00369                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BN1_REDU" : "???")
00370 
00371 #define FLAMES_FIB_FF_BN2(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN2_REDL" : \
00372                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BN2_REDU" : "???")
00373 
00374 #define FLAMES_FIB_FF_BN3(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN3_REDL" : \
00375                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BN3_REDU" : "???")
00376 
00377 #define FLAMES_FIB_FF_BNC(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_BNC_REDL" : \
00378                       (chip) == UVES_CHIP_REDU ? "FIB_FF_BNC_REDU" : "???")
00379 
00380 
00381 #define FLAMES_FIB_FF_SG1(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG1_REDL" : \
00382                       (chip) == UVES_CHIP_REDU ? "FIB_FF_SG1_REDU" : "???")
00383 
00384 #define FLAMES_FIB_FF_SG2(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG2_REDL" : \
00385                       (chip) == UVES_CHIP_REDU ? "FIB_FF_SG2_REDU" : "???")
00386 
00387 #define FLAMES_FIB_FF_SG3(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG3_REDL" : \
00388                       (chip) == UVES_CHIP_REDU ? "FIB_FF_SG3_REDU" : "???")
00389 
00390 #define FLAMES_FIB_FF_SGC(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_SGC_REDL" : \
00391                       (chip) == UVES_CHIP_REDU ? "FIB_FF_SGC_REDU" : "???")
00392 
00393 
00394 
00395 #define FLAMES_FIB_FF_COM(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_COM_REDL" : \
00396                       (chip) == UVES_CHIP_REDU ? "FIB_FF_COM_REDU" : "???")
00397 
00398 #define FLAMES_FIB_FF_NOR(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_NOR_REDL" : \
00399                       (chip) == UVES_CHIP_REDU ? "FIB_FF_NOR_REDU" : "???")
00400 
00401 #define FLAMES_FIB_FF_NSG(chip)  ((chip) == UVES_CHIP_REDL ? "FIB_FF_NSG_REDL" : \
00402                       (chip) == UVES_CHIP_REDU ? "FIB_FF_NSG_REDU" : "???")
00403 
00404 
00405 
00406 
00407 /*
00408  * prep_sff_ofpos
00409  */
00410 #define FLAMES_FIB_FF_ALL   "FIB_FF_ALL_RED"
00411 #define FLAMES_FIB_FF_ODD   "FIB_FF_ODD_RED"
00412 #define FLAMES_FIB_FF_EVEN  "FIB_FF_EVEN_RED"
00413 
00414 #define FLAMES_CORVEL(chip)  ((chip) == UVES_CHIP_REDL ? "CORVEL_TAB_REDL" : \
00415                   (chip) == UVES_CHIP_REDU ? "CORVEL_TAB_REDU" : "???")
00416 
00417 /*
00418  * wavecal
00419  */
00420 #define FLAMES_FIB_SCI_SIM "FIB_SCI_SIM_RED"
00421 
00422 
00423 #define FLAMES_ORDEF(flames, chip)  ((flames) ?                                       \
00424                      (((chip) == UVES_CHIP_REDU) ? "FIB_ORDEF_REDU" : \
00425                       ((chip) == UVES_CHIP_REDL) ? "FIB_ORDEF_REDL" : \
00426                       "???") : "??UVES??")
00427 #define FLAMES_ORDEF_EXTENSION(flames, chip)  0
00428 
00429 
00430 /* UVES + FLAMES */
00431 
00432 /* Narrow arc lamp frames */
00433 #define UVES_FORMATCHECK(flames,blue) ((flames) ? "FIB_ARC_LAMP_FORM_RED" : \
00434                                       ((blue) ? "ARC_LAMP_FORM_BLUE" : "ARC_LAMP_FORM_RED"))
00435 
00436 /* Narrow flat field frames */
00437 #define UVES_ORDER_FLAT(flames, blue) ((flames) ? "FIB_ORDEF_RED" : \
00438                        ((blue) ? "ORDER_FLAT_BLUE" : "ORDER_FLAT_RED"))
00439 
00440 /* Bias raw frames */
00441 #define UVES_BIAS(blue)           ((blue) ? "BIAS_BLUE"      : "BIAS_RED")
00442 
00443 /* Dark raw frames */
00444 #define UVES_DARK(blue)           ((blue) ? "DARK_BLUE"      : "DARK_RED")
00445 #define UVES_PDARK(blue)          ((blue) ? "PDARK_BLUE"     : "PDARK_RED")
00446 
00447 /* Flatfield raw frames */
00448 #define UVES_FLAT(blue)           ((blue) ? "FLAT_BLUE"      : "FLAT_RED")
00449 #define UVES_IFLAT(blue)          ((blue) ? "IFLAT_BLUE"     : "IFLAT_RED")
00450 #define UVES_DFLAT(blue)          ((blue) ? "DFLAT_BLUE"     : "DFLAT_RED")
00451 #define UVES_SFLAT(blue)          ((blue) ? "SFLAT_BLUE"     : "SFLAT_RED")
00452 #define UVES_TFLAT(blue)          ((blue) ? "TFLAT_BLUE"     : "TFLAT_RED")
00453 #define UVES_SCREEN_FLAT(blue)          ((blue) ? "SCREEN_FLAT_BLUE"     : "SCREEN_FLAT_RED")
00454 
00455 /* Arc lamp */
00456 #define UVES_ARC_LAMP(flames,blue)     ((flames) ? "FIB_ARC_LAMP_RED" : \
00457                                        ((blue) ? "ARC_LAMP_BLUE" : "ARC_LAMP_RED"))
00458 
00459 #define UVES_ECH_ARC_LAMP(blue)       ((blue) ? "ECH_ARC_LAMP_BLUE" : "ECH_ARC_LAMP_RED")
00460 
00461 /* CD align */
00462 #define UVES_CD_ALIGN(blue)       ((blue) ? "CD_ALIGN_BLUE" : "CD_ALIGN_RED")
00463 
00464 /* STD Star */
00465 #define UVES_STD_STAR(blue)           ((blue) ? "STANDARD_BLUE" : "STANDARD_RED")
00466 
00467 /* Science */
00468 #define UVES_SCIENCE(blue)         ((blue) ? "SCIENCE_BLUE"    : "SCIENCE_RED")
00469 #define UVES_SCI_EXTND(blue)       ((blue) ? "SCI_EXTND_BLUE"  : "SCI_EXTND_RED")
00470 #define UVES_SCI_POINT(blue)       ((blue) ? "SCI_POINT_BLUE"  : "SCI_POINT_RED")
00471 #define UVES_SCI_SLICER(blue)      ((blue) ? "SCI_SLICER_BLUE" : "SCI_SLICER_RED")
00472 
00473 /* DRS setup table (for backwards compatibility) */
00474 #define UVES_DRS_SETUP(flames, chip) ((flames) ?                                            \
00475                       (((chip) == UVES_CHIP_REDU) ? "FIB_DRS_REDU" :        \
00476                        ((chip) == UVES_CHIP_REDL) ? "FIB_DRS_REDL" : "???") \
00477                       :                                                     \
00478                       (((chip) == UVES_CHIP_BLUE) ? "DRS_SETUP_BLUE" :      \
00479                        ((chip) == UVES_CHIP_REDU) ? "DRS_SETUP_REDU" :      \
00480                        ((chip) == UVES_CHIP_REDL) ? "DRS_SETUP_REDL" : "???"))
00481     
00482 #define UVES_DRS_SETUP_EXTENSION(chip)  1
00483 
00484 /* Order table (written by physmod + flames_cal_orderpos) */
00485 #define UVES_GUESS_ORDER_TABLE(flames,chip) ((flames) ?                                  \
00486                                 (((chip) == UVES_CHIP_REDU) ? "FIB_ORD_GUE_REDU" :       \
00487                                  ((chip) == UVES_CHIP_REDL) ? "FIB_ORD_GUE_REDL" : "???")\
00488                                  :                                                       \
00489                                  (((chip) == UVES_CHIP_BLUE) ? "ORDER_GUESS_TAB_BLUE" :  \
00490                                  ((chip) == UVES_CHIP_REDU) ? "ORDER_GUESS_TAB_REDU" :   \
00491                  ((chip) == UVES_CHIP_REDL) ? "ORDER_GUESS_TAB_REDL" :   \
00492                  "???"))
00493 
00494 #define UVES_GUESS_ORDER_TABLE_EXTENSION(flames,chip)  1
00495 
00496 
00497 /* Order table (written by uves_orderpos / flames_cal_prep_sff_ofpos) */
00498 #define UVES_ORDER_TABLE(flames,chip)  ((flames) ?                                             \
00499                                         (((chip) == UVES_CHIP_REDU) ? "FIB_ORDEF_TABLE_REDU" : \
00500                          ((chip) == UVES_CHIP_REDL) ? "FIB_ORDEF_TABLE_REDL" : \
00501                                          "???")                                                \
00502                     :                                                      \
00503                     (((chip) == UVES_CHIP_BLUE) ? "ORDER_TABLE_BLUE" :     \
00504                      ((chip) == UVES_CHIP_REDU) ? "ORDER_TABLE_REDU" :     \
00505                      ((chip) == UVES_CHIP_REDL) ? "ORDER_TABLE_REDL" :     \
00506                      "???"))
00507 #define UVES_ORDER_TABLE_EXTENSION       1
00508 #define UVES_ORDER_TABLE_EXTENSION_POLY  2
00509 #define UVES_ORDER_TABLE_EXTENSION_FIBRE 3
00510 
00511 
00512 /* Flame science products
00513 FIB_SCI_INFO_TAB
00514 MWXB_SCI_REDL
00515 ERR_MWXB_SCI_REDL
00516 XB_SCI_REDL
00517 
00518 MWXB_SCI_RAW_REDL
00519 ERR_MWXB_SCI_RAW_REDL
00520 XB_SCI_RAW_REDL
00521 
00522 MWXB_SCI_REDU
00523 ERR_MWXB_SCI_REDU
00524 XB_SCI_REDU
00525 MWXB_SCI_RAW_REDU
00526 ERR_MWXB_SCI_RAW_REDU
00527 XB_SCI_RAW_REDU
00528 */
00529 #define FLAMES_SCI_INFO_TAB "FIB_SCI_INFO_TAB"
00530 
00531 #define FLAMES_MWXB_SCI(chip) ( \
00532                       ((chip) == UVES_CHIP_REDU) ? "MWXB_SCI_REDU" : \
00533               ((chip) == UVES_CHIP_REDL) ? "MWXB_SCI_REDL" : \
00534                               "???")
00535 
00536 #define FLAMES_ERR_MWXB_SCI(chip) ( \
00537                           ((chip) == UVES_CHIP_REDU) ? "ERR_MWXB_SCI_REDU" : \
00538               ((chip) == UVES_CHIP_REDL) ? "ERR_MWXB_SCI_REDL" : \
00539                               "???")
00540 
00541 
00542 #define FLAMES_XB_SCI(chip) ( \
00543                           ((chip) == UVES_CHIP_REDU) ? "XB_SCI_REDU" : \
00544               ((chip) == UVES_CHIP_REDL) ? "XB_SCI_REDL" : \
00545                               "???")
00546 
00547 
00548 #define FLAMES_MWXB_SCI_RAW(chip) ( \
00549                       ((chip) == UVES_CHIP_REDU) ? "MWXB_SCI_RAW_REDU" : \
00550               ((chip) == UVES_CHIP_REDL) ? "MWXB_SCI_RAW_REDL" : \
00551                               "???")
00552 
00553 #define FLAMES_ERR_MWXB_SCI_RAW(chip) ( \
00554                      ((chip) == UVES_CHIP_REDU) ? "ERR_MWXB_SCI_RAW_REDU" : \
00555              ((chip) == UVES_CHIP_REDL) ? "ERR_MWXB_SCI_RAW_REDL" : \
00556                               "???")
00557 
00558 
00559 #define FLAMES_XB_SCI_RAW(chip) ( \
00560                           ((chip) == UVES_CHIP_REDU) ? "XB_SCI_REDU" : \
00561               ((chip) == UVES_CHIP_REDL) ? "XB_SCI_REDL" : \
00562                               "???")
00563 
00564 
00565 
00566 
00567 /* Background tables are used only to tell
00568    the user that they are actually *not* used for processing */
00569 #define UVES_BACKGR_TABLE(chip) (((chip) == UVES_CHIP_BLUE) ? "BACKGR_TABLE_BLUE" :    \
00570                  ((chip) == UVES_CHIP_REDU) ? "BACKGR_TABLE_REDU" :    \
00571                  ((chip) == UVES_CHIP_REDL) ? "BACKGR_TABLE_REDL" : "???")
00572 
00573 /* Master bias */
00574 #define UVES_MASTER_BIAS(chip)           (((chip) == UVES_CHIP_BLUE) ? "MASTER_BIAS_BLUE" :  \
00575                       ((chip) == UVES_CHIP_REDU) ? "MASTER_BIAS_REDU" :  \
00576                       ((chip) == UVES_CHIP_REDL) ? "MASTER_BIAS_REDL" : "???")
00577 #define UVES_MASTER_BIAS_EXTENSION(chip) 0
00578 
00579 /* Master Formatcheck */
00580 #define UVES_MASTER_ARC_FORM(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_FORM_BLUE" : \
00581                                     ((chip) == UVES_CHIP_REDU) ? "MASTER_FORM_REDU" : \
00582                                     ((chip) == UVES_CHIP_REDL) ? "MASTER_FORM_REDL" : "???")
00583 
00584 #define UVES_MASTER_ARC_FORM_EXTENSION(chip) 0
00585 
00586 /* Master dark */
00587 #define UVES_MASTER_DARK(chip)   (((chip) == UVES_CHIP_BLUE) ? "MASTER_DARK_BLUE" : \
00588                                   ((chip) == UVES_CHIP_REDU) ? "MASTER_DARK_REDU" : \
00589                                   ((chip) == UVES_CHIP_REDL) ? "MASTER_DARK_REDL" : "???")
00590 
00591 #define UVES_MASTER_PDARK(chip)  (((chip) == UVES_CHIP_BLUE) ? "MASTER_PDARK_BLUE": \
00592                   ((chip) == UVES_CHIP_REDU) ? "MASTER_PDARK_REDU": \
00593                   ((chip) == UVES_CHIP_REDL) ? "MASTER_PDARK_REDL": "???")
00594 
00595 #define UVES_MASTER_DARK_EXTENSION(chip) 0
00596 
00597 /* Master flat */
00598 #define UVES_MASTER_FLAT(chip)  (((chip) == UVES_CHIP_BLUE) ? "MASTER_FLAT_BLUE" : \
00599                                  ((chip) == UVES_CHIP_REDU) ? "MASTER_FLAT_REDU" : \
00600                                  ((chip) == UVES_CHIP_REDL) ? "MASTER_FLAT_REDL" : "???")
00601 #define UVES_MASTER_DFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_DFLAT_BLUE" : \
00602                                  ((chip) == UVES_CHIP_REDU) ? "MASTER_DFLAT_REDU" : \
00603                                  ((chip) == UVES_CHIP_REDL) ? "MASTER_DFLAT_REDL" : "???")
00604 #define UVES_MASTER_SFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_SFLAT_BLUE" : \
00605                                  ((chip) == UVES_CHIP_REDU) ? "MASTER_SFLAT_REDU" : \
00606                                  ((chip) == UVES_CHIP_REDL) ? "MASTER_SFLAT_REDL" : "???")
00607 #define UVES_MASTER_IFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_IFLAT_BLUE" : \
00608                                  ((chip) == UVES_CHIP_REDU) ? "MASTER_IFLAT_REDU" : \
00609                                  ((chip) == UVES_CHIP_REDL) ? "MASTER_IFLAT_REDL" : "???")
00610 #define UVES_MASTER_TFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_TFLAT_BLUE" : \
00611                                  ((chip) == UVES_CHIP_REDU) ? "MASTER_TFLAT_REDU" : \
00612                                  ((chip) == UVES_CHIP_REDL) ? "MASTER_TFLAT_REDL" : "???")
00613 #define UVES_REF_TFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "REF_TFLAT_BLUE" : \
00614                                  ((chip) == UVES_CHIP_REDU) ? "REF_TFLAT_REDU" : \
00615                                  ((chip) == UVES_CHIP_REDL) ? "REF_TFLAT_REDL" : "???")
00616 #define UVES_MASTER_SCREEN_FLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_SCREEN_FLAT_BLUE" : \
00617                                        ((chip) == UVES_CHIP_REDU) ? "MASTER_SCREEN_FLAT_REDU" : \
00618                                        ((chip) == UVES_CHIP_REDL) ? "MASTER_SCREEN_FLAT_REDL" : \
00619                        "???")
00620 #define UVES_MASTER_FLAT_EXTENSION(chip) 0
00621 #define UVES_BKG_FLAT(chip)              (((chip) == UVES_CHIP_BLUE) ? "BKG_FLAT_BLUE" : \
00622                                           ((chip) == UVES_CHIP_REDU) ? "BKG_FLAT_REDU" : \
00623                                           ((chip) == UVES_CHIP_REDL) ? "BKG_FLAT_REDL" : "???" )
00624 #define UVES_RATIO_TFLAT(chip)              (((chip) == UVES_CHIP_BLUE) ? "RATIO_TFLAT_BLUE" : \
00625                                           ((chip) == UVES_CHIP_REDU) ? "RATIO_TFLAT_REDU" : \
00626                                           ((chip) == UVES_CHIP_REDL) ? "RATIO_TFLAT_REDL" : "???" )
00627 
00628 /* Line table */
00629 #define UVES_LINE_TABLE(flames,chip)   ((flames) ?                                           \
00630                                  (((chip) == UVES_CHIP_REDU) ? "FIB_LINE_TABLE_REDU" :       \
00631                                   ((chip) == UVES_CHIP_REDL) ? "FIB_LINE_TABLE_REDL" : "???")\
00632                                   :                                                          \
00633                                   (((chip) == UVES_CHIP_BLUE) ? "LINE_TABLE_BLUE" :          \
00634                                    ((chip) == UVES_CHIP_REDU) ? "LINE_TABLE_REDU" :          \
00635                                    ((chip) == UVES_CHIP_REDL) ? "LINE_TABLE_REDL" : "???"))
00636 
00637 /* Guess line table */
00638 #define UVES_GUESS_LINE_TABLE(flames,chip) ((flames) ?                                    \
00639                                  (((chip) == UVES_CHIP_REDU) ? "FIB_LIN_GUE_REDU" :       \
00640                                   ((chip) == UVES_CHIP_REDL) ? "FIB_LIN_GUE_REDL" : "???")\
00641                                   :                                                       \
00642                                   (((chip) == UVES_CHIP_BLUE) ? "LINE_GUESS_TAB_BLUE" :   \
00643                                   ((chip) == UVES_CHIP_REDU) ? "LINE_GUESS_TAB_REDU" :    \
00644                    ((chip) == UVES_CHIP_REDL) ? "LINE_GUESS_TAB_REDL" : "???"))
00645 
00646 #define UVES_LINE_TABLE_EXTENSION            1
00647 #define UVES_LINE_TABLE_EXTENSION_DISPERSION 2
00648 #define UVES_LINE_TABLE_EXTENSION_ABSORDER   3
00649 
00650 /* For backwards compatibility */
00651 #define UVES_LINE_TABLE_MIDAS_BLUE(window) (((window)==1) ? "LINE_TABLE_BLUE1" : \
00652                                             ((window)==2) ? "LINE_TABLE_BLUE2" : \
00653                                             ((window)==3) ? "LINE_TABLE_BLUE3" : \
00654                         "LINE_TABLE_BLUEx")
00655 #define UVES_LINE_TABLE_MIDAS_REDL(window) (((window)==1) ? "LINE_TABLE_REDL1" : \
00656                                             ((window)==2) ? "LINE_TABLE_REDL2" : \
00657                                             ((window)==3) ? "LINE_TABLE_REDL3" : \
00658                                             "LINE_TABLE_REDLx")
00659 #define UVES_LINE_TABLE_MIDAS_REDU(window) (((window)==1) ? "LINE_TABLE_REDU1" : \
00660                                             ((window)==2) ? "LINE_TABLE_REDU2" : \
00661                                             ((window)==3) ? "LINE_TABLE_REDU3" : \
00662                         "LINE_TABLE_REDUx")
00663 #define UVES_LINE_TABLE_MIDAS(chip,window) ( ((chip) == UVES_CHIP_BLUE) ?        \
00664                         UVES_LINE_TABLE_MIDAS_BLUE(window) : \
00665                                              ((chip) == UVES_CHIP_REDU) ?        \
00666                         UVES_LINE_TABLE_MIDAS_REDU(window) : \
00667                                              ((chip) == UVES_CHIP_REDL) ?        \
00668                         UVES_LINE_TABLE_MIDAS_REDL(window) : "???")
00669 
00670 /* Response curves et al. */
00671 #define UVES_INSTR_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "INSTR_RESPONSE_BLUE" : \
00672                                    ((chip) == UVES_CHIP_REDU) ? "INSTR_RESPONSE_REDU" : \
00673                                    ((chip) == UVES_CHIP_REDL) ? "INSTR_RESPONSE_REDL" : "???")
00674 #define UVES_INSTR_RESPONSE_EXTENSION(chip) 0
00675 
00676 #define UVES_MASTER_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_RESPONSE_BLUE" : \
00677                                     ((chip) == UVES_CHIP_REDU) ? "MASTER_RESPONSE_REDU" : \
00678                                     ((chip) == UVES_CHIP_REDL) ? "MASTER_RESPONSE_REDL" : "???")
00679 #define UVES_MASTER_RESPONSE_EXTENSION(chip) 0
00680 
00681 #define UVES_WCALIB_FF_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "WCALIB_FF_RESPONSE_BLUE" : \
00682                                        ((chip) == UVES_CHIP_REDU) ? "WCALIB_FF_RESPONSE_REDU" : \
00683                                        ((chip) == UVES_CHIP_REDL) ? "WCALIB_FF_RESPONSE_REDL" : \
00684                        "???")
00685 #define UVES_RED_STD(chip)               (((chip) == UVES_CHIP_BLUE) ? "RED_STD_BLUE" : \
00686                                           ((chip) == UVES_CHIP_REDU) ? "RED_STD_REDU" : \
00687                                           ((chip) == UVES_CHIP_REDL) ? "RED_STD_REDL" : "???")
00688 #define UVES_BKG_STD(chip)               (((chip) == UVES_CHIP_BLUE) ? "BKG_STD_BLUE" : \
00689                                           ((chip) == UVES_CHIP_REDU) ? "BKG_STD_REDU" : \
00690                                           ((chip) == UVES_CHIP_REDL) ? "BKG_STD_REDL" : "???")
00691 #define UVES_EFFICIENCY_TABLE(chip) (((chip) == UVES_CHIP_BLUE) ? "EFFICIENCY_TABLE_BLUE" : \
00692                                      ((chip) == UVES_CHIP_REDU) ? "EFFICIENCY_TABLE_REDU" : \
00693                                      ((chip) == UVES_CHIP_REDL) ? "EFFICIENCY_TABLE_REDL" : "???")
00694 
00695 /* CD align table */
00696 #define UVES_CD_ALIGN_TABLE(blue)       ((blue) ? "CD_ALIGN_TABLE_BLUE" : "CD_ALIGN_TABLE_RED")
00697 
00698 /* 
00699  * Reference CALIB tags
00700  */
00701 
00702 /* Line catalogue */
00703 #define UVES_LINE_REFER_TABLE           "LINE_REFER_TABLE"
00704 #define UVES_LINE_REFER_TABLE_EXTENSION 1
00705 
00706 #define UVES_LINE_INTMON_TABLE           "LINE_INTMON_TABLE"
00707 #define UVES_LINE_INTMON_TABLE_EXTENSION 1
00708 
00709 /* Standard star flux */
00710 #define UVES_FLUX_STD_TABLE           "FLUX_STD_TABLE"
00711 #define UVES_FLUX_STD_TABLE_EXTENSION 1
00712 
00713 /* Extinction coefficients */
00714 #define UVES_EXTCOEFF_TABLE           "EXTCOEFF_TABLE"
00715 #define UVES_EXTCOEFF_TABLE_EXTENSION 1
00716 
00717 /*
00718  *  Image statistics
00719  */
00720 
00721 #define UVES_ALL_STATS (CPL_STATS_MEAN | CPL_STATS_STDEV | CPL_STATS_MEDIAN | \
00722             CPL_STATS_MIN  | CPL_STATS_MAX)
00723 
00724 /*-----------------------------------------------------------------------------
00725                                 Functions prototypes
00726  -----------------------------------------------------------------------------*/
00727 void
00728 uves_copy_if_possible(uves_propertylist *to, const uves_propertylist *from,
00729                       const char *name);
00730 
00731 void
00732 uves_warn_if_chip_names_dont_match(const uves_propertylist *calib_header, 
00733                    const char *raw_chip_name, enum uves_chip chip);
00734 
00735 cpl_error_code
00736 uves_extract_frames_group_type(const cpl_frameset * set, cpl_frameset** ext, 
00737                    cpl_frame_group type);
00738 cpl_error_code
00739 uves_frameset_merge(cpl_frameset * set1, const cpl_frameset* set2);
00740 cpl_error_code
00741 uves_sflats_get_encoder_steps(const cpl_frameset * set, cpl_table** encoder_tbl, int* nset);
00742 
00743 cpl_error_code uves_dfs_set_groups(cpl_frameset *);
00744 
00745 cpl_image *
00746 uves_crop_and_rotate(const cpl_image *image, const uves_propertylist *header,
00747              enum uves_chip chip,
00748              const uves_propertylist *redl_header, 
00749              bool new_format, uves_propertylist **out_header);
00750 
00751 void *uves_read_midas_array(const uves_propertylist *plist, const char *name, int *length,
00752                 cpl_type *type, int *nkeys);
00753 
00754 /* Save */
00755 cpl_error_code
00756 uves_frameset_insert(cpl_frameset *frames, 
00757                      void *object, 
00758              cpl_frame_group group, 
00759                      cpl_frame_type type, 
00760                      cpl_frame_level level,
00761              const char *filename, 
00762                      const char *tag, 
00763              const uves_propertylist *raw_header,
00764                      const uves_propertylist *primary_header, 
00765              const uves_propertylist *table_header, 
00766                      const cpl_parameterlist *parameters, 
00767              const char *recipe, 
00768                      const char *pipeline,
00769                      cpl_table **qc,
00770              const char *start_time,
00771              bool dump_paf,
00772              unsigned stats_mask);
00773 int uves_check_rec_status(const int val) ;
00774 cpl_error_code uves_save_image_local(const char *description, const char *filename_prefix, 
00775                      const cpl_image *image,
00776                      enum uves_chip chip, int trace, int window, 
00777                      const uves_propertylist *plist);
00778 cpl_error_code uves_save_table_local(const char *description, const char *filename_prefix,
00779                      const cpl_table *table,
00780                      enum uves_chip chip, int trace, int window,
00781                      const uves_propertylist *pheader, 
00782                      const uves_propertylist *eheader);
00783 cpl_error_code uves_save_polynomial(polynomial *p, const char *filename,
00784                     const uves_propertylist *header);
00785 
00786 void uves_save_image(const cpl_image *image, const char *filename, const uves_propertylist *plist);
00787 void uves_save_imagelist(const cpl_imagelist *iml, const char *filename, const uves_propertylist *plist);
00788 cpl_image *uves_load_image(const cpl_frame *f,
00789                int plane,
00790                int extension,
00791                uves_propertylist **header);
00792 
00793 /* Load raw */
00794 cpl_error_code
00795 uves_load_master_formatcheck(const cpl_frameset *frames, const char *chip_name,
00796         const char **mform_filename, 
00797         cpl_image **mform, uves_propertylist **mform_header, enum uves_chip chip);
00798 
00799 cpl_error_code uves_load_formatcheck(const cpl_frameset *frames,
00800                      bool flames,
00801                      const char **raw_filename,
00802                      cpl_image *raw_image[2],
00803                      uves_propertylist *raw_header[2], 
00804                      uves_propertylist *rotated_header[2], bool *blue);
00805 
00806 cpl_error_code uves_load_orderpos(const cpl_frameset *frames,
00807                   bool flames,
00808                   const char **raw_filename,
00809                   cpl_image *raw_image[2],
00810                   uves_propertylist *raw_header[2], 
00811                   uves_propertylist *rotated_header[2], 
00812                                   bool *blue);
00813 
00814 void uves_load_arclamp(const cpl_frameset *frames,
00815                bool flames,
00816                const char **raw_filename, 
00817                cpl_image *raw_image[2], uves_propertylist *raw_header[2],
00818                uves_propertylist *rotated_header[2], 
00819                bool *blue, bool *sim_cal);
00820 
00821 cpl_error_code uves_load_science(const cpl_frameset *frames, const char **raw_filename, 
00822                  cpl_image *raw_image[2], 
00823                  uves_propertylist *raw_header[2], 
00824                  uves_propertylist *rotated_header[2], 
00825                  bool *blue,
00826                  const char **sci_type);
00827 cpl_error_code uves_load_standard(const cpl_frameset *frames, const char **raw_filename,
00828                   cpl_image *raw_image[2], uves_propertylist *raw_header[2], 
00829                   uves_propertylist *rotated_header[2], bool *blue);
00830 cpl_error_code uves_load_raw_imagelist(const cpl_frameset *frames, 
00831                        bool flames,
00832                        const char *blue_tag, 
00833                        const char *red_tag, cpl_type type, 
00834                        cpl_imagelist *images[2], uves_propertylist **raw_headers[2],
00835                        uves_propertylist *rotated_header[2],
00836                        bool *blue);
00837 
00838 /* Load calibration */
00839 cpl_error_code uves_load_drs(const cpl_frameset *frames, 
00840                  bool flames,
00841                  const char *chip_name,
00842                  const char **drs_filename, 
00843                  uves_propertylist **drs_header,
00844                  enum uves_chip chip);
00845 cpl_error_code uves_load_mbias(const cpl_frameset *frames, const char *chip_id,
00846                    const char **mbias_filename,
00847                    cpl_image **mbias, uves_propertylist **mbias_header, 
00848                    enum uves_chip chip);
00849 cpl_error_code uves_load_mdark(const cpl_frameset *frames, const char *chip_id,
00850                    const char **mdark_filename,
00851                    cpl_image **mdark, uves_propertylist **mdark_header,
00852                    enum uves_chip chip);
00853 cpl_error_code uves_load_mflat_const(const cpl_frameset *frames, const char *chip_name,
00854                      const char **mflat_filename, 
00855                      cpl_image **mflat, uves_propertylist **mflat_header, 
00856                      enum uves_chip chip,
00857                      const cpl_frame **mflat_frame);
00858 cpl_error_code uves_load_mflat(cpl_frameset *frames, const char *chip_name,
00859                    const char **mflat_filename, 
00860                    cpl_image **mflat, uves_propertylist **mflat_header, 
00861                    enum uves_chip chip,
00862                    cpl_frame **mflat_frame);
00863 
00864 void uves_load_ref_flat(const cpl_frameset *frames, const char *chip_name,
00865             const char **filename, cpl_image **rflat,
00866             uves_propertylist **rflat_header, enum uves_chip chip);
00867 
00868 cpl_error_code uves_load_ordertable(const cpl_frameset *frames, 
00869                     bool flames,
00870                     const char *chip_id,
00871                     const char **ordertable_filename,
00872                     cpl_table **ordertable, 
00873                     uves_propertylist **ordertable_header, 
00874                     uves_propertylist **ordertable_xheader, 
00875                     polynomial **order_locations, 
00876                                     cpl_table **traces,
00877                     int *tab_in_out_oshift,
00878                     double *tab_in_out_yshift,
00879                                     int ** fibre_mask,
00880                                     double ** fibre_pos,
00881                     enum uves_chip chip,
00882                     bool guess_table);
00883 
00884 void uves_load_linetable_const(const cpl_frameset *frames, 
00885                    bool flames,
00886                    const char *chip_name,
00887                    const polynomial *order_locations, 
00888                    int minorder, int maxorder,
00889                    const char **linetable_filename,
00890                    const cpl_table **linetable,
00891                    const uves_propertylist **linetable_header,
00892                    const polynomial **dispersion_relation,
00893                    polynomial **absolute_order,
00894                    enum uves_chip chip, int trace_id, int window);
00895 
00896 void uves_load_linetable(const cpl_frameset *frames, 
00897              bool flames,
00898              const char *chip_name,
00899              const polynomial *order_locations, 
00900              int minorder, int maxorder,
00901              const char **linetable_filename,
00902              cpl_table **linetable,
00903              uves_propertylist **linetable_header,
00904              polynomial **dispersion_relation,
00905              polynomial **absolute_order,
00906              enum uves_chip chip, int trace_id, int window);
00907 
00908 cpl_error_code uves_load_response_curve(const cpl_frameset *frames, const char *chip_name,
00909                     const char **response_filename, 
00910                     cpl_image **response_curve,
00911                     cpl_table **master_response,
00912                     uves_propertylist **response_header, enum uves_chip chip);
00913 
00914 void uves_load_corvel(const cpl_frameset *frames,
00915               enum uves_chip chip,
00916               cpl_table **corvel,
00917               uves_propertylist **corvel_header,
00918               const char **corvel_filename);
00919             
00920 void uves_load_cd_align(const cpl_frameset *frames,
00921             const char **raw_filename1,
00922             const char **raw_filename2,
00923             cpl_image *raw_image1[2],
00924             cpl_image *raw_image2[2],
00925             uves_propertylist *raw_header1[2], 
00926             uves_propertylist *raw_header2[2], 
00927             uves_propertylist *rotated_header1[2], 
00928             uves_propertylist *rotated_header2[2], 
00929             bool *blue);
00930 
00931 /* Static calibration */
00932 cpl_error_code uves_load_linerefertable(const cpl_frameset *frames, 
00933                     const char **line_refer_filename, 
00934                     cpl_table **line_refer, 
00935                     uves_propertylist **line_refer_header);
00936 
00937 cpl_error_code uves_load_lineintmon(const cpl_frameset *frames, 
00938                     const char **line_intmonr_filename, 
00939                     cpl_table **line_intmon);
00940 
00941 cpl_error_code uves_load_flux_table(const cpl_frameset *frames, const char **flux_table_filename, 
00942                     cpl_table **flux_table);
00943     
00944 cpl_error_code uves_load_atmo_ext(const cpl_frameset *frames, 
00945                   const char **atmext_table_filename, 
00946                   cpl_table **atmext_table);
00947 
00948 /* Product filenames */
00949 
00950 /* Mbias */
00951 char *uves_masterbias_filename(enum uves_chip chip);
00952 
00953 /* Mdark */
00954 char *uves_masterdark_filename(enum uves_chip chip);
00955 
00956 /* Mflat */
00957 char *uves_masterflat_filename(enum uves_chip chip);
00958 char *uves_masterflat_bkg_filename(enum uves_chip chip);
00959 
00960 /* Orderpos */
00961 char *uves_ordef_filename(enum uves_chip chip);
00962 char *uves_order_table_filename(enum uves_chip chip);
00963 char *uves_guess_order_table_filename(enum uves_chip chip);
00964 char *uves_guess_line_table_filename(enum uves_chip chip);
00965 
00966 /* Wavecal */
00967 char *uves_line_table_filename(enum uves_chip chip);
00968 char *uves_line_table_filename_paf(enum uves_chip chip);
00969 
00970 /* Response */
00971 char *uves_response_curve_filename(enum uves_chip chip);
00972 char *uves_response_curve_2d_filename(enum uves_chip chip);
00973 char *uves_response_red_standard_filename(enum uves_chip chip);
00974 char *uves_response_efficiency_filename(enum uves_chip chip);
00975 char *uves_response_bkg_standard_filename(enum uves_chip chip);
00976 
00977 /* Tflat */
00978 char *uves_flat_ratio_filename(enum uves_chip chip);
00979 
00980 /* CDAlign */
00981 char *uves_cd_align_filename(enum uves_chip chip);
00982 
00983 /* Scired */
00984 char *uves_scired_red_science_filename(enum uves_chip chip);
00985 char *uves_scired_red_error_filename(enum uves_chip chip);
00986 char *uves_scired_fluxcal_science_filename(enum uves_chip chip);
00987 char *uves_scired_fluxcal_error_filename(enum uves_chip chip);
00988 char *uves_scired_ff_variance_filename(enum uves_chip chip);
00989 char *uves_scired_background_filename(enum uves_chip chip);
00990 char *uves_scired_merged_sky_filename(enum uves_chip chip);
00991 char *uves_scired_merged_science_filename(enum uves_chip chip);
00992 char *uves_scired_resampled_filename(enum uves_chip chip);
00993 char *uves_scired_resampledmf_filename(enum uves_chip chip);
00994 char *uves_scired_rebinned_filename(enum uves_chip chip);
00995 char *uves_scired_ordertrace_filename(enum uves_chip chip);
00996 char *uves_scired_crmask_filename(enum uves_chip chip);
00997 char *uves_scired_ext2d_filename(enum uves_chip chip);
00998 char *uves_scired_ff2d_filename(enum uves_chip chip);
00999 
01000 
01001 #endif

Generated on Tue Jun 19 14:39:15 2007 for UVES Pipeline Reference Manual by  doxygen 1.4.6