Changeset 36580 for trunk/ppBackground/src/ppBackgroundStackMath.c
- Timestamp:
- Mar 7, 2014, 6:08:39 PM (12 years ago)
- File:
-
- 1 edited
-
trunk/ppBackground/src/ppBackgroundStackMath.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppBackground/src/ppBackgroundStackMath.c
r36579 r36580 27 27 bool ppBackgroundStackModelFitOTASolution(ppBackgroundStackData *data) { 28 28 long i; 29 30 pmFPAview *view = pmFPAviewAllo w(0);29 int u,v; 30 pmFPAview *view = pmFPAviewAlloc(0); 31 31 psMetadataIterator *iter = psMetadataIteratorAlloc(data->OTA_solutions, PS_LIST_HEAD, NULL); // Iterate over all chips. 32 32 psMetadataItem *item; … … 38 38 continue; 39 39 } 40 psString *workingChip = item->name;40 psString workingChip = item->name; 41 41 psImage *solution = item->data.V; 42 42 43 for (v = 0; v < solution->n rows; v++) {44 for (u = 0; u < solution->n cols; u++) {43 for (v = 0; v < solution->numRows; v++) { 44 for (u = 0; u < solution->numCols; u++) { 45 45 psVector *tmp = psVectorAllocEmpty(data->smfs->n,PS_TYPE_F32); 46 46 47 47 for (i = 0; i < data->smfs->n; i++) { 48 48 pmFPAviewReset(view); 49 pmFPAfile *smfFile = data->smfs .data[i];49 pmFPAfile *smfFile = data->smfs->data[i]; 50 50 51 51 pmChip *chip; // Chip from FPA … … 84 84 for (i = 0; i < data->smfs->n; i++) { 85 85 pmFPAviewReset(view); 86 pmFPAfile *smfFile = data->smfs .data[i];86 pmFPAfile *smfFile = data->smfs->data[i]; 87 87 88 88 pmChip *chip; // Chip from FPA … … 95 95 psImage *dec = psMetadataLookupPtr(NULL, chip->concepts, "bkg dec"); 96 96 97 psVector *obs = psVectorAlloc(image->n rows * image->ncols, PS_TYPE_F32);98 psVector *model= psVectorAlloc(image->n rows * image->ncols, PS_TYPE_F32);99 100 for (v = 0; v < image->n rows; v++) {101 for (u = 0; u < image->n cols; u++) {102 obs->data.F32[v * image->n cols + u] = image->data.F32[v][u];103 model->data.F32[v * image->n cols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]);97 psVector *obs = psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32); 98 psVector *model= psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32); 99 100 for (v = 0; v < image->numRows; v++) { 101 for (u = 0; u < image->numCols; u++) { 102 obs->data.F32[v * image->numCols + u] = image->data.F32[v][u]; 103 model->data.F32[v * image->numCols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]); 104 104 } 105 105 } 106 106 107 107 psPolynomial1D *poly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD,1); 108 status = psVectorFitPolynomial1d(poly,NULL,0,model,NULL,obs); 109 psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg offset", PS_META_REPLACE, "background offset for this exposure/ota pair", poly->coeff.F64[0]); 110 psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg scale", PS_META_REPLACE, "background scale for this exposure/ota pair", poly->coeff.F64[1]); 111 112 psFree(tmp); 108 int status = psVectorFitPolynomial1D(poly,NULL,0,model,NULL,obs); 109 if (!status) { 110 psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg offset", PS_META_REPLACE, "background offset for this exposure/ota pair", poly->coeff[0]); 111 psMetadataAddF32(chip->analysis,PS_LIST_TAIL,"bkg scale", PS_META_REPLACE, "background scale for this exposure/ota pair", poly->coeff[1]); 112 } 113 // psFree(tmp); 113 114 } // End OTA loop 114 115 } // End smf/exp loop … … 127 128 128 129 pmFPAview *view = pmFPAviewAlloc(0); 129 stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);130 // psStats *stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN); 130 131 for (i = 0; i < data->smfs->n; i++) { 131 132 pmFPAviewReset(view); 132 pmFPAfile *smfFile = data->smfs .data[i];133 pmFPAfile *smfFile = data->smfs->data[i]; 133 134 134 135 pmChip *chip; // Chip from FPA … … 146 147 psF32 scale = psMetadataLookupF32(NULL,chip->concepts,"bkg scale"); 147 148 148 for (v = 0; v < image->n rows; v++) {149 for (u = 0; u < image->n cols; u++) {149 for (v = 0; v < image->numRows; v++) { 150 for (u = 0; u < image->numCols; u++) { 150 151 model->data.F32[v][u] = scale * image->data.F32[v][u] - offset - camera->data.F32[v][u]; 151 152 } … … 175 176 for (i = 0; i < data->smfs->n; i++) { 176 177 pmFPAviewReset(view); 177 pmFPAfile *smfFile = data->smfs .data[i];178 pmFPAfile *smfFile = data->smfs->data[i]; 178 179 179 180 pmChip *chip; // Chip from FPA … … 182 183 continue; 183 184 } 184 const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip185 // const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip 185 186 psImage *calib = psMetadataLookupPtr(NULL, chip->concepts, "bkg calibrated data"); 186 187 psImage *ra = psMetadataLookupPtr(NULL, chip->concepts, "bkg ra"); 187 188 psImage *dec = psMetadataLookupPtr(NULL, chip->concepts, "bkg dec"); 188 for (v = 0; v < image->nrows; v++) {189 for (u = 0; u < image->ncols; u++) {189 for (v = 0; v < calib->numRows; v++) { 190 for (u = 0; u < calib->numCols; u++) { 190 191 X->data.F32[j] = ra->data.F32[v][u]; 191 192 Y->data.F32[j] = dec->data.F32[v][u]; … … 197 198 } // End smfs 198 199 199 status = psImageMapClipFit(&fitStatus,data->modelMap,stats, NULL, 0, X, Y, Z, E); 200 bool fitStatus; 201 bool status = psImageMapClipFit(&fitStatus,data->modelMap,stats, NULL, 0, X, Y, Z, E); 202 200 203 psFree(X); 201 204 psFree(Y); … … 204 207 psFree(stats); 205 208 psFree(view); 206 } 209 return(status); 210 }
Note:
See TracChangeset
for help on using the changeset viewer.
