IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 7, 2014, 6:08:39 PM (12 years ago)
Author:
watersc1
Message:

ppBackgroundStack compiles. I know it's not useful yet, because I haven't implemented the 'apply' and 'save the outputs' parts.

File:
1 edited

Legend:

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

    r36579 r36580  
    2727bool ppBackgroundStackModelFitOTASolution(ppBackgroundStackData *data) {
    2828  long i;
    29  
    30   pmFPAview *view    = pmFPAviewAllow(0);
     29  int u,v;
     30  pmFPAview *view    = pmFPAviewAlloc(0);
    3131  psMetadataIterator *iter = psMetadataIteratorAlloc(data->OTA_solutions, PS_LIST_HEAD, NULL); // Iterate over all chips.
    3232  psMetadataItem *item;
     
    3838      continue;
    3939    }
    40     psString *workingChip = item->name;
     40    psString workingChip = item->name;
    4141    psImage  *solution    = item->data.V;
    4242
    43     for (v = 0; v < solution->nrows; v++) {
    44       for (u = 0; u < solution->ncols; u++) {
     43    for (v = 0; v < solution->numRows; v++) {
     44      for (u = 0; u < solution->numCols; u++) {
    4545        psVector *tmp = psVectorAllocEmpty(data->smfs->n,PS_TYPE_F32); 
    4646       
    4747        for (i = 0; i < data->smfs->n; i++) {
    4848          pmFPAviewReset(view);
    49           pmFPAfile *smfFile = data->smfs.data[i];
     49          pmFPAfile *smfFile = data->smfs->data[i];
    5050         
    5151          pmChip *chip;                       // Chip from FPA
     
    8484  for (i = 0; i < data->smfs->n; i++) {
    8585    pmFPAviewReset(view);
    86     pmFPAfile *smfFile = data->smfs.data[i];
     86    pmFPAfile *smfFile = data->smfs->data[i];
    8787   
    8888    pmChip *chip;                       // Chip from FPA
     
    9595      psImage *dec   = psMetadataLookupPtr(NULL, chip->concepts, "bkg dec");
    9696     
    97       psVector *obs  = psVectorAlloc(image->nrows * image->ncols, PS_TYPE_F32);
    98       psVector *model= psVectorAlloc(image->nrows * image->ncols, PS_TYPE_F32);
    99      
    100       for (v = 0; v < image->nrows; v++) {
    101         for (u = 0; u < image->ncols; u++) {
    102           obs->data.F32[v * image->ncols + u] = image->data.F32[v][u];
    103           model->data.F32[v * image->ncols + 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]);
    104104        }
    105105      }
    106106
    107107      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);
    113114    } // End OTA loop
    114115  } // End smf/exp loop
     
    127128 
    128129  pmFPAview *view    = pmFPAviewAlloc(0);
    129   stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
     130  //  psStats *stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
    130131  for (i = 0; i < data->smfs->n; i++) {
    131132    pmFPAviewReset(view);
    132     pmFPAfile *smfFile = data->smfs.data[i];
     133    pmFPAfile *smfFile = data->smfs->data[i];
    133134   
    134135    pmChip *chip;                       // Chip from FPA
     
    146147      psF32 scale  = psMetadataLookupF32(NULL,chip->concepts,"bkg scale");
    147148
    148       for (v = 0; v < image->nrows; v++) {
    149         for (u = 0; u < image->ncols; u++) {
     149      for (v = 0; v < image->numRows; v++) {
     150        for (u = 0; u < image->numCols; u++) {
    150151          model->data.F32[v][u] = scale * image->data.F32[v][u] - offset - camera->data.F32[v][u];
    151152        }
     
    175176  for (i = 0; i < data->smfs->n; i++) {
    176177    pmFPAviewReset(view);
    177     pmFPAfile *smfFile = data->smfs.data[i];
     178    pmFPAfile *smfFile = data->smfs->data[i];
    178179   
    179180    pmChip *chip;                       // Chip from FPA
     
    182183        continue;
    183184      }
    184       const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip
     185      //      const char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); // Name of chip
    185186      psImage *calib = psMetadataLookupPtr(NULL, chip->concepts, "bkg calibrated data");
    186187      psImage *ra    = psMetadataLookupPtr(NULL, chip->concepts, "bkg ra");
    187188      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++) {
    190191          X->data.F32[j] = ra->data.F32[v][u];
    191192          Y->data.F32[j] = dec->data.F32[v][u];
     
    197198  } // End smfs
    198199
    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 
    200203  psFree(X);
    201204  psFree(Y);
     
    204207  psFree(stats);
    205208  psFree(view);
    206 }
     209  return(status);
     210}
Note: See TracChangeset for help on using the changeset viewer.