00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <sys/types.h>
00024 #include <sys/stat.h>
00025 #include <time.h>
00026 #include <math.h>
00027 #include <unistd.h>
00028 #include <stdio.h>
00029 #include <cpl.h>
00030 #include "midiGlobal.h"
00031 #include "midiLib.h"
00032 #include "errorHandling.h"
00033 #include "fileHandling.h"
00034 #include "qfits.h"
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 void removePathName(
00063 char *fileName,
00064 FILE *filePtr)
00065 {
00066
00067
00068 const char routine[] = "removePathName";
00069 FILE *temp1Ptr, *temp2Ptr;
00070 size_t stringLength;
00071 unsigned int i, indexCount = 0;
00072 char nextChar;
00073
00074
00075
00076 if (diagnostic > 4)cpl_msg_info(cpl_func,"Invoking routine '%s' \n", routine);
00077 if (diagnostic > 4) fprintf (filePtr, "Invoking routine '%s' \n", routine);
00078
00079
00080 stringLength = strlen (fileName);
00081 temp1Ptr = fopen("temp1.grb", "w");
00082 fprintf (temp1Ptr, "%s\n", fileName);
00083 fclose (temp1Ptr);
00084 temp1Ptr = fopen("temp1.grb", "r");
00085 for (i = 0; i < stringLength; i++)
00086 {
00087 fscanf (temp1Ptr, "%c", &nextChar);
00088 if (memcmp (&nextChar, "/", 1) == 0) indexCount = i+1;
00089 }
00090 rewind (temp1Ptr);
00091 temp2Ptr = fopen("temp2.grb", "w");
00092 for (i = 0; i < stringLength; i++)
00093 {
00094 nextChar = fgetc (temp1Ptr);
00095 if (i >= indexCount) fputc (nextChar, temp2Ptr);
00096 }
00097 fclose (temp1Ptr);
00098 fclose (temp2Ptr);
00099 temp2Ptr = fopen("temp2.grb", "r");
00100 fscanf (temp2Ptr, "%s\n", fileName);
00101 fclose (temp2Ptr);
00102 remove ("temp1.grb");
00103 remove ("temp2.grb");
00104
00105 return;
00106 }
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 char getFirstCharacter (
00123 char *string)
00124 {
00125
00126
00127 const char routine[] = "getFirstCharacter";
00128 char firstChar;
00129 FILE *tempPtr;
00130
00131
00132
00133 if (diagnostic > 4)cpl_msg_info(cpl_func,"Invoking routine '%s' \n", routine);
00134
00135 if (string == NULL) return (' ');
00136
00137 tempPtr = fopen ("getFirstChar.grb", "w");
00138 fprintf (tempPtr, "%s\n", string);
00139 fclose (tempPtr);
00140 tempPtr = fopen ("getFirstChar.grb", "r");
00141 fscanf (tempPtr, "%c", &firstChar);
00142 fclose (tempPtr);
00143 remove ("getFirstChar.grb");
00144
00145 return (firstChar);
00146 }
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163 void getFitsNames (
00164 MidiFiles *fileNames,
00165 FILE *filePtr)
00166 {
00167
00168
00169 const char routine[] = "getFitsNames";
00170 char *argument;
00171 FILE *inFitsClassifiedPtr;
00172 struct stat buf;
00173 int numOfFiles;
00174
00175
00176
00177 if (diagnostic > 4)cpl_msg_info(cpl_func,"Invoking routine '%s' \n", routine);
00178 if (diagnostic > 4) fprintf (filePtr, "Invoking routine '%s' \n", routine);
00179
00180
00181 argument = (char *) calloc (MAX_STRING_LENGTH, sizeof (char));
00182
00183
00184 if (stat (fileNames->inFitsClassified, &buf) == 0)
00185 remove (fileNames->inFitsClassified);
00186
00187
00188 strcat (argument, "ls -1 ");
00189 strcat (argument, fileNames->inFileDir);
00190 strcat (argument, "MIDI*.fits ");
00191 strcat (argument, "> ");
00192 strcat (argument, fileNames->inFitsClassified);
00193 system (argument);
00194
00195
00196 inFitsClassifiedPtr = fopen (fileNames->inFitsClassified, "r");
00197 numOfFiles = 0;
00198 while (fscanf (inFitsClassifiedPtr, "%s\n", argument) != EOF)
00199 {
00200 numOfFiles++;
00201 }
00202 if (numOfFiles == 0)
00203 {
00204 sprintf (midiMessage, "Cannot find any valid MIDI FITS files in ... %s", fileNames->inFileDir);
00205 midiReportError (filePtr, routine, __FILE__, __LINE__, midiMessage);
00206 }
00207
00208 fclose (inFitsClassifiedPtr);
00209
00210
00211 free (argument);
00212
00213 return;
00214 }
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230 void cleanUpString (
00231 char *rawString,
00232 char *cleanString)
00233 {
00234
00235
00236 char *string=NULL, *qfitsStr=NULL;
00237
00238
00239
00240
00241
00242 string = (char *) calloc (MAX_STRING_LENGTH, sizeof (char));
00243
00244 sprintf (string, "%s", rawString);
00245 qfitsStr = qfits_pretty_string (string);
00246 sprintf (cleanString, "%s", qfitsStr);
00247
00248
00249 free (string);
00250
00251 return;
00252 }
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268 void removeNewLine (
00269 char *rawString,
00270 char *cleanString)
00271 {
00272
00273
00274 char lastChar, nextChar;
00275 FILE *tempPtr=NULL;
00276 int i;
00277 char *tempSrt=NULL;
00278 size_t newLength, stringLength;
00279
00280
00281
00282 tempSrt = (char *) calloc (MAX_STRING_LENGTH, sizeof (char));
00283 stringLength = strlen (rawString);
00284 tempPtr = fopen ("temp.grb", "w");
00285 fprintf (tempPtr, "%s\n", rawString);
00286 fclose (tempPtr);
00287 tempPtr = fopen ("temp.grb", "r");
00288
00289 newLength = 0;
00290 for (i = 0; i < (int)stringLength; i++)
00291 {
00292 nextChar = fgetc (tempPtr);
00293 if (nextChar == '\n' || nextChar == ' ') break;
00294 lastChar = nextChar;
00295 newLength++;
00296 }
00297 if (lastChar == ' ') newLength--;
00298 fclose (tempPtr);
00299 strncpy (tempSrt, rawString, newLength);
00300 sprintf (cleanString, "%s", tempSrt);
00301 remove ("temp.grb");
00302
00303 free (tempSrt);
00304
00305 return;
00306 }
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323 void createQcLog (
00324 char *inFitsName,
00325 int *error)
00326
00327 {
00328
00329
00330
00331 const char routine[] = "createQcLog";
00332 char *qfitsString, *emptyString, *cleanString;
00333
00334
00335
00336 if (diagnostic > 4)cpl_msg_info(cpl_func,"Invoking routine '%s' \n", routine);
00337 if (diagnostic > 4) fprintf(midiReportPtr, "Invoking routine '%s' \n", routine);
00338
00339
00340 *error = 0;
00341
00342
00343 emptyString = (char *) calloc (MIN_STRING_LENGTH, sizeof (char));
00344 cleanString = (char *) calloc (MAX_STRING_LENGTH, sizeof (char));
00345
00346
00347 strcpy (emptyString, "\"UNKNOWN\"");
00348
00349
00350 qfitsString = qfits_query_hdr (inFitsName, "ARCFILE");
00351 if (qfitsString == NULL)
00352 fprintf (midiQcLogPtr, "ARCFILE %s \n", emptyString);
00353 else {cleanUpString (qfitsString, cleanString);
00354 fprintf (midiQcLogPtr, "ARCFILE \"%s\" \n", cleanString);}
00355
00356 qfitsString = qfits_query_hdr (inFitsName, "TELESCOP");
00357 if (qfitsString == NULL)
00358 fprintf (midiQcLogPtr, "TELESCOP %s \n", emptyString);
00359 else {cleanUpString (qfitsString, cleanString);
00360 fprintf (midiQcLogPtr, "TELESCOP \"%s\" \n", cleanString);}
00361
00362 qfitsString = qfits_query_hdr (inFitsName, "INSTRUME");
00363 if (qfitsString == NULL)
00364 fprintf (midiQcLogPtr, "INSTRUME %s \n", emptyString);
00365 else {cleanUpString (qfitsString, cleanString);
00366 fprintf (midiQcLogPtr, "INSTRUME \"%s\" \n", cleanString);}
00367
00368 qfitsString = qfits_query_hdr (inFitsName, "MJD-OBS");
00369 if (qfitsString == NULL)
00370 fprintf (midiQcLogPtr, "MJD-OBS %s \n", emptyString);
00371 else {cleanUpString (qfitsString, cleanString);
00372 fprintf (midiQcLogPtr, "MJD-OBS \"%s\" \n", cleanString);}
00373
00374 qfitsString = qfits_query_hdr (inFitsName, "DATE-OBS");
00375 if (qfitsString == NULL)
00376 fprintf (midiQcLogPtr, "DATE-OBS %s \n", emptyString);
00377 else {cleanUpString (qfitsString, cleanString);
00378 fprintf (midiQcLogPtr, "DATE-OBS \"%s\" \n", cleanString);}
00379
00380 qfitsString = qfits_query_hdr (inFitsName, "UTC");
00381 if (qfitsString == NULL)
00382 fprintf (midiQcLogPtr, "UTC %s \n", emptyString);
00383 else {cleanUpString (qfitsString, cleanString);
00384 fprintf (midiQcLogPtr, "UTC %s \n", cleanString);}
00385
00386 qfitsString = qfits_query_hdr (inFitsName, "LST");
00387 if (qfitsString == NULL)
00388 fprintf (midiQcLogPtr, "LST %s \n", emptyString);
00389 else {cleanUpString (qfitsString, cleanString);
00390 fprintf (midiQcLogPtr, "LST %s \n", cleanString);}
00391
00392 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU GUID DEC");
00393 if (qfitsString == NULL)
00394 fprintf (midiQcLogPtr, "COU.GUID.DEC %s \n", emptyString);
00395 else {cleanUpString (qfitsString, cleanString);
00396 fprintf (midiQcLogPtr, "COU.GUID.DEC %s \n", cleanString);}
00397
00398 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU GUID RA");
00399 if (qfitsString == NULL)
00400 fprintf (midiQcLogPtr, "COU.GUID.RA %s \n", emptyString);
00401 else {cleanUpString (qfitsString, cleanString);
00402 fprintf (midiQcLogPtr, "COU.GUID.RA %s \n", cleanString);}
00403
00404 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU GUID MAG");
00405 if (qfitsString == NULL)
00406 fprintf (midiQcLogPtr, "COU.GUID.MAG %s \n", emptyString);
00407 else {cleanUpString (qfitsString, cleanString);
00408 fprintf (midiQcLogPtr, "COU.GUID.MAG %s \n", cleanString);}
00409
00410 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 STREHL_MEAN");
00411 if (qfitsString == NULL)
00412 fprintf (midiQcLogPtr, "COU.AO1.STREHL_MEAN %s \n", emptyString);
00413 else {cleanUpString (qfitsString, cleanString);
00414 fprintf (midiQcLogPtr, "COU.AO1.STREHL_MEAN %s \n", cleanString);}
00415
00416 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 STREHL_MEAN");
00417 if (qfitsString == NULL)
00418 fprintf (midiQcLogPtr, "COU.AO2.STREHL_MEAN %s \n", emptyString);
00419 else {cleanUpString (qfitsString, cleanString);
00420 fprintf (midiQcLogPtr, "COU.AO2.STREHL_MEAN %s \n", cleanString);}
00421
00422 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 STREHL_RMS");
00423 if (qfitsString == NULL)
00424 fprintf (midiQcLogPtr, "COU.AO1.STREHL_RMS %s \n", emptyString);
00425 else {cleanUpString (qfitsString, cleanString);
00426 fprintf (midiQcLogPtr, "COU.AO1.STREHL_RMS %s \n", cleanString);}
00427
00428 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 STREHL_RMS");
00429 if (qfitsString == NULL)
00430 fprintf (midiQcLogPtr, "COU.AO2.STREHL_RMS %s \n", emptyString);
00431 else {cleanUpString (qfitsString, cleanString);
00432 fprintf (midiQcLogPtr, "COU.AO2.STREHL_RMS %s \n", cleanString);}
00433
00434 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 WFE_MEAN");
00435 if (qfitsString == NULL)
00436 fprintf (midiQcLogPtr, "COU.AO1.WFE_MEAN %s \n", emptyString);
00437 else {cleanUpString (qfitsString, cleanString);
00438 fprintf (midiQcLogPtr, "COU.AO1.WFE_MEAN %s \n", cleanString);}
00439
00440 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 WFE_MEAN");
00441 if (qfitsString == NULL)
00442 fprintf (midiQcLogPtr, "COU.AO2.WFE_MEAN %s \n", emptyString);
00443 else {cleanUpString (qfitsString, cleanString);
00444 fprintf (midiQcLogPtr, "COU.AO2.WFE_MEAN %s \n", cleanString);}
00445
00446 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 WFE_RMS");
00447 if (qfitsString == NULL)
00448 fprintf (midiQcLogPtr, "COU.AO1.WFE_RMS %s \n", emptyString);
00449 else {cleanUpString (qfitsString, cleanString);
00450 fprintf (midiQcLogPtr, "COU.AO1.WFE_RMS %s \n", cleanString);}
00451
00452 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 WFE_RMS");
00453 if (qfitsString == NULL)
00454 fprintf (midiQcLogPtr, "COU.AO2.WFE_RMS %s \n", emptyString);
00455 else {cleanUpString (qfitsString, cleanString);
00456 fprintf (midiQcLogPtr, "COU.AO2.WFE_RMS %s \n", cleanString);}
00457
00458 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 ENC_MEAN");
00459 if (qfitsString == NULL)
00460 fprintf (midiQcLogPtr, "COU.AO1.ENC_MEAN %s \n", emptyString);
00461 else {cleanUpString (qfitsString, cleanString);
00462 fprintf (midiQcLogPtr, "COU.AO1.ENC_MEAN %s \n", cleanString);}
00463
00464 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 ENC_MEAN");
00465 if (qfitsString == NULL)
00466 fprintf (midiQcLogPtr, "COU.AO2.ENC_MEAN %s \n", emptyString);
00467 else {cleanUpString (qfitsString, cleanString);
00468 fprintf (midiQcLogPtr, "COU.AO2.ENC_MEAN %s \n", cleanString);}
00469
00470 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 ENC_RMS");
00471 if (qfitsString == NULL)
00472 fprintf (midiQcLogPtr, "COU.AO1.ENC_RMS %s \n", emptyString);
00473 else {cleanUpString (qfitsString, cleanString);
00474 fprintf (midiQcLogPtr, "COU.AO1.ENC_RMS %s \n", cleanString);}
00475
00476 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 ENC_RMS");
00477 if (qfitsString == NULL)
00478 fprintf (midiQcLogPtr, "COU.AO2.ENC_RMS %s \n", emptyString);
00479 else {cleanUpString (qfitsString, cleanString);
00480 fprintf (midiQcLogPtr, "COU.AO2.ENC_RMS %s \n", cleanString);}
00481
00482 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 FWHM_MEAN");
00483 if (qfitsString == NULL)
00484 fprintf (midiQcLogPtr, "COU.AO1.FWHM_MEAN %s \n", emptyString);
00485 else {cleanUpString (qfitsString, cleanString);
00486 fprintf (midiQcLogPtr, "COU.AO1.FWHM_MEAN %s \n", cleanString);}
00487
00488 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 FWHM_MEAN");
00489 if (qfitsString == NULL)
00490 fprintf (midiQcLogPtr, "COU.AO2.FWHM_MEAN %s \n", emptyString);
00491 else {cleanUpString (qfitsString, cleanString);
00492 fprintf (midiQcLogPtr, "COU.AO2.FWHM_MEAN %s \n", cleanString);}
00493
00494 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 FWHM_RMS");
00495 if (qfitsString == NULL)
00496 fprintf (midiQcLogPtr, "COU.AO1.FWHM_RMS %s \n", emptyString);
00497 else {cleanUpString (qfitsString, cleanString);
00498 fprintf (midiQcLogPtr, "COU.AO1.FWHM_RMS %s \n", cleanString);}
00499
00500 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 FWHM_RMS");
00501 if (qfitsString == NULL)
00502 fprintf (midiQcLogPtr, "COU.AO2.FWHM_RMS %s \n", emptyString);
00503 else {cleanUpString (qfitsString, cleanString);
00504 fprintf (midiQcLogPtr, "COU.AO2.FWHM_RMS %s \n", cleanString);}
00505
00506 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 L0_MEAN");
00507 if (qfitsString == NULL)
00508 fprintf (midiQcLogPtr, "COU.AO1.L0_MEAN %s \n", emptyString);
00509 else {cleanUpString (qfitsString, cleanString);
00510 fprintf (midiQcLogPtr, "COU.AO1.L0_MEAN %s \n", cleanString);}
00511
00512 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 L0_MEAN");
00513 if (qfitsString == NULL)
00514 fprintf (midiQcLogPtr, "COU.AO2.L0_MEAN %s \n", emptyString);
00515 else {cleanUpString (qfitsString, cleanString);
00516 fprintf (midiQcLogPtr, "COU.AO2.L0_MEAN %s \n", cleanString);}
00517
00518 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 L0_RMS");
00519 if (qfitsString == NULL)
00520 fprintf (midiQcLogPtr, "COU.AO1.L0_RMS %s \n", emptyString);
00521 else {cleanUpString (qfitsString, cleanString);
00522 fprintf (midiQcLogPtr, "COU.AO1.L0_RMS %s \n", cleanString);}
00523
00524 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 L0_RMS");
00525 if (qfitsString == NULL)
00526 fprintf (midiQcLogPtr, "COU.AO2.L0_RMS %s \n", emptyString);
00527 else {cleanUpString (qfitsString, cleanString);
00528 fprintf (midiQcLogPtr, "COU.AO2.L0_RMS %s \n", cleanString);}
00529
00530 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 R0_MEAN");
00531 if (qfitsString == NULL)
00532 fprintf (midiQcLogPtr, "COU.AO1.R0_MEAN %s \n", emptyString);
00533 else {cleanUpString (qfitsString, cleanString);
00534 fprintf (midiQcLogPtr, "COU.AO1.R0_MEAN %s \n", cleanString);}
00535
00536 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 R0_MEAN");
00537 if (qfitsString == NULL)
00538 fprintf (midiQcLogPtr, "COU.AO2.R0_MEAN %s \n", emptyString);
00539 else {cleanUpString (qfitsString, cleanString);
00540 fprintf (midiQcLogPtr, "COU.AO2.R0_MEAN %s \n", cleanString);}
00541
00542 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 R0_RMS");
00543 if (qfitsString == NULL)
00544 fprintf (midiQcLogPtr, "COU.AO1.R0_RMS %s \n", emptyString);
00545 else {cleanUpString (qfitsString, cleanString);
00546 fprintf (midiQcLogPtr, "COU.AO1.R0_RMS %s \n", cleanString);}
00547
00548 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 R0_RMS");
00549 if (qfitsString == NULL)
00550 fprintf (midiQcLogPtr, "COU.AO2.R0_RMS %s \n", emptyString);
00551 else {cleanUpString (qfitsString, cleanString);
00552 fprintf (midiQcLogPtr, "COU.AO2.R0_RMS %s \n", cleanString);}
00553
00554 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 T0_MEAN");
00555 if (qfitsString == NULL)
00556 fprintf (midiQcLogPtr, "COU.AO1.T0_MEAN %s \n", emptyString);
00557 else {cleanUpString (qfitsString, cleanString);
00558 fprintf (midiQcLogPtr, "COU.AO1.T0_MEAN %s \n", cleanString);}
00559
00560 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 T0_MEAN");
00561 if (qfitsString == NULL)
00562 fprintf (midiQcLogPtr, "COU.AO2.T0_MEAN %s \n", emptyString);
00563 else {cleanUpString (qfitsString, cleanString);
00564 fprintf (midiQcLogPtr, "COU.AO2.T0_MEAN %s \n", cleanString);}
00565
00566 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO1 T0_RMS");
00567 if (qfitsString == NULL)
00568 fprintf (midiQcLogPtr, "COU.AO1.T0_RMS %s \n", emptyString);
00569 else {cleanUpString (qfitsString, cleanString);
00570 fprintf (midiQcLogPtr, "COU.AO1.T0_RMS %s \n", cleanString);}
00571
00572 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO COU AO2 T0_RMS");
00573 if (qfitsString == NULL)
00574 fprintf (midiQcLogPtr, "COU.AO2.T0_RMS %s \n", emptyString);
00575 else {cleanUpString (qfitsString, cleanString);
00576 fprintf (midiQcLogPtr, "COU.AO2.T0_RMS %s \n", cleanString);}
00577
00578 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET CHIP NX");
00579 if (qfitsString == NULL)
00580 fprintf (midiQcLogPtr, "DET.CHIP.NX %s \n", emptyString);
00581 else {cleanUpString (qfitsString, cleanString);
00582 fprintf (midiQcLogPtr, "DET.CHIP.NX %s \n", cleanString);}
00583
00584 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET CHIP NY");
00585 if (qfitsString == NULL)
00586 fprintf (midiQcLogPtr, "DET.CHIP.NY %s \n", emptyString);
00587 else {cleanUpString (qfitsString, cleanString);
00588 fprintf (midiQcLogPtr, "DET.CHIP.NY %s \n", cleanString);}
00589
00590 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET DIT");
00591 if (qfitsString == NULL)
00592 fprintf (midiQcLogPtr, "DET.DIT %s \n", emptyString);
00593 else {cleanUpString (qfitsString, cleanString);
00594 fprintf (midiQcLogPtr, "DET.DIT %s \n", cleanString);}
00595
00596 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET DITDELAY");
00597 if (qfitsString == NULL)
00598 fprintf (midiQcLogPtr, "DET.DITDELAY %s \n", emptyString);
00599 else {cleanUpString (qfitsString, cleanString);
00600 fprintf (midiQcLogPtr, "DET.DITDELAY %s \n", cleanString);}
00601
00602 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET INT MODE");
00603 if (qfitsString == NULL)
00604 fprintf (midiQcLogPtr, "DET.INT.MODE %s \n", emptyString);
00605 else {cleanUpString (qfitsString, cleanString);
00606 fprintf (midiQcLogPtr, "DET.INT.MODE \"%s\" \n", cleanString);}
00607
00608 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET NDIT");
00609 if (qfitsString == NULL)
00610 fprintf (midiQcLogPtr, "DET.NDIT %s \n", emptyString);
00611 else {cleanUpString (qfitsString, cleanString);
00612 fprintf (midiQcLogPtr, "DET.NDIT %s \n", cleanString);}
00613
00614 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET NRTS MODE");
00615 if (qfitsString == NULL)
00616 fprintf (midiQcLogPtr, "DET.NRTS.MODE %s \n", emptyString);
00617 else {cleanUpString (qfitsString, cleanString);
00618 fprintf (midiQcLogPtr, "DET.NRTS.MODE \"%s\" \n", cleanString);}
00619
00620 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET WIN1 NX");
00621 if (qfitsString == NULL)
00622 fprintf (midiQcLogPtr, "DET.WIN1.NX %s \n", emptyString);
00623 else {cleanUpString (qfitsString, cleanString);
00624 fprintf (midiQcLogPtr, "DET.WIN1.NX %s \n", cleanString);}
00625
00626 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET WIN1 NY");
00627 if (qfitsString == NULL)
00628 fprintf (midiQcLogPtr, "DET.WIN1.NY %s \n", emptyString);
00629 else {cleanUpString (qfitsString, cleanString);
00630 fprintf (midiQcLogPtr, "DET.WIN1.NY %s \n", cleanString);}
00631
00632 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET WIN2 NX");
00633 if (qfitsString == NULL)
00634 fprintf (midiQcLogPtr, "DET.WIN2.NX %s \n", emptyString);
00635 else {cleanUpString (qfitsString, cleanString);
00636 fprintf (midiQcLogPtr, "DET.WIN2.NX %s \n", cleanString);}
00637
00638 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DET WIN2 NY");
00639 if (qfitsString == NULL)
00640 fprintf (midiQcLogPtr, "DET.WIN2.NY %s \n", emptyString);
00641 else {cleanUpString (qfitsString, cleanString);
00642 fprintf (midiQcLogPtr, "DET.WIN2.NY %s \n", cleanString);}
00643
00644 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DPR CATG");
00645 if (qfitsString == NULL)
00646 fprintf (midiQcLogPtr, "DPR.CATG %s \n", emptyString);
00647 else {cleanUpString (qfitsString, cleanString);
00648 fprintf (midiQcLogPtr, "DPR.CATG \"%s\" \n", cleanString);}
00649
00650 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DPR TECH");
00651 if (qfitsString == NULL)
00652 fprintf (midiQcLogPtr, "DPR.TECH %s \n", emptyString);
00653 else {cleanUpString (qfitsString, cleanString);
00654 fprintf (midiQcLogPtr, "DPR.TECH \"%s\" \n", cleanString);}
00655
00656 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO DPR TYPE");
00657 if (qfitsString == NULL)
00658 fprintf (midiQcLogPtr, "DPR.TYPE %s \n", emptyString);
00659 else {cleanUpString (qfitsString, cleanString);
00660 fprintf (midiQcLogPtr, "DPR.TYPE \"%s\" \n", cleanString);}
00661
00662 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS CAM NAME");
00663 if (qfitsString == NULL)
00664 fprintf (midiQcLogPtr, "INS.CAM.NAME %s \n", emptyString);
00665 else {cleanUpString (qfitsString, cleanString);
00666 fprintf (midiQcLogPtr, "INS.CAM.NAME \"%s\" \n", cleanString);}
00667
00668 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS FILT NAME");
00669 if (qfitsString == NULL)
00670 fprintf (midiQcLogPtr, "INS.FILT.NAME %s \n", emptyString);
00671 else {cleanUpString (qfitsString, cleanString);
00672 fprintf (midiQcLogPtr, "INS.FILT.NAME \"%s\" \n", cleanString);}
00673
00674 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS GRIS NAME");
00675 if (qfitsString == NULL)
00676 fprintf (midiQcLogPtr, "INS.GRIS.NAME %s \n", emptyString);
00677 else {cleanUpString (qfitsString, cleanString);
00678 fprintf (midiQcLogPtr, "INS.GRIS.NAME \"%s\" \n", cleanString);}
00679
00680 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS MODE");
00681 if (qfitsString == NULL)
00682 fprintf (midiQcLogPtr, "INS.MODE %s \n", emptyString);
00683 else {cleanUpString (qfitsString, cleanString);
00684 fprintf (midiQcLogPtr, "INS.MODE \"%s\" \n", cleanString);}
00685
00686 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS OPT1 NAME");
00687 if (qfitsString == NULL)
00688 fprintf (midiQcLogPtr, "INS.OPT1.NAME %s \n", emptyString);
00689 else {cleanUpString (qfitsString, cleanString);
00690 fprintf (midiQcLogPtr, "INS.OPT1.NAME \"%s\" \n", cleanString);}
00691
00692 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS OPT1 TYPE");
00693 if (qfitsString == NULL)
00694 fprintf (midiQcLogPtr, "INS.OPT1.TYPE %s \n", emptyString);
00695 else {cleanUpString (qfitsString, cleanString);
00696 fprintf (midiQcLogPtr, "INS.OPT1.TYPE \"%s\" \n", cleanString);}
00697
00698 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS SHUT NAME");
00699 if (qfitsString == NULL)
00700 fprintf (midiQcLogPtr, "INS.SHUT.NAME %s \n", emptyString);
00701 else {cleanUpString (qfitsString, cleanString);
00702 fprintf (midiQcLogPtr, "INS.SHUT.NAME \"%s\" \n", cleanString);}
00703
00704 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO INS SLIT NAME");
00705 if (qfitsString == NULL)
00706 fprintf (midiQcLogPtr, "INS.SLIT.NAME %s \n", emptyString);
00707 else {cleanUpString (qfitsString, cleanString);
00708 fprintf (midiQcLogPtr, "INS.SLIT.NAME \"%s\" \n", cleanString);}
00709
00710 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AIRM END");
00711 if (qfitsString == NULL)
00712 fprintf (midiQcLogPtr, "ISS.AIRM.END %s \n", emptyString);
00713 else {cleanUpString (qfitsString, cleanString);
00714 fprintf (midiQcLogPtr, "ISS.AIRM.END %s \n", cleanString);}
00715
00716 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AIRM START");
00717 if (qfitsString == NULL)
00718 fprintf (midiQcLogPtr, "ISS.AIRM.START %s \n", emptyString);
00719 else {cleanUpString (qfitsString, cleanString);
00720 fprintf (midiQcLogPtr, "ISS.AIRM.START %s \n", cleanString);}
00721
00722 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS ALT");
00723 if (qfitsString == NULL)
00724 fprintf (midiQcLogPtr, "ISS.ALT %s \n", emptyString);
00725 else {cleanUpString (qfitsString, cleanString);
00726 fprintf (midiQcLogPtr, "ISS.ALT %s \n", cleanString);}
00727
00728 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI FWHM END");
00729 if (qfitsString == NULL)
00730 fprintf (midiQcLogPtr, "ISS.AMBI.FWHM.END %s \n", emptyString);
00731 else {cleanUpString (qfitsString, cleanString);
00732 fprintf (midiQcLogPtr, "ISS.AMBI.FWHM.END %s \n", cleanString);}
00733
00734 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI FWHM START");
00735 if (qfitsString == NULL)
00736 fprintf (midiQcLogPtr, "ISS.AMBI.FWHM.START %s \n", emptyString);
00737 else {cleanUpString (qfitsString, cleanString);
00738 fprintf (midiQcLogPtr, "ISS.AMBI.FWHM.START %s \n", cleanString);}
00739
00740 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI PRES");
00741 if (qfitsString == NULL)
00742 fprintf (midiQcLogPtr, "ISS.AMBI.PRES %s \n", emptyString);
00743 else {cleanUpString (qfitsString, cleanString);
00744 fprintf (midiQcLogPtr, "ISS.AMBI.PRES %s \n", cleanString);}
00745
00746 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI RHUM");
00747 if (qfitsString == NULL)
00748 fprintf (midiQcLogPtr, "ISS.AMBI.RHUM %s \n", emptyString);
00749 else {cleanUpString (qfitsString, cleanString);
00750 fprintf (midiQcLogPtr, "ISS.AMBI.RHUM %s \n", cleanString);}
00751
00752 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI TAU0 END");
00753 if (qfitsString == NULL)
00754 fprintf (midiQcLogPtr, "ISS.AMBI.TAU0.END %s \n", emptyString);
00755 else {cleanUpString (qfitsString, cleanString);
00756 fprintf (midiQcLogPtr, "ISS.AMBI.TAU0.END %s \n", cleanString);}
00757
00758 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI TAU0 START");
00759 if (qfitsString == NULL)
00760 fprintf (midiQcLogPtr, "ISS.AMBI.TAU0.START %s \n", emptyString);
00761 else {cleanUpString (qfitsString, cleanString);
00762 fprintf (midiQcLogPtr, "ISS.AMBI.TAU0.START %s \n", cleanString);}
00763
00764 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI TEMP");
00765 if (qfitsString == NULL)
00766 fprintf (midiQcLogPtr, "ISS.AMBI.TEMP %s \n", emptyString);
00767 else {cleanUpString (qfitsString, cleanString);
00768 fprintf (midiQcLogPtr, "ISS.AMBI.TEMP %s \n", cleanString);}
00769
00770 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI WINDDIR");
00771 if (qfitsString == NULL)
00772 fprintf (midiQcLogPtr, "ISS.AMBI.WINDDIR %s \n", emptyString);
00773 else {cleanUpString (qfitsString, cleanString);
00774 fprintf (midiQcLogPtr, "ISS.AMBI.WINDDIR %s \n", cleanString);}
00775
00776 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AMBI WINDSP");
00777 if (qfitsString == NULL)
00778 fprintf (midiQcLogPtr, "ISS.AMBI.WINDSP %s \n", emptyString);
00779 else {cleanUpString (qfitsString, cleanString);
00780 fprintf (midiQcLogPtr, "ISS.AMBI.WINDSP %s \n", cleanString);}
00781
00782 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS AZ");
00783 if (qfitsString == NULL)
00784 fprintf (midiQcLogPtr, "ISS.AZ %s \n", emptyString);
00785 else {cleanUpString (qfitsString, cleanString);
00786 fprintf (midiQcLogPtr, "ISS.AZ %s \n", cleanString);}
00787
00788 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF STATION1");
00789 if (qfitsString == NULL)
00790 fprintf (midiQcLogPtr, "ISS.CONF.STATION1 %s \n", emptyString);
00791 else {cleanUpString (qfitsString, cleanString);
00792 fprintf (midiQcLogPtr, "ISS.CONF.STATION1 \"%s\" \n", cleanString);}
00793
00794 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF STATION2");
00795 if (qfitsString == NULL)
00796 fprintf (midiQcLogPtr, "ISS.CONF.STATION2 %s \n", emptyString);
00797 else {cleanUpString (qfitsString, cleanString);
00798 fprintf (midiQcLogPtr, "ISS.CONF.STATION2 \"%s\" \n", cleanString);}
00799
00800 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T1X");
00801 if (qfitsString == NULL)
00802 fprintf (midiQcLogPtr, "ISS.CONF.T1X %s \n", emptyString);
00803 else {cleanUpString (qfitsString, cleanString);
00804 fprintf (midiQcLogPtr, "ISS.CONF.T1X %s \n", cleanString);}
00805
00806 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T1Y");
00807 if (qfitsString == NULL)
00808 fprintf (midiQcLogPtr, "ISS.CONF.T1Y %s \n", emptyString);
00809 else {cleanUpString (qfitsString, cleanString);
00810 fprintf (midiQcLogPtr, "ISS.CONF.T1Y %s \n", cleanString);}
00811
00812 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T1Z");
00813 if (qfitsString == NULL)
00814 fprintf (midiQcLogPtr, "ISS.CONF.T1Z %s \n", emptyString);
00815 else {cleanUpString (qfitsString, cleanString);
00816 fprintf (midiQcLogPtr, "ISS.CONF.T1Z %s \n", cleanString);}
00817
00818 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T2X");
00819 if (qfitsString == NULL)
00820 fprintf (midiQcLogPtr, "ISS.CONF.T2X %s \n", emptyString);
00821 else {cleanUpString (qfitsString, cleanString);
00822 fprintf (midiQcLogPtr, "ISS.CONF.T2X %s \n", cleanString);}
00823
00824 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T2Y");
00825 if (qfitsString == NULL)
00826 fprintf (midiQcLogPtr, "ISS.CONF.T2Y %s \n", emptyString);
00827 else {cleanUpString (qfitsString, cleanString);
00828 fprintf (midiQcLogPtr, "ISS.CONF.T2Y %s \n", cleanString);}
00829
00830 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS CONF T2Z");
00831 if (qfitsString == NULL)
00832 fprintf (midiQcLogPtr, "ISS.CONF.T2Z %s \n", emptyString);
00833 else {cleanUpString (qfitsString, cleanString);
00834 fprintf (midiQcLogPtr, "ISS.CONF.T2Z %s \n", cleanString);}
00835
00836 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS PARANG END");
00837 if (qfitsString == NULL)
00838 fprintf (midiQcLogPtr, "ISS.PARANG.END %s \n", emptyString);
00839 else {cleanUpString (qfitsString, cleanString);
00840 fprintf (midiQcLogPtr, "ISS.PARANG.END %s \n", cleanString);}
00841
00842 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS PARANG START");
00843 if (qfitsString == NULL)
00844 fprintf (midiQcLogPtr, "ISS.PARANG.START %s \n", emptyString);
00845 else {cleanUpString (qfitsString, cleanString);
00846 fprintf (midiQcLogPtr, "ISS.PARANG.START %s \n", cleanString);}
00847
00848 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS PBL12 END");
00849 if (qfitsString == NULL)
00850 fprintf (midiQcLogPtr, "ISS.PBL12.END %s \n", emptyString);
00851 else {cleanUpString (qfitsString, cleanString);
00852 fprintf (midiQcLogPtr, "ISS.PBL12.END %s \n", cleanString);}
00853
00854 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO ISS PBL12 START");
00855 if (qfitsString == NULL)
00856 fprintf (midiQcLogPtr, "ISS.PBL12.START %s \n", emptyString);
00857 else {cleanUpString (qfitsString, cleanString);
00858 fprintf (midiQcLogPtr, "ISS.PBL12.START %s \n", cleanString);}
00859
00860 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS ID");
00861 if (qfitsString == NULL)
00862 fprintf (midiQcLogPtr, "OBS.ID %s \n", emptyString);
00863 else {cleanUpString (qfitsString, cleanString);
00864 fprintf (midiQcLogPtr, "OBS.ID \"%s\" \n", cleanString);}
00865
00866 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS NAME");
00867 if (qfitsString == NULL)
00868 fprintf (midiQcLogPtr, "OBS.NAME %s \n", emptyString);
00869 else {cleanUpString (qfitsString, cleanString);
00870 fprintf (midiQcLogPtr, "OBS.NAME \"%s\" \n", cleanString);}
00871
00872 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS PI-COI ID");
00873 if (qfitsString == NULL)
00874 fprintf (midiQcLogPtr, "OBS.PI-COI.ID %s \n", emptyString);
00875 else {cleanUpString (qfitsString, cleanString);
00876 fprintf (midiQcLogPtr, "OBS.PI-COI.ID \"%s\" \n", cleanString);}
00877
00878 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS PI-COI NAME");
00879 if (qfitsString == NULL)
00880 fprintf (midiQcLogPtr, "OBS.PI-COI.NAME %s \n", emptyString);
00881 else {cleanUpString (qfitsString, cleanString);
00882 fprintf (midiQcLogPtr, "OBS.PI-COI.NAME \"%s\" \n", cleanString);}
00883
00884 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS PROG ID");
00885 if (qfitsString == NULL)
00886 fprintf (midiQcLogPtr, "OBS.PROG.ID %s \n", emptyString);
00887 else {cleanUpString (qfitsString, cleanString);
00888 fprintf (midiQcLogPtr, "OBS.PROG.ID \"%s\" \n", cleanString);}
00889
00890 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS START");
00891 if (qfitsString == NULL)
00892 fprintf (midiQcLogPtr, "OBS.START %s \n", emptyString);
00893 else {cleanUpString (qfitsString, cleanString);
00894 fprintf (midiQcLogPtr, "OBS.START \"%s\" \n", cleanString);}
00895
00896 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OBS TARG NAME");
00897 if (qfitsString == NULL)
00898 fprintf (midiQcLogPtr, "OBS.TARG.NAME %s \n", emptyString);
00899 else {cleanUpString (qfitsString, cleanString);
00900 fprintf (midiQcLogPtr, "OBS.TARG.NAME \"%s\" \n", cleanString);}
00901
00902 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO OCS EXPO1 FNAME1");
00903 if (qfitsString == NULL)
00904 fprintf (midiQcLogPtr, "OCS.EXPO1.FNAME1 %s \n", emptyString);
00905 else {cleanUpString (qfitsString, cleanString);
00906 fprintf (midiQcLogPtr, "OCS.EXPO1.FNAME1 \"%s\" \n", cleanString);}
00907
00908 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO TPL ID");
00909 if (qfitsString == NULL)
00910 fprintf (midiQcLogPtr, "TPL.ID %s \n", emptyString);
00911 else {cleanUpString (qfitsString, cleanString);
00912 fprintf (midiQcLogPtr, "TPL.ID \"%s\" \n", cleanString);}
00913
00914 qfitsString = qfits_query_hdr (inFitsName, "HIERARCH ESO TPL START");
00915 if (qfitsString == NULL)
00916 fprintf (midiQcLogPtr, "TPL.START %s \n", emptyString);
00917 else {cleanUpString (qfitsString, cleanString);
00918 fprintf (midiQcLogPtr, "TPL.START \"%s\" \n", cleanString);}
00919
00920
00921
00922 free (emptyString);
00923 free (cleanString);
00924
00925 return;
00926 }
00927