Changeset 13104 for trunk/pswarp/src
- Timestamp:
- Apr 30, 2007, 6:24:33 PM (19 years ago)
- Location:
- trunk/pswarp/src
- Files:
-
- 3 edited
-
Makefile.am (modified) (1 diff)
-
pswarpArguments.c (modified) (1 diff)
-
pswarpDataSave.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pswarp/src/Makefile.am
r12505 r13104 1 2 lib_LTLIBRARIES = libpswarp.la3 libpswarp_la_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PSWARP_CFLAGS)4 5 1 bin_PROGRAMS = pswarp 6 pswarp_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PSWARP_CFLAGS) 7 pswarp_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PSWARP_LIBS) 8 pswarp_LDADD = libpswarp.la 2 pswarp_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPSTATS_CFLAGS) $(PSWARP_CFLAGS) 3 pswarp_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPSTATS_LIBS) $(PSWARP_LIBS) 9 4 10 5 pswarp_SOURCES = \ 11 pswarp.c 6 pswarp.c \ 7 pswarpArguments.c \ 8 pswarpCleanup.c \ 9 pswarpDataLoad.c \ 10 pswarpDataSave.c \ 11 pswarpDefine.c \ 12 pswarpDefineSkycell.c \ 13 pswarpErrorCodes.c \ 14 pswarpMapGrid.c \ 15 pswarpMatchRange.c \ 16 pswarpParseCamera.c \ 17 pswarpTransformReadout.c \ 18 pswarpTransformReadout_Opt.c \ 19 pswarpVersion.c 12 20 13 libpswarp_la_SOURCES = \ 14 pswarpArguments.c \ 15 pswarpCleanup.c \ 16 pswarpDataLoad.c \ 17 pswarpDataSave.c \ 18 pswarpDefine.c \ 19 pswarpDefineSkycell.c \ 20 pswarpErrorCodes.c \ 21 pswarpMapGrid.c \ 22 pswarpMatchRange.c \ 23 pswarpParseCamera.c \ 24 pswarpTransformReadout.c \ 25 pswarpTransformReadout_Opt.c \ 26 pswarpVersion.c 27 28 include_HEADERS = \ 21 noinst_HEADERS = \ 29 22 pswarp.h \ 30 23 pswarpErrorCodes.h -
trunk/pswarp/src/pswarpArguments.c
r12995 r13104 26 26 27 27 // chip selection is used to limit chips to be processed 28 if ((N = psArgumentGet (argc, argv, "-chip"))) { 29 psArgumentRemove (N, &argc, argv); 30 psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", argv[N]); 31 psArgumentRemove (N, &argc, argv); 28 if ((N = psArgumentGet(argc, argv, "-chip"))) { 29 psArgumentRemove(N, &argc, argv); 30 psMetadataAddStr(config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, 31 "Only process these chips", argv[N]); 32 psArgumentRemove(N, &argc, argv); 33 } 34 35 // Statistics file 36 if ((N = psArgumentGet(argc, argv, "-stat"))) { 37 psArgumentRemove(N, &argc, argv); 38 psMetadataAddStr(config->arguments, PS_LIST_TAIL, "STATS", PS_DATA_STRING, 39 "Filename for statistics of output image", argv[N]); 40 psArgumentRemove(N, &argc, argv); 32 41 } 33 42 -
trunk/pswarp/src/pswarpDataSave.c
r12771 r13104 1 # include "pswarp.h" 1 #include <ppStats.h> 2 #include "pswarp.h" 2 3 3 4 // this loop loads the data from the input files and selects the … … 7 8 8 9 // all of the different astrometry analysis modes use the same data load loop 9 bool pswarpDataSave (pmConfig *config) {10 bool pswarpDataSave(pmConfig *config) { 10 11 11 12 pmChip *chip; … … 18 19 psError(PSWARP_ERR_CONFIG, true, "Can't find input data!\n"); 19 20 return false; 21 } 22 23 bool mdok; // Status of MD lookup 24 const char *statsName = psMetadataLookupStr(&mdok, config->arguments, "STATS"); // Filename for statistics 25 psMetadata *stats = NULL; // Container for statistics 26 FILE *statsFile = NULL; // File stream for statistics 27 if (mdok && statsName && strlen(statsName) > 0) { 28 statsFile = fopen(statsName, "w"); 29 if (!statsFile) { 30 psError(PS_ERR_IO, true, "Unable to open statistics file %s for writing.\n", statsName); 31 return false; 32 } 33 stats = psMetadataAlloc(); 20 34 } 21 35 … … 40 54 pmFPAfileIOChecks (config, view, PM_FPA_BEFORE); 41 55 42 // process each of the readouts 43 while ((readout = pmFPAviewNextReadout (view, input->fpa, 1)) != NULL) { 56 // Perform statistics on the cell 57 if (stats) { 58 bool mdok; // Status of MD lookup 59 pmFPAfile *output = psMetadataLookupPtr(&mdok, config->files, "PSWARP.OUTPUT"); 60 if (!mdok || !output) { 61 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find file PSWARP.OUTPUT.\n"); 62 psFree(view); 63 psFree(stats); 64 return false; 65 } 66 ppStats(stats, output->fpa, view, config); 67 } 68 69 pmHDU *hdu = pmHDUFromCell(cell); // HDU that owns the cell 70 71 // Process readouts 72 while ((readout = pmFPAviewNextReadout(view, input->fpa, 1)) != NULL) { 44 73 pmFPAfileIOChecks (config, view, PM_FPA_BEFORE); 45 if (! readout->data_exists) { continue; } 74 if (!readout->data_exists) { 75 continue; 76 } 46 77 47 78 // pswarpConvertReadout (readout, config); 79 80 // Add MD5 information for readout 81 const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); 82 const char *cellName = psMetadataLookupStr(NULL, cell->concepts, "CELL.NAME"); 83 psString headerName = NULL; // Header name for MD5 84 psStringAppend(&headerName, "MD5_%s_%s_%d", chipName, cellName, view->readout); 85 psVector *md5 = psImageMD5(readout->image); // md5 hash 86 psString md5string = psMD5toString(md5); // String 87 psFree(md5); 88 psMetadataAddStr(hdu->header, PS_LIST_TAIL, headerName, PS_META_REPLACE, 89 "Image MD5", md5string); 90 psFree(md5string); 91 psFree(headerName); 48 92 49 93 pmFPAfileIOChecks (config, view, PM_FPA_AFTER); … … 59 103 pmFPAfileActivate (config->files, true, NULL); 60 104 105 // Write out summary statistics 106 if (stats) { 107 const char *statsMDC = psMetadataConfigFormat(stats); 108 if (!statsMDC || strlen(statsMDC) == 0) { 109 psError(PS_ERR_IO, false, "Unable to get statistics MDC file.\n"); 110 psFree(stats); 111 fclose(statsFile); 112 return false; 113 } 114 fprintf(statsFile, "%s", statsMDC); 115 psFree((void*)statsMDC); 116 fclose(statsFile); 117 118 psFree(stats); 119 } 120 61 121 return true; 62 122 }
Note:
See TracChangeset
for help on using the changeset viewer.
