IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39271 for trunk


Ignore:
Timestamp:
Dec 14, 2015, 6:14:11 PM (11 years ago)
Author:
eugene
Message:

assigned Rmajor,Rminor for case of failed error; chisq error analysis should use non-reduced chisq

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/addstar/src/loadgalphot_readstars.c

    r39262 r39271  
    306306  memset (mask, 0, Npts*sizeof(char));
    307307
     308  // the values passed in are reduced chisq, but I want to get the
     309  // fit for the total chisq so the errors are correct
     310  for (i = 0; (i < Npts); i++) {
     311    chisq[i] *= galphot->Npix;
     312  }
     313
    308314  float chisqMin = FLT_MAX;
    309315  int iMin = -1;
     
    327333    return FALSE; // we cannot do anything if there is no finite chisq
    328334  }
    329  
    330   for (i = 0; i < Npts; i++) {
    331     chisq[i] *= (galphot->Npix / chisqMin);
    332   }
    333 
    334335  if (Nvalid < 6) { galphot->flags |= ID_GALPHOT_TOO_FEW; goto bad_fit; }
     336
     337  for (i = 0; FALSE && (i < Npts); i++) {
     338    chisq[i] *= galphot->Npix;
     339  }
    335340
    336341# if (0)
     
    355360  // allow the fitting minimum to be just outside the grid, but no further
    356361  int inRange = TRUE;
    357   inRange = inRange && (Xmin > MajorMin - MajorDel);
    358   inRange = inRange && (Xmin < MajorMax + MajorDel);
    359   inRange = inRange && (Ymin > MinorMin - MinorDel);
    360   inRange = inRange && (Ymin < MinorMax + MinorDel);
     362  inRange = inRange && (Xmin > MajorMin - 2*MajorDel);
     363  inRange = inRange && (Xmin < MajorMax + 2*MajorDel);
     364  inRange = inRange && (Ymin > MinorMin - 2*MinorDel);
     365  inRange = inRange && (Ymin < MinorMax + 2*MinorDel);
    361366
    362367  if (!inRange) { galphot->flags |= ID_GALPHOT_OUT_OF_RANGE; goto bad_fit; }
     
    385390  float dYmin = (-B + sqrt(Q)) / (2.0 * A);
    386391
     392  // test the formulae:
     393# if (0)
     394  float Zmin = fit->c00 + fit->c10*Xmin + fit->c01*Ymin + fit->c20*Xmin*Xmin + fit->c02*Ymin*Ymin + fit->c11*Xmin*Ymin;
     395  float ZdX  = fit->c00 + fit->c10*(Xmin + dXmin) + fit->c01*Ymin + fit->c20*(Xmin + dXmin)*(Xmin + dXmin) + fit->c02*Ymin*Ymin + fit->c11*(Xmin + dXmin)*Ymin;
     396  float ZdY  = fit->c00 + fit->c10*Xmin + fit->c01*(Ymin + dYmin) + fit->c20*Xmin*Xmin + fit->c02*(Ymin + dYmin)*(Ymin + dYmin) + fit->c11*Xmin*(Ymin + dYmin);
     397  fprintf (stderr, "Zmin: %f : %f %f\n", Zmin, ZdX - Zmin, ZdY - Zmin);
     398# endif
     399
    387400  galphot->majorAxis = Xmin;
    388401  galphot->minorAxis = Ymin;
     
    429442  galphot->mag    = -2.5*log10(value) + ZeroPt; // correct for exptime?
    430443  galphot->magErr = sqrt(dValue) / value;
    431   galphot->chisq  = chisqMin;
     444  galphot->chisq  = chisqMin / galphot->Npix;
    432445 
    433446  return TRUE;
     
    441454  galphot->mag    = -2.5*log10(flux[iMin]) + ZeroPt; // correct for exptime?
    442455  galphot->magErr = sqrt(fluxErr[iMin]) / flux[iMin];
    443   galphot->chisq  = chisqMin;
     456  galphot->chisq  = chisqMin / galphot->Npix;
    444457  return FALSE;
    445458
    446459bad_err:
     460  galphot->majorAxis = Xmin;
     461  galphot->minorAxis = Ymin;
    447462  galphot->majorAxisErr = MajorDel;
    448463  galphot->minorAxisErr = MinorDel;
     
    450465  galphot->mag    = -2.5*log10(flux[iMin]) + ZeroPt; // correct for exptime?
    451466  galphot->magErr = sqrt(fluxErr[iMin]) / flux[iMin];
    452   galphot->chisq  = chisqMin;
     467  galphot->chisq  = chisqMin / galphot->Npix;
    453468  return FALSE;
    454469}
Note: See TracChangeset for help on using the changeset viewer.