24 #include "midiGlobal.h"
27 #include "errorHandling.h"
28 #include "memoryHandling.h"
29 #include "midiFitsUtility.h"
30 #include "fitsAnalysisTec.h"
54 void analyseFitsDetLin (
63 const char routine[] =
"analyseFitsDetLin";
64 char *fileTemp=NULL, *classification=NULL;
65 FILE *inFitsBatchPtr=NULL;
66 ImageFormat *localFormat=NULL;
67 int extNumOfImagingDataFile;
71 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
72 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
74 cpl_msg_info(cpl_func,
"\nAnalysing batch %d for Detector Linearity \n", batchNumber);
75 cpl_msg_info(cpl_func,
"--------------- \n");
76 fprintf (midiReportPtr,
"\nAnalysing batch %d for Detector Linearity \n", batchNumber);
77 fprintf (midiReportPtr,
"--------------- \n");
84 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
85 fileTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
86 localFormat = callocImageFormat ();
89 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
91 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
92 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"No analysis has been carried out for this batch");
94 freeImageFormat (localFormat);
95 free (classification);
101 format->numOfScans = 0;
102 format->numOfFrames = 0;
103 format->subWindowSize = 0;
104 format->framesPerScan = 0;
109 while (fgets (fileTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
111 sprintf (classification,
"%s",
"");
112 sscanf (fileTemp,
"%s%s", fileNames->inFitsName, classification);
113 if (diagnostic)cpl_msg_info(cpl_func,
"\n Analysing file %s \n", fileNames->inFitsName);
114 fprintf(midiReportPtr,
"\n Analysing file %s \n", fileNames->inFitsName);
117 extNumOfImagingDataFile = findImagingDataExtension (fileNames->inFitsName, TAB_IMAGING_DATA, error);
121 if (extNumOfImagingDataFile > 0)
123 getImageFormat (fileNames->inFitsName, extNumOfImagingDataFile, localFormat, error);
126 else localFormat->hasData = 0;
129 if (localFormat->hasData)
131 if ((strcmp (localFormat->obsCatg,
"CALIB") == 0) &&
132 ((strcmp (localFormat->obsTech,
"IMAGE") == 0) ||
133 (strcmp (localFormat->obsTech,
"SPECTRUM") == 0)) &&
134 (strcmp (localFormat->obsType,
"FLAT") == 0))
140 cpl_msg_info(cpl_func,
"File number = %d \n", *numOfFiles);
141 cpl_msg_info(cpl_func,
"Observation Category = %s \n", localFormat->obsCatg);
142 cpl_msg_info(cpl_func,
"Observation Technique = %s \n", localFormat->obsTech);
143 cpl_msg_info(cpl_func,
"Observation Type = %s \n", localFormat->obsType);
144 cpl_msg_info(cpl_func,
"Beam Combiner = %s \n", localFormat->beamCombiner);
145 cpl_msg_info(cpl_func,
"Shutter ID = %s \n", localFormat->shutterId);
146 cpl_msg_info(cpl_func,
"Filter Name = %s \n", localFormat->filterName);
147 cpl_msg_info(cpl_func,
"Grism ID = %s \n", localFormat->grismId);
148 cpl_msg_info(cpl_func,
"Target Name = %s \n", localFormat->targetName);
149 cpl_msg_info(cpl_func,
"Number of Frames = %d \n", localFormat->numOfFrames);
150 cpl_msg_info(cpl_func,
"X, Column dimension = %d \n", localFormat->iXWidth);
151 cpl_msg_info(cpl_func,
"Y, Column dimension = %d \n", localFormat->iYWidth);
152 cpl_msg_info(cpl_func,
"Sub-window size = %d \n", localFormat->subWindowSize);
153 cpl_msg_info(cpl_func,
"\n");
155 fprintf (midiReportPtr,
"File number = %d \n", *numOfFiles);
156 fprintf (midiReportPtr,
"Observation Category = %s \n", localFormat->obsCatg);
157 fprintf (midiReportPtr,
"Observation Technique = %s \n", localFormat->obsTech);
158 fprintf (midiReportPtr,
"Observation Type = %s \n", localFormat->obsType);
159 fprintf (midiReportPtr,
"Beam Combiner = %s \n", localFormat->beamCombiner);
160 fprintf (midiReportPtr,
"Shutter ID = %s \n", localFormat->shutterId);
161 fprintf (midiReportPtr,
"Filter Name = %s \n", localFormat->filterName);
162 fprintf (midiReportPtr,
"Grism ID = %s \n", localFormat->grismId);
163 fprintf (midiReportPtr,
"Target Name = %s \n", localFormat->targetName);
164 fprintf (midiReportPtr,
"Number of Frames = %d \n", localFormat->numOfFrames);
165 fprintf (midiReportPtr,
"X, Column dimension = %d \n", localFormat->iXWidth);
166 fprintf (midiReportPtr,
"Y, Column dimension = %d \n", localFormat->iYWidth);
167 fprintf (midiReportPtr,
"Sub-window size = %d \n", localFormat->subWindowSize);
168 fprintf (midiReportPtr,
"\n");
172 if (*numOfFiles == 1)
174 sprintf (format->obsCatg,
"%s", localFormat->obsCatg);
175 sprintf (format->obsType,
"%s", localFormat->obsType);
176 sprintf (format->obsTech,
"%s", localFormat->obsTech);
177 sprintf (format->beamCombiner,
"%s", localFormat->beamCombiner);
178 sprintf (format->shutterId,
"%s", localFormat->shutterId);
179 sprintf (format->grismId,
"%s", localFormat->grismId);
180 sprintf (format->targetName,
"%s", localFormat->targetName);
181 sprintf (format->tplStart,
"%s", localFormat->tplStart);
182 sprintf (format->cameraId,
"%s", localFormat->cameraId);
183 sprintf (format->filterName,
"%s", localFormat->filterName);
187 format->numOfFrames = localFormat->numOfFrames;
188 format->subWindowSize = localFormat->subWindowSize;
189 format->framesPerScan = localFormat->framesPerScan;
190 format->iXWidth = localFormat->iXWidth;
191 format->iYWidth = localFormat->iYWidth;
195 sprintf (midiMessage,
"Unknown Category, Tech or Type %s Not processed", fileNames->inFitsName);
196 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
203 sprintf (midiMessage,
"No data tables in %s. Not processed", fileNames->inFitsName);
204 midiReportInfo (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
211 fclose (inFitsBatchPtr);
214 if ((*numOfFiles > 0) && !(*error))
216 cpl_msg_info(cpl_func,
" Maximum image size \n");
217 cpl_msg_info(cpl_func,
" ------------------ \n");
218 cpl_msg_info(cpl_func,
" Number of Frames = %d \n", format->numOfFrames);
219 cpl_msg_info(cpl_func,
" X, column dimension = %d \n", format->iXWidth);
220 cpl_msg_info(cpl_func,
" Y, column dimension = %d \n", format->iYWidth);
221 cpl_msg_info(cpl_func,
" Sub-window size = %d \n", format->subWindowSize);
222 cpl_msg_info(cpl_func,
" Number of Data Files = %d \n", *numOfFiles);
223 cpl_msg_info(cpl_func,
"\n");
225 fprintf (midiReportPtr,
" Maximum image size \n");
226 fprintf (midiReportPtr,
" ------------------ \n");
227 fprintf (midiReportPtr,
" Number of Frames = %d \n", format->numOfFrames);
228 fprintf (midiReportPtr,
" X, column dimension = %d \n", format->iXWidth);
229 fprintf (midiReportPtr,
" Y, column dimension = %d \n", format->iYWidth);
230 fprintf (midiReportPtr,
" Sub-window size = %d \n", format->subWindowSize);
231 fprintf (midiReportPtr,
" Number of Data Files = %d \n", *numOfFiles);
232 fprintf (midiReportPtr,
"\n");
237 sprintf (fileTemp,
"%d", batchNumber);
238 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Inconsistent batch files");
243 freeImageFormat (localFormat);
244 free (classification);
266 void analyseFitsDetRon (
267 MidiFiles *fileNames,
275 const char routine[] =
"analyseFitDetRon";
276 char *fileTemp=NULL, *classification=NULL;
277 FILE *inFitsBatchPtr=NULL;
278 ImageFormat *localFormat=NULL;
279 int extNumOfImagingDataFile;
283 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
284 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
286 cpl_msg_info(cpl_func,
"\nAnalysing batch %d for Detector Readout Noise \n", batchNumber);
287 cpl_msg_info(cpl_func,
"--------------- \n");
288 fprintf (midiReportPtr,
"\nAnalysing batch %d for Detector Readout Noise \n", batchNumber);
289 fprintf (midiReportPtr,
"--------------- \n");
296 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
297 fileTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
298 localFormat = callocImageFormat ();
301 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
303 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
304 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"No analysis has been carried out for this batch");
306 freeImageFormat (localFormat);
307 free (classification);
313 format->numOfScans = 0;
314 format->numOfFrames = 0;
315 format->subWindowSize = 0;
316 format->framesPerScan = 0;
321 while (fgets (fileTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
323 sprintf (classification,
"%s",
"");
324 sscanf (fileTemp,
"%s%s", fileNames->inFitsName, classification);
325 if (diagnostic)cpl_msg_info(cpl_func,
"\n Analysing file %s \n", fileNames->inFitsName);
326 fprintf(midiReportPtr,
"\n Analysing file %s \n", fileNames->inFitsName);
329 extNumOfImagingDataFile = findImagingDataExtension (fileNames->inFitsName, TAB_IMAGING_DATA, error);
333 if (extNumOfImagingDataFile > 0)
335 getImageFormat (fileNames->inFitsName, extNumOfImagingDataFile, localFormat, error);
338 else localFormat->hasData = 0;
341 if (localFormat->hasData)
343 if ((strcmp (localFormat->obsCatg,
"CALIB") == 0) &&
344 (strcmp (localFormat->obsTech,
"IMAGE") == 0) &&
345 (strcmp (localFormat->obsType,
"BIAS") == 0))
351 cpl_msg_info(cpl_func,
"File number = %d \n", *numOfFiles);
352 cpl_msg_info(cpl_func,
"Observation Category = %s \n", localFormat->obsCatg);
353 cpl_msg_info(cpl_func,
"Observation Technique = %s \n", localFormat->obsTech);
354 cpl_msg_info(cpl_func,
"Observation Type = %s \n", localFormat->obsType);
355 cpl_msg_info(cpl_func,
"Beam Combiner = %s \n", localFormat->beamCombiner);
356 cpl_msg_info(cpl_func,
"Shutter ID = %s \n", localFormat->shutterId);
357 cpl_msg_info(cpl_func,
"Grism ID = %s \n", localFormat->grismId);
358 cpl_msg_info(cpl_func,
"Filter Name = %s \n", localFormat->filterName);
359 cpl_msg_info(cpl_func,
"Target Name = %s \n", localFormat->targetName);
360 cpl_msg_info(cpl_func,
"Number of Frames = %d \n", localFormat->numOfFrames);
361 cpl_msg_info(cpl_func,
"Frames per scan = %d \n", localFormat->framesPerScan);
362 cpl_msg_info(cpl_func,
"Number of Scans = %d \n", localFormat->numOfScans);
363 cpl_msg_info(cpl_func,
"X, Column dimension = %d \n", localFormat->iXWidth);
364 cpl_msg_info(cpl_func,
"Y, Column dimension = %d \n", localFormat->iYWidth);
365 cpl_msg_info(cpl_func,
"Sub-window size = %d \n", localFormat->subWindowSize);
366 cpl_msg_info(cpl_func,
"\n");
368 fprintf (midiReportPtr,
"File number = %d \n", *numOfFiles);
369 fprintf (midiReportPtr,
"Observation Category = %s \n", localFormat->obsCatg);
370 fprintf (midiReportPtr,
"Observation Technique = %s \n", localFormat->obsTech);
371 fprintf (midiReportPtr,
"Observation Type = %s \n", localFormat->obsType);
372 fprintf (midiReportPtr,
"Beam Combiner = %s \n", localFormat->beamCombiner);
373 fprintf (midiReportPtr,
"Shutter ID = %s \n", localFormat->shutterId);
374 fprintf (midiReportPtr,
"Grism ID = %s \n", localFormat->grismId);
375 fprintf (midiReportPtr,
"Filter Name = %s \n", localFormat->filterName);
376 fprintf (midiReportPtr,
"Target Name = %s \n", localFormat->targetName);
377 fprintf (midiReportPtr,
"Number of Frames = %d \n", localFormat->numOfFrames);
378 fprintf (midiReportPtr,
"Frames per scan = %d \n", localFormat->framesPerScan);
379 fprintf (midiReportPtr,
"Number of Scans = %d \n", localFormat->numOfScans);
380 fprintf (midiReportPtr,
"X, Column dimension = %d \n", localFormat->iXWidth);
381 fprintf (midiReportPtr,
"Y, Column dimension = %d \n", localFormat->iYWidth);
382 fprintf (midiReportPtr,
"Sub-window size = %d \n", localFormat->subWindowSize);
383 fprintf (midiReportPtr,
"\n");
387 if (*numOfFiles == 1)
389 sprintf (format->obsCatg,
"%s", localFormat->obsCatg);
390 sprintf (format->obsType,
"%s", localFormat->obsType);
391 sprintf (format->obsTech,
"%s", localFormat->obsTech);
392 sprintf (format->beamCombiner,
"%s", localFormat->beamCombiner);
393 sprintf (format->shutterId,
"%s", localFormat->shutterId);
394 sprintf (format->grismId,
"%s", localFormat->grismId);
395 sprintf (format->targetName,
"%s", localFormat->targetName);
396 sprintf (format->tplStart,
"%s", localFormat->tplStart);
397 sprintf (format->cameraId,
"%s", localFormat->cameraId);
398 sprintf (format->filterName,
"%s", localFormat->filterName);
402 format->numOfFrames += localFormat->numOfFrames;
403 format->subWindowSize = localFormat->subWindowSize;
404 format->iXWidth = localFormat->iXWidth;
405 format->iYWidth = localFormat->iYWidth;
409 sprintf (midiMessage,
"Unknown Category, Tech or Type %s Not processed", fileNames->inFitsName);
410 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
417 sprintf (midiMessage,
"No data tables in %s. Not processed", fileNames->inFitsName);
418 midiReportInfo (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
424 if ((*numOfFiles > 0) && !(*error))
426 cpl_msg_info(cpl_func,
" Maximum image size \n");
427 cpl_msg_info(cpl_func,
" ------------------ \n");
428 cpl_msg_info(cpl_func,
" Number of Frames = %d \n", format->numOfFrames);
429 cpl_msg_info(cpl_func,
" X, column dimension = %d \n", format->iXWidth);
430 cpl_msg_info(cpl_func,
" Y, column dimension = %d \n", format->iYWidth);
431 cpl_msg_info(cpl_func,
" Sub-window size = %d \n", format->subWindowSize);
432 cpl_msg_info(cpl_func,
" Number of Data Files = %d \n", *numOfFiles);
433 cpl_msg_info(cpl_func,
"\n");
435 fprintf (midiReportPtr,
" Maximum image size \n");
436 fprintf (midiReportPtr,
" ------------------ \n");
437 fprintf (midiReportPtr,
" Number of Frames = %d \n", format->numOfFrames);
438 fprintf (midiReportPtr,
" X, column dimension = %d \n", format->iXWidth);
439 fprintf (midiReportPtr,
" Y, column dimension = %d \n", format->iYWidth);
440 fprintf (midiReportPtr,
" Sub-window size = %d \n", format->subWindowSize);
441 fprintf (midiReportPtr,
" Number of Data Files = %d \n", *numOfFiles);
442 fprintf (midiReportPtr,
"\n");
447 sprintf (fileTemp,
"%d", batchNumber);
448 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Inconsistent batch files");
452 fclose (inFitsBatchPtr);
454 freeImageFormat (localFormat);
455 free (classification);
477 void analyseFitsDspTrn (
478 MidiFiles *fileNames,
486 const char routine[] =
"analyseFitsDspTrn";
487 char *fileTemp=NULL, *classification=NULL;
488 FILE *inFitsBatchPtr=NULL;
489 ImageFormat *localFormat=NULL;
490 int extNumOfImagingDataFile;
494 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
495 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
497 cpl_msg_info(cpl_func,
"\nAnalysing batch %d for Dispersive Transmission Assessment \n", batchNumber);
498 cpl_msg_info(cpl_func,
"--------------- \n");
499 fprintf (midiReportPtr,
"\nAnalysing batch %d for Dispersive Transmission Assessment \n", batchNumber);
500 fprintf (midiReportPtr,
"--------------- \n");
507 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
508 fileTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
509 localFormat = callocImageFormat ();
512 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
514 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
515 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"No analysis has been carried out for this batch");
517 freeImageFormat (localFormat);
518 free (classification);
524 format->numOfScans = 0;
525 format->numOfFrames = 0;
526 format->subWindowSize = 0;
527 format->framesPerScan = 0;
532 while (fgets (fileTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
534 sprintf (classification,
"%s",
"");
535 sscanf (fileTemp,
"%s%s", fileNames->inFitsName, classification);
536 if (diagnostic)cpl_msg_info(cpl_func,
"\n Analysing file %s \n", fileNames->inFitsName);
537 fprintf(midiReportPtr,
"\n Analysing file %s \n", fileNames->inFitsName);
540 extNumOfImagingDataFile = findImagingDataExtension (fileNames->inFitsName, TAB_IMAGING_DATA, error);
544 if (extNumOfImagingDataFile > 0)
546 getImageFormat (fileNames->inFitsName, extNumOfImagingDataFile, localFormat, error);
549 else localFormat->hasData = 0;
552 if (localFormat->hasData)
554 if ((strcmp (localFormat->obsCatg,
"CALIB") == 0) &&
555 (strcmp (localFormat->obsTech,
"SPECTRUM") == 0) &&
556 (strcmp (localFormat->obsType,
"WAVE") == 0))
562 cpl_msg_info(cpl_func,
"File number = %d \n", *numOfFiles);
563 cpl_msg_info(cpl_func,
"Observation Category = %s \n", localFormat->obsCatg);
564 cpl_msg_info(cpl_func,
"Observation Technique = %s \n", localFormat->obsTech);
565 cpl_msg_info(cpl_func,
"Observation Type = %s \n", localFormat->obsType);
566 cpl_msg_info(cpl_func,
"Beam Combiner = %s \n", localFormat->beamCombiner);
567 cpl_msg_info(cpl_func,
"Shutter ID = %s \n", localFormat->shutterId);
568 cpl_msg_info(cpl_func,
"Grism ID = %s \n", localFormat->grismId);
569 cpl_msg_info(cpl_func,
"Filter Name = %s \n", localFormat->filterName);
570 cpl_msg_info(cpl_func,
"Target Name = %s \n", localFormat->targetName);
571 cpl_msg_info(cpl_func,
"Number of Frames = %d \n", localFormat->numOfFrames);
572 cpl_msg_info(cpl_func,
"Frames per scan = %d \n", localFormat->framesPerScan);
573 cpl_msg_info(cpl_func,
"Number of Scans = %d \n", localFormat->numOfScans);
574 cpl_msg_info(cpl_func,
"X, Column dimension = %d \n", localFormat->iXWidth);
575 cpl_msg_info(cpl_func,
"Y, Column dimension = %d \n", localFormat->iYWidth);
576 cpl_msg_info(cpl_func,
"Sub-window size = %d \n", localFormat->subWindowSize);
577 cpl_msg_info(cpl_func,
"\n");
579 fprintf (midiReportPtr,
"File number = %d \n", *numOfFiles);
580 fprintf (midiReportPtr,
"Observation Category = %s \n", localFormat->obsCatg);
581 fprintf (midiReportPtr,
"Observation Technique = %s \n", localFormat->obsTech);
582 fprintf (midiReportPtr,
"Observation Type = %s \n", localFormat->obsType);
583 fprintf (midiReportPtr,
"Beam Combiner = %s \n", localFormat->beamCombiner);
584 fprintf (midiReportPtr,
"Shutter ID = %s \n", localFormat->shutterId);
585 fprintf (midiReportPtr,
"Grism ID = %s \n", localFormat->grismId);
586 fprintf (midiReportPtr,
"Filter Name = %s \n", localFormat->filterName);
587 fprintf (midiReportPtr,
"Target Name = %s \n", localFormat->targetName);
588 fprintf (midiReportPtr,
"Number of Frames = %d \n", localFormat->numOfFrames);
589 fprintf (midiReportPtr,
"Frames per scan = %d \n", localFormat->framesPerScan);
590 fprintf (midiReportPtr,
"Number of Scans = %d \n", localFormat->numOfScans);
591 fprintf (midiReportPtr,
"X, Column dimension = %d \n", localFormat->iXWidth);
592 fprintf (midiReportPtr,
"Y, Column dimension = %d \n", localFormat->iYWidth);
593 fprintf (midiReportPtr,
"Sub-window size = %d \n", localFormat->subWindowSize);
594 fprintf (midiReportPtr,
"\n");
598 if (*numOfFiles == 1)
600 sprintf (format->obsCatg,
"%s", localFormat->obsCatg);
601 sprintf (format->obsType,
"%s", localFormat->obsType);
602 sprintf (format->obsTech,
"%s", localFormat->obsTech);
603 sprintf (format->beamCombiner,
"%s", localFormat->beamCombiner);
604 sprintf (format->shutterId,
"%s", localFormat->shutterId);
605 sprintf (format->grismId,
"%s", localFormat->grismId);
606 sprintf (format->targetName,
"%s", localFormat->targetName);
607 sprintf (format->tplStart,
"%s", localFormat->tplStart);
608 sprintf (format->cameraId,
"%s", localFormat->cameraId);
609 sprintf (format->filterName,
"%s", localFormat->filterName);
612 if (localFormat->numOfScans > format->numOfScans)
613 format->numOfScans = localFormat->numOfScans;
615 if (localFormat->numOfFrames > format->numOfFrames)
616 format->numOfFrames = localFormat->numOfFrames;
618 if (localFormat->subWindowSize > format->subWindowSize)
619 format->subWindowSize = localFormat->subWindowSize;
621 if (localFormat->framesPerScan > format->framesPerScan)
622 format->framesPerScan = localFormat->framesPerScan;
624 if (localFormat->iXWidth > format->iXWidth)
625 format->iXWidth = localFormat->iXWidth;
627 if (localFormat->iYWidth > format->iYWidth)
628 format->iYWidth = localFormat->iYWidth;
632 sprintf (midiMessage,
"Unknown Category, Tech or Type %s Not processed", fileNames->inFitsName);
633 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
640 sprintf (midiMessage,
"No data tables in %s. Not processed", fileNames->inFitsName);
641 midiReportInfo (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
648 fclose (inFitsBatchPtr);
651 if ((*numOfFiles > 0) && !(*error))
653 cpl_msg_info(cpl_func,
" Maximum image size \n");
654 cpl_msg_info(cpl_func,
" ------------------ \n");
655 cpl_msg_info(cpl_func,
" Number of Scans = %d \n", format->numOfScans);
656 cpl_msg_info(cpl_func,
" Number of Frames = %d \n", format->numOfFrames);
657 cpl_msg_info(cpl_func,
" Frames per scan = %d \n", format->framesPerScan);
658 cpl_msg_info(cpl_func,
" X, column dimension = %d \n", format->iXWidth);
659 cpl_msg_info(cpl_func,
" Y, column dimension = %d \n", format->iYWidth);
660 cpl_msg_info(cpl_func,
" Sub-window size = %d \n", format->subWindowSize);
661 cpl_msg_info(cpl_func,
" Number of Data Files = %d \n", *numOfFiles);
662 cpl_msg_info(cpl_func,
"\n");
664 fprintf (midiReportPtr,
" Maximum image size \n");
665 fprintf (midiReportPtr,
" ------------------ \n");
666 fprintf (midiReportPtr,
" Number of Scans = %d \n", format->numOfScans);
667 fprintf (midiReportPtr,
" Number of Frames = %d \n", format->numOfFrames);
668 fprintf (midiReportPtr,
" Frames per scan = %d \n", format->framesPerScan);
669 fprintf (midiReportPtr,
" X, column dimension = %d \n", format->iXWidth);
670 fprintf (midiReportPtr,
" Y, column dimension = %d \n", format->iYWidth);
671 fprintf (midiReportPtr,
" Sub-window size = %d \n", format->subWindowSize);
672 fprintf (midiReportPtr,
" Number of Data Files = %d \n", *numOfFiles);
673 fprintf (midiReportPtr,
"\n");
678 sprintf (fileTemp,
"%d", batchNumber);
679 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Inconsistent batch files");
684 freeImageFormat (localFormat);
685 free (classification);
705 void analyseFitsRefPix (
706 MidiFiles *fileNames,
715 const char routine[] =
"analyseFitsRefPix";
716 char *fileTemp=NULL, *classification=NULL;
717 FILE *inFitsBatchPtr=NULL;
718 ImageFormat *localFormat=NULL;
719 int extNumOfImagingDataFile;
723 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
724 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
726 cpl_msg_info(cpl_func,
"\nAnalysing batch %d for Reference Pixel Alignment \n", batchNumber);
727 cpl_msg_info(cpl_func,
"--------------- \n");
728 fprintf (midiReportPtr,
"\nAnalysing batch %d for Reference Pixel Alignment \n", batchNumber);
729 fprintf (midiReportPtr,
"--------------- \n");
737 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
738 fileTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
739 localFormat = callocImageFormat ();
742 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
744 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
745 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"No analysis has been carried out for this batch");
747 freeImageFormat (localFormat);
748 free (classification);
754 format->numOfScans = 0;
755 format->numOfFrames = 0;
756 format->subWindowSize = 0;
757 format->framesPerScan = 0;
762 while (fgets (fileTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
764 sprintf (classification,
"%s",
"");
765 sscanf (fileTemp,
"%s%s", fileNames->inFitsName, classification);
766 if (diagnostic)cpl_msg_info(cpl_func,
"\n Analysing file %s \n", fileNames->inFitsName);
767 fprintf(midiReportPtr,
"\n Analysing file %s \n", fileNames->inFitsName);
770 extNumOfImagingDataFile = findImagingDataExtension (fileNames->inFitsName, TAB_IMAGING_DATA, error);
774 if (extNumOfImagingDataFile > 0)
776 getImageFormat (fileNames->inFitsName, extNumOfImagingDataFile, localFormat, error);
779 else localFormat->hasData = 0;
782 if (localFormat->hasData)
784 if ((strcmp (localFormat->obsCatg,
"CALIB") == 0) &&
785 (strcmp (localFormat->obsTech,
"IMAGE") == 0) &&
786 (strcmp (localFormat->obsType,
"FMTCHCK") == 0))
792 if (strcmp (localFormat->beamCombiner,
"SCI_PHOT") == 0) *numOfBeams = 3;
795 cpl_msg_info(cpl_func,
"File number = %d \n", *numOfFiles);
796 cpl_msg_info(cpl_func,
"Observation Category = %s \n", localFormat->obsCatg);
797 cpl_msg_info(cpl_func,
"Observation Technique = %s \n", localFormat->obsTech);
798 cpl_msg_info(cpl_func,
"Observation Type = %s \n", localFormat->obsType);
799 cpl_msg_info(cpl_func,
"Beam Combiner = %s \n", localFormat->beamCombiner);
800 cpl_msg_info(cpl_func,
"Shutter ID = %s \n", localFormat->shutterId);
801 cpl_msg_info(cpl_func,
"Grism ID = %s \n", localFormat->grismId);
802 cpl_msg_info(cpl_func,
"Filter Name = %s \n", localFormat->filterName);
803 cpl_msg_info(cpl_func,
"Target Name = %s \n", localFormat->targetName);
804 cpl_msg_info(cpl_func,
"Number of Frames = %d \n", localFormat->numOfFrames);
805 cpl_msg_info(cpl_func,
"Frames per scan = %d \n", localFormat->framesPerScan);
806 cpl_msg_info(cpl_func,
"Number of Scans = %d \n", localFormat->numOfScans);
807 cpl_msg_info(cpl_func,
"X, Column dimension = %d \n", localFormat->iXWidth);
808 cpl_msg_info(cpl_func,
"Y, Column dimension = %d \n", localFormat->iYWidth);
809 cpl_msg_info(cpl_func,
"Sub-window size = %d \n", localFormat->subWindowSize);
810 cpl_msg_info(cpl_func,
"\n");
812 fprintf (midiReportPtr,
"File number = %d \n", *numOfFiles);
813 fprintf (midiReportPtr,
"Observation Category = %s \n", localFormat->obsCatg);
814 fprintf (midiReportPtr,
"Observation Technique = %s \n", localFormat->obsTech);
815 fprintf (midiReportPtr,
"Observation Type = %s \n", localFormat->obsType);
816 fprintf (midiReportPtr,
"Beam Combiner = %s \n", localFormat->beamCombiner);
817 fprintf (midiReportPtr,
"Shutter ID = %s \n", localFormat->shutterId);
818 fprintf (midiReportPtr,
"Grism ID = %s \n", localFormat->grismId);
819 fprintf (midiReportPtr,
"Filter Name = %s \n", localFormat->filterName);
820 fprintf (midiReportPtr,
"Target Name = %s \n", localFormat->targetName);
821 fprintf (midiReportPtr,
"Number of Frames = %d \n", localFormat->numOfFrames);
822 fprintf (midiReportPtr,
"Frames per scan = %d \n", localFormat->framesPerScan);
823 fprintf (midiReportPtr,
"Number of Scans = %d \n", localFormat->numOfScans);
824 fprintf (midiReportPtr,
"X, Column dimension = %d \n", localFormat->iXWidth);
825 fprintf (midiReportPtr,
"Y, Column dimension = %d \n", localFormat->iYWidth);
826 fprintf (midiReportPtr,
"Sub-window size = %d \n", localFormat->subWindowSize);
827 fprintf (midiReportPtr,
"\n");
831 if (*numOfFiles == 1)
833 sprintf (format->obsCatg,
"%s", localFormat->obsCatg);
834 sprintf (format->obsType,
"%s", localFormat->obsType);
835 sprintf (format->obsTech,
"%s", localFormat->obsTech);
836 sprintf (format->beamCombiner,
"%s", localFormat->beamCombiner);
837 sprintf (format->shutterId,
"%s", localFormat->shutterId);
838 sprintf (format->grismId,
"%s", localFormat->grismId);
839 sprintf (format->targetName,
"%s", localFormat->targetName);
840 sprintf (format->tplStart,
"%s", localFormat->tplStart);
841 sprintf (format->cameraId,
"%s", localFormat->cameraId);
842 sprintf (format->filterName,
"%s", localFormat->filterName);
845 if (localFormat->numOfScans > format->numOfScans)
846 format->numOfScans = localFormat->numOfScans;
848 if (localFormat->numOfFrames > format->numOfFrames)
849 format->numOfFrames = localFormat->numOfFrames;
851 if (localFormat->subWindowSize > format->subWindowSize)
852 format->subWindowSize = localFormat->subWindowSize;
854 if (localFormat->framesPerScan > format->framesPerScan)
855 format->framesPerScan = localFormat->framesPerScan;
857 if (localFormat->iXWidth > format->iXWidth)
858 format->iXWidth = localFormat->iXWidth;
860 if (localFormat->iYWidth > format->iYWidth)
861 format->iYWidth = localFormat->iYWidth;
865 sprintf (midiMessage,
"Unknown Category, Tech or Type %s Not processed", fileNames->inFitsName);
866 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
873 sprintf (midiMessage,
"No data tables in %s. Not processed", fileNames->inFitsName);
874 midiReportInfo (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
881 fclose (inFitsBatchPtr);
884 if ((*numOfFiles > 0) && !(*error))
886 cpl_msg_info(cpl_func,
" Maximum image size \n");
887 cpl_msg_info(cpl_func,
" ------------------ \n");
888 cpl_msg_info(cpl_func,
" Number of Scans = %d \n", format->numOfScans);
889 cpl_msg_info(cpl_func,
" Number of Frames = %d \n", format->numOfFrames);
890 cpl_msg_info(cpl_func,
" Frames per scan = %d \n", format->framesPerScan);
891 cpl_msg_info(cpl_func,
" Number of Beams = %d \n", *numOfBeams);
892 cpl_msg_info(cpl_func,
" X, column dimension = %d \n", format->iXWidth);
893 cpl_msg_info(cpl_func,
" Y, column dimension = %d \n", format->iYWidth);
894 cpl_msg_info(cpl_func,
" Sub-window size = %d \n", format->subWindowSize);
895 cpl_msg_info(cpl_func,
" Number of Data Files = %d \n", *numOfFiles);
896 cpl_msg_info(cpl_func,
"\n");
898 fprintf (midiReportPtr,
" Maximum image size \n");
899 fprintf (midiReportPtr,
" ------------------ \n");
900 fprintf (midiReportPtr,
" Number of Scans = %d \n", format->numOfScans);
901 fprintf (midiReportPtr,
" Number of Frames = %d \n", format->numOfFrames);
902 fprintf (midiReportPtr,
" Frames per scan = %d \n", format->framesPerScan);
903 fprintf (midiReportPtr,
" Number of Beams = %d \n", *numOfBeams);
904 fprintf (midiReportPtr,
" X, column dimension = %d \n", format->iXWidth);
905 fprintf (midiReportPtr,
" Y, column dimension = %d \n", format->iYWidth);
906 fprintf (midiReportPtr,
" Sub-window size = %d \n", format->subWindowSize);
907 fprintf (midiReportPtr,
" Number of Data Files = %d \n", *numOfFiles);
908 fprintf (midiReportPtr,
"\n");
913 sprintf (fileTemp,
"%d", batchNumber);
914 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Inconsistent batch files");
919 freeImageFormat (localFormat);
920 free (classification);
941 void analyseFitsWaveCal (
942 MidiFiles *fileNames,
950 const char routine[] =
"analyseFitsWaveCal";
951 char *fileTemp=NULL, *classification=NULL;
952 FILE *inFitsBatchPtr=NULL;
953 ImageFormat *localFormat=NULL;
954 int extNumOfImagingDataFile;
958 if (diagnostic > 4)cpl_msg_info(cpl_func,
"Invoking routine '%s' \n", routine);
959 if (diagnostic > 4) fprintf (midiReportPtr,
"Invoking routine '%s' \n", routine);
961 cpl_msg_info(cpl_func,
"\nAnalysing batch %d for Wavelength Calibration \n", batchNumber);
962 cpl_msg_info(cpl_func,
"--------------- \n");
963 fprintf (midiReportPtr,
"\nAnalysing batch %d for Wavelength Calibration \n", batchNumber);
964 fprintf (midiReportPtr,
"--------------- \n");
971 classification = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
972 fileTemp = (
char *) calloc (MAX_STRING_LENGTH,
sizeof (
char));
973 localFormat = callocImageFormat ();
976 if ((inFitsBatchPtr = fopen (fileNames->inFitsBatch,
"r")) == NULL)
978 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Cannot open input FITS file list");
979 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"No analysis has been carried out for this batch");
981 freeImageFormat (localFormat);
982 free (classification);
989 format->numOfDetectorRegions = 0;
990 format->numOfRegionsToProcess = 0;
991 format->numOfPinholes = 0;
992 format->numOfFrames = 0;
993 format->framesPerScan = 0;
994 format->numOfScans = 0;
995 format->subWindowSize = 0;
1000 while (fgets (fileTemp, MAX_STRING_LENGTH, inFitsBatchPtr) != NULL)
1002 sprintf (classification,
"%s",
"");
1003 sscanf (fileTemp,
"%s%s", fileNames->inFitsName, classification);
1004 if (diagnostic)cpl_msg_info(cpl_func,
"\n Analysing file %s \n", fileNames->inFitsName);
1005 fprintf(midiReportPtr,
"\n Analysing file %s \n", fileNames->inFitsName);
1008 extNumOfImagingDataFile = findImagingDataExtension (fileNames->inFitsName, TAB_IMAGING_DATA, error);
1012 if (extNumOfImagingDataFile > 0)
1014 getImageFormat (fileNames->inFitsName, extNumOfImagingDataFile, localFormat, error);
1017 else localFormat->hasData = 0;
1020 if (localFormat->hasData)
1022 if ((strcmp (localFormat->obsCatg,
"CALIB") == 0) &&
1023 (strcmp (localFormat->obsTech,
"SPECTRUM") == 0) &&
1024 (strcmp (localFormat->obsType,
"WAVE,SPECTEMPL") == 0))
1030 cpl_msg_info(cpl_func,
"File number = %d \n", *numOfFiles);
1031 cpl_msg_info(cpl_func,
"Observation Category = %s \n", localFormat->obsCatg);
1032 cpl_msg_info(cpl_func,
"Observation Technique = %s \n", localFormat->obsTech);
1033 cpl_msg_info(cpl_func,
"Observation Type = %s \n", localFormat->obsType);
1034 cpl_msg_info(cpl_func,
"Beam Combiner = %s \n", localFormat->beamCombiner);
1035 cpl_msg_info(cpl_func,
"Shutter ID = %s \n", localFormat->shutterId);
1036 cpl_msg_info(cpl_func,
"Filter Name = %s \n", localFormat->filterName);
1037 cpl_msg_info(cpl_func,
"Grism ID = %s \n", localFormat->grismId);
1038 cpl_msg_info(cpl_func,
"Target Name = %s \n", localFormat->targetName);
1039 cpl_msg_info(cpl_func,
"Number of Frames = %d \n", localFormat->numOfFrames);
1040 cpl_msg_info(cpl_func,
"Frames per scan = %d \n", localFormat->framesPerScan);
1041 cpl_msg_info(cpl_func,
"Number of Scans = %d \n", localFormat->numOfScans);
1042 cpl_msg_info(cpl_func,
"X, Column dimension = %d \n", localFormat->iXWidth);
1043 cpl_msg_info(cpl_func,
"Y, Column dimension = %d \n", localFormat->iYWidth);
1044 cpl_msg_info(cpl_func,
"Sub-window size = %d \n", localFormat->subWindowSize);
1045 cpl_msg_info(cpl_func,
"\n");
1047 fprintf (midiReportPtr,
"File number = %d \n", *numOfFiles);
1048 fprintf (midiReportPtr,
"Observation Category = %s \n", localFormat->obsCatg);
1049 fprintf (midiReportPtr,
"Observation Technique = %s \n", localFormat->obsTech);
1050 fprintf (midiReportPtr,
"Observation Type = %s \n", localFormat->obsType);
1051 fprintf (midiReportPtr,
"Beam Combiner = %s \n", localFormat->beamCombiner);
1052 fprintf (midiReportPtr,
"Shutter ID = %s \n", localFormat->shutterId);
1053 fprintf (midiReportPtr,
"Filter Name = %s \n", localFormat->filterName);
1054 fprintf (midiReportPtr,
"Grism ID = %s \n", localFormat->grismId);
1055 fprintf (midiReportPtr,
"Target Name = %s \n", localFormat->targetName);
1056 fprintf (midiReportPtr,
"Number of Frames = %d \n", localFormat->numOfFrames);
1057 fprintf (midiReportPtr,
"Frames per scan = %d \n", localFormat->framesPerScan);
1058 fprintf (midiReportPtr,
"Number of Scans = %d \n", localFormat->numOfScans);
1059 fprintf (midiReportPtr,
"X, Column dimension = %d \n", localFormat->iXWidth);
1060 fprintf (midiReportPtr,
"Y, Column dimension = %d \n", localFormat->iYWidth);
1061 fprintf (midiReportPtr,
"Sub-window size = %d \n", localFormat->subWindowSize);
1062 fprintf (midiReportPtr,
"\n");
1065 if (*numOfFiles == 1)
1067 format->hasData = 1;
1068 sprintf (format->obsCatg,
"%s", localFormat->obsCatg);
1069 sprintf (format->obsTech,
"%s", localFormat->obsTech);
1070 sprintf (format->obsType,
"%s", localFormat->obsType);
1071 sprintf (format->cameraId,
"%s", localFormat->cameraId);
1072 sprintf (format->beamCombiner,
"%s", localFormat->beamCombiner);
1073 sprintf (format->filterName,
"%s", localFormat->filterName);
1074 sprintf (format->shutterId,
"%s", localFormat->shutterId);
1075 sprintf (format->grismId,
"%s", localFormat->grismId);
1076 sprintf (format->targetName,
"%s", localFormat->targetName);
1077 sprintf (format->slitName,
"%s", localFormat->slitName);
1078 sprintf (format->tplStart,
"%s", localFormat->tplStart);
1079 sprintf (format->tplName,
"%s", localFormat->tplName);
1080 format->numOfDetectorRegions = localFormat->numOfDetectorRegions;
1081 format->numOfRegionsToProcess = localFormat->numOfRegionsToProcess;
1082 format->numOfPinholes = localFormat->numOfPinholes;
1083 format->framesPerScan = localFormat->framesPerScan;
1084 format->subWindowSize = localFormat->subWindowSize;
1085 format->iXWidth = localFormat->iXWidth;
1086 format->iYWidth = localFormat->iYWidth;
1087 format->numOfFrames = localFormat->numOfFrames;
1088 format->subWindowSize = localFormat->subWindowSize;
1092 if (strcmp (format->obsCatg, localFormat->obsCatg) != 0) *error = 1;
1093 if (strcmp (format->obsTech, localFormat->obsTech) != 0) *error = 1;
1094 if (strcmp (format->obsType, localFormat->obsType) != 0) *error = 1;
1095 if (strcmp (format->cameraId, localFormat->cameraId) != 0) *error = 1;
1096 if (strcmp (format->beamCombiner, localFormat->beamCombiner) != 0) *error = 1;
1097 if (strcmp (format->grismId, localFormat->grismId) != 0) *error = 1;
1098 if (strcmp (format->targetName, localFormat->targetName) != 0) *error = 1;
1099 if (strcmp (format->slitName, localFormat->slitName) != 0) *error = 1;
1100 if (strcmp (format->tplStart, localFormat->tplStart) != 0) *error = 1;
1101 if (strcmp (format->tplName, localFormat->tplName) != 0) *error = 1;
1102 if (format->numOfDetectorRegions != localFormat->numOfDetectorRegions) *error = 1;
1103 if (format->numOfRegionsToProcess != localFormat->numOfRegionsToProcess) *error = 1;
1104 if (format->numOfPinholes != localFormat->numOfPinholes) *error = 1;
1105 if (format->framesPerScan != localFormat->framesPerScan) *error = 1;
1106 if (format->subWindowSize != localFormat->subWindowSize) *error = 1;
1107 if (format->iXWidth != localFormat->iXWidth) *error = 1;
1108 if (format->iYWidth != localFormat->iYWidth) *error = 1;
1109 if (format->numOfFrames != localFormat->numOfFrames) *error = 1;
1110 if (format->subWindowSize != localFormat->subWindowSize) *error = 1;
1114 sprintf (midiMessage,
"Inconsistent FITS files. %s", fileNames->inFitsName);
1115 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
1120 sprintf (midiMessage,
"Unknown Category, Tech or Type %s Not processed", fileNames->inFitsName);
1121 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
1128 sprintf (midiMessage,
"No data tables in %s. Not processed", fileNames->inFitsName);
1129 midiReportInfo (midiReportPtr, routine, __FILE__, __LINE__, midiMessage);
1136 fclose (inFitsBatchPtr);
1139 if ((*numOfFiles > 0) && !(*error))
1141 cpl_msg_info(cpl_func,
" Maximum image size \n");
1142 cpl_msg_info(cpl_func,
" ------------------ \n");
1143 cpl_msg_info(cpl_func,
" Number of Scans = %d \n", format->numOfScans);
1144 cpl_msg_info(cpl_func,
" Number of Frames = %d \n", format->numOfFrames);
1145 cpl_msg_info(cpl_func,
" Frames per scan = %d \n", format->framesPerScan);
1146 cpl_msg_info(cpl_func,
" X, column dimension = %d \n", format->iXWidth);
1147 cpl_msg_info(cpl_func,
" Y, column dimension = %d \n", format->iYWidth);
1148 cpl_msg_info(cpl_func,
" Number of Regions = %d \n", format->numOfDetectorRegions);
1149 cpl_msg_info(cpl_func,
" Sub-window size = %d \n", format->subWindowSize);
1150 cpl_msg_info(cpl_func,
" Number of Data Files = %d \n", *numOfFiles);
1151 cpl_msg_info(cpl_func,
"\n");
1153 fprintf (midiReportPtr,
" Maximum image size \n");
1154 fprintf (midiReportPtr,
" ------------------ \n");
1155 fprintf (midiReportPtr,
" Number of Scans = %d \n", format->numOfScans);
1156 fprintf (midiReportPtr,
" Number of Frames = %d \n", format->numOfFrames);
1157 fprintf (midiReportPtr,
" Frames per scan = %d \n", format->framesPerScan);
1158 fprintf (midiReportPtr,
" X, column dimension = %d \n", format->iXWidth);
1159 fprintf (midiReportPtr,
" Y, column dimension = %d \n", format->iYWidth);
1160 fprintf (midiReportPtr,
" Number of Regions = %d \n", format->numOfDetectorRegions);
1161 fprintf (midiReportPtr,
" Sub-window size = %d \n", format->subWindowSize);
1162 fprintf (midiReportPtr,
" Number of Data Files = %d \n", *numOfFiles);
1163 fprintf (midiReportPtr,
"\n");
1168 sprintf (fileTemp,
"%d", batchNumber);
1169 midiReportWarning (midiReportPtr, routine, __FILE__, __LINE__,
"Inconsistent batch files");
1174 freeImageFormat (localFormat);
1175 free (classification);