IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17242


Ignore:
Timestamp:
Mar 31, 2008, 12:34:12 PM (18 years ago)
Author:
eugene
Message:

adding option to calculate averages

Location:
trunk/Ohana/src/relphot
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relphot/Makefile

    r16040 r17242  
    3939$(SRC)/reload_catalogs.$(ARCH).o \
    4040$(SRC)/relphot.$(ARCH).o         \
     41$(SRC)/relphot_objects.$(ARCH).o         \
    4142$(SRC)/select_images.$(ARCH).o   \
    4243$(SRC)/setExclusions.$(ARCH).o   \
  • trunk/Ohana/src/relphot/include/relphot.h

    r15509 r17242  
    7878int    USE_GRID;
    7979int    PLOTDELAY;
     80int    UpdateAverages;
    8081
    8182int    RELPHOT_GRID_X;
     
    191192void          setMrelFinal        PROTO((Catalog *catalog));
    192193int           setMrelOutput       PROTO((Catalog *catalog, int Ncatalog, int mark));
     194int           setMave             PROTO((Catalog *catalog, int Ncatalog));
    193195void          set_ZP              PROTO((double ZERO));
    194196int           setrefcode          PROTO((Image *image, int Nimage));
  • trunk/Ohana/src/relphot/src/StarOps.c

    r17201 r17242  
    146146}
    147147
     148// for each average object, set the average mags based on existing equiv photometry
     149int setMave (Catalog *catalog, int Ncatalog) {
     150
     151  int i, j, k, m, Ns, Nsecfilt, N, Nmax, Nc;
     152  float Msys;
     153  double *list, *dlist;
     154  StatType stats;
     155  PhotCode *code;
     156
     157  // pre-allocate a list for stats purposes
     158  Nmax = 0;
     159  for (i = 0; i < Ncatalog; i++) {
     160    for (j = 0; j < catalog[i].Naverage; j++) {
     161      Nmax = MAX (Nmax, catalog[i].average[j].Nmeasure);
     162    }
     163  }
     164  ALLOCATE (list, double, MAX (1, Nmax));
     165  ALLOCATE (dlist, double, MAX (1, Nmax));
     166
     167  Nsecfilt = catalog[0].Nsecfilt;
     168
     169  for (i = 0; i < Ncatalog; i++) {
     170    for (j = 0; j < catalog[i].Naverage; j++) {
     171      for (Ns = 0; Ns < Nsecfilt; Ns++) {
     172
     173        code = GetPhotcodebyNsec (Ns);
     174        Nc = code[0].code;
     175       
     176        N = 0;
     177        m = catalog[i].average[j].measureOffset;
     178        for (k = 0; k < catalog[i].average[j].Nmeasure; k++, m++) {
     179          if (catalog[i].measure[m].dbFlags & MEAS_BAD) continue;
     180          if (GetPhotcodeEquivCodebyCode (catalog[i].measure[m].photcode) != Nc) continue;
     181
     182          Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]);
     183          list[N] = Msys - catalog[i].measure[m].Mcal;
     184          dlist[N] = MAX (catalog[i].measure[m].dM, MIN_ERROR);
     185          N++;
     186        }
     187        if (N < 1) continue;
     188
     189        liststats (list, dlist, N, &stats);
     190
     191        /* use sigma or error in dM for output? */
     192        catalog[i].secfilt[Nsecfilt*j+Ns].M  = stats.mean;
     193        catalog[i].secfilt[Nsecfilt*j+Ns].dM = MAX (stats.error, stats.sigma);
     194        catalog[i].secfilt[Nsecfilt*j+Ns].Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq) : NAN_S_SHORT;
     195        catalog[i].secfilt[Nsecfilt*j+Ns].Ncode = N;
     196        catalog[i].secfilt[Nsecfilt*j+Ns].Nused = stats.Nmeas;
     197      }
     198    }
     199  }
     200
     201  free (list);
     202  free (dlist);
     203  return (TRUE);
     204}
     205
    148206/* set measure.Mcal for all measures except ID_MEAS_NOCAL and ID_IMAGE_NOCAL */
    149207int setMcalOutput (Catalog *catalog, int Ncatalog) {
  • trunk/Ohana/src/relphot/src/args.c

    r14590 r17242  
    181181  }
    182182
    183   if ( UserPatchSelect && (argc != 2)) usage ();
    184   if (!UserPatchSelect && (argc != 3)) usage ();
     183  UpdateAverages = FALSE;
     184  if ((N = get_argument (argc, argv, "-averages"))) {
     185    remove_argument (N, &argc, argv);
     186    UpdateAverages = TRUE;
     187  }
     188
     189  if (UpdateAverages && (argc == 1)) return TRUE;
     190  if (UserPatchSelect && (argc == 2)) return TRUE;
     191  if (argc != 3) usage ();
    185192
    186193  return TRUE;
     
    190197  fprintf (stderr, "ERROR: USAGE: relphot (region) (photcode)\n");
    191198  fprintf (stderr, "       or:    relphot (photcode) -region RA RA DEC DEC\n");
     199  fprintf (stderr, "       or:    relphot -averages -region RA RA DEC DEC\n");
    192200  fprintf (stderr, "  options: \n");
    193201  fprintf (stderr, "  -time (start) (stop)\n");
  • trunk/Ohana/src/relphot/src/initialize.c

    r17201 r17242  
    88  args (argc, argv);
    99
    10   N = UserPatchSelect ? 1 : 2;
    11   if ((photcode = GetPhotcodebyName (argv[N])) == NULL) {
    12     fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
    13     exit (1);
    14   }
    15   if (photcode[0].type != PHOT_SEC) {
    16     fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[N]);
    17     exit (1);
     10  if (!UpdateAverages) {
     11
     12    N = UserPatchSelect ? 1 : 2;
     13
     14    if ((photcode = GetPhotcodebyName (argv[N])) == NULL) {
     15      fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
     16      exit (1);
     17    }
     18    if (photcode[0].type != PHOT_SEC) {
     19      fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[N]);
     20      exit (1);
     21    }
     22    PhotSec = GetPhotcodeNsec (photcode[0].code);
    1823  }
    1924
    2025  PhotNsec = GetPhotcodeNsecfilt ();
    21   PhotSec = GetPhotcodeNsec (photcode[0].code);
    2226
    2327  initstats (STATMODE);
  • trunk/Ohana/src/relphot/src/relphot.c

    r12332 r17242  
    1111  /* get configuration info, args */
    1212  initialize (argc, argv);
     13
     14  /* the object analysis is a separate process iterating over catalogs */
     15  if (UpdateAverages) {
     16    relphot_objects ();
     17    exit (0);
     18  }
    1319
    1420  /* register database handle with shutdown procedure */
Note: See TracChangeset for help on using the changeset viewer.