IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39390


Ignore:
Timestamp:
Feb 24, 2016, 1:07:37 PM (10 years ago)
Author:
eugene
Message:

N_BOOTSTRAP was set to a default of 1 (bad); reset astrometry bits in each object if reset is requested; set stack only epoch based on a stack entry

Location:
trunk/Ohana/src/relastro
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relastro/include/relastro.h

    r39389 r39390  
    748748int CatalogMaxNmeasure (Catalog *catalog, int Ncatalog);
    749749int FitAstromPoints_Project (FitStats *fitStats, double *Tmean, double *Trange, double *parRange);
    750 int UpdateObjects_SelectMeasures (FitStats *fit, Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int isStack);
     750int UpdateObjects_SelectMeasures (FitStats *fit, Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int isStack, int *stackEntry);
    751751int UpdateObjects_Stack (Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int Nsecfilt, FitStats *fitStats);
    752752int UpdateObjects_Chips (Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int Nsecfilt, FitStats *fitStats, int cat, off_t measOff);
  • trunk/Ohana/src/relastro/src/UpdateObjects.c

    r39387 r39390  
    1818int DumpObjectsWith2MASS (Catalog *catalog, int Ncatalog);
    1919
     20static DVOAverageFlags astromBits =
     21  ID_OBJ_LARGE_PM        | // star with large proper motion
     22  ID_OBJ_RAW_AVE           | // simple weighted average position was used (no IRLS fitting)
     23  ID_OBJ_FIT_AVE         | // average position was fitted
     24  ID_OBJ_FIT_PM          | // proper motion model was fitted
     25  ID_OBJ_FIT_PAR         | // parallax model was fitted
     26  ID_OBJ_USE_AVE         | // average position used (not PM or PAR)
     27  ID_OBJ_USE_PM          | // proper motion used (not AVE or PAR)
     28  ID_OBJ_USE_PAR         | // parallax used (not AVE or PM)
     29  ID_OBJ_NO_MEAN_ASTROM  | // mean astrometry could not be measured
     30  ID_OBJ_STACK_FOR_MEAN  | // stack position used for mean astrometry
     31  ID_OBJ_MEAN_FOR_STACK  | // mean astrometry could not be measured
     32  ID_OBJ_BAD_PM;           // failure to measure proper-motion model
     33
    2034// This function operates on both Measure and MeasureTiny.  In the big stages, this should
    2135// be called with just MeasureTiny set and Measure == NULL
     
    5670      SecFilt *secfilt = &catalog[i].secfilt[j*Nsecfilt];
    5771
     72      if (RESET) { average[0].flags &= ~astromBits; }
     73
    5874      UpdateObjects_Stack(average, secfilt, measure, measureBig, Nsecfilt, fitStatsStack);
    5975      UpdateObjects_Chips(average, secfilt, measure, measureBig, Nsecfilt, fitStatsChips, i, m);
     
    133149
    134150  // select the measurements to be used in this analysis
    135   UpdateObjects_SelectMeasures (fitStats, average, secfilt, measure, measureBig, FALSE);
     151  UpdateObjects_SelectMeasures (fitStats, average, secfilt, measure, measureBig, FALSE, NULL);
    136152
    137153  // if there are no exposure detections, use the stack position
     
    555571
    556572  // select the measurements to be used in this analysis
    557   status = UpdateObjects_SelectMeasures (fitStats, average, secfilt, measure, measureBig, TRUE);
     573  int stackEntry = -1;
     574  status = UpdateObjects_SelectMeasures (fitStats, average, secfilt, measure, measureBig, TRUE, &stackEntry);
    558575  if (status & SELECT_MEAS_HAS_STACK) {
    559576    // if we have any stack measurements, set the default value to the mean position
     
    561578    // if we exit this function without updating the stack position, it means we
    562579    // have a stack measurement, but not a good stack measuremetn
     580
    563581    average[0].Rstk  = average[0].R; // RA in degrees
    564582    average[0].Dstk  = average[0].D; // DEC in degrees
    565583    average[0].dRstk = average[0].dR; // RA scatter in arcsec
    566584    average[0].dDstk = average[0].dD; // DEC scatter in arcsec
     585    if (stackEntry > -1) {
     586      // save the epoch for one of the stacks
     587      average[0].Tmean = measure[stackEntry].t;
     588    }
    567589    average[0].flags |= ID_OBJ_MEAN_FOR_STACK;
    568590  }
     
    627649}
    628650
    629 int UpdateObjects_SelectMeasures (FitStats *fit, Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int isStack) {
     651int UpdateObjects_SelectMeasures (FitStats *fit, Average *average, SecFilt *secfilt, MeasureTiny *measure, Measure *measureBig, int isStack, int *stackEntry) {
    630652
    631653  // I've already allocated fit->points (and fit->sample) with space for fit->NpointsAlloc entries
     
    633655  int has2MASS = FALSE;
    634656  int hasStack = FALSE;
     657  if (stackEntry) *stackEntry = -1;
    635658
    636659  int Npoints = fit->Npoints = 0;
     
    662685      if (!isGPC1stack(measure[k].photcode)) continue;
    663686      hasStack = TRUE;
     687      if (stackEntry && *stackEntry == -1) *stackEntry = k; // save a reference to one of the valid stack entries
    664688    } else {
    665689      if ( isGPC1stack(measure[k].photcode)) continue;
  • trunk/Ohana/src/relastro/src/args.c

    r39389 r39390  
    285285  }
    286286
    287   N_BOOTSTRAP_SAMPLES = 1;
     287  N_BOOTSTRAP_SAMPLES = 100;
    288288  if ((N = get_argument (argc, argv, "-bootstrap-samples"))) {
    289289    remove_argument (N, &argc, argv);
    290290    N_BOOTSTRAP_SAMPLES = atoi (argv[N]);
    291291    remove_argument (N, &argc, argv);
    292     if ((N_BOOTSTRAP_SAMPLES < 1) || ((N_BOOTSTRAP_SAMPLES > 1) && (N_BOOTSTRAP_SAMPLES < 20))) {
    293       fprintf (stderr, "-bootstrap-samples must be either 1 (no sampling) or >= 20\n");
     292    if ((N_BOOTSTRAP_SAMPLES > 0) && (N_BOOTSTRAP_SAMPLES < 20)) {
     293      fprintf (stderr, "-bootstrap-samples must be either 0 (no sampling) or >= 20\n");
    294294      exit (2);
    295295    }
     
    749749  }
    750750
    751   N_BOOTSTRAP_SAMPLES = 1;
     751  N_BOOTSTRAP_SAMPLES = 100;
    752752  if ((N = get_argument (argc, argv, "-bootstrap-samples"))) {
    753753    remove_argument (N, &argc, argv);
    754754    N_BOOTSTRAP_SAMPLES = atoi (argv[N]);
    755755    remove_argument (N, &argc, argv);
    756     if ((N_BOOTSTRAP_SAMPLES < 1) || ((N_BOOTSTRAP_SAMPLES > 1) && (N_BOOTSTRAP_SAMPLES < 20))) {
    757       fprintf (stderr, "-bootstrap-samples must be either 1 (no sampling) or >= 20\n");
     756    if ((N_BOOTSTRAP_SAMPLES > 0) && (N_BOOTSTRAP_SAMPLES < 20)) {
     757      fprintf (stderr, "-bootstrap-samples must be either 0 (no sampling) or >= 20\n");
    758758      exit (2);
    759759    }
Note: See TracChangeset for help on using the changeset viewer.