00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351 #ifndef UVES_DFS_H
00352 #define UVES_DFS_H
00353
00354
00355
00356
00357 #include <uves_cpl_size.h>
00358 #include <uves_propertylist.h>
00359 #include <uves_utils_polynomial.h>
00360 #include <uves_chip.h>
00361 #include <uves_utils.h>
00362 #include <cpl.h>
00363
00364 #include <stdbool.h>
00365 #include <math.h>
00366
00367
00368
00369
00370
00371
00372
00373 #define RAW_IMA "RAW_IMA"
00374 #define FLAMES_SCI_RED "FIB_SCI_RED"
00375 #define FLAMES_SCI_SIM_RED "FIB_SCI_SIM_RED"
00376 #define FLAMES_SCI_COM_RED "FIB_SCI_COM_RED"
00377 #define FLAMES_CORVEL_MASK "CORVEL_MASK"
00378
00379 #define FLAMES_INFO_TABLE(chip) ((chip) == UVES_CHIP_REDL ? "FIB_SCI_INFO_TAB_REDL" : \
00380 (chip) == UVES_CHIP_REDU ? "FIB_SCI_INFO_TAB_REDU" : "???")
00381
00382 #define FLAMES_LINE_TABLE(chip) ((chip) == UVES_CHIP_REDL ? "FIB_LINE_TABLE_REDL" : \
00383 (chip) == UVES_CHIP_REDU ? "FIB_LINE_TABLE_REDU" : "???")
00384
00385 #define FLAMES_LINE_TABLE_MIDAS(chip) ((chip) == UVES_CHIP_REDL ? "FIB_LINE_TABLE_REDL" : \
00386 (chip) == UVES_CHIP_REDU ? "FIB_LINE_TABLE_REDU" : "???")
00387
00388 #define FLAMES_SLIT_FF_DT1(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT1_REDL" : \
00389 (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT1_REDU" : "???")
00390
00391 #define FLAMES_SLIT_FF_DT2(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT2_REDL" : \
00392 (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT2_REDU" : "???")
00393
00394 #define FLAMES_SLIT_FF_DT3(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DT3_REDL" : \
00395 (chip) == UVES_CHIP_REDU ? "SLIT_FF_DT3_REDU" : "???")
00396
00397 #define FLAMES_SLIT_FF_DTC(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_DTC_REDL" : \
00398 (chip) == UVES_CHIP_REDU ? "SLIT_FF_DTC_REDU" : "???")
00399
00400 #define FLAMES_SLIT_FF_DT(it, chip) ((it) == 1 ? FLAMES_SLIT_FF_DT1(chip) : \
00401 (it) == 2 ? FLAMES_SLIT_FF_DT2(chip) : \
00402 (it) == 3 ? FLAMES_SLIT_FF_DT3(chip) : "???")
00403
00404 #define FLAMES_SLIT_FF_BP1(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP1_REDL" : \
00405 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP1_REDU" : "???")
00406
00407 #define FLAMES_SLIT_FF_BP2(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP2_REDL" : \
00408 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP2_REDU" : "???")
00409
00410 #define FLAMES_SLIT_FF_BP3(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BP3_REDL" : \
00411 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BP3_REDU" : "???")
00412
00413 #define FLAMES_SLIT_FF_BPC(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BPC_REDL" : \
00414 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BPC_REDU" : "???")
00415
00416 #define FLAMES_SLIT_FF_BP(it, chip) ((it) == 1 ? FLAMES_SLIT_FF_BP1(chip) : \
00417 (it) == 2 ? FLAMES_SLIT_FF_BP2(chip) : \
00418 (it) == 3 ? FLAMES_SLIT_FF_BP3(chip) : "???")
00419
00420
00421 #define FLAMES_SLIT_FF_BN1(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN1_REDL" : \
00422 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN1_REDU" : "???")
00423
00424 #define FLAMES_SLIT_FF_BN2(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN2_REDL" : \
00425 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN2_REDU" : "???")
00426
00427 #define FLAMES_SLIT_FF_BN3(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN3_REDL" : \
00428 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN3_REDU" : "???")
00429
00430 #define FLAMES_SLIT_FF_BN4(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BN4_REDL" : \
00431 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BN4_REDU" : "???")
00432
00433 #define FLAMES_SLIT_FF_BNC(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_BNC_REDL" : \
00434 (chip) == UVES_CHIP_REDU ? "SLIT_FF_BNC_REDU" : "???")
00435
00436 #define FLAMES_SLIT_FF_BN(it, chip) ((it) == 1 ? FLAMES_SLIT_FF_BN1(chip) : \
00437 (it) == 2 ? FLAMES_SLIT_FF_BN2(chip) : \
00438 (it) == 3 ? FLAMES_SLIT_FF_BN3(chip) : \
00439 (it) == 4 ? FLAMES_SLIT_FF_BN4(chip) : "???")
00440
00441
00442 #define FLAMES_SLIT_FF_SG1(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG1_REDL" : \
00443 (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG1_REDU" : "???")
00444
00445 #define FLAMES_SLIT_FF_SG2(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG2_REDL" : \
00446 (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG2_REDU" : "???")
00447
00448 #define FLAMES_SLIT_FF_SG3(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SG3_REDL" : \
00449 (chip) == UVES_CHIP_REDU ? "SLIT_FF_SG3_REDU" : "???")
00450
00451 #define FLAMES_SLIT_FF_SGC(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_SGC_REDL" : \
00452 (chip) == UVES_CHIP_REDU ? "SLIT_FF_SGC_REDU" : "???")
00453
00454
00455 #define FLAMES_SLIT_FF_SG(it, chip) ((it) == 1 ? FLAMES_SLIT_FF_SG1(chip) : \
00456 (it) == 2 ? FLAMES_SLIT_FF_SG2(chip) : \
00457 (it) == 3 ? FLAMES_SLIT_FF_SG3(chip) : "???")
00458
00459 #define FLAMES_SLIT_FF_COM(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_COM_REDL" : \
00460 (chip) == UVES_CHIP_REDU ? "SLIT_FF_COM_REDU" : "???")
00461
00462 #define FLAMES_SLIT_FF_NOR(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_NOR_REDL" : \
00463 (chip) == UVES_CHIP_REDU ? "SLIT_FF_NOR_REDU" : "???")
00464
00465 #define FLAMES_SLIT_FF_NSG(chip) ((chip) == UVES_CHIP_REDL ? "SLIT_FF_NSG_REDL" : \
00466 (chip) == UVES_CHIP_REDU ? "SLIT_FF_NSG_REDU" : "???")
00467
00468
00469
00470 #define FLAMES_FIB_FF_DT1(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT1_REDL" : \
00471 (chip) == UVES_CHIP_REDU ? "FIB_FF_DT1_REDU" : "???")
00472
00473 #define FLAMES_FIB_FF_DT2(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT2_REDL" : \
00474 (chip) == UVES_CHIP_REDU ? "FIB_FF_DT2_REDU" : "???")
00475
00476 #define FLAMES_FIB_FF_DT3(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_DT3_REDL" : \
00477 (chip) == UVES_CHIP_REDU ? "FIB_FF_DT3_REDU" : "???")
00478
00479 #define FLAMES_FIB_FF_DTC(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_DTC_REDL" : \
00480 (chip) == UVES_CHIP_REDU ? "FIB_FF_DTC_REDU" : "???")
00481
00482
00483 #define FLAMES_FIB_FF_DT(it, chip) ((it) == 1 ? FLAMES_FIB_FF_DT1(chip) : \
00484 (it) == 2 ? FLAMES_FIB_FF_DT2(chip) : \
00485 (it) == 3 ? FLAMES_FIB_FF_DT3(chip) : "???")
00486
00487
00488
00489 #define FLAMES_FIB_FF_BP1(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP1_REDL" : \
00490 (chip) == UVES_CHIP_REDU ? "FIB_FF_BP1_REDU" : "???")
00491
00492 #define FLAMES_FIB_FF_BP2(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP2_REDL" : \
00493 (chip) == UVES_CHIP_REDU ? "FIB_FF_BP2_REDU" : "???")
00494
00495 #define FLAMES_FIB_FF_BP3(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BP3_REDL" : \
00496 (chip) == UVES_CHIP_REDU ? "FIB_FF_BP3_REDU" : "???")
00497
00498 #define FLAMES_FIB_FF_BPC(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BPC_REDL" : \
00499 (chip) == UVES_CHIP_REDU ? "FIB_FF_BPC_REDU" : "???")
00500
00501 #define FLAMES_FIB_FF_BP(it, chip) ((it) == 1 ? FLAMES_FIB_FF_BP1(chip) : \
00502 (it) == 2 ? FLAMES_FIB_FF_BP2(chip) : \
00503 (it) == 3 ? FLAMES_FIB_FF_BP3(chip) : "???")
00504
00505
00506
00507 #define FLAMES_FIB_FF_BN1(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN1_REDL" : \
00508 (chip) == UVES_CHIP_REDU ? "FIB_FF_BN1_REDU" : "???")
00509
00510 #define FLAMES_FIB_FF_BN2(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN2_REDL" : \
00511 (chip) == UVES_CHIP_REDU ? "FIB_FF_BN2_REDU" : "???")
00512
00513 #define FLAMES_FIB_FF_BN3(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BN3_REDL" : \
00514 (chip) == UVES_CHIP_REDU ? "FIB_FF_BN3_REDU" : "???")
00515 #define FLAMES_FIB_FF_BNC(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_BNC_REDL" : \
00516 (chip) == UVES_CHIP_REDU ? "FIB_FF_BNC_REDU" : "???")
00517
00518
00519 #define FLAMES_FIB_FF_SG1(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG1_REDL" : \
00520 (chip) == UVES_CHIP_REDU ? "FIB_FF_SG1_REDU" : "???")
00521
00522 #define FLAMES_FIB_FF_SG2(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG2_REDL" : \
00523 (chip) == UVES_CHIP_REDU ? "FIB_FF_SG2_REDU" : "???")
00524
00525 #define FLAMES_FIB_FF_SG3(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_SG3_REDL" : \
00526 (chip) == UVES_CHIP_REDU ? "FIB_FF_SG3_REDU" : "???")
00527
00528 #define FLAMES_FIB_FF_SGC(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_SGC_REDL" : \
00529 (chip) == UVES_CHIP_REDU ? "FIB_FF_SGC_REDU" : "???")
00530
00531 #define FLAMES_FIB_FF_SG(it, chip) ((it) == 1 ? FLAMES_FIB_FF_SG1(chip) : \
00532 (it) == 2 ? FLAMES_FIB_FF_SG2(chip) : \
00533 (it) == 3 ? FLAMES_FIB_FF_SG3(chip) : "???")
00534
00535
00536 #define FLAMES_FIB_FF_COM(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_COM_REDL" : \
00537 (chip) == UVES_CHIP_REDU ? "FIB_FF_COM_REDU" : "???")
00538
00539 #define FLAMES_FIB_FF_NOR(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_NOR_REDL" : \
00540 (chip) == UVES_CHIP_REDU ? "FIB_FF_NOR_REDU" : "???")
00541
00542 #define FLAMES_FIB_FF_NSG(chip) ((chip) == UVES_CHIP_REDL ? "FIB_FF_NSG_REDL" : \
00543 (chip) == UVES_CHIP_REDU ? "FIB_FF_NSG_REDU" : "???")
00544
00545
00546 #define FIB_FF_ODD_INFO_TAB "FIB_FF_ODD_INFO_TAB"
00547 #define FIB_FF_EVEN_INFO_TAB "FIB_FF_EVEN_INFO_TAB"
00548 #define FIB_FF_ALL_INFO_TAB "FIB_FF_ALL_INFO_TAB"
00549
00550
00551
00552
00553
00554 #define FLAMES_FIB_FF_ALL "FIB_FF_ALL_RED"
00555 #define FLAMES_FIB_FF_ODD "FIB_FF_ODD_RED"
00556 #define FLAMES_FIB_FF_EVEN "FIB_FF_EVEN_RED"
00557
00558 #define FLAMES_CORVEL(chip) ((chip) == UVES_CHIP_REDL ? "CORVEL_TAB_REDL" : \
00559 (chip) == UVES_CHIP_REDU ? "CORVEL_TAB_REDU" : "???")
00560
00561
00562
00563
00564 #define FLAMES_FIB_SCI_SIM "FIB_SCI_SIM_RED"
00565
00566
00567 #define FLAMES_ORDEF(flames, chip) ((flames) ? \
00568 (((chip) == UVES_CHIP_REDU) ? "FIB_ORDEF_REDU" : \
00569 ((chip) == UVES_CHIP_REDL) ? "FIB_ORDEF_REDL" : \
00570 "???") : "??UVES??")
00571 #define FLAMES_ORDEF_EXTENSION(flames, chip) 0
00572
00573
00574
00575
00576
00577 #define UVES_FORMATCHECK(flames,blue) ((flames) ? "FIB_ARC_LAMP_FORM_RED" : \
00578 ((blue) ? "ARC_LAMP_FORM_BLUE" : "ARC_LAMP_FORM_RED"))
00579
00580
00581 #define UVES_ORDER_FLAT(flames, blue) ((flames) ? "FIB_ORDEF_RED" : \
00582 ((blue) ? "ORDER_FLAT_BLUE" : "ORDER_FLAT_RED"))
00583
00584
00585 #define UVES_BIAS(blue) ((blue) ? "BIAS_BLUE" : "BIAS_RED")
00586
00587
00588 #define UVES_DARK(blue) ((blue) ? "DARK_BLUE" : "DARK_RED")
00589 #define UVES_PDARK(blue) ((blue) ? "PDARK_BLUE" : "PDARK_RED")
00590
00591
00592 #define UVES_FLAT(blue) ((blue) ? "FLAT_BLUE" : "FLAT_RED")
00593 #define UVES_IFLAT(blue) ((blue) ? "IFLAT_BLUE" : "IFLAT_RED")
00594 #define UVES_DFLAT(blue) ((blue) ? "DFLAT_BLUE" : "DFLAT_RED")
00595 #define UVES_SFLAT(blue) ((blue) ? "SFLAT_BLUE" : "SFLAT_RED")
00596 #define UVES_TFLAT(blue) ((blue) ? "TFLAT_BLUE" : "TFLAT_RED")
00597 #define UVES_SCREEN_FLAT(blue) ((blue) ? "SCREEN_FLAT_BLUE" : "SCREEN_FLAT_RED")
00598
00599
00600 #define UVES_ARC_LAMP(flames,blue) ((flames) ? "FIB_ARC_LAMP_RED" : \
00601 ((blue) ? "ARC_LAMP_BLUE" : "ARC_LAMP_RED"))
00602
00603 #define UVES_ECH_ARC_LAMP(blue) ((blue) ? "ECH_ARC_LAMP_BLUE" : "ECH_ARC_LAMP_RED")
00604
00605
00606 #define UVES_CD_ALIGN(blue) ((blue) ? "CD_ALIGN_BLUE" : "CD_ALIGN_RED")
00607
00608
00609 #define UVES_STD_STAR(blue) ((blue) ? "STANDARD_BLUE" : "STANDARD_RED")
00610
00611
00612 #define UVES_SCIENCE(blue) ((blue) ? "SCIENCE_BLUE" : "SCIENCE_RED")
00613 #define UVES_SCI_EXTND(blue) ((blue) ? "SCI_EXTND_BLUE" : "SCI_EXTND_RED")
00614 #define UVES_SCI_POINT(blue) ((blue) ? "SCI_POINT_BLUE" : "SCI_POINT_RED")
00615 #define UVES_SCI_SLICER(blue) ((blue) ? "SCI_SLICER_BLUE" : "SCI_SLICER_RED")
00616
00617
00618 #define UVES_DRS_SETUP(flames, chip) ((flames) ? \
00619 (((chip) == UVES_CHIP_REDU) ? "FIB_DRS_REDU" : \
00620 ((chip) == UVES_CHIP_REDL) ? "FIB_DRS_REDL" : "???") \
00621 : \
00622 (((chip) == UVES_CHIP_BLUE) ? "DRS_SETUP_BLUE" : \
00623 ((chip) == UVES_CHIP_REDU) ? "DRS_SETUP_REDU" : \
00624 ((chip) == UVES_CHIP_REDL) ? "DRS_SETUP_REDL" : "???"))
00625
00626 #define UVES_DRS_SETUP_EXTENSION(chip) 1
00627
00628
00629 #define UVES_GUESS_ORDER_TABLE(flames,chip) ((flames) ? \
00630 (((chip) == UVES_CHIP_REDU) ? "FIB_ORD_GUE_REDU" : \
00631 ((chip) == UVES_CHIP_REDL) ? "FIB_ORD_GUE_REDL" : "???")\
00632 : \
00633 (((chip) == UVES_CHIP_BLUE) ? "ORDER_GUESS_TAB_BLUE" : \
00634 ((chip) == UVES_CHIP_REDU) ? "ORDER_GUESS_TAB_REDU" : \
00635 ((chip) == UVES_CHIP_REDL) ? "ORDER_GUESS_TAB_REDL" : \
00636 "???"))
00637
00638
00639
00640 #define UVES_ORD_TAB(flames,chip) ((flames) ? \
00641 (((chip) == UVES_CHIP_REDU) ? "FIB_ORD_TAB_REDU" : \
00642 ((chip) == UVES_CHIP_REDL) ? "FIB_ORD_TAB_REDL" : "???")\
00643 : \
00644 (((chip) == UVES_CHIP_BLUE) ? "ORDER_TABLE_BLUE" : \
00645 ((chip) == UVES_CHIP_REDU) ? "ORDER_TABLE_REDU" : \
00646 ((chip) == UVES_CHIP_REDL) ? "ORDER_TABLE_REDL" : \
00647 "???"))
00648
00649 #define UVES_GUESS_ORDER_TABLE_EXTENSION(flames,chip) 1
00650
00651
00652
00653 #define UVES_ORDER_TABLE(flames,chip) ((flames) ? \
00654 (((chip) == UVES_CHIP_REDU) ? "FIB_ORDEF_TABLE_REDU" : \
00655 ((chip) == UVES_CHIP_REDL) ? "FIB_ORDEF_TABLE_REDL" : \
00656 "???") \
00657 : \
00658 (((chip) == UVES_CHIP_BLUE) ? "ORDER_TABLE_BLUE" : \
00659 ((chip) == UVES_CHIP_REDU) ? "ORDER_TABLE_REDU" : \
00660 ((chip) == UVES_CHIP_REDL) ? "ORDER_TABLE_REDL" : \
00661 "???"))
00662 #define UVES_ORDER_TABLE_EXTENSION 1
00663 #define UVES_ORDER_TABLE_EXTENSION_POLY 2
00664 #define UVES_ORDER_TABLE_EXTENSION_FIBRE 3
00665
00666
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684 #define FLAMES_SCI_INFO_TAB "FIB_SCI_INFO_TAB"
00685
00686 #define FLAMES_MWXB_SCI(chip) ( \
00687 ((chip) == UVES_CHIP_REDU) ? "MWXB_SCI_REDU" : \
00688 ((chip) == UVES_CHIP_REDL) ? "MWXB_SCI_REDL" : \
00689 "???")
00690
00691 #define FLAMES_ERR_MWXB_SCI(chip) ( \
00692 ((chip) == UVES_CHIP_REDU) ? "ERR_MWXB_SCI_REDU" : \
00693 ((chip) == UVES_CHIP_REDL) ? "ERR_MWXB_SCI_REDL" : \
00694 "???")
00695
00696
00697 #define FLAMES_XB_SCI(chip) ( \
00698 ((chip) == UVES_CHIP_REDU) ? "XB_SCI_REDU" : \
00699 ((chip) == UVES_CHIP_REDL) ? "XB_SCI_REDL" : \
00700 "???")
00701
00702 #define FLAMES_ERR_XB_SCI(chip) ( \
00703 ((chip) == UVES_CHIP_REDU) ? "ERR_XB_SCI_REDU" : \
00704 ((chip) == UVES_CHIP_REDL) ? "ERR_XB_SCI_REDL" : \
00705 "???")
00706
00707 #define FLAMES_WXB_SCI(chip) ( \
00708 ((chip) == UVES_CHIP_REDU) ? "WXB_SCI_REDU" : \
00709 ((chip) == UVES_CHIP_REDL) ? "WXB_SCI_REDL" : \
00710 "???")
00711
00712 #define FLAMES_ERR_WXB_SCI(chip) ( \
00713 ((chip) == UVES_CHIP_REDU) ? "ERR_WXB_SCI_REDU" : \
00714 ((chip) == UVES_CHIP_REDL) ? "ERR_WXB_SCI_REDL" : \
00715 "???")
00716
00717
00718 #define FLAMES_MWXB_SCI_RAW(chip) ( \
00719 ((chip) == UVES_CHIP_REDU) ? "MWXB_SCI_RAW_REDU" : \
00720 ((chip) == UVES_CHIP_REDL) ? "MWXB_SCI_RAW_REDL" : \
00721 "???")
00722
00723 #define FLAMES_ERR_MWXB_SCI_RAW(chip) ( \
00724 ((chip) == UVES_CHIP_REDU) ? "ERR_MWXB_SCI_RAW_REDU" : \
00725 ((chip) == UVES_CHIP_REDL) ? "ERR_MWXB_SCI_RAW_REDL" : \
00726 "???")
00727
00728
00729 #define FLAMES_WXB_SCI_RAW(chip) ( \
00730 ((chip) == UVES_CHIP_REDU) ? "WXB_SCI_RAW_REDU" : \
00731 ((chip) == UVES_CHIP_REDL) ? "WXB_SCI_RAW_REDL" : \
00732 "???")
00733
00734 #define FLAMES_ERR_WXB_SCI_RAW(chip) ( \
00735 ((chip) == UVES_CHIP_REDU) ? "ERR_WXB_SCI_RAW_REDU" : \
00736 ((chip) == UVES_CHIP_REDL) ? "ERR_WXB_SCI_RAW_REDL" : \
00737 "???")
00738
00739
00740 #define FLAMES_XB_SCI_RAW(chip) ( \
00741 ((chip) == UVES_CHIP_REDU) ? "XB_SCI_RAW_REDU" : \
00742 ((chip) == UVES_CHIP_REDL) ? "XB_SCI_RAW_REDL" : \
00743 "???")
00744
00745 #define FLAMES_ERR_XB_SCI_RAW(chip) ( \
00746 ((chip) == UVES_CHIP_REDU) ? "ERR_XB_SCI_RAW_REDU" : \
00747 ((chip) == UVES_CHIP_REDL) ? "ERR_XB_SCI_RAW_REDL" : \
00748 "???")
00749
00750
00751
00752
00753
00754 #define UVES_BACKGR_TABLE(chip) (((chip) == UVES_CHIP_BLUE) ? "BACKGR_TABLE_BLUE" : \
00755 ((chip) == UVES_CHIP_REDU) ? "BACKGR_TABLE_REDU" : \
00756 ((chip) == UVES_CHIP_REDL) ? "BACKGR_TABLE_REDL" : "???")
00757
00758
00759 #define UVES_MASTER_BIAS(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_BIAS_BLUE" : \
00760 ((chip) == UVES_CHIP_REDU) ? "MASTER_BIAS_REDU" : \
00761 ((chip) == UVES_CHIP_REDL) ? "MASTER_BIAS_REDL" : "???")
00762 #define UVES_MASTER_BIAS_EXTENSION(chip) 0
00763
00764
00765 #define UVES_MASTER_ARC_FORM(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_FORM_BLUE" : \
00766 ((chip) == UVES_CHIP_REDU) ? "MASTER_FORM_REDU" : \
00767 ((chip) == UVES_CHIP_REDL) ? "MASTER_FORM_REDL" : "???")
00768
00769 #define UVES_MASTER_ARC_FORM_EXTENSION(chip) 0
00770
00771
00772 #define UVES_MASTER_DARK(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_DARK_BLUE" : \
00773 ((chip) == UVES_CHIP_REDU) ? "MASTER_DARK_REDU" : \
00774 ((chip) == UVES_CHIP_REDL) ? "MASTER_DARK_REDL" : "???")
00775
00776 #define UVES_MASTER_PDARK(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_PDARK_BLUE": \
00777 ((chip) == UVES_CHIP_REDU) ? "MASTER_PDARK_REDU": \
00778 ((chip) == UVES_CHIP_REDL) ? "MASTER_PDARK_REDL": "???")
00779
00780 #define UVES_MASTER_DARK_EXTENSION(chip) 0
00781
00782
00783 #define UVES_MASTER_FLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_FLAT_BLUE" : \
00784 ((chip) == UVES_CHIP_REDU) ? "MASTER_FLAT_REDU" : \
00785 ((chip) == UVES_CHIP_REDL) ? "MASTER_FLAT_REDL" : "???")
00786 #define UVES_MASTER_DFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_DFLAT_BLUE" : \
00787 ((chip) == UVES_CHIP_REDU) ? "MASTER_DFLAT_REDU" : \
00788 ((chip) == UVES_CHIP_REDL) ? "MASTER_DFLAT_REDL" : "???")
00789 #define UVES_MASTER_SFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_SFLAT_BLUE" : \
00790 ((chip) == UVES_CHIP_REDU) ? "MASTER_SFLAT_REDU" : \
00791 ((chip) == UVES_CHIP_REDL) ? "MASTER_SFLAT_REDL" : "???")
00792 #define UVES_MASTER_IFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_IFLAT_BLUE" : \
00793 ((chip) == UVES_CHIP_REDU) ? "MASTER_IFLAT_REDU" : \
00794 ((chip) == UVES_CHIP_REDL) ? "MASTER_IFLAT_REDL" : "???")
00795 #define UVES_MASTER_TFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_TFLAT_BLUE" : \
00796 ((chip) == UVES_CHIP_REDU) ? "MASTER_TFLAT_REDU" : \
00797 ((chip) == UVES_CHIP_REDL) ? "MASTER_TFLAT_REDL" : "???")
00798 #define UVES_REF_TFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "REF_TFLAT_BLUE" : \
00799 ((chip) == UVES_CHIP_REDU) ? "REF_TFLAT_REDU" : \
00800 ((chip) == UVES_CHIP_REDL) ? "REF_TFLAT_REDL" : "???")
00801 #define UVES_MASTER_SCREEN_FLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_SCREEN_FLAT_BLUE" : \
00802 ((chip) == UVES_CHIP_REDU) ? "MASTER_SCREEN_FLAT_REDU" : \
00803 ((chip) == UVES_CHIP_REDL) ? "MASTER_SCREEN_FLAT_REDL" : \
00804 "???")
00805 #define UVES_MASTER_FLAT_EXTENSION(chip) 0
00806 #define UVES_BKG_FLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "BKG_FLAT_BLUE" : \
00807 ((chip) == UVES_CHIP_REDU) ? "BKG_FLAT_REDU" : \
00808 ((chip) == UVES_CHIP_REDL) ? "BKG_FLAT_REDL" : "???" )
00809 #define UVES_RATIO_TFLAT(chip) (((chip) == UVES_CHIP_BLUE) ? "RATIO_TFLAT_BLUE" : \
00810 ((chip) == UVES_CHIP_REDU) ? "RATIO_TFLAT_REDU" : \
00811 ((chip) == UVES_CHIP_REDL) ? "RATIO_TFLAT_REDL" : "???" )
00812
00813 #define UVES_WEIGHTS(chip) ((chip) == UVES_CHIP_REDU ? "WEIGHTS_REDU" : \
00814 (chip) == UVES_CHIP_REDL ? "WEIGHTS_REDL" : \
00815 (chip) == UVES_CHIP_BLUE ? "WEIGHTS_BLUE" : \
00816 "???")
00817
00818 #define UVES_LINE_TABLE(flames,chip) ((flames) ? \
00819 (((chip) == UVES_CHIP_REDU) ? "FIB_LINE_TABLE_REDU" : \
00820 ((chip) == UVES_CHIP_REDL) ? "FIB_LINE_TABLE_REDL" : "???")\
00821 : \
00822 (((chip) == UVES_CHIP_BLUE) ? "LINE_TABLE_BLUE" : \
00823 ((chip) == UVES_CHIP_REDU) ? "LINE_TABLE_REDU" : \
00824 ((chip) == UVES_CHIP_REDL) ? "LINE_TABLE_REDL" : "???"))
00825
00826
00827 #define UVES_GUESS_LINE_TABLE(flames,chip) ((flames) ? \
00828 (((chip) == UVES_CHIP_REDU) ? "FIB_LIN_GUE_REDU" : \
00829 ((chip) == UVES_CHIP_REDL) ? "FIB_LIN_GUE_REDL" : "???")\
00830 : \
00831 (((chip) == UVES_CHIP_BLUE) ? "LINE_GUESS_TAB_BLUE" : \
00832 ((chip) == UVES_CHIP_REDU) ? "LINE_GUESS_TAB_REDU" : \
00833 ((chip) == UVES_CHIP_REDL) ? "LINE_GUESS_TAB_REDL" : "???"))
00834
00835 #define UVES_LINE_TABLE_EXTENSION 1
00836 #define UVES_LINE_TABLE_EXTENSION_DISPERSION 2
00837 #define UVES_LINE_TABLE_EXTENSION_ABSORDER 3
00838
00839
00840 #define UVES_LINE_TABLE_MIDAS_BLUE(window) (((window)==1) ? "LINE_TABLE_BLUE1" : \
00841 ((window)==2) ? "LINE_TABLE_BLUE2" : \
00842 ((window)==3) ? "LINE_TABLE_BLUE3" : \
00843 "LINE_TABLE_BLUEx")
00844 #define UVES_LINE_TABLE_MIDAS_REDL(window) (((window)==1) ? "LINE_TABLE_REDL1" : \
00845 ((window)==2) ? "LINE_TABLE_REDL2" : \
00846 ((window)==3) ? "LINE_TABLE_REDL3" : \
00847 "LINE_TABLE_REDLx")
00848 #define UVES_LINE_TABLE_MIDAS_REDU(window) (((window)==1) ? "LINE_TABLE_REDU1" : \
00849 ((window)==2) ? "LINE_TABLE_REDU2" : \
00850 ((window)==3) ? "LINE_TABLE_REDU3" : \
00851 "LINE_TABLE_REDUx")
00852 #define UVES_LINE_TABLE_MIDAS(chip,window) ( ((chip) == UVES_CHIP_BLUE) ? \
00853 UVES_LINE_TABLE_MIDAS_BLUE(window) : \
00854 ((chip) == UVES_CHIP_REDU) ? \
00855 UVES_LINE_TABLE_MIDAS_REDU(window) : \
00856 ((chip) == UVES_CHIP_REDL) ? \
00857 UVES_LINE_TABLE_MIDAS_REDL(window) : "???")
00858
00859
00860 #define UVES_INSTR_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "INSTR_RESPONSE_BLUE" : \
00861 ((chip) == UVES_CHIP_REDU) ? "INSTR_RESPONSE_REDU" : \
00862 ((chip) == UVES_CHIP_REDL) ? "INSTR_RESPONSE_REDL" : "???")
00863 #define UVES_INSTR_RESPONSE_EXTENSION(chip) 0
00864
00865 #define UVES_MASTER_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "MASTER_RESPONSE_BLUE" : \
00866 ((chip) == UVES_CHIP_REDU) ? "MASTER_RESPONSE_REDU" : \
00867 ((chip) == UVES_CHIP_REDL) ? "MASTER_RESPONSE_REDL" : "???")
00868 #define UVES_MASTER_RESPONSE_EXTENSION(chip) 0
00869
00870 #define UVES_WCALIB_FF_RESPONSE(chip) (((chip) == UVES_CHIP_BLUE) ? "WCALIB_FF_RESPONSE_BLUE" : \
00871 ((chip) == UVES_CHIP_REDU) ? "WCALIB_FF_RESPONSE_REDU" : \
00872 ((chip) == UVES_CHIP_REDL) ? "WCALIB_FF_RESPONSE_REDL" : \
00873 "???")
00874 #define UVES_RED_STD(chip) (((chip) == UVES_CHIP_BLUE) ? "RED_STD_BLUE" : \
00875 ((chip) == UVES_CHIP_REDU) ? "RED_STD_REDU" : \
00876 ((chip) == UVES_CHIP_REDL) ? "RED_STD_REDL" : "???")
00877
00878 #define UVES_RED_NOAPPEND_STD(chip) (((chip) == UVES_CHIP_BLUE) ? "RED_NONMERGED_STD_BLUE" : \
00879 ((chip) == UVES_CHIP_REDU) ? "RED_NONMERGED_STD_REDU" : \
00880 ((chip) == UVES_CHIP_REDL) ? "RED_NONMERGED_STD_REDL" : "???")
00881
00882 #define UVES_BKG_STD(chip) (((chip) == UVES_CHIP_BLUE) ? "BKG_STD_BLUE" : \
00883 ((chip) == UVES_CHIP_REDU) ? "BKG_STD_REDU" : \
00884 ((chip) == UVES_CHIP_REDL) ? "BKG_STD_REDL" : "???")
00885
00886 #define UVES_ORDER_EXTRACT_QC(chip) (((chip) == UVES_CHIP_BLUE) ? "ORDER_EXTRACT_QC_BLUE" : \
00887 ((chip) == UVES_CHIP_REDU) ? "ORDER_EXTRACT_QC_REDU" : \
00888 ((chip) == UVES_CHIP_REDL) ? "ORDER_EXTRACT_QC_REDL" : "???")
00889
00890 #define UVES_EFFICIENCY_TABLE(chip) (((chip) == UVES_CHIP_BLUE) ? "EFFICIENCY_TABLE_BLUE" : \
00891 ((chip) == UVES_CHIP_REDU) ? "EFFICIENCY_TABLE_REDU" : \
00892 ((chip) == UVES_CHIP_REDL) ? "EFFICIENCY_TABLE_REDL" : "???")
00893
00894
00895 #define UVES_CD_ALIGN_TABLE(blue) ((blue) ? "CD_ALIGN_TABLE_BLUE" : "CD_ALIGN_TABLE_RED")
00896
00897
00898
00899
00900
00901
00902 #define UVES_LINE_REFER_TABLE "LINE_REFER_TABLE"
00903 #define UVES_LINE_REFER_TABLE_EXTENSION 1
00904
00905 #define UVES_LINE_INTMON_TABLE "LINE_INTMON_TABLE"
00906 #define UVES_LINE_INTMON_TABLE_EXTENSION 1
00907
00908
00909 #define UVES_FLUX_STD_TABLE "FLUX_STD_TABLE"
00910 #define UVES_FLUX_STD_TABLE_EXTENSION 1
00911
00912
00913 #define UVES_EXTCOEFF_TABLE "EXTCOEFF_TABLE"
00914 #define UVES_EXTCOEFF_TABLE_EXTENSION 1
00915
00916
00917
00918
00919
00920 #define UVES_ALL_STATS (CPL_STATS_MEAN | CPL_STATS_STDEV | CPL_STATS_MEDIAN | \
00921 CPL_STATS_MIN | CPL_STATS_MAX)
00922 #define DICTIONARY "PRO-1.15"
00923
00924
00925
00926
00927 int uves_contains_frames_kind(cpl_frameset * sof,
00928 cpl_frameset* raw,
00929 const char* type);
00930
00931 char *
00932 uves_local_filename(const char *prefix, enum uves_chip chip, int trace, int window);
00933
00934 void
00935 uves_copy_if_possible(uves_propertylist *to, const uves_propertylist *from,
00936 const char *name);
00937
00938 void
00939 uves_warn_if_chip_names_dont_match(const uves_propertylist *calib_header,
00940 const char *raw_chip_name, enum uves_chip chip);
00941
00942 cpl_error_code
00943 uves_extract_frames_group_type(const cpl_frameset * set, cpl_frameset** ext,
00944 cpl_frame_group type);
00945 cpl_error_code
00946 uves_frameset_merge(cpl_frameset * set1, const cpl_frameset* set2);
00947 cpl_error_code
00948 uves_sflats_get_encoder_steps(const cpl_frameset * set, cpl_table** encoder_tbl, int* nset);
00949
00950 cpl_error_code uves_dfs_set_groups(cpl_frameset *);
00951
00952 cpl_image *
00953 uves_crop_and_rotate(const cpl_image *image, const uves_propertylist *header,
00954 enum uves_chip chip,
00955 const uves_propertylist *redl_header,
00956 bool new_format, uves_propertylist **out_header);
00957
00958 void *uves_read_midas_array(const uves_propertylist *plist, const char *name, int *length,
00959 cpl_type *type, int *nkeys);
00960 polynomial *
00961 uves_polynomial_convert_from_plist_midas(const uves_propertylist *plist,
00962 const char *regression_name,
00963 const int index);
00964
00965
00966 void
00967 uves_dfs_write_statistics(const cpl_image *image, uves_propertylist *header,
00968 unsigned stats_mask);
00969
00970 cpl_error_code
00971 uves_frameset_insert(cpl_frameset *frames,
00972 void *object,
00973 cpl_frame_group group,
00974 cpl_frame_type type,
00975 cpl_frame_level level,
00976 const char *filename,
00977 const char *tag,
00978 const uves_propertylist *raw_header,
00979 const uves_propertylist *primary_header,
00980 const uves_propertylist *table_header,
00981 const cpl_parameterlist *parameters,
00982 const char *recipe,
00983 const char *pipeline,
00984 cpl_table **qc,
00985 const char *start_time,
00986 bool dump_paf,
00987 unsigned stats_mask);
00988
00989 int uves_check_rec_status(const int val) ;
00990
00991 cpl_error_code
00992 uves_save_image_local(const char *description, const char *filename_prefix,
00993 const cpl_image *image,
00994 enum uves_chip chip, int trace, int window,
00995 const uves_propertylist *plist,
00996 bool use_bitpix16_for_int);
00997
00998 cpl_error_code uves_save_table_local(const char *description, const char *filename_prefix,
00999 const cpl_table *table,
01000 enum uves_chip chip, int trace, int window,
01001 const uves_propertylist *pheader,
01002 const uves_propertylist *eheader);
01003 cpl_error_code uves_save_polynomial(polynomial *p, const char *filename,
01004 const uves_propertylist *header);
01005
01006 void uves_save_image(const cpl_image *image, const char *filename, const uves_propertylist *plist,
01007 bool use_bitpix16_for_int, bool save1d);
01008
01009 void uves_save_imagelist(const cpl_imagelist *iml, const char *filename, const uves_propertylist *plist);
01010
01011 cpl_image *uves_load_image(const cpl_frame *f,
01012 int plane,
01013 int extension,
01014 uves_propertylist **header);
01015
01016 cpl_image *uves_load_image_file(const char *filename,
01017 int plane,
01018 int extension,
01019 uves_propertylist **header);
01020
01021
01022
01023 cpl_error_code
01024 uves_load_master_formatcheck(const cpl_frameset *frames, const char *chip_name,
01025 const char **mform_filename,
01026 cpl_image **mform, uves_propertylist **mform_header, enum uves_chip chip);
01027
01028 cpl_error_code uves_load_formatcheck(const cpl_frameset *frames,
01029 bool flames,
01030 const char **raw_filename,
01031 cpl_image *raw_image[2],
01032 uves_propertylist *raw_header[2],
01033 uves_propertylist *rotated_header[2], bool *blue);
01034
01035 cpl_error_code uves_load_orderpos(const cpl_frameset *frames,
01036 bool flames,
01037 const char **raw_filename,
01038 cpl_image *raw_image[2],
01039 uves_propertylist *raw_header[2],
01040 uves_propertylist *rotated_header[2],
01041 bool *blue);
01042
01043 void uves_load_arclamp(const cpl_frameset *frames,
01044 bool flames,
01045 const char **raw_filename,
01046 cpl_image *raw_image[2], uves_propertylist *raw_header[2],
01047 uves_propertylist *rotated_header[2],
01048 bool *blue, bool *sim_cal);
01049
01050 cpl_error_code uves_load_science(const cpl_frameset *frames, const char **raw_filename,
01051 cpl_image *raw_image[2],
01052 uves_propertylist *raw_header[2],
01053 uves_propertylist *rotated_header[2],
01054 bool *blue,
01055 const char **sci_type);
01056 cpl_error_code uves_load_standard(const cpl_frameset *frames, const char **raw_filename,
01057 cpl_image *raw_image[2], uves_propertylist *raw_header[2],
01058 uves_propertylist *rotated_header[2], bool *blue);
01059 cpl_error_code uves_load_raw_imagelist(const cpl_frameset *frames,
01060 bool flames,
01061 const char *blue_tag,
01062 const char *red_tag, cpl_type type,
01063 cpl_imagelist *images[2], uves_propertylist **raw_headers[2],
01064 uves_propertylist *rotated_header[2],
01065 bool *blue);
01066
01067
01068 cpl_error_code uves_load_drs(const cpl_frameset *frames,
01069 bool flames,
01070 const char *chip_name,
01071 const char **drs_filename,
01072 uves_propertylist **drs_header,
01073 enum uves_chip chip);
01074 cpl_error_code uves_load_mbias(const cpl_frameset *frames, const char *chip_id,
01075 const char **mbias_filename,
01076 cpl_image **mbias, uves_propertylist **mbias_header,
01077 enum uves_chip chip);
01078 cpl_error_code uves_load_mdark(const cpl_frameset *frames, const char *chip_id,
01079 const char **mdark_filename,
01080 cpl_image **mdark, uves_propertylist **mdark_header,
01081 enum uves_chip chip);
01082 cpl_error_code uves_load_mflat_const(const cpl_frameset *frames, const char *chip_name,
01083 const char **mflat_filename,
01084 cpl_image **mflat, uves_propertylist **mflat_header,
01085 enum uves_chip chip,
01086 const cpl_frame **mflat_frame);
01087 cpl_error_code uves_load_mflat(cpl_frameset *frames, const char *chip_name,
01088 const char **mflat_filename,
01089 cpl_image **mflat, uves_propertylist **mflat_header,
01090 enum uves_chip chip,
01091 cpl_frame **mflat_frame);
01092 cpl_image *
01093 uves_load_weights(const cpl_frameset *frames, const char **weights_filename,
01094 enum uves_chip chip);
01095
01096 void uves_load_ref_flat(const cpl_frameset *frames, const char *chip_name,
01097 const char **filename, cpl_image **rflat,
01098 uves_propertylist **rflat_header, enum uves_chip chip);
01099
01100 cpl_error_code uves_load_ordertable(const cpl_frameset *frames,
01101 bool flames,
01102 const char *chip_id,
01103 const char **ordertable_filename,
01104 cpl_table **ordertable,
01105 uves_propertylist **ordertable_header,
01106 uves_propertylist **ordertable_xheader,
01107 polynomial **order_locations,
01108 cpl_table **traces,
01109 int *tab_in_out_oshift,
01110 double *tab_in_out_yshift,
01111 int ** fibre_mask,
01112 double ** fibre_pos,
01113 enum uves_chip chip,
01114 bool guess_table);
01115
01116 void uves_load_linetable_const(const cpl_frameset *frames,
01117 bool flames,
01118 const char *chip_name,
01119 const polynomial *order_locations,
01120 int minorder, int maxorder,
01121 const char **linetable_filename,
01122 const cpl_table **linetable,
01123 const uves_propertylist **linetable_header,
01124 const polynomial **dispersion_relation,
01125 polynomial **absolute_order,
01126 enum uves_chip chip, int trace_id, int window);
01127
01128 void uves_load_linetable(const cpl_frameset *frames,
01129 bool flames,
01130 const char *chip_name,
01131 const polynomial *order_locations,
01132 int minorder, int maxorder,
01133 const char **linetable_filename,
01134 cpl_table **linetable,
01135 uves_propertylist **linetable_header,
01136 polynomial **dispersion_relation,
01137 polynomial **absolute_order,
01138 enum uves_chip chip, int trace_id, int window);
01139
01140 cpl_error_code uves_load_response_curve(const cpl_frameset *frames, const char *chip_name,
01141 const char **response_filename,
01142 cpl_image **response_curve,
01143 cpl_table **master_response,
01144 uves_propertylist **response_header, enum uves_chip chip);
01145
01146 void uves_load_corvel(const cpl_frameset *frames,
01147 cpl_table **corvel,
01148 uves_propertylist **corvel_header,
01149 const char **corvel_filename);
01150
01151 void uves_load_cd_align(const cpl_frameset *frames,
01152 const char **raw_filename1,
01153 const char **raw_filename2,
01154 cpl_image *raw_image1[2],
01155 cpl_image *raw_image2[2],
01156 uves_propertylist *raw_header1[2],
01157 uves_propertylist *raw_header2[2],
01158 uves_propertylist *rotated_header1[2],
01159 uves_propertylist *rotated_header2[2],
01160 bool *blue);
01161
01162
01163 cpl_error_code uves_load_linerefertable(const cpl_frameset *frames,
01164 const char **line_refer_filename,
01165 cpl_table **line_refer,
01166 uves_propertylist **line_refer_header);
01167
01168 cpl_error_code uves_load_lineintmon(const cpl_frameset *frames,
01169 const char **line_intmonr_filename,
01170 cpl_table **line_intmon);
01171
01172 cpl_error_code uves_load_flux_table(const cpl_frameset *frames, const char **flux_table_filename,
01173 cpl_table **flux_table);
01174
01175 cpl_error_code uves_load_atmo_ext(const cpl_frameset *frames,
01176 const char **atmext_table_filename,
01177 cpl_table **atmext_table);
01178
01179
01180
01181
01182 char *uves_masterbias_filename(enum uves_chip chip);
01183
01184
01185 char *uves_masterdark_filename(enum uves_chip chip);
01186
01187
01188 char *uves_masterflat_filename(enum uves_chip chip);
01189 char *uves_masterflat_bkg_filename(enum uves_chip chip);
01190
01191
01192 char *uves_ordef_filename(enum uves_chip chip);
01193 char *uves_order_table_filename(enum uves_chip chip);
01194 char *uves_guess_order_table_filename(enum uves_chip chip);
01195 char *uves_guess_line_table_filename(enum uves_chip chip);
01196
01197
01198 char *uves_line_table_filename(enum uves_chip chip);
01199 char *uves_line_table_filename_paf(enum uves_chip chip);
01200
01201
01202 char *uves_response_curve_filename(enum uves_chip chip);
01203 char *uves_response_curve_2d_filename(enum uves_chip chip);
01204 char *uves_response_red_standard_filename(enum uves_chip chip);
01205 char *uves_response_red_noappend_standard_filename(enum uves_chip chip);
01206 char *uves_response_efficiency_filename(enum uves_chip chip);
01207 char *uves_response_bkg_standard_filename(enum uves_chip chip);
01208
01209 char *uves_order_extract_qc_standard_filename(enum uves_chip chip);
01210
01211
01212 char *uves_flat_ratio_filename(enum uves_chip chip);
01213
01214
01215 char *uves_cd_align_filename(enum uves_chip chip);
01216
01217
01218 char *uves_scired_red_science_filename(enum uves_chip chip);
01219 char *uves_scired_red_noappend_science_filename(enum uves_chip chip);
01220 char *uves_scired_red_2d_science_filename(enum uves_chip chip);
01221 char *uves_scired_red_error_filename(enum uves_chip chip);
01222 char *uves_scired_red_noappend_error_filename(enum uves_chip chip);
01223 char *uves_scired_red_2d_error_filename(enum uves_chip chip);
01224 char *uves_scired_fluxcal_science_filename(enum uves_chip chip);
01225 char *uves_scired_fluxcal_science_noappend_filename(enum uves_chip chip);
01226 char *uves_scired_fluxcal_science_2d_filename(enum uves_chip chip);
01227 char *uves_scired_fluxcal_error_filename(enum uves_chip chip);
01228 char *uves_scired_fluxcal_error_noappend_filename(enum uves_chip chip);
01229 char *uves_scired_fluxcal_error_2d_filename(enum uves_chip chip);
01230 char *uves_scired_ff_variance_filename(enum uves_chip chip);
01231 char *uves_scired_ff_variance_2d_filename(enum uves_chip chip);
01232 char *uves_scired_background_filename(enum uves_chip chip);
01233 char *uves_scired_merged_sky_filename(enum uves_chip chip);
01234 char *uves_scired_merged_science_filename(enum uves_chip chip);
01235 char *uves_scired_merged_2d_science_filename(enum uves_chip chip);
01236 char *uves_scired_resampled_filename(enum uves_chip chip);
01237 char *uves_scired_resampled_2d_filename(enum uves_chip chip);
01238 char *uves_scired_resampledmf_filename(enum uves_chip chip);
01239 char *uves_scired_rebinned_filename(enum uves_chip chip);
01240 char *uves_scired_rebinned_2d_filename(enum uves_chip chip);
01241 char *uves_scired_ordertrace_filename(enum uves_chip chip);
01242 char *uves_scired_wmap_filename(enum uves_chip chip);
01243 char *uves_scired_crmask_filename(enum uves_chip chip);
01244 char *uves_scired_ext2d_filename(enum uves_chip chip);
01245 char *uves_scired_ff2d_filename(enum uves_chip chip);
01246 cpl_image*
01247 uves_vector_to_image(const cpl_vector* vector,cpl_type type);
01248
01249
01250 cpl_error_code
01251 uves_check_if_format_is_midas(uves_propertylist* header, bool* format_is_midas);
01252
01253
01254 #endif