- Timestamp:
- Mar 5, 2012, 5:19:48 PM (14 years ago)
- Location:
- branches/meh_branches/ppstack_test
- Files:
-
- 4 edited
-
. (modified) (1 prop)
-
psvideophot (modified) (1 prop)
-
psvideophot/src (modified) (1 prop)
-
psvideophot/src/psvideoLoop.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/meh_branches/ppstack_test
- Property svn:mergeinfo changed
-
branches/meh_branches/ppstack_test/psvideophot
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20110710/psvideophot (added) merged: 32338 /branches/eam_branches/ipp-20110906/psvideophot (added) merged: 32630 /branches/eam_branches/ipp-20111110/psvideophot (added) merged: 32694
- Property svn:mergeinfo changed
-
branches/meh_branches/ppstack_test/psvideophot/src
- Property svn:ignore
-
branches/meh_branches/ppstack_test/psvideophot/src/psvideoLoop.c
r31813 r33415 44 44 } 45 45 46 psString class_id = psMetadataLookupStr(&status, config->arguments, "CLASS_ID"); 47 psString cell_id = psMetadataLookupStr(&status, config->arguments, "CELL_ID"); 48 46 49 47 50 pmConfigCamerasCull(config, NULL); … … 56 59 } 57 60 61 psArray *output = NULL; 62 58 63 pmChip *chip; // Chip from FPA 59 64 while ((chip = pmFPAviewNextChip(view, input->fpa, 1)) != NULL) { 60 65 psLogMsg ("psvideophotLoop", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process); 66 psString chipName = psMetadataLookupStr(&status, chip->concepts, "CHIP.NAME"); 67 if (strcmp(chipName, class_id)) { 68 continue; 69 } 61 70 if (!chip->process || !chip->file_exists) { 62 continue;71 ESCAPE("target chip has no data"); 63 72 } 64 73 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 65 74 ESCAPE("load failure for Chip"); 66 75 } 76 (void) class_id; 67 77 68 78 double threshold = THRESHOLD; … … 72 82 while ((cell = pmFPAviewNextCell(view, input->fpa, 1)) != NULL) { 73 83 psLogMsg ("psvideophotLoop", 5, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process); 84 psString cellName = psMetadataLookupStr(&status, cell->concepts, "CELL.NAME"); 85 if (strcmp(cellName, cell_id)) { 86 continue; 87 } 74 88 if (!cell->process || !cell->file_exists) { 75 continue;89 ESCAPE("target cell has no data"); 76 90 } 77 91 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 78 92 ESCAPE("load failure for Cell"); 79 93 } 94 95 psLogMsg("psvideophotLoop", 1, "Found target cell %s %d. %ld readouts\n", cellName, view->cell, cell->readouts->n); 80 96 81 97 // Put version information into the header … … 87 103 88 104 if (cell->readouts->n <2) { 89 continue; 105 psLogMsg("psvideophotLoop", 1, "cell %s has only %ld readouts\n", cellName, cell->readouts->n); 106 ESCAPE("invalid video Cell"); 90 107 } 91 92 psString cellName = psMetadataLookupStr(&status, cell->concepts, "CELL.NAME");93 psLogMsg("psvideophotLoop", 1, "Found video cell %s %d\n", cellName, view->cell);94 108 95 109 // get the position of this cell on the chip … … 114 128 115 129 // go find the video extension data 116 psString video_extension_name = NULL; 117 psStringAppend(&video_extension_name, "video_table_%s", cellName); 130 psString video_extension_name = psMetadataLookupStr(&status, config->arguments, "VIDEOEXTNAME"); 131 if (!video_extension_name) { 132 psStringAppend(&video_extension_name, "video_table_%s", cellName); 133 } 118 134 psArray *video_table = readVideoTable(input, video_extension_name); 119 135 if (!video_table) { … … 121 137 ESCAPE("invalid image file"); 122 138 } 123 psMetadataAddArray(cell->analysis, PS_LIST_TAIL, "VIDEO_DATA", 0, "", video_table); 139 psFree(video_extension_name); 140 // psMetadataAddArray(cell->analysis, PS_LIST_TAIL, "VIDEO_DATA", 0, "", video_table); 141 142 output = (psArray *) psMemIncrRefCounter(video_table); 124 143 125 144 if (cell->readouts->n != video_table->n) { … … 180 199 double cnpix2 = psMetadataLookupS32(&status, row, "cnpix2"); 181 200 201 // avoid errors from unused variables 182 202 (void) frame_start; (void) frame_complete; 183 203 (void) rowpre; (void) cnpix1; (void) cnpix2; (void) fwhm_x; (void) fwhm_y; (void) fwhm; … … 191 211 double star_readout_y = (centroid_y - cnpix2) / yBin; 192 212 213 #ifdef notdef 193 214 printf("%4d %9.2f %9.2f %9.2f %.1f %.1f %9.6f %6.3f %6.3f %6.3f\n", 194 215 frame, flux, snr, sky, star_readout_x, star_readout_y, frame_complete - frame_start, 195 216 fwhm, fwhm_x, fwhm_y); 196 217 #endif 197 218 psStatsInit(stats); 198 219 … … 206 227 double stddev = stats->sampleStdev; 207 228 double median = stats->sampleMedian; 229 double vpFlux = 0; 230 double vpSum = 0; 231 double xy[2] = {0, 0}; 208 232 if (stddev > threshold) { 209 233 210 double sum = 0; 211 // XXX: use a point data type 212 double xy[2]; 213 Centering(readout->image, EDGE, &sum, xy, median); 214 double ourFlux; 215 ourFlux = SubSum(readout->image, xy, median); 216 217 printf("%4d %9.2f %9.2f %9.2f %.1f %.1f %9.2f\n", 218 frame, ourFlux, ourFlux/stddev, median, xy[0], xy[1], stddev); 234 Centering(readout->image, EDGE, &vpSum, xy, median); 235 236 if (isfinite(xy[0]) && isfinite(xy[1])) { 237 vpFlux = SubSum(readout->image, xy, median); 238 } 239 240 // printf("%4d %9.2f %9.2f %9.2f %.1f %.1f %9.2f\n", 241 // frame, vpFlux, vpFlux/median, median, xy[0], xy[1], stddev); 219 242 } else { 220 printf("%4d %9.2f %9.2f %8.2f\n", 221 frame, 0.0, stddev, median); 222 } 243 // printf("%4d %9.2f %9.2f %8.2f\n", 244 // frame, 0.0, stddev, median); 245 } 246 if (frame % 60 == 0) { 247 printf("frame flux sky snr X Y dt fwhm fwhm_x fwhm_y vp_flux vp_median vp_sum vp_stddev vp_x vp_y\n"); 248 } 249 printf("%4d %9.2f %9.2f %9.2f %.1f %.1f %9.6f %6.3f %6.3f %6.3f %9.2f %9.2f %9.2f %9.2f %.1f %.1f\n", 250 frame, flux, sky, snr, star_readout_x, star_readout_y, frame_complete - frame_start, 251 fwhm, fwhm_x, fwhm_y, 252 vpFlux, median, vpSum, stddev, xy[0], xy[1]); 253 psMetadataAddF32(row, PS_LIST_TAIL, "vp_flux", 0, "vp flux", vpFlux); 254 psMetadataAddF32(row, PS_LIST_TAIL, "vp_median", 0, "vp meidan", median); 255 psMetadataAddF32(row, PS_LIST_TAIL, "vp_stddev", 0, "vp meidan", stddev); 256 psMetadataAddF32(row, PS_LIST_TAIL, "vp_sum", 0, "vp sum of source", vpSum); 257 psMetadataAddF32(row, PS_LIST_TAIL, "vp_x", 0, "centroid x from vp", xy[0]); 258 psMetadataAddF32(row, PS_LIST_TAIL, "vp_y", 0, "centroid y from vp", xy[1]); 223 259 } 224 260 psLogMsg ("psvideophotLoop", 5, "Done processing video cell"); … … 247 283 psFree(view); 248 284 249 // Dump configuration 250 psString dump_file = psMetadataLookupStr(&status, config->arguments, "DUMP_CONFIG"); 251 if (dump_file) { 252 if (!pmConfigDump(config, dump_file)) { 253 ESCAPE("Unable to dump configuration."); 254 } 255 } 285 psString outputName = psMetadataLookupStr(&status, config->arguments, "OUTPUT"); 286 psString realName = pmConfigConvertFilename(outputName, config, true, true); 287 if (!realName) { 288 psError(PS_ERR_UNKNOWN, false, "failed to convert filename for %s", outputName); 289 ESCAPE("cannot save output"); 290 } 291 psFits *outFits = psFitsOpen(realName, "w"); 292 if (!outFits) { 293 psError(PS_ERR_UNKNOWN, false, "failed to open output filename for %s", outputName); 294 ESCAPE(" "); 295 } 296 297 psMetadata *outputHeader = lastHDU ? lastHDU->header : NULL; 298 if (!psFitsWriteTable(outFits, outputHeader, output, "videophotemetry")) { 299 psError(PS_ERR_UNKNOWN, false, "failed to write videophotometry table"); 300 ESCAPE("cannot write output"); 301 } 302 psFitsClose(outFits); 256 303 257 304 return true;
Note:
See TracChangeset
for help on using the changeset viewer.
