IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 2, 2014, 1:13:06 PM (12 years ago)
Author:
watersc1
Message:

This version appears to complete and generate the expected output products. Now to test and tune the parameters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppBackground/src/ppBackgroundStackMath.c

    r36615 r36635  
    9494      psImage *dec   = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg dec");
    9595     
    96       psVector *obs  = psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32);
    97       psVector *model= psVectorAlloc(image->numRows * image->numCols, PS_TYPE_F32);
     96      psVector *obs  = psVectorAllocEmpty(image->numRows, PS_TYPE_F32);
     97      psVector *model= psVectorAllocEmpty(image->numRows, PS_TYPE_F32);
    9898     
    9999      for (v = 0; v < image->numRows; v++) {
    100100        for (u = 0; u < image->numCols; u++) {
    101           obs->data.F32[v * image->numCols + u] = image->data.F32[v][u];
    102           model->data.F32[v * image->numCols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]);
     101          if ((ra->data.F32[v][u] < data->x_min)||(ra->data.F32[v][u] > data->x_max)||
     102              (dec->data.F32[v][u] < data->y_min)||(dec->data.F32[v][u] > data->y_max)) { continue; }
     103          psVectorAppend(obs,image->data.F32[v][u]);
     104          psVectorAppend(model, psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]));
     105          //      obs->data.F32[v * image->numCols + u] = image->data.F32[v][u];
     106          //      model->data.F32[v * image->numCols + u] = psImageMapEval(data->modelMap,ra->data.F32[v][u],dec->data.F32[v][u]);
    103107        }
    104108      }
     
    140144      psImage *model = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg calibrated data");
    141145      psImage *camera= psMetadataLookupPtr(NULL, data->OTA_solutions, chipName);
     146      psImage *ra    = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg ra");
     147      psImage *dec   = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg dec");
    142148     
    143149      psF32 offset = psMetadataLookupF32(NULL,chipItem->data.md,"bkg offset");
     
    146152      for (v = 0; v < image->numRows; v++) {
    147153        for (u = 0; u < image->numCols; u++) {
     154          if ((ra->data.F32[v][u] < data->x_min)||(ra->data.F32[v][u] > data->x_max)||
     155              (dec->data.F32[v][u] < data->y_min)||(dec->data.F32[v][u] > data->y_max)) { continue; }
     156
    148157          model->data.F32[v][u] = scale * image->data.F32[v][u] - offset - camera->data.F32[v][u];
    149158        }
     
    164173  int u,v;
    165174
     175  long used;
    166176  psS16 N = psMetadataLookupS16(NULL, data->models, "N");
    167   psVector *X = psVectorAlloc(N * 60 * 13 * 13,PS_TYPE_F32);
    168   psVector *Y = psVectorAlloc(N * 60 * 13 * 13,PS_TYPE_F32);
    169   psVector *Z = psVectorAlloc(N * 60 * 13 * 13,PS_TYPE_F32);
    170   psVector *E = psVectorAlloc(N * 60 * 13 * 13,PS_TYPE_F32);
    171   psVector *mask = psVectorAlloc(N * 60 * 13 * 13,PS_TYPE_VECTOR_MASK);
     177  psVector *X = psVectorAllocEmpty(N * 13 * 13,PS_TYPE_F32);
     178  psVector *Y = psVectorAllocEmpty(N * 13 * 13,PS_TYPE_F32);
     179  psVector *Z = psVectorAllocEmpty(N * 13 * 13,PS_TYPE_F32);
     180  psVector *E = psVectorAllocEmpty(N * 13 * 13,PS_TYPE_F32);
     181  psVector *mask = psVectorAllocEmpty(N * 13 * 13,PS_TYPE_VECTOR_MASK);
    172182  j = 0;
    173183 
     
    187197      psImage *ra    = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg ra");
    188198      psImage *dec   = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg dec");
     199      //      psImage *model = psMetadataLookupPtr(NULL, chipItem->data.md, "bkg image");
    189200      for (v = 0; v < calib->numRows; v++) {
    190201        for (u = 0; u < calib->numCols; u++) {
    191           X->data.F32[j] = ra->data.F32[v][u];
    192           Y->data.F32[j] = dec->data.F32[v][u];
    193           Z->data.F32[j] = calib->data.F32[v][u];
    194           E->data.F32[j] = 1.0;
    195           mask->data.PS_TYPE_VECTOR_MASK_DATA[j] = 0;
     202          if ((ra->data.F32[v][u] < data->x_min)||(ra->data.F32[v][u] > data->x_max)||
     203              (dec->data.F32[v][u] < data->y_min)||(dec->data.F32[v][u] > data->y_max)) {
     204            j++;           
     205            continue; }
     206          psVectorAppend(X,ra->data.F32[v][u]);
     207          psVectorAppend(Y,dec->data.F32[v][u]);
     208          psVectorAppend(Z,calib->data.F32[v][u]);
     209          psVectorAppend(E,1.0);
     210          psVectorAppend(mask,0);
     211/*        X->data.F32[j] = ra->data.F32[v][u]; */
     212/*        Y->data.F32[j] = dec->data.F32[v][u]; */
     213/*        Z->data.F32[j] = calib->data.F32[v][u]; */
     214/*        E->data.F32[j] = 1.0; */
     215/*        mask->data.PS_TYPE_VECTOR_MASK_DATA[j] = 0; */
     216          used++;
    196217          j++;
     218         
     219/*        printf("DATA %ld %ld %f %f %f %f\n", */
     220/*               j,used, */
     221/*               ra->data.F32[v][u], */
     222/*               dec->data.F32[v][u], */
     223/*               calib->data.F32[v][u], */
     224/*               model->data.F32[v][u]); */
     225                 
    197226        }
    198227      }
     
    200229    psFree(chipIter);
    201230  } // End smfs
    202 
     231  printf("%ld %ld\n", j,used);
    203232  bool fitStatus;
    204   bool status = psImageMapClipFit(&fitStatus,data->modelMap,stats, mask, 0, X, Y, Z, E);
     233  bool status = psImageMapClipFit(&fitStatus,data->modelMap,stats, mask, 1, X, Y, Z, E);
    205234
    206235  psFree(expIter);
Note: See TracChangeset for help on using the changeset viewer.