IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 3, 2010, 1:00:09 PM (16 years ago)
Author:
watersc1
Message:

New burntool, with trails retained even if they had a poor slope.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/extsrc/gpcsw/gpcsrc/fits/burntool/psfstamp.c

    r25438 r26766  
    112112
    113113/* Make a postage stamp for it */
    114       box[k].stamp = (IMTYPE *)calloc(size*size, sizeof(IMTYPE));
     114      if( (box[k].stamp = (IMTYPE *)calloc(size*size, sizeof(IMTYPE))) == NULL) {
     115         fprintf(stderr, "\rerror: failed to stamp buffer\n");
     116         exit(-675);
     117      }
     118
    115119      sum = 0;
    116120      for(j=y0; j<=y1; j++) {
     
    136140   int i, k, l, nstar, fdout, otacx, otacy, xid, yid, ntot=0, sumax;
    137141   int cellcount, ota_xid, ota_yid;
    138    double scale, phi, fwhm[3], q[5], qt, xfp, yfp, pi=4*atan(1.0);
     142   double scale, phi, fwhm[3], q[7], qt, xfp, yfp, pi=4*atan(1.0);
    139143   IMTYPE *median_image;
    140144   CELL *cell;
     
    171175
    172176/* Create a median image and write as the first one */
    173    median_image = (IMTYPE *)calloc(nx*ny, sizeof(IMTYPE));
     177   if( (median_image = (IMTYPE *)calloc(nx*ny, sizeof(IMTYPE))) == NULL) {
     178      fprintf(stderr, "\rerror: failed to alloc median PSF image\n");
     179      exit(-676);
     180   }
    174181   for(i=0; i<nx*ny; i++) {
    175182      nstar = 0;
     
    256263   int k, l, cellx, celly, ota_xid, ota_yid, nfwave, nqavg;
    257264   double xota, yota, xfp, yfp, phi;
    258    double fwhm[3], q[5], fw[MAXPSFMEDIAN];
     265   double fwhm[3], q[7], fw[MAXPSFMEDIAN];
    259266   double m2[MAXPSFMEDIAN], qp[MAXPSFMEDIAN], qc[MAXPSFMEDIAN];
    260267   double qt[MAXPSFMEDIAN], fwavg[MAXPSFMEDIAN];
     268   double qpavg[MAXPSFMEDIAN], qcavg[MAXPSFMEDIAN], qtavg[MAXPSFMEDIAN];
    261269   double q3c[MAXPSFMEDIAN], q3s[MAXPSFMEDIAN];
    262    double qpavg[MAXPSFMEDIAN], qcavg[MAXPSFMEDIAN], qtavg[MAXPSFMEDIAN];
    263270   double q3cavg[MAXPSFMEDIAN], q3savg[MAXPSFMEDIAN];
     271   double q1c[MAXPSFMEDIAN], q1s[MAXPSFMEDIAN];
     272   double q1cavg[MAXPSFMEDIAN], q1savg[MAXPSFMEDIAN];
    264273   int nstar[MAXCELL], nfw[MAXCELL];
    265274   double fwmed[MAXCELL], m2med[MAXCELL];
    266275   double qpmed[MAXCELL], qcmed[MAXCELL], qtmed[MAXCELL];
    267276   double q3cmed[MAXCELL], q3smed[MAXCELL];
    268    double qpmacro, qcmacro, qtmacro, fwmacro, q3cmacro, q3smacro;
     277   double q1cmed[MAXCELL], q1smed[MAXCELL];
     278   double qpmacro, qcmacro, qtmacro, fwmacro, q3cmacro, q3smacro, q1cmacro, q1smacro;
    269279   FILE *fp;
    270280   CELL *cell;
     
    310320                     q3c[nstar[k]] = q[3];
    311321                     q3s[nstar[k]] = q[4];
     322                     q1c[nstar[k]] = q[5];
     323                     q1s[nstar[k]] = q[6];
    312324/* Get the position in the focal plane and therefore the qt statistic */
    313325                     psc_cell_to_pixel(cellx, celly, 0.5*PSC_HCELL/PSC_PIXEL,
     
    333345                  q3cmed[k] = double_median(nstar[k], q3c);
    334346                  q3smed[k] = double_median(nstar[k], q3s);
     347                  q1cmed[k] = double_median(nstar[k], q1c);
     348                  q1smed[k] = double_median(nstar[k], q1s);
    335349               } else {
    336350                  m2med[k] = qpmed[k] = qcmed[k] = qtmed[k] = -99.99;
    337351                  q3cmed[k] = q3smed[k] = -99.99;
     352                  q1cmed[k] = q1smed[k] = -99.99;
    338353               }
    339354/* Toss these results into the macrocell median hopper */
     
    348363                     q3cavg[nqavg] = q3c[l];
    349364                     q3savg[nqavg] = q3s[l];
     365                     q1cavg[nqavg] = q1c[l];
     366                     q1savg[nqavg] = q1s[l];
    350367                     nqavg++;
    351368                  }
     
    359376         q3cmacro = double_median(nqavg, q3cavg);
    360377         q3smacro = double_median(nqavg, q3savg);
    361          if(nqavg == 0) qpmacro = qcmacro = qtmacro = q3cmacro = q3smacro = -99.99;
     378         q1cmacro = double_median(nqavg, q1cavg);
     379         q1smacro = double_median(nqavg, q1savg);
     380         if(nqavg == 0) qpmacro = qcmacro = qtmacro = q3cmacro = q3smacro = q1cmacro = q1smacro = -99.99;
    362381         fwmacro = double_median(nfwave, fwavg);
    363382
     
    370389               cell = ota + k;
    371390
    372                fprintf(fp, "ext=xy%1d%1d bias=%d sky=%d rmssky=%d npsf=%d fwhm=%.2f fwmed=%.2f m2=%.2f qp=%.3f qc=%.3f qt=%.3f q3c=%.3f q3s=%.3f qpm=%.3f qcm=%.3f qtm=%.3f q3cm=%.3f q3sm=%.3f\n",
     391               fprintf(fp, "ext=xy%1d%1d bias=%d sky=%d rmssky=%d npsf=%d fwhm=%.2f fwmed=%.2f m2=%.2f qp=%.3f qc=%.3f qt=%.3f q3c=%.3f q3s=%.3f q1c=%.3f q1s=%.3f qpm=%.3f qcm=%.3f qtm=%.3f q3cm=%.3f q3sm=%.3f q1cm=%.3f q1sm=%.3f\n",
    373392                       cellx, celly, cell->bias, cell->sky, cell->rms,
    374393                       nstar[k], fwmed[k], fwmacro, m2med[k],
    375                        qpmed[k], qcmed[k], qtmed[k], q3cmed[k], q3smed[k],
    376                        qpmacro, qcmacro, qtmacro, q3cmacro, q3smacro);
     394                       qpmed[k], qcmed[k], qtmed[k], q3cmed[k], q3smed[k],
     395                       q1cmed[k], q1smed[k],
     396                       qpmacro, qcmacro, qtmacro, q3cmacro, q3smacro,
     397                       q1cmacro, q1smacro);
    377398            }
    378399         }
Note: See TracChangeset for help on using the changeset viewer.