Changeset 5743 for trunk/stac/src/combine.c
- Timestamp:
- Dec 7, 2005, 2:57:14 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/stac/src/combine.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/stac/src/combine.c
r3681 r5743 21 21 combineConfig *config = combineParseConfig(argc, argv); // Configuration 22 22 23 psArray *images = stacReadImages(config->inNames); // The images 23 psArray *headers = NULL; // Array of headers 24 psArray *images = stacReadImages(&headers, config->inNames); // The images 24 25 // Make fake errors 25 26 psArray *errors = psArrayAlloc(images->n); 26 27 for (int i = 0; i < images->n; i++) { 27 psImage *image = images->data[i];28 psImage *err = psImageAlloc(image->numCols, image->numRows, PS_TYPE_F32);29 for (int y = 0; y < image->numRows; y++) {30 for (int x = 0; x < image->numCols; x++) {31 err->data.F32[y][x] = 1.0;32 }33 }34 errors->data[i] = err;28 psImage *image = images->data[i]; 29 psImage *err = psImageAlloc(image->numCols, image->numRows, PS_TYPE_F32); 30 for (int y = 0; y < image->numRows; y++) { 31 for (int x = 0; x < image->numCols; x++) { 32 err->data.F32[y][x] = 1.0; 33 } 34 } 35 errors->data[i] = err; 35 36 } 36 37 37 38 // Calculate scales between images 38 psVector *scales = NULL; // Relative scales between images39 psVector *offsets = NULL; // Offsets between images39 psVector *scales = NULL; // Relative scales between images 40 psVector *offsets = NULL; // Offsets between images 40 41 (void)stacScales(&scales, &offsets, images, config->starFile, config->starMap, 0.0, 0.0, config->aper); 41 42 … … 44 45 psVector *bad = psVectorAlloc(images->n, PS_TYPE_F32); // Bad limits 45 46 for (int i = 0; i < images->n; i++) { 46 saturated->data.F32[i] = (config->saturated - offsets->data.F32[i]) / scales->data.F32[i];47 bad->data.F32[i] = (config->bad - offsets->data.F32[i]) / scales->data.F32[i];47 saturated->data.F32[i] = (config->saturated - offsets->data.F32[i]) / scales->data.F32[i]; 48 bad->data.F32[i] = (config->bad - offsets->data.F32[i]) / scales->data.F32[i]; 48 49 } 49 50 … … 52 53 53 54 // Combine the images 54 psImage *combined = NULL; // Combined image55 psArray *rejected = NULL; // Array of rejection masks55 psImage *combined = NULL; // Combined image 56 psArray *rejected = NULL; // Array of rejection masks 56 57 stacCombine(&combined, &rejected, images, errors, config->nReject, NULL, saturated, bad, config->reject); 57 58 58 psFits *outFile = psFits Alloc(config->outName);59 if (!psFitsWriteImage(outFile, NULL, combined, 0, NULL)) {60 psErrorStackPrint(stderr, "Unable to write image: %s\n", config->outName);59 psFits *outFile = psFitsOpen(config->outName, "r"); 60 if (!psFitsWriteImage(outFile, headers->data[0], combined, 0)) { 61 psErrorStackPrint(stderr, "Unable to write image: %s\n", config->outName); 61 62 } 62 63 psTrace("combine", 1, "Combined image written to %s\n", config->outName); 63 psF ree(outFile);64 psFitsClose(outFile); 64 65 65 66 // Clean up 67 psFree(headers); 66 68 psFree(combined); 67 69 psFree(rejected);
Note:
See TracChangeset
for help on using the changeset viewer.
