26 #include "midiGlobal.h"
28 #include "errorHandling.h"
29 #include "midiFitsUtility.h"
30 #include "createProdRefPix.h"
31 #include "fileHandling.h"
54 void createRefPixProd (
57 ReferencePixel *refPix,
63 const char routine[] =
"createRefPixProd";
64 char *tempFileName, *stringTemp, *classification;
66 FILE *tempFilePtr=NULL, *inFitsBatchPtr=NULL;
72 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
73 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
75 cpl_msg_info(cpl_func,
"\nCreating Product files for batch %d \n", batchNumber);
76 cpl_msg_info(cpl_func,
"-------------------------------- \n");
77 fprintf (midiReportPtr,
"\nCreating Product for batch %d \n", batchNumber);
78 fprintf (midiReportPtr,
"-------------------------- \n");
84 createRefPixPrimHead (fileNames, format, refPix, error);
87 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot create Primary Header extension");
92 tempFileName = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
93 stringTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
94 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
95 refPixImage = (
float *) calloc (format->iXWidth * format->iYWidth, sizeof (
float));
98 qdRefPix.filename = fileNames->outFitsName;
99 qdRefPix.npix = format->iXWidth * format->iYWidth;
100 qdRefPix.ptype = PTYPE_FLOAT;
101 qdRefPix.fbuf = refPixImage;
102 qdRefPix.out_ptype = BPP_IEEE_FLOAT;
103 qfits_pixdump (&qdRefPix);
108 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
110 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
116 fgets (stringTemp, MAX_STRING_LENGTH, inFitsBatchPtr);
117 sprintf (classification,
"%s",
"");
118 sscanf (stringTemp,
"%s%s", fileNames->inFitsName, classification);
121 createRefPixQcLog (fileNames->inFitsName, error);
122 if (*error) midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot copy keywords to QC log");
125 addProdInfoToRefPixQcLog (format, fileNames, refPix, error);
128 sprintf (tempFileName,
"%s%s.Centroid.txt", outFileDir, outRootName);
129 tempFilePtr = fopen(tempFileName,
"w");
130 for (i = 0; i < refPix->numOfExposures; i++)
132 fprintf (tempFilePtr,
"Exposure %d \n", i+1);
133 for (j = 0; j < refPix->exposure[i].numOfBeams; j++)
135 fprintf (tempFilePtr,
"%f %f %f \n",
136 refPix->exposure[i].centroid[j].xCoord,
137 refPix->exposure[i].centroid[j].yCoord,
138 refPix->exposure[i].centroid[j].size);
143 fclose (tempFilePtr);
144 fclose (inFitsBatchPtr);
149 free (classification);
168 void createRefPixPrimHead (
169 MidiFiles *fileNames,
171 ReferencePixel *refPix,
177 const char routine[] =
"createRefPixPrimHead";
178 qfits_header *outFitsHeader;
179 FILE *inFitsBatchPtr=NULL, *outFitsPtr;
181 char *textBuff, *stringQfits, *messageBuffer, *currentTime, *cleanString,
182 *stringTemp, *classification, *sWidthX, *sWidthY, *tech;
189 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
190 if (diagnostic > 4) fprintf(midiReportPtr,
"Invoking routine '%s' \n", routine);
196 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
198 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
204 tech = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
205 textBuff = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
206 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
207 stringTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
208 cleanString = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
209 messageBuffer = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
210 currentTime = (
char *) calloc (MIN_STRING_LENGTH,
sizeof (
char));
211 sWidthX = (
char *) calloc (MIN_STRING_LENGTH,
sizeof (
char));
212 sWidthY = (
char *) calloc (MIN_STRING_LENGTH,
sizeof (
char));
216 newTime = gmtime (&now);
217 strftime (currentTime, MIN_STRING_LENGTH,
"%a %d %b %Y at %H:%M:%S", newTime);
220 fgets (stringTemp, MAX_STRING_LENGTH, inFitsBatchPtr);
221 sprintf (classification,
"%s",
"");
222 sscanf (stringTemp,
"%s%s", fileNames->inFitsName, classification);
225 outFitsHeader = qfits_header_read (fileNames->inFitsName);
226 if (outFitsHeader == NULL)
229 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot load header from the input FITS file");
230 free (messageBuffer);
234 free (classification);
242 sprintf (sWidthY,
"%d", format->iYWidth);
243 sprintf (sWidthX,
"%d", format->iXWidth);
246 qfits_header_mod (outFitsHeader,
"BITPIX",
"-32",
"number of bits per pixel");
247 qfits_header_mod (outFitsHeader,
"NAXIS",
"2",
"number of data axes");
248 qfits_header_add (outFitsHeader,
"NAXIS1", sWidthX,
"", NULL);
249 qfits_header_add (outFitsHeader,
"NAXIS2", sWidthY,
"", NULL);
250 qfits_header_mod (outFitsHeader,
"INSTRUME",
"MIDI",
"MIDI Raw Data Display FITS created by DRS pipeline" );
254 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO TYPE", format->obsType,
"MIDI pipeline product type", NULL);
255 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO CATG",
"REDUCED_REFPIX",
"Pipeline product category", NULL);
256 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO ARCFILE", fileNames->archFileName,
"Arcfile name of first raw file", NULL);
257 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO PIPEDATE", currentTime,
"Pipeline run date",
"");
258 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO VERSION", MIDI_PIPE_VERSION,
"Pipeline version", NULL);
259 qfits_header_add (outFitsHeader,
"PIPEFILE", fileNames->pipeFileName,
"Pipeline product file name", NULL);
260 qfits_header_add (outFitsHeader,
"HIERARCH ESO PRO DID", MIDI_QC_DIC_VERSION,
"QC dictionary version", NULL);
265 rewind (inFitsBatchPtr);
269 while (fgets (stringTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
271 sprintf (classification,
"%s",
"");
272 sscanf (stringTemp,
"%s%s", messageBuffer, classification);
275 stringQfits = qfits_query_hdr (messageBuffer,
"HIERARCH ESO DPR TECH");
276 if (stringQfits == NULL)
278 sprintf (tech,
"%s",
"UNKNOWN");
279 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot get Observation Technique");
283 cleanUpString (stringQfits, cleanString);
284 sprintf (tech,
"%s", cleanString);
288 if (strcmp (classification,
"") == 0)
290 stringQfits = qfits_query_hdr (messageBuffer,
"HIERARCH ESO DPR CATG");
291 if (stringQfits == NULL)
293 sprintf (classification,
"%s",
"UNKNOWN");
294 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot get Observation Category");
298 cleanUpString (stringQfits, cleanString);
299 sprintf (classification,
"%s", cleanString);
302 removePathName (messageBuffer, midiReportPtr);
303 sprintf (textBuff,
"HIERARCH ESO PRO REC1 RAW%d NAME", i+1);
304 qfits_header_add (outFitsHeader, textBuff, messageBuffer,
"FITS file name",
"");
305 sprintf (textBuff,
"HIERARCH ESO PRO REC1 RAW%d CATG", i+1);
306 qfits_header_add (outFitsHeader, textBuff, classification,
"Observation Categoty",
"");
309 fclose (inFitsBatchPtr);
312 for (i = 0; i < refPix->numOfExposures; i++)
314 if (strcmp (refPix->exposure[i].beamCombiner,
"OPEN") == 0)
316 if (strcmp (refPix->exposure[i].shutterId,
"ABOPEN") == 0)
318 sprintf (messageBuffer,
"%f", X1_REF_PIX_ABOPEN);
319 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A EX", messageBuffer,
"Expected x",
"");
320 sprintf (messageBuffer,
"%f", Y1_REF_PIX_ABOPEN);
321 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A EY", messageBuffer,
"Expected y",
"");
322 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
323 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A ESI", messageBuffer,
"Search size",
"");
324 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].xCoord);
325 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A X", messageBuffer,
"x coordinate",
"");
326 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].yCoord);
327 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A Y", messageBuffer,
"y coordinate",
"");
328 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].size);
329 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP A SIZ", messageBuffer,
"size",
"");
331 sprintf (messageBuffer,
"%f", X2_REF_PIX_ABOPEN);
332 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B EX", messageBuffer,
"Expected x",
"");
333 sprintf (messageBuffer,
"%f", Y2_REF_PIX_ABOPEN);
334 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B EY", messageBuffer,
"Expected y",
"");
335 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
336 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B ESI", messageBuffer,
"Search size",
"");
337 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].xCoord);
338 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B X", messageBuffer,
"x coordinate",
"");
339 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].yCoord);
340 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B Y", messageBuffer,
"y coordinate",
"");
341 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].size);
342 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX OP B SIZ", messageBuffer,
"size",
"");
345 else if (strcmp (refPix->exposure[i].beamCombiner,
"HIGH_SENS") == 0)
347 if (strcmp (refPix->exposure[i].shutterId,
"AOPEN") == 0)
349 sprintf (messageBuffer,
"%f", X1_REF_PIX_HS_AOPEN);
350 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 EX", messageBuffer,
"Expected x",
"");
351 sprintf (messageBuffer,
"%f", Y1_REF_PIX_HS_AOPEN);
352 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 EY", messageBuffer,
"Expected y",
"");
353 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
354 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 ESI", messageBuffer,
"Search size",
"");
355 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].xCoord);
356 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 X", messageBuffer,
"x coordinate",
"");
357 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].yCoord);
358 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 Y", messageBuffer,
"y coordinate",
"");
359 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].size);
360 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A1 SIZ", messageBuffer,
"size",
"");
362 sprintf (messageBuffer,
"%f", X2_REF_PIX_HS_AOPEN);
363 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 EX", messageBuffer,
"Expected x",
"");
364 sprintf (messageBuffer,
"%f", Y2_REF_PIX_HS_AOPEN);
365 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 EY", messageBuffer,
"Expected y",
"");
366 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
367 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 ESI", messageBuffer,
"Search size",
"");
368 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].xCoord);
369 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 X", messageBuffer,
"x coordinate",
"");
370 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].yCoord);
371 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 Y", messageBuffer,
"y coordinate",
"");
372 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].size);
373 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS A2 SIZ", messageBuffer,
"size",
"");
375 else if (strcmp (refPix->exposure[i].shutterId,
"BOPEN") == 0)
377 sprintf (messageBuffer,
"%f", X1_REF_PIX_HS_BOPEN);
378 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 EX", messageBuffer,
"Expected x",
"");
379 sprintf (messageBuffer,
"%f", Y1_REF_PIX_HS_BOPEN);
380 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 EY", messageBuffer,
"Expected y",
"");
381 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
382 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 ESI", messageBuffer,
"Search size",
"");
383 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].xCoord);
384 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 X", messageBuffer,
"x coordinate",
"");
385 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].yCoord);
386 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 Y", messageBuffer,
"y coordinate",
"");
387 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].size);
388 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B1 SIZ", messageBuffer,
"size",
"");
390 sprintf (messageBuffer,
"%f", X2_REF_PIX_HS_BOPEN);
391 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 EX", messageBuffer,
"Expected x",
"");
392 sprintf (messageBuffer,
"%f", Y2_REF_PIX_HS_BOPEN);
393 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 EY", messageBuffer,
"Expected y",
"");
394 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
395 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 ESI", messageBuffer,
"Search size",
"");
396 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].xCoord);
397 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 X", messageBuffer,
"x coordinate",
"");
398 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].yCoord);
399 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 Y", messageBuffer,
"y coordinate",
"");
400 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].size);
401 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX HS B2 SIZ", messageBuffer,
"size",
"");
404 else if (strcmp (refPix->exposure[i].beamCombiner,
"SCI_PHOT") == 0)
406 if (strcmp (refPix->exposure[i].shutterId,
"AOPEN") == 0)
408 sprintf (messageBuffer,
"%f", X1_REF_PIX_SP_AOPEN);
409 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 EX", messageBuffer,
"Expected x",
"");
410 sprintf (messageBuffer,
"%f", Y1_REF_PIX_SP_AOPEN);
411 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 EY", messageBuffer,
"Expected y",
"");
412 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
413 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 ESI", messageBuffer,
"Search size",
"");
414 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].xCoord);
415 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 X", messageBuffer,
"x coordinate",
"");
416 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].yCoord);
417 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 Y", messageBuffer,
"y coordinate",
"");
418 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].size);
419 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A1 SIZ", messageBuffer,
"size",
"");
421 sprintf (messageBuffer,
"%f", X2_REF_PIX_SP_AOPEN);
422 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 EX", messageBuffer,
"Expected x",
"");
423 sprintf (messageBuffer,
"%f", Y2_REF_PIX_SP_AOPEN);
424 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 EY", messageBuffer,
"Expected y",
"");
425 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
426 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 ESI", messageBuffer,
"Search size",
"");
427 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].xCoord);
428 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 X", messageBuffer,
"x coordinate",
"");
429 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].yCoord);
430 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 Y", messageBuffer,
"y coordinate",
"");
431 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].size);
432 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP A2 SIZ", messageBuffer,
"size",
"");
434 sprintf (messageBuffer,
"%f", X3_REF_PIX_SP_AOPEN);
435 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA EX", messageBuffer,
"Expected x",
"");
436 sprintf (messageBuffer,
"%f", Y3_REF_PIX_SP_AOPEN);
437 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA EY", messageBuffer,
"Expected y",
"");
438 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
439 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA ESI", messageBuffer,
"Search size",
"");
440 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].xCoord);
441 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA X", messageBuffer,
"x coordinate",
"");
442 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].yCoord);
443 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA Y", messageBuffer,
"y coordinate",
"");
444 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].size);
445 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PA SIZ", messageBuffer,
"size",
"");
447 else if (strcmp (refPix->exposure[i].shutterId,
"BOPEN") == 0)
449 sprintf (messageBuffer,
"%f", X1_REF_PIX_SP_BOPEN);
450 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 EX", messageBuffer,
"Expected x",
"");
451 sprintf (messageBuffer,
"%f", Y1_REF_PIX_SP_BOPEN);
452 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 EY", messageBuffer,
"Expected y",
"");
453 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
454 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 ESI", messageBuffer,
"Search size",
"");
455 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].xCoord);
456 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 X", messageBuffer,
"x coordinate",
"");
457 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].yCoord);
458 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 Y", messageBuffer,
"y coordinate",
"");
459 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[0].size);
460 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B1 SIZ", messageBuffer,
"size",
"");
462 sprintf (messageBuffer,
"%f", X2_REF_PIX_SP_BOPEN);
463 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 EX", messageBuffer,
"Expected x",
"");
464 sprintf (messageBuffer,
"%f", Y2_REF_PIX_SP_BOPEN);
465 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 EY", messageBuffer,
"Expected y",
"");
466 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
467 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 ESI", messageBuffer,
"Search size",
"");
468 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].xCoord);
469 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 X", messageBuffer,
"x coordinate",
"");
470 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].yCoord);
471 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 Y", messageBuffer,
"y coordinate",
"");
472 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[1].size);
473 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP B2 SIZ", messageBuffer,
"size",
"");
475 sprintf (messageBuffer,
"%f", X3_REF_PIX_SP_BOPEN);
476 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB EX", messageBuffer,
"Expected x",
"");
477 sprintf (messageBuffer,
"%f", Y3_REF_PIX_SP_BOPEN);
478 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB EY", messageBuffer,
"Expected y",
"");
479 sprintf (messageBuffer,
"%f", SIZE_SEARCH_REF_PIX);
480 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB ESI", messageBuffer,
"Search size",
"");
481 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].xCoord);
482 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB X", messageBuffer,
"x coordinate",
"");
483 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].yCoord);
484 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB Y", messageBuffer,
"y coordinate",
"");
485 sprintf (messageBuffer,
"%f", refPix->exposure[i].centroid[2].size);
486 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PIX SP PB SIZ", messageBuffer,
"size",
"");
494 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH1",
"TBD",
"TBD",
"");
495 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH2",
"TBD",
"TBD",
"");
496 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH3",
"TBD",
"TBD",
"");
497 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH4",
"TBD",
"TBD",
"");
498 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH5",
"TBD",
"TBD",
"");
499 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH6",
"TBD",
"TBD",
"");
500 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH7",
"TBD",
"TBD",
"");
501 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH8",
"TBD",
"TBD",
"");
502 qfits_header_add (outFitsHeader,
"HIERARCH ESO QC PLACEH9",
"TBD",
"TBD",
"");
505 if (stat (fileNames->outFitsName, &buf) == 0)
remove (fileNames->outFitsName);
507 outFitsPtr = fopen (fileNames->outFitsName,
"w");
511 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot create output FITS file");
512 free (messageBuffer);
516 free (classification);
523 cpl_msg_info(cpl_func,
"Created Product FITS file: %s \n", fileNames->outFitsName);
524 fprintf (midiReportPtr,
"Created Product FITS file: %s \n", fileNames->outFitsName);
529 qfits_header_sort (&outFitsHeader);
530 qfits_header_dump (outFitsHeader, outFitsPtr);
532 qfits_header_destroy (outFitsHeader);
535 free (messageBuffer);
539 free (classification);
563 void createRefPixQcLog (
571 const char routine[] =
"createRefPixQcLog";
572 char *qfitsString, *emptyString, *cleanString;
576 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
577 if (diagnostic > 4) fprintf(midiReportPtr,
"Invoking routine '%s' \n", routine);
583 emptyString = (
char *) calloc (MIN_STRING_LENGTH,
sizeof (
char));
584 cleanString = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
587 strcpy (emptyString,
"\"UNKNOWN\"");
590 qfitsString = qfits_query_hdr (inFitsName,
"ARCFILE");
591 if (qfitsString == NULL)
592 fprintf (midiQcLogPtr,
"ARCFILE %s \n", emptyString);
593 else {cleanUpString (qfitsString, cleanString);
594 fprintf (midiQcLogPtr,
"ARCFILE \"%s\" \n", cleanString);}
596 qfitsString = qfits_query_hdr (inFitsName,
"TELESCOP");
597 if (qfitsString == NULL)
598 fprintf (midiQcLogPtr,
"TELESCOP %s \n", emptyString);
599 else {cleanUpString (qfitsString, cleanString);
600 fprintf (midiQcLogPtr,
"TELESCOP \"%s\" \n", cleanString);}
602 qfitsString = qfits_query_hdr (inFitsName,
"INSTRUME");
603 if (qfitsString == NULL)
604 fprintf (midiQcLogPtr,
"INSTRUME %s \n", emptyString);
605 else {cleanUpString (qfitsString, cleanString);
606 fprintf (midiQcLogPtr,
"INSTRUME \"%s\" \n", cleanString);}
608 qfitsString = qfits_query_hdr (inFitsName,
"MJD-OBS");
609 if (qfitsString == NULL)
610 fprintf (midiQcLogPtr,
"MJD-OBS %s \n", emptyString);
611 else {cleanUpString (qfitsString, cleanString);
612 fprintf (midiQcLogPtr,
"MJD-OBS \"%s\" \n", cleanString);}
614 qfitsString = qfits_query_hdr (inFitsName,
"DATE-OBS");
615 if (qfitsString == NULL)
616 fprintf (midiQcLogPtr,
"DATE-OBS %s \n", emptyString);
617 else {cleanUpString (qfitsString, cleanString);
618 fprintf (midiQcLogPtr,
"DATE-OBS \"%s\" \n", cleanString);}
620 qfitsString = qfits_query_hdr (inFitsName,
"UTC");
621 if (qfitsString == NULL)
622 fprintf (midiQcLogPtr,
"UTC %s \n", emptyString);
623 else {cleanUpString (qfitsString, cleanString);
624 fprintf (midiQcLogPtr,
"UTC %s \n", cleanString);}
626 qfitsString = qfits_query_hdr (inFitsName,
"LST");
627 if (qfitsString == NULL)
628 fprintf (midiQcLogPtr,
"LST %s \n", emptyString);
629 else {cleanUpString (qfitsString, cleanString);
630 fprintf (midiQcLogPtr,
"LST %s \n", cleanString);}
632 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET CHIP NX");
633 if (qfitsString == NULL)
634 fprintf (midiQcLogPtr,
"DET.CHIP.NX %s \n", emptyString);
635 else {cleanUpString (qfitsString, cleanString);
636 fprintf (midiQcLogPtr,
"DET.CHIP.NX %s \n", cleanString);}
638 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET CHIP NY");
639 if (qfitsString == NULL)
640 fprintf (midiQcLogPtr,
"DET.CHIP.NY %s \n", emptyString);
641 else {cleanUpString (qfitsString, cleanString);
642 fprintf (midiQcLogPtr,
"DET.CHIP.NY %s \n", cleanString);}
644 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET DIT");
645 if (qfitsString == NULL)
646 fprintf (midiQcLogPtr,
"DET.DIT %s \n", emptyString);
647 else {cleanUpString (qfitsString, cleanString);
648 fprintf (midiQcLogPtr,
"DET.DIT %s \n", cleanString);}
650 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET DITDELAY");
651 if (qfitsString == NULL)
652 fprintf (midiQcLogPtr,
"DET.DITDELAY %s \n", emptyString);
653 else {cleanUpString (qfitsString, cleanString);
654 fprintf (midiQcLogPtr,
"DET.DITDELAY %s \n", cleanString);}
656 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET INT MODE");
657 if (qfitsString == NULL)
658 fprintf (midiQcLogPtr,
"DET.INT.MODE %s \n", emptyString);
659 else {cleanUpString (qfitsString, cleanString);
660 fprintf (midiQcLogPtr,
"DET.INT.MODE \"%s\" \n", cleanString);}
662 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET NDIT");
663 if (qfitsString == NULL)
664 fprintf (midiQcLogPtr,
"DET.NDIT %s \n", emptyString);
665 else {cleanUpString (qfitsString, cleanString);
666 fprintf (midiQcLogPtr,
"DET.NDIT %s \n", cleanString);}
668 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET NRTS MODE");
669 if (qfitsString == NULL)
670 fprintf (midiQcLogPtr,
"DET.NRTS.MODE %s \n", emptyString);
671 else {cleanUpString (qfitsString, cleanString);
672 fprintf (midiQcLogPtr,
"DET.NRTS.MODE \"%s\" \n", cleanString);}
674 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET WIN1 NX");
675 if (qfitsString == NULL)
676 fprintf (midiQcLogPtr,
"DET.WIN1.NX %s \n", emptyString);
677 else {cleanUpString (qfitsString, cleanString);
678 fprintf (midiQcLogPtr,
"DET.WIN1.NX %s \n", cleanString);}
680 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET WIN1 NY");
681 if (qfitsString == NULL)
682 fprintf (midiQcLogPtr,
"DET.WIN1.NY %s \n", emptyString);
683 else {cleanUpString (qfitsString, cleanString);
684 fprintf (midiQcLogPtr,
"DET.WIN1.NY %s \n", cleanString);}
686 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET WIN2 NX");
687 if (qfitsString == NULL)
688 fprintf (midiQcLogPtr,
"DET.WIN2.NX %s \n", emptyString);
689 else {cleanUpString (qfitsString, cleanString);
690 fprintf (midiQcLogPtr,
"DET.WIN2.NX %s \n", cleanString);}
692 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DET WIN2 NY");
693 if (qfitsString == NULL)
694 fprintf (midiQcLogPtr,
"DET.WIN2.NY %s \n", emptyString);
695 else {cleanUpString (qfitsString, cleanString);
696 fprintf (midiQcLogPtr,
"DET.WIN2.NY %s \n", cleanString);}
698 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DPR CATG");
699 if (qfitsString == NULL)
700 fprintf (midiQcLogPtr,
"DPR.CATG %s \n", emptyString);
701 else {cleanUpString (qfitsString, cleanString);
702 fprintf (midiQcLogPtr,
"DPR.CATG \"%s\" \n", cleanString);}
704 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DPR TECH");
705 if (qfitsString == NULL)
706 fprintf (midiQcLogPtr,
"DPR.TECH %s \n", emptyString);
707 else {cleanUpString (qfitsString, cleanString);
708 fprintf (midiQcLogPtr,
"DPR.TECH \"%s\" \n", cleanString);}
710 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO DPR TYPE");
711 if (qfitsString == NULL)
712 fprintf (midiQcLogPtr,
"DPR.TYPE %s \n", emptyString);
713 else {cleanUpString (qfitsString, cleanString);
714 fprintf (midiQcLogPtr,
"DPR.TYPE \"%s\" \n", cleanString);}
716 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS CAM NAME");
717 if (qfitsString == NULL)
718 fprintf (midiQcLogPtr,
"INS.CAM.NAME %s \n", emptyString);
719 else {cleanUpString (qfitsString, cleanString);
720 fprintf (midiQcLogPtr,
"INS.CAM.NAME \"%s\" \n", cleanString);}
722 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS FILT NAME");
723 if (qfitsString == NULL)
724 fprintf (midiQcLogPtr,
"INS.FILT.NAME %s \n", emptyString);
725 else {cleanUpString (qfitsString, cleanString);
726 fprintf (midiQcLogPtr,
"INS.FILT.NAME \"%s\" \n", cleanString);}
728 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS GRIS NAME");
729 if (qfitsString == NULL)
730 fprintf (midiQcLogPtr,
"INS.GRIS.NAME %s \n", emptyString);
731 else {cleanUpString (qfitsString, cleanString);
732 fprintf (midiQcLogPtr,
"INS.GRIS.NAME \"%s\" \n", cleanString);}
734 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS MODE");
735 if (qfitsString == NULL)
736 fprintf (midiQcLogPtr,
"INS.MODE %s \n", emptyString);
737 else {cleanUpString (qfitsString, cleanString);
738 fprintf (midiQcLogPtr,
"INS.MODE \"%s\" \n", cleanString);}
740 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS OPT1 NAME");
741 if (qfitsString == NULL)
742 fprintf (midiQcLogPtr,
"INS.OPT1.NAME %s \n", emptyString);
743 else {cleanUpString (qfitsString, cleanString);
744 fprintf (midiQcLogPtr,
"INS.OPT1.NAME \"%s\" \n", cleanString);}
746 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS OPT1 ID");
747 if (qfitsString == NULL)
748 fprintf (midiQcLogPtr,
"INS.OPT1.ID %s \n", emptyString);
749 else {cleanUpString (qfitsString, cleanString);
750 fprintf (midiQcLogPtr,
"INS.OPT1.ID \"%s\" \n", cleanString);}
752 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS OPT1 TYPE");
753 if (qfitsString == NULL)
754 fprintf (midiQcLogPtr,
"INS.OPT1.TYPE %s \n", emptyString);
755 else {cleanUpString (qfitsString, cleanString);
756 fprintf (midiQcLogPtr,
"INS.OPT1.TYPE \"%s\" \n", cleanString);}
758 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO INS SLIT NAME");
759 if (qfitsString == NULL)
760 fprintf (midiQcLogPtr,
"INS.SLIT.NAME %s \n", emptyString);
761 else {cleanUpString (qfitsString, cleanString);
762 fprintf (midiQcLogPtr,
"INS.SLIT.NAME \"%s\" \n", cleanString);}
764 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS ID");
765 if (qfitsString == NULL)
766 fprintf (midiQcLogPtr,
"OBS.ID %s \n", emptyString);
767 else {cleanUpString (qfitsString, cleanString);
768 fprintf (midiQcLogPtr,
"OBS.ID \"%s\" \n", cleanString);}
770 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS NAME");
771 if (qfitsString == NULL)
772 fprintf (midiQcLogPtr,
"OBS.NAME %s \n", emptyString);
773 else {cleanUpString (qfitsString, cleanString);
774 fprintf (midiQcLogPtr,
"OBS.NAME \"%s\" \n", cleanString);}
776 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS PI-COI ID");
777 if (qfitsString == NULL)
778 fprintf (midiQcLogPtr,
"OBS.PI-COI.ID %s \n", emptyString);
779 else {cleanUpString (qfitsString, cleanString);
780 fprintf (midiQcLogPtr,
"OBS.PI-COI.ID \"%s\" \n", cleanString);}
782 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS PI-COI NAME");
783 if (qfitsString == NULL)
784 fprintf (midiQcLogPtr,
"OBS.PI-COI.NAME %s \n", emptyString);
785 else {cleanUpString (qfitsString, cleanString);
786 fprintf (midiQcLogPtr,
"OBS.PI-COI.NAME \"%s\" \n", cleanString);}
788 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS PROG ID");
789 if (qfitsString == NULL)
790 fprintf (midiQcLogPtr,
"OBS.PROG.ID %s \n", emptyString);
791 else {cleanUpString (qfitsString, cleanString);
792 fprintf (midiQcLogPtr,
"OBS.PROG.ID \"%s\" \n", cleanString);}
794 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS START");
795 if (qfitsString == NULL)
796 fprintf (midiQcLogPtr,
"OBS.START %s \n", emptyString);
797 else {cleanUpString (qfitsString, cleanString);
798 fprintf (midiQcLogPtr,
"OBS.START \"%s\" \n", cleanString);}
800 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OBS TARG NAME");
801 if (qfitsString == NULL)
802 fprintf (midiQcLogPtr,
"OBS.TARG.NAME %s \n", emptyString);
803 else {cleanUpString (qfitsString, cleanString);
804 fprintf (midiQcLogPtr,
"OBS.TARG.NAME \"%s\" \n", cleanString);}
806 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO OCS EXPO1 FNAME1");
807 if (qfitsString == NULL)
808 fprintf (midiQcLogPtr,
"OCS.EXPO1.FNAME1 %s \n", emptyString);
809 else {cleanUpString (qfitsString, cleanString);
810 fprintf (midiQcLogPtr,
"OCS.EXPO1.FNAME1 \"%s\" \n", cleanString);}
812 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO TPL ID");
813 if (qfitsString == NULL)
814 fprintf (midiQcLogPtr,
"TPL.ID %s \n", emptyString);
815 else {cleanUpString (qfitsString, cleanString);
816 fprintf (midiQcLogPtr,
"TPL.ID \"%s\" \n", cleanString);}
818 qfitsString = qfits_query_hdr (inFitsName,
"HIERARCH ESO TPL START");
819 if (qfitsString == NULL)
820 fprintf (midiQcLogPtr,
"TPL.START %s \n", emptyString);
821 else {cleanUpString (qfitsString, cleanString);
822 fprintf (midiQcLogPtr,
"TPL.START \"%s\" \n", cleanString);}
846 void addProdInfoToRefPixQcLog (
848 MidiFiles *fileNames,
849 ReferencePixel *refPix,
855 const char routine[] =
"addProdInfoToRefPixQcLog";
857 FILE *inFitsBatchPtr;
858 char *stringQfits, *messageBuffer, *currentTime, *textBuff, *cleanString,
859 *stringTemp, *classification;
865 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
866 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
872 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
873 stringTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
874 cleanString = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
875 textBuff = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
876 messageBuffer = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
877 currentTime = (
char *) calloc (MIN_STRING_LENGTH,
sizeof (
char));
881 newTime = gmtime (&now);
882 strftime (currentTime, MIN_STRING_LENGTH,
"%a %d %b %Y at %H:%M:%S", newTime);
885 fprintf (midiQcLogPtr,
"PRO.TYPE \"%s\" \n", format->obsType);
886 fprintf (midiQcLogPtr,
"PRO.CATG \"REDUCED_REFPIX\" \n");
887 fprintf (midiQcLogPtr,
"PRO.ARCFILE \"%s\" \n", fileNames->archFileName);
888 fprintf (midiQcLogPtr,
"PRO.PIPEDATE \"%s\" \n", currentTime);
889 fprintf (midiQcLogPtr,
"PRO.VERSION \"%s\" \n", MIDI_PIPE_VERSION);
890 fprintf (midiQcLogPtr,
"PRO.PIPEFILE \"%s\" \n", fileNames->pipeFileName);
891 fprintf (midiQcLogPtr,
"PRO.DID \"%s\" \n", MIDI_QC_DIC_VERSION);
894 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
897 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
898 free (messageBuffer);
902 free (classification);
909 while (fgets (stringTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
911 sprintf (classification,
"%s",
"");
912 sscanf (stringTemp,
"%s%s", messageBuffer, classification);
915 if (strcmp (classification,
"") == 0)
917 stringQfits = qfits_query_hdr (messageBuffer,
"HIERARCH ESO DPR CATG");
918 if (stringQfits == NULL)
920 sprintf (classification,
"%s",
"UNKNOWN");
921 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot get Observation Category");
925 cleanUpString (stringQfits, cleanString);
926 sprintf (classification,
"%s", cleanString);
929 removePathName (messageBuffer, midiReportPtr);
930 fprintf (midiQcLogPtr,
"PRO.REC1.RAW%d.NAME \"%s\" \n", i, messageBuffer);
931 fprintf (midiQcLogPtr,
"PRO.REC1.RAW%d.CATG \"%s\" \n", i++, classification);
933 fclose (inFitsBatchPtr);
935 for (i = 0; i < refPix->numOfExposures; i++)
937 if (strcmp (refPix->exposure[i].beamCombiner,
"OPEN") == 0)
939 if (strcmp (refPix->exposure[i].shutterId,
"ABOPEN") == 0)
941 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.EX %f \n", X1_REF_PIX_ABOPEN);
942 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.EY %f \n", Y1_REF_PIX_ABOPEN);
943 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.ESI %f \n", SIZE_SEARCH_REF_PIX);
945 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.X %f \n", refPix->exposure[i].centroid[0].xCoord);
946 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.Y %f \n", refPix->exposure[i].centroid[0].yCoord);
947 fprintf (midiQcLogPtr,
"QC.PIX.OP.A.SIZ %f \n", refPix->exposure[i].centroid[0].size);
949 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.EX %f \n", X2_REF_PIX_ABOPEN);
950 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.EY %f \n", Y2_REF_PIX_ABOPEN);
951 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.ESI %f \n", SIZE_SEARCH_REF_PIX);
953 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.X %f \n", refPix->exposure[i].centroid[1].xCoord);
954 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.Y %f \n", refPix->exposure[i].centroid[1].yCoord);
955 fprintf (midiQcLogPtr,
"QC.PIX.OP.B.SIZ %f \n", refPix->exposure[i].centroid[1].size);
958 else if (strcmp (refPix->exposure[i].beamCombiner,
"HIGH_SENS") == 0)
960 if (strcmp (refPix->exposure[i].shutterId,
"AOPEN") == 0)
962 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.EX %f \n", X1_REF_PIX_HS_AOPEN);
963 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.EY %f \n", Y1_REF_PIX_HS_AOPEN);
964 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.ESI %f \n", SIZE_SEARCH_REF_PIX);
966 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.X %f \n", refPix->exposure[i].centroid[0].xCoord);
967 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.Y %f \n", refPix->exposure[i].centroid[0].yCoord);
968 fprintf (midiQcLogPtr,
"QC.PIX.HS.A1.SIZ %f \n", refPix->exposure[i].centroid[0].size);
970 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.EX %f \n", X2_REF_PIX_HS_AOPEN);
971 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.EY %f \n", Y2_REF_PIX_HS_AOPEN);
972 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.ESI %f \n", SIZE_SEARCH_REF_PIX);
974 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.X %f \n", refPix->exposure[i].centroid[1].xCoord);
975 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.Y %f \n", refPix->exposure[i].centroid[1].yCoord);
976 fprintf (midiQcLogPtr,
"QC.PIX.HS.A2.SIZ %f \n", refPix->exposure[i].centroid[1].size);
978 else if (strcmp (refPix->exposure[i].shutterId,
"BOPEN") == 0)
980 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.EX %f \n", X1_REF_PIX_HS_BOPEN);
981 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.EY %f \n", Y1_REF_PIX_HS_BOPEN);
982 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.ESI %f \n", SIZE_SEARCH_REF_PIX);
984 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.X %f \n", refPix->exposure[i].centroid[0].xCoord);
985 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.Y %f \n", refPix->exposure[i].centroid[0].yCoord);
986 fprintf (midiQcLogPtr,
"QC.PIX.HS.B1.SIZ %f \n", refPix->exposure[i].centroid[0].size);
988 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.EX %f \n", X1_REF_PIX_HS_BOPEN);
989 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.EY %f \n", Y1_REF_PIX_HS_BOPEN);
990 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.ESI %f \n", SIZE_SEARCH_REF_PIX);
992 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.X %f \n", refPix->exposure[i].centroid[1].xCoord);
993 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.Y %f \n", refPix->exposure[i].centroid[1].yCoord);
994 fprintf (midiQcLogPtr,
"QC.PIX.HS.B2.SIZ %f \n", refPix->exposure[i].centroid[1].size);
997 else if (strcmp (refPix->exposure[i].beamCombiner,
"SCI_PHOT") == 0)
999 if (strcmp (refPix->exposure[i].shutterId,
"AOPEN") == 0)
1001 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.EX %f \n", X1_REF_PIX_SP_AOPEN);
1002 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.EY %f \n", Y1_REF_PIX_SP_AOPEN);
1003 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.ESI %f \n", SIZE_SEARCH_REF_PIX);
1005 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.X %f \n", refPix->exposure[i].centroid[0].xCoord);
1006 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.Y %f \n", refPix->exposure[i].centroid[0].yCoord);
1007 fprintf (midiQcLogPtr,
"QC.PIX.SP.A1.SIZ %f \n", refPix->exposure[i].centroid[0].size);
1009 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.EX %f \n", X2_REF_PIX_SP_AOPEN);
1010 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.EY %f \n", Y2_REF_PIX_SP_AOPEN);
1011 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.ESI %f \n", SIZE_SEARCH_REF_PIX);
1013 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.X %f \n", refPix->exposure[i].centroid[1].xCoord);
1014 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.Y %f \n", refPix->exposure[i].centroid[1].yCoord);
1015 fprintf (midiQcLogPtr,
"QC.PIX.SP.A2.SIZ %f \n", refPix->exposure[i].centroid[1].size);
1017 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.EX %f \n", X3_REF_PIX_SP_AOPEN);
1018 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.EY %f \n", Y3_REF_PIX_SP_AOPEN);
1019 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.ESI %f \n", SIZE_SEARCH_REF_PIX);
1021 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.X %f \n", refPix->exposure[i].centroid[2].xCoord);
1022 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.Y %f \n", refPix->exposure[i].centroid[2].yCoord);
1023 fprintf (midiQcLogPtr,
"QC.PIX.SP.PA.SIZ %f \n", refPix->exposure[i].centroid[2].size);
1025 else if (strcmp (refPix->exposure[i].shutterId,
"BOPEN") == 0)
1027 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.EX %f \n", X1_REF_PIX_SP_BOPEN);
1028 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.EY %f \n", Y1_REF_PIX_SP_BOPEN);
1029 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.ESI %f \n", SIZE_SEARCH_REF_PIX);
1031 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.X %f \n", refPix->exposure[i].centroid[0].xCoord);
1032 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.Y %f \n", refPix->exposure[i].centroid[0].yCoord);
1033 fprintf (midiQcLogPtr,
"QC.PIX.SP.B1.SIZ %f \n", refPix->exposure[i].centroid[0].size);
1035 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.EX %f \n", X2_REF_PIX_SP_BOPEN);
1036 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.EY %f \n", Y2_REF_PIX_SP_BOPEN);
1037 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.ESI %f \n", SIZE_SEARCH_REF_PIX);
1039 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.X %f \n", refPix->exposure[i].centroid[1].xCoord);
1040 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.Y %f \n", refPix->exposure[i].centroid[1].yCoord);
1041 fprintf (midiQcLogPtr,
"QC.PIX.SP.B2.SIZ %f \n", refPix->exposure[i].centroid[1].size);
1043 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.EX %f \n", X3_REF_PIX_SP_BOPEN);
1044 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.EY %f \n", Y3_REF_PIX_SP_BOPEN);
1045 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.ESI %f \n", SIZE_SEARCH_REF_PIX);
1047 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.X %f \n", refPix->exposure[i].centroid[2].xCoord);
1048 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.Y %f \n", refPix->exposure[i].centroid[2].yCoord);
1049 fprintf (midiQcLogPtr,
"QC.PIX.SP.PB.SIZ %f \n", refPix->exposure[i].centroid[2].size);
1055 free (messageBuffer);
1060 free (classification);