Changeset 10829 for trunk/psModules/src/astrom/pmAstrometryDistortion.c
- Timestamp:
- Dec 24, 2006, 3:49:50 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/astrom/pmAstrometryDistortion.c
r10825 r10829 7 7 * @author EAM, IfA 8 8 * 9 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-12-2 2 21:23:06$9 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-12-25 01:49:49 $ 11 11 * 12 12 * Copyright 2006 Institute for Astronomy, University of Hawaii … … 50 50 } 51 51 52 psArray *pmAstromMeasureGradients(psArray *grad s, psArray *rawstars, psArray *refstars, psArray *matches, psMetadata *config)52 psArray *pmAstromMeasureGradients(psArray *gradients, psArray *rawstars, psArray *refstars, psArray *matches, psMetadata *config) 53 53 { 54 54 55 if (grad s == NULL) {56 grad s = psArrayAllocEmpty (100);55 if (gradients == NULL) { 56 gradients = psArrayAllocEmpty (100); 57 57 } 58 58 … … 141 141 grad->dTPdM.y = local->coeff[0][1]; 142 142 143 psArrayAdd (grad s, 100, grad);144 } 145 } 146 return grad s;143 psArrayAdd (gradients, 100, grad); 144 } 145 } 146 return gradients; 147 147 } 148 148 149 bool pmAstromFitDistortion(pmFPA *fpa, psArray *grad s, psMetadata *config)149 bool pmAstromFitDistortion(pmFPA *fpa, psArray *gradients, psMetadata *config) 150 150 { 151 151 … … 154 154 155 155 // assign the gradient elements to psVectors for fitting 156 psVector *dPdL = psVectorAlloc (grad s->n, PS_TYPE_F32);157 psVector *dQdL = psVectorAlloc (grad s->n, PS_TYPE_F32);158 psVector *dPdM = psVectorAlloc (grad s->n, PS_TYPE_F32);159 psVector *dQdM = psVectorAlloc (grad s->n, PS_TYPE_F32);160 psVector *L = psVectorAlloc (grad s->n, PS_TYPE_F32);161 psVector *M = psVectorAlloc (grad s->n, PS_TYPE_F32);162 163 for (int i = 0; i < grad s->n; i++) {164 165 pmAstromGradient *grad = grad s->data[i];156 psVector *dPdL = psVectorAlloc (gradients->n, PS_TYPE_F32); 157 psVector *dQdL = psVectorAlloc (gradients->n, PS_TYPE_F32); 158 psVector *dPdM = psVectorAlloc (gradients->n, PS_TYPE_F32); 159 psVector *dQdM = psVectorAlloc (gradients->n, PS_TYPE_F32); 160 psVector *L = psVectorAlloc (gradients->n, PS_TYPE_F32); 161 psVector *M = psVectorAlloc (gradients->n, PS_TYPE_F32); 162 163 for (int i = 0; i < gradients->n; i++) { 164 165 pmAstromGradient *grad = gradients->data[i]; 166 166 167 167 dPdL->data.F32[i] = grad->dTPdL.x; … … 176 176 177 177 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN | PS_STAT_SAMPLE_STDEV); 178 psVector *mask = psVectorAlloc (grad s->n, PS_TYPE_MASK);178 psVector *mask = psVectorAlloc (gradients->n, PS_TYPE_MASK); 179 179 psVectorInit (mask, 0); 180 180 … … 185 185 186 186 // set masks based on fpa->toTP 187 for (int i = 0; i < fpa->toTPA->x->nX; i++) {188 for (int j = 0; j < fpa->toTPA->x->nY; j++) {187 for (int i = 0; i <= fpa->toTPA->x->nX; i++) { 188 for (int j = 0; j <= fpa->toTPA->x->nY; j++) { 189 189 if (fpa->toTPA->x->mask[i][j]) { 190 localX->mask[i-1][j] = 1; 191 localY->mask[i][j-1] = 1; 190 if ((i > 0) && (i < fpa->toTPA->x->nX)) { 191 localX->mask[i-1][j] = 1; 192 } 193 if ((j > 0) && (j < fpa->toTPA->y->nY)) { 194 localY->mask[i][j-1] = 1; 195 } 192 196 } 193 197 } … … 247 251 psVector *dQdMf = psPolynomial2DEvalVector (localY, L, M); 248 252 249 FILE *f = fopen ("grad s.dat", "w");253 FILE *f = fopen ("gradients.dat", "w"); 250 254 for (int i = 0; i < dPdLf->n; i++) { 251 255 fprintf (f, "%f %f | %f %f %f %f | %f %f %f %f\n", … … 290 294 psFree (mask); 291 295 296 // XXX need to reset the fromFPA terms here 297 298 292 299 return true; 293 300 }
Note:
See TracChangeset
for help on using the changeset viewer.
