Changeset 16407 for branches/pap_branch_080207/ppStack/src/ppStackReadout.c
- Timestamp:
- Feb 11, 2008, 6:47:44 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/pap_branch_080207/ppStack/src/ppStackReadout.c
r16404 r16407 11 11 12 12 13 #define ARRAY_BUFFER 16 // Number to add to array at a time14 13 #define WCS_TOLERANCE 0.001 // Tolerance for WCS 15 14 … … 17 16 //#define INSPECTION_FILES // Write inspection mask? 18 17 19 bool ppStackReadout(const pmConfig *config, pmReadout *outRO, const psArray *readouts) 18 bool ppStackReadout(const pmConfig *config, pmReadout *outRO, const psArray *readouts, 19 const psArray *regions, const psArray *kernels) 20 20 { 21 21 assert(config); 22 22 assert(outRO); 23 23 assert(readouts); 24 assert(regions); 25 assert(kernels); 26 assert(readouts->n == regions->n); 27 assert(regions->n == kernels->n); 24 28 25 29 // Get the recipe values … … 63 67 totExposure += exposure; // Total exposure time 64 68 69 #if 0 65 70 if (i == 0) { 66 71 // Copy astrometry over … … 84 89 } 85 90 } 91 #endif 86 92 87 93 // Ensure there is a mask, or pmStackCombine will complain … … 128 134 #endif 129 135 136 // Reject pixels 130 137 for (int i = 0; i < num; i++) { 131 138 pmStackData *data = stack->data[i]; // Data for this image 132 pmReadout *readout = data->readout; // Readout for this image 133 134 // Extract the regions and solutions used in the image matching 135 psArray *regions = psArrayAllocEmpty(ARRAY_BUFFER); // Array of regions 136 { 137 psMetadataIterator *iter = psMetadataIteratorAlloc(readout->analysis, PS_LIST_HEAD, 138 PM_SUBTRACTION_ANALYSIS_REGION); // Iterator 139 psMetadataItem *item = NULL;// Item from iteration 140 while ((item = psMetadataGetAndIncrement(iter))) { 141 assert(item->type == PS_DATA_REGION); 142 regions = psArrayAdd(regions, ARRAY_BUFFER, item->data.V); 143 } 144 psFree(iter); 145 } 146 psArray *kernels = psArrayAllocEmpty(ARRAY_BUFFER); // Array of kernels 147 { 148 psMetadataIterator *iter = psMetadataIteratorAlloc(readout->analysis, PS_LIST_HEAD, 149 PM_SUBTRACTION_ANALYSIS_KERNEL); // Iterator 150 psMetadataItem *item = NULL;// Item from iteration 151 while ((item = psMetadataGetAndIncrement(iter))) { 152 assert(item->type == PS_DATA_VECTOR); 153 kernels = psArrayAdd(kernels, ARRAY_BUFFER, item->data.V); 154 } 155 psFree(iter); 156 } 157 assert(regions->n == kernels->n); 158 159 psPixels *reject = pmStackReject(data->pixels, threshold, regions, kernels); // Pixels to reject 139 psPixels *reject = pmStackReject(data->pixels, threshold, regions->data[i], 140 kernels->data[i]); // Pixels to reject 160 141 psFree(data->pixels); 161 142 data->pixels = reject; 162 163 psFree(kernels);164 psFree(regions);165 143 } 166 144
Note:
See TracChangeset
for help on using the changeset viewer.
