IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 8, 2007, 12:21:18 PM (19 years ago)
Author:
eugene
Message:

complete merge from branch dvo-mods-2007-02

Location:
trunk/Ohana/src/addstar
Files:
20 edited

Legend:

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

    r11880 r12332  
    240240
    241241install:
    242         for i in $(INSTALL); do make $$i.install; done
     242        for i in $(INSTALL); do make $$i.install || exit; done
  • trunk/Ohana/src/addstar/src/ConfigInit.c

    r8639 r12332  
    77  char *config, *file;
    88  char RadiusWord[80];
    9   char PhotCodeFile[256];
     9  char CatdirPhotcodeFile[256];
     10  char MasterPhotcodeFile[256];
    1011  AddstarClientOptions options;
    1112
     
    6162  CAL_INSTMAG_MAX =  -9.0;
    6263  CAL_INSTMAG_MIN = -13.0;
    63   ScanConfig (config, "CAL_INSTMAG_MAX",   "%lf", 0, &CAL_INSTMAG_MAX);
    64   ScanConfig (config, "CAL_INSTMAG_MIN",   "%lf", 0, &CAL_INSTMAG_MIN);
     64  ScanConfig (config, "CAL_INSTMAG_MAX",        "%lf", 0, &CAL_INSTMAG_MAX);
     65  ScanConfig (config, "CAL_INSTMAG_MIN",        "%lf", 0, &CAL_INSTMAG_MIN);
    6566
    6667  /* location of needed data sources */
     
    6970  ScanConfig (config, "GSCDIR",                 "%s",  0, GSCDIR);
    7071
    71   if (!ScanConfig (config, "USNO_A_DIR",             "%s",  0, USNO_A_DIR)) {
    72     ScanConfig (config, "USNO_CDROM",             "%s",  0, USNO_A_DIR);
     72  if (!ScanConfig (config, "USNO_A_DIR",        "%s",  0, USNO_A_DIR)) {
     73    ScanConfig (config, "USNO_CDROM",           "%s",  0, USNO_A_DIR);
    7374  }
    7475  ScanConfig (config, "USNO_B_DIR",             "%s",  0, USNO_B_DIR);
    7576
    76   ScanConfig (config, "TYCHO_DIR",             "%s",  0, TYCHO_DIR);
     77  ScanConfig (config, "TYCHO_DIR",              "%s",  0, TYCHO_DIR);
    7778
    78   GetConfig (config, "GSCFILE",                "%s",  0, GSCFILE);
    79   GetConfig (config, "CATDIR",                 "%s",  0, CATDIR);
    80   GetConfig (config, "PHOTCODE_FILE",          "%s",  0, PhotCodeFile);
     79  GetConfig (config, "GSCFILE",                 "%s",  0, GSCFILE);
     80  GetConfig (config, "CATDIR",                  "%s",  0, CATDIR);
     81  GetConfig (config, "PHOTCODE_FILE",           "%s",  0, MasterPhotcodeFile);
    8182  ScanConfig (config, "CATMODE",                "%s",  0, CATMODE);
    8283  ScanConfig (config, "CATFORMAT",              "%s",  0, CATFORMAT);
     
    147148  if (*CATFORMAT == 0) strcpy (CATFORMAT, "ELIXIR");
    148149
    149   if (!LoadPhotcodes (PhotCodeFile)) {
    150     fprintf (stderr, "error loading photcode file %s\n", PhotCodeFile);
     150  /* XXX this does not yet write out the master photcode table */
     151  sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR);
     152  if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile)) {
     153    fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);
    151154    exit (1);
    152155  }
  • trunk/Ohana/src/addstar/src/FilterStars.c

    r10937 r12332  
    2525    while (stars[N].R >= 360.0) stars[N].R -= 360.0;
    2626    stars[N].found = -1;
    27     stars[N].code = image[0].source;
     27    stars[N].code = image[0].photcode;
    2828
    2929    /** additional quantities to supply to Stars based on the image data **/
    3030
    3131    /* calculate accurate per-star airmass */
    32     stars[N].airmass = airmass (image[0].secz_PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);
    33     stars[N].Mcal    = image[0].Mcal_PS;
     32    stars[N].airmass = airmass (image[0].secz, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);
     33    stars[N].Mcal    = image[0].Mcal;
    3434    stars[N].t       = image[0].tzero + 1e-4*stars[N].Y*image[0].trate;  /* trate is in 0.1 msec / row */
    3535
  • trunk/Ohana/src/addstar/src/ImageOptions.c

    r10937 r12332  
    2424    if (!strcmp (&images[0].coords.ctype[4], "-DIS")) continue;
    2525
    26     photcode = GetPhotcodebyCode (images[i].source);
     26    photcode = GetPhotcodebyCode (images[i].photcode);
    2727
    2828    if (equivPhotcode) {
  • trunk/Ohana/src/addstar/src/LoadStars.c

    r10897 r12332  
    5252    exit (1);
    5353  }
    54   image[0].source = photcode;
     54  image[0].photcode = photcode;
    5555
    5656  image[0].NX -= XOVERSCAN;
     
    6262  tmp = 0;
    6363  /* gfits_scan (&header, "APMIFIT",  "%lf", 1, &tmp); */
    64   image[0].apmifit_PS = tmp;
     64  image[0].apmifit = tmp;
    6565
    6666  tmp = 0;
    6767  /* gfits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */
    68   image[0].dapmifit_PS = tmp;
     68  image[0].dapmifit = tmp;
    6969
    7070  tmp = 0;
     
    108108  tmp = 0;
    109109  gfits_scan (&header, AirmassKeyword, "%lf", 1, &tmp);
    110   image[0].secz_PS = MIN (NO_MAG, tmp);
     110  image[0].secz = MIN (NO_MAG, tmp);
    111111
    112112  if (!gfits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) {
     
    120120
    121121  /* secz is in units milli-airmass */
    122   image[0].Mcal_PS = 0.0;
     122  image[0].Mcal = 0.0;
    123123  image[0].Xm   = NO_MAG;
    124124  image[0].code = 0;
  • trunk/Ohana/src/addstar/src/ReadImageHeader.c

    r10937 r12332  
    55int ReadImageHeader (Header *header, Image *image, int photcode) {
    66
    7   int Nastro, ccdnum, hour, min, simple;
    8   double tmp, sec, dMs;
    9   char *name, *c, photname[64], line[80];
     7  int Nastro, ccdnum, hour, min;
     8  double tmp, sec;
     9  char *c, photname[64], line[80];
    1010
    1111  /* get astrometry information */
     
    6666    exit (1);
    6767  }
    68   image[0].source = photcode;
     68  image[0].photcode = photcode;
    6969
    7070  image[0].NX -= XOVERSCAN;
     
    7676  tmp = 0;
    7777  /* gfits_scan (header, "APMIFIT",  "%lf", 1, &tmp); */
    78   image[0].apmifit_PS = tmp;
     78  image[0].apmifit = tmp;
    7979
    8080  tmp = 0;
    8181  /* gfits_scan (header, "dAPMIFIT", "%lf", 1, &tmp); */
    82   image[0].dapmifit_PS = tmp;
     82  image[0].dapmifit = tmp;
    8383
    8484  tmp = 0;
     
    118118  tmp = 0;
    119119  gfits_scan (header, AirmassKeyword, "%lf", 1, &tmp);
    120   image[0].secz_PS = MIN (NO_MAG, tmp);
     120  image[0].secz = MIN (NO_MAG, tmp);
    121121
    122122  if (!gfits_scan (header, CCDNumKeyword, "%d", 1, &ccdnum)) {
     
    130130
    131131  /* secz is in units milli-airmass */
    132   image[0].Mcal_PS = 0.0;
     132  image[0].Mcal = 0.0;
    133133  image[0].Xm   = NO_MAG;
    134134  image[0].code = 0;
  • trunk/Ohana/src/addstar/src/ReadStarsFITS.c

    r10937 r12332  
    55Stars *ReadStarsFITS (FILE *f, Header *header, Header *in_theader, unsigned int *nstars) {
    66
    7   int i, Nskip, Nstars;
     7  int Nskip, Nstars;
    88  char type[80];
    99  Header theader;
     
    1313  if (in_theader == NULL) {
    1414    table.header = &theader;
     15    if (!gfits_fread_header (f, table.header)) Shutdown ("ERROR: can't read table header");
    1516  } else {
    1617    table.header = in_theader;
    17   }
    18 
    19   /* load the table header (skip this?) */
    20   if (in_theader == NULL) {
    21     if (!gfits_fread_header (f, &theader)) {
    22       fprintf (stderr, "ERROR: can't read table header\n");
    23       exit (1);
    24     }
    25   } else {
    2618    Nskip = in_theader[0].size;
    2719    fseek (f, Nskip, SEEK_CUR);
     
    3426  }
    3527
    36   if (!gfits_scan (&theader, "EXTTYPE", "%s", 1, type)) {
     28  if (!gfits_scan (table.header, "EXTTYPE", "%s", 1, type)) {
    3729    strcpy (type, "SMPDATA");
    3830  }
     
    9385  PS1Data *ps1data;
    9486
    95   ps1data = gfits_table_get_PS1Data (table, &Nstars, NULL);
     87  ps1data = gfits_table_get1Data (table, &Nstars, NULL);
    9688
    9789  ALLOCATE (stars, Stars, Nstars);
  • trunk/Ohana/src/addstar/src/SEDfit.c

    r8361 r12332  
    8080    Nphot = 0;
    8181    for (j = 0; j < incat[0].average[i].Nm; j++) {
    82       idx = table[0].hashcode[incat[0].measure[m+j].source];
     82      idx = table[0].hashcode[incat[0].measure[m+j].photcode];
    8383      if (idx == -1) continue;
    8484      // only fit the selected photcodes (mode == "fit")
     
    8686      if (table[0].mode[idx] == SED_SAMPLE) continue;
    8787      // XXX do something more clever if more than one value exists per photcode
    88       sourceValue.mags[idx] = incat[0].measure[m+j].M_PS + table[0].vegaToAB[idx];
    89       sourceError.mags[idx] = incat[0].measure[m+j].dM_PS;
    90       if (incat[0].measure[m+j].source == USNOred) sourceError.mags[idx] = 0.3;
    91       if (incat[0].measure[m+j].source == USNOblu) sourceError.mags[idx] = 0.3;
     88      sourceValue.mags[idx] = incat[0].measure[m+j].M + table[0].vegaToAB[idx];
     89      sourceError.mags[idx] = incat[0].measure[m+j].dM;
     90      if (incat[0].measure[m+j].photcode == USNOred) sourceError.mags[idx] = 0.3;
     91      if (incat[0].measure[m+j].photcode == USNOblu) sourceError.mags[idx] = 0.3;
    9292      found[idx] = TRUE;
    9393      Nphot ++;
     
    159159
    160160    // XXX for now, set the average mag data to NULL
    161     outcat[0].average[Nave].M         = NO_MAG;
    162     outcat[0].average[Nave].dM        = NO_MAG;
    163161    outcat[0].average[Nave].Nm        = 0;
    164162    outcat[0].average[Nave].Nn        = 0;
    165163    outcat[0].average[Nave].Xp        = NO_MAG;
    166     outcat[0].average[Nave].Xm        = NO_MAG;
    167     outcat[0].average[Nave].Xg        = NO_MAG;
    168164    outcat[0].average[Nave].offset    = Nmeas;
    169165    outcat[0].average[Nave].missing   = -1;
     
    171167
    172168    for (j = 0; j < Nsec; j++) {
    173       outcat[0].secfilt[Nave*Nsec+j].M_PS  = NO_MAG;
    174       outcat[0].secfilt[Nave*Nsec+j].dM_PS = NO_MAG;
     169      outcat[0].secfilt[Nave*Nsec+j].M  = NO_MAG;
     170      outcat[0].secfilt[Nave*Nsec+j].dM = NO_MAG;
    175171      outcat[0].secfilt[Nave*Nsec+j].Xm    = NO_MAG;
    176172    }
     
    185181    for (j = 0; valid && (j < Nmodel); j++) {
    186182      n = modelRow[j];
    187       outcat[0].measure[Nmeas].dR_PS       = 0.0;
    188       outcat[0].measure[Nmeas].dD_PS       = 0.0;
    189       outcat[0].measure[Nmeas].M_PS        = MIN (table[0].row[minFit.row][0].mags[n] + minFit.Md,  NO_MAG);
    190       outcat[0].measure[Nmeas].dM_PS       = 0.0;
    191       outcat[0].measure[Nmeas].Mcal_PS     = 0;
     183      outcat[0].measure[Nmeas].dR       = 0.0;
     184      outcat[0].measure[Nmeas].dD       = 0.0;
     185      outcat[0].measure[Nmeas].M        = MIN (table[0].row[minFit.row][0].mags[n] + minFit.Md,  NO_MAG);
     186      outcat[0].measure[Nmeas].dM       = 0.0;
     187      outcat[0].measure[Nmeas].Mcal     = 0;
    192188      outcat[0].measure[Nmeas].t           = TIMEREF;
    193189      outcat[0].measure[Nmeas].averef      = Nave;
    194       outcat[0].measure[Nmeas].source      = table[0].code[n];
     190      outcat[0].measure[Nmeas].photcode      = table[0].code[n];
    195191      outcat[0].measure[Nmeas].dophot      = 0;
    196192      outcat[0].measure[Nmeas].flags       = 0;
    197       outcat[0].measure[Nmeas].dt_PS       = 0xffff;
    198 
    199       outcat[0].measure[Nmeas].Mgal_PS     = NO_MAG;
    200       outcat[0].measure[Nmeas].airmass_PS  = 0;
     193      outcat[0].measure[Nmeas].dt       = 0xffff;
     194
     195      outcat[0].measure[Nmeas].Mgal     = NO_MAG;
     196      outcat[0].measure[Nmeas].airmass  = 0;
    201197      outcat[0].measure[Nmeas].FWx         = NO_MAG;
    202198      outcat[0].measure[Nmeas].FWy         = NO_ERR;
  • trunk/Ohana/src/addstar/src/SocketOps.c

    r5347 r12332  
    6060int WaitServerSocket (int InitSocket, SockAddress *Address, int *validIP, int Nvalid) {
    6161
    62   int i, BindSocket, length;
     62  int i, BindSocket;
     63  socklen_t length;
    6364  SockAddress Address_in;
    6465  u_int32_t addr;
  • trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c

    r10939 r12332  
    33int UpdateDatabase_Image (AddstarClientOptions *options, Image *images, int Nimages, Coords *mosaic, Stars *stars, int Nstars) {
    44
    5   int i, Noverlap, status;
    6   Image *overlap;
     5  int i, status;
    76  Catalog catalog;
    87  SkyList *skylist, *newlist;
  • trunk/Ohana/src/addstar/src/calibrate.c

    r5585 r12332  
    6060  //  - calibrate to external system (Mref)
    6161
    62   mycode = GetPhotcodebyCode (new[0].source);
     62  mycode = GetPhotcodebyCode (new[0].photcode);
    6363  incode = GetPhotcodebyCode (mycode[0].equiv);
    6464  excode = GetPhotcodebyCode (incode[0].equiv);
     
    7474  m = average[0].offset;
    7575  for (i = 0; i < average[0].Nm; i++) {
    76     if (measure[m].source == CalC0) {
     76    if (measure[m].photcode == CalC0) {
    7777      found0 = TRUE;
    78       CalM0  = measure[m].M_PS;
    79       dCalM  = measure[m].dM_PS;
     78      CalM0  = measure[m].M;
     79      dCalM  = measure[m].dM;
    8080    }
    81     if (measure[m].source == CalC1) {
     81    if (measure[m].photcode == CalC1) {
    8282      found1 = TRUE;
    83       CalM1  = measure[m].M_PS;
     83      CalM1  = measure[m].M;
    8484    }
    85     if (measure[m].source == CalC2) {
     85    if (measure[m].photcode == CalC2) {
    8686      found2 = TRUE;
    87       CalM2  = measure[m].M_PS;
     87      CalM2  = measure[m].M;
    8888    }
    8989    if (found0 && found1 && found2) {
    90       Mcal   = new[0].M_PS + 0.001*mycode[0].C + mycode[0].K*(new[0].airmass_PS - 1.0) - ZeroPt;
     90      Mcal   = new[0].M + 0.001*mycode[0].C + mycode[0].K*(new[0].airmass - 1.0) - ZeroPt;
    9191      color  = CalM1 - CalM2 - 0.001*mycode[0].dX;
    9292      factor = color;
     
    9999      }
    100100      // if we want to apply a Mcal -> Mref color correction, we need the additional color term
    101       SaveCalibration (Mcal, new[0].dM_PS, CalM0, dCalM, new[0].M_PS - ZeroPt - new[0].dt_PS, Nstar);
     101      SaveCalibration (Mcal, new[0].dM, CalM0, dCalM, new[0].M - ZeroPt - new[0].dt, Nstar);
    102102      return;
    103103    }
     
    121121  if (MaxN == -1) {
    122122    fprintf (stderr, "no clean stars\n");
    123     image[0].Mcal_PS = 10.000;
    124     image[0].dMcal_PS = 10.000;
     123    image[0].Mcal = 10.000;
     124    image[0].dMcal = 10.000;
    125125    return;
    126126  }
     
    155155  if (Nkeep < 5) {
    156156    fprintf (stderr, "too few stars\n");
    157     image[0].Mcal_PS = 10.000;
    158     image[0].dMcal_PS = 10.000;
     157    image[0].Mcal = 10.000;
     158    image[0].dMcal = 10.000;
    159159    return;
    160160  }
     
    187187    Mw = W1 / W2;
    188188    fprintf (stderr, "N: %.0f, mean: %f, wt mean: %f, stdev: %f, precision: %f\n", N, M1, Mw, M2, M2 / sqrt (N));
    189     image[0].Mcal_PS = M1;
    190     image[0].dMcal_PS = M2 / sqrt (N);
     189    image[0].Mcal = M1;
     190    image[0].dMcal = M2 / sqrt (N);
    191191    image[0].Mxxxx = N;
    192192  } else {
    193193    fprintf (stderr, "too few stars\n");
    194     image[0].Mcal_PS = 10.000;
    195     image[0].dMcal_PS = 10.000;
     194    image[0].Mcal = 10.000;
     195    image[0].dMcal = 10.000;
    196196    image[0].Mxxxx = 0;
    197197  }
  • trunk/Ohana/src/addstar/src/fakeimage.c

    r11081 r12332  
    111111    image[i+1].NY = Ny;
    112112
    113     image[i+1].source = photcode;
     113    image[i+1].photcode = photcode;
    114114
    115115    image[i+1].exptime = 0.0;
    116116 
    117     image[i+1].apmifit_PS = 0.0;
    118     image[i+1].dapmifit_PS = 0.0;
     117    image[i+1].apmifit = 0.0;
     118    image[i+1].dapmifit = 0.0;
    119119
    120120    image[i+1].detection_limit = 0.0;
     
    124124    image[i+1].tzero = MosaicTime;
    125125    image[i+1].trate = 0;
    126     image[i+1].secz_PS = 1.0;
     126    image[i+1].secz = 1.0;
    127127    image[i+1].ccdnum = 0xff;
    128128
    129     image[i+1].Mcal_PS = 0.0;
     129    image[i+1].Mcal = 0.0;
    130130    image[i+1].Xm   = NO_MAG;
    131131    image[i+1].code = 0;
     
    173173  image[0].NY = Dmax - Dmin;
    174174
    175   image[0].source = photcode;
     175  image[0].photcode = photcode;
    176176
    177177  image[0].exptime = 0.0;
    178   image[0].apmifit_PS = 0.0;
    179   image[0].dapmifit_PS = 0.0;
     178  image[0].apmifit = 0.0;
     179  image[0].dapmifit = 0.0;
    180180  image[0].detection_limit = 0.0;
    181181  image[0].saturation_limit = 0.0;
     
    184184  image[0].tzero = MosaicTime;
    185185  image[0].trate = 0;
    186   image[0].secz_PS = 1.0;
     186  image[0].secz = 1.0;
    187187  image[0].ccdnum = 0xff;
    188   image[0].Mcal_PS = 0.0;
     188  image[0].Mcal = 0.0;
    189189  image[0].Xm   = NO_MAG;
    190190  image[0].code = 0;
  • trunk/Ohana/src/addstar/src/find_matches.c

    r10939 r12332  
    44
    55  int i, j, n, N, J, status, Nstars;
    6   double X, Y, RADIUS, RADIUS2;
     6  double RADIUS, RADIUS2;
    77  float *X1, *Y1, *X2, *Y2;
    88  float dX, dY, dR;
     
    1010  int Nave, NAVE, Nmeas, NMEAS, Nmatch;
    1111  int Nsecfilt, Nsec;
    12   float Mcat, *Mval;
    13   PhotCode *code;
    1412  Coords tcoords;
    1513
    16   /* photcode data - must by of type DEP; options.photcode is equiv PRI/SEC photcode */
    17   /* this function requires incoming stars to have the same photcode.equiv value */
     14  /* photcode data - must by of type DEP; options.photcode is equiv photcode for all input
     15     images this function requires incoming stars to have the same photcode.equiv value.  if
     16     this value is not a valid photcode (ie, 0), then no modification is made to the average
     17     magnitudes (Nsec will be -1) */
     18
    1819  Nsecfilt = GetPhotcodeNsecfilt ();
    1920  Nsec     = GetPhotcodeNsec (options.photcode);
     
    142143      /** add measurements for this star **/
    143144      /** dR,dD now represent arcsec **/
    144       catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N].R);
    145       if (catalog[0].measure[Nmeas].dR_PS > +180.0*3600.0) {
     145      catalog[0].measure[Nmeas].dR       = 3600.0*(catalog[0].average[n].R - stars[N].R);
     146      if (catalog[0].measure[Nmeas].dR > +180.0*3600.0) {
    146147          // average on high end of boundary, move star up
    147148          stars[N].R += 360.0;
    148           catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R);
    149       }
    150       if (catalog[0].measure[Nmeas].dR_PS < -180.0*3600.0) {
     149          catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R);
     150      }
     151      if (catalog[0].measure[Nmeas].dR < -180.0*3600.0) {
    151152          // average on low end of boundary, move star down
    152153          stars[N].R -= 360.0;
    153           catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R);
    154       }
    155       if (fabs(catalog[0].measure[Nmeas].dR_PS) > 10*RADIUS) {
     154          catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R);
     155      }
     156      if (fabs(catalog[0].measure[Nmeas].dR) > 10*RADIUS) {
    156157          fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n",
    157158                   catalog[0].average[n].R, catalog[0].average[n].D,
     
    160161                   Y1[i], Y2[J]);
    161162      }
    162       catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N].D);
    163       catalog[0].measure[Nmeas].M_PS        = stars[N].M;
    164       catalog[0].measure[Nmeas].dM_PS       = stars[N].dM;  /* error in input files stored in thousandths of mag */
    165       catalog[0].measure[Nmeas].Mcal_PS     = stars[N].Mcal;
    166       catalog[0].measure[Nmeas].t           = stars[N].t;
    167       catalog[0].measure[Nmeas].averef      = n;              /* this must be an absolute sequence number, if partial average is loaded */
    168       catalog[0].measure[Nmeas].source      = stars[N].code;  /* photcode */
    169       catalog[0].measure[Nmeas].dophot      = stars[N].dophot; 
    170       catalog[0].measure[Nmeas].flags       = 0;
    171       catalog[0].measure[Nmeas].dt_PS       = stars[N].dt;
    172       catalog[0].measure[Nmeas].airmass_PS  = stars[N].airmass;
    173 
    174       catalog[0].measure[Nmeas].Mgal_PS     = stars[N].Mgal;
    175       catalog[0].measure[Nmeas].FWx         = MIN (100*stars[N].fx, NO_MAG);
    176       catalog[0].measure[Nmeas].FWy         = MIN (100*stars[N].fy, NO_MAG);
    177       catalog[0].measure[Nmeas].theta       = MIN ((255/360)*stars[N].df, NO_ERR);
     163      catalog[0].measure[Nmeas].dD       = 3600.0*(catalog[0].average[n].D - stars[N].D);
     164
     165      /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     166      /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     167      catalog[0].measure[Nmeas].Xccd     = stars[N].X;
     168      catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
     169
     170      catalog[0].measure[Nmeas].M        = stars[N].M;
     171      catalog[0].measure[Nmeas].dM       = stars[N].dM;  /* error in input files stored in thousandths of mag */
     172      catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
     173      catalog[0].measure[Nmeas].t        = stars[N].t;
     174      catalog[0].measure[Nmeas].averef   = n;              /* this must be an absolute sequence number, if partial average is loaded */
     175      catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
     176      catalog[0].measure[Nmeas].dophot   = stars[N].dophot; 
     177      catalog[0].measure[Nmeas].flags    = 0;
     178      catalog[0].measure[Nmeas].dt       = stars[N].dt;
     179      catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
     180
     181      catalog[0].measure[Nmeas].Mgal     = stars[N].Mgal;
     182      catalog[0].measure[Nmeas].FWx      = MIN (100*stars[N].fx, NO_MAG);
     183      catalog[0].measure[Nmeas].FWy      = MIN (100*stars[N].fy, NO_MAG);
     184      catalog[0].measure[Nmeas].theta    = MIN ((0xffff/360.0)*stars[N].df, NO_MAG);
    178185       
    179       /* it is not valid to pass PRI/SEC/REF photcodes to this routine */
    180       /* check for entries in the secfilt lists */
    181       Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    182       Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
    183       if (*Mval == NO_MAG) *Mval = Mcat;
     186      /* set the average magnitude if not already set and if photcode.equiv is not 0 */
    184187      /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     188      if (Nsec > -1) {
     189          if (catalog[0].secfilt[n*Nsecfilt+Nsec].M != NO_MAG) {
     190              catalog[0].secfilt[n*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]);
     191          }
     192      }
    185193
    186194      /* adds the measurement to the calibration if appropriate color terms are found */
     
    242250    catalog[0].average[Nave].R         = stars[N].R;
    243251    catalog[0].average[Nave].D         = stars[N].D;
    244     catalog[0].average[Nave].M         = NO_MAG;
    245     catalog[0].average[Nave].dM        = NO_MAG;
     252    catalog[0].average[Nave].Xp        = 0;
    246253    catalog[0].average[Nave].Nm        = 1;
    247254    catalog[0].average[Nave].Nn        = 0;
    248     catalog[0].average[Nave].Xp        = NO_MAG;
    249     catalog[0].average[Nave].Xm        = NO_MAG;
    250     catalog[0].average[Nave].Xg        = NO_MAG;
    251255    catalog[0].average[Nave].offset    = Nmeas;
    252256    catalog[0].average[Nave].missing   = -1;
     
    263267
    264268    for (j = 0; j < Nsecfilt; j++) {
    265       catalog[0].secfilt[Nave*Nsecfilt+j].M_PS  = NO_MAG;
    266       catalog[0].secfilt[Nave*Nsecfilt+j].dM_PS = NO_MAG;
    267       catalog[0].secfilt[Nave*Nsecfilt+j].Xm    = NO_MAG;
    268     }
    269 
    270     catalog[0].measure[Nmeas].dR_PS       = 0.0;
    271     catalog[0].measure[Nmeas].dD_PS       = 0.0;
    272     catalog[0].measure[Nmeas].M_PS        = stars[N].M;
    273     catalog[0].measure[Nmeas].dM_PS       = stars[N].dM;
    274     catalog[0].measure[Nmeas].Mcal_PS     = stars[N].Mcal;
    275     catalog[0].measure[Nmeas].t           = stars[N].t;
    276     catalog[0].measure[Nmeas].averef      = Nave;           /* XXX EAM : must be absolute Nave if partial read */
    277     catalog[0].measure[Nmeas].source      = stars[N].code;  /* photcode */
    278     catalog[0].measure[Nmeas].dophot      = stars[N].dophot; 
    279     catalog[0].measure[Nmeas].flags       = 0;
    280     catalog[0].measure[Nmeas].dt_PS       = stars[N].dt;
    281     catalog[0].measure[Nmeas].airmass_PS  = stars[N].airmass;
    282 
    283     catalog[0].measure[Nmeas].Mgal_PS     = stars[N].Mgal;
    284     catalog[0].measure[Nmeas].FWx         = MIN (100*stars[N].fx, NO_MAG);
    285     catalog[0].measure[Nmeas].FWy         = MIN (100*stars[N].fy, NO_MAG);
    286     catalog[0].measure[Nmeas].theta       = MIN ((255/360)*stars[N].df, NO_ERR);
    287 
    288     Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    289     Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
    290     if (*Mval == NO_MAG) *Mval = Mcat;
     269      catalog[0].secfilt[Nave*Nsecfilt+j].M  = NO_MAG;
     270      catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG;
     271      catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG;
     272    }
     273
     274    /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     275    /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     276    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
     277    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
     278
     279    catalog[0].measure[Nmeas].dR        = 0.0;
     280    catalog[0].measure[Nmeas].dD        = 0.0;
     281    catalog[0].measure[Nmeas].M         = stars[N].M;
     282    catalog[0].measure[Nmeas].dM        = stars[N].dM;
     283    catalog[0].measure[Nmeas].Mcal      = stars[N].Mcal;
     284    catalog[0].measure[Nmeas].t         = stars[N].t;
     285    catalog[0].measure[Nmeas].averef    = Nave;           /* XXX EAM : must be absolute Nave if partial read */
     286    catalog[0].measure[Nmeas].photcode  = stars[N].code;  /* photcode */
     287    catalog[0].measure[Nmeas].dophot    = stars[N].dophot; 
     288    catalog[0].measure[Nmeas].flags     = 0;
     289    catalog[0].measure[Nmeas].dt        = stars[N].dt;
     290    catalog[0].measure[Nmeas].airmass   = stars[N].airmass;
     291
     292    catalog[0].measure[Nmeas].Mgal      = stars[N].Mgal;
     293    catalog[0].measure[Nmeas].FWx       = MIN (100*stars[N].fx, NO_MAG);
     294    catalog[0].measure[Nmeas].FWy       = MIN (100*stars[N].fy, NO_MAG);
     295    catalog[0].measure[Nmeas].theta     = MIN ((0xffff/360.0)*stars[N].df, NO_MAG);
     296    /* XXX replace df here with theta, right? */
     297
     298    /* set the average magnitude if not already set and the photcode.equiv is not 0 */
     299    /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     300    if (Nsec > -1) {
     301        catalog[0].secfilt[Nave*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]);
     302    }
    291303
    292304    /* next[Nmeas] should always be -1 in this context (it is always the only
  • trunk/Ohana/src/addstar/src/find_matches_closest.c

    r10939 r12332  
    44
    55  int i, j, n, N, J, Jmin, status, Nstars;
    6   double X, Y, RADIUS, RADIUS2, Rmin, secz;
     6  double RADIUS, RADIUS2, Rmin;
    77  float *X1, *Y1, *X2, *Y2;
    88  float dX, dY, dR;
     
    1111  Coords tcoords;
    1212  int Nsecfilt, Nsec;
    13   float Mcat, *Mval, MTIME;
    14   PhotCode *code;
    15 
    16   /* photcode data - must by of type DEP; options.photcode is equiv PRI/SEC photcode */
    17   /* this function requires incoming stars to have the same photcode.equiv value */
     13
     14  /* photcode data - must by of type DEP; options.photcode is equiv photcode for all input
     15     images this function requires incoming stars to have the same photcode.equiv value.  if
     16     this value is not a valid photcode (ie, 0), then no modification is made to the average
     17     magnitudes (Nsec will be -1) */
     18
    1819  Nsecfilt = GetPhotcodeNsecfilt ();
    1920  Nsec     = GetPhotcodeNsec (options.photcode);
     
    160161    /** add measurements for this star **/
    161162    /** dR,dD now represent arcsec **/
    162     catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N].R);
    163     if (catalog[0].measure[Nmeas].dR_PS > +180.0*3600.0) {
     163    catalog[0].measure[Nmeas].dR       = 3600.0*(catalog[0].average[n].R - stars[N].R);
     164    if (catalog[0].measure[Nmeas].dR > +180.0*3600.0) {
    164165      // average on high end of boundary, move star up
    165166      stars[N].R += 360.0;
    166       catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R);
    167     }
    168     if (catalog[0].measure[Nmeas].dR_PS < -180.0*3600.0) {
     167      catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R);
     168    }
     169    if (catalog[0].measure[Nmeas].dR < -180.0*3600.0) {
    169170      // average on low end of boundary, move star down
    170171      stars[N].R -= 360.0;
    171       catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R);
    172     }
    173     if (fabs(catalog[0].measure[Nmeas].dR_PS) > 10*RADIUS) {
     172      catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R);
     173    }
     174    if (fabs(catalog[0].measure[Nmeas].dR) > 10*RADIUS) {
    174175      fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n",
    175176               catalog[0].average[n].R, catalog[0].average[n].D,
     
    178179               Y1[i], Y2[Jmin]);
    179180    }
    180     catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N].D);
    181     catalog[0].measure[Nmeas].M_PS        = stars[N].M;
    182     catalog[0].measure[Nmeas].dM_PS       = stars[N].dM;  /* error in input files stored in thousandths of mag */
    183     catalog[0].measure[Nmeas].Mcal_PS     = stars[N].Mcal;
    184     catalog[0].measure[Nmeas].t           = stars[N].t;
    185     catalog[0].measure[Nmeas].averef      = n;
    186     catalog[0].measure[Nmeas].source      = stars[N].code;  /* photcode */
    187     catalog[0].measure[Nmeas].dophot      = stars[N].dophot; 
    188     catalog[0].measure[Nmeas].flags       = 0;
    189     catalog[0].measure[Nmeas].dt_PS       = stars[N].dt;
    190     catalog[0].measure[Nmeas].airmass_PS  = stars[N].airmass;
    191 
    192     catalog[0].measure[Nmeas].Mgal_PS     = stars[N].Mgal;
    193     catalog[0].measure[Nmeas].FWx         = MIN (100*stars[N].fx, NO_MAG);
    194     catalog[0].measure[Nmeas].FWy         = MIN (100*stars[N].fy, NO_MAG);
    195     catalog[0].measure[Nmeas].theta       = MIN ((255/360)*stars[N].df, NO_ERR);
     181    catalog[0].measure[Nmeas].dD       = 3600.0*(catalog[0].average[n].D - stars[N].D);
     182
     183    /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     184    /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     185    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
     186    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
     187
     188    catalog[0].measure[Nmeas].M        = stars[N].M;
     189    catalog[0].measure[Nmeas].dM       = stars[N].dM;  /* error in input files stored in thousandths of mag */
     190    catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
     191    catalog[0].measure[Nmeas].t        = stars[N].t;
     192    catalog[0].measure[Nmeas].averef   = n;
     193    catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
     194    catalog[0].measure[Nmeas].dophot   = stars[N].dophot; 
     195    catalog[0].measure[Nmeas].flags    = 0;
     196    catalog[0].measure[Nmeas].dt       = stars[N].dt;
     197    catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
     198
     199    catalog[0].measure[Nmeas].Mgal     = stars[N].Mgal;
     200    catalog[0].measure[Nmeas].FWx      = MIN (100*stars[N].fx, NO_MAG);
     201    catalog[0].measure[Nmeas].FWy      = MIN (100*stars[N].fy, NO_MAG);
     202    catalog[0].measure[Nmeas].theta    = MIN ((0xffff/360.0)*stars[N].df, NO_MAG);
    196203       
    197     /* it is not valid to pass PRI/SEC/REF photcodes to this routine */
    198     /* check for entries in the secfilt lists */
    199     Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    200     Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
    201     if (*Mval == NO_MAG) *Mval = Mcat;
     204    /* set the average magnitude if not already set and the photcode.equiv is not 0 */
    202205    /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     206    if (Nsec > -1) {
     207        if (catalog[0].secfilt[n*Nsecfilt+Nsec].M != NO_MAG) {
     208            catalog[0].secfilt[n*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]);
     209        }
     210    }
    203211
    204212    /* adds the measurement to the calibration if appropriate color terms are found */
     
    240248    catalog[0].average[Nave].R         = stars[N].R;
    241249    catalog[0].average[Nave].D         = stars[N].D;
    242     catalog[0].average[Nave].M         = NO_MAG;
    243     catalog[0].average[Nave].dM        = NO_MAG;
     250    catalog[0].average[Nave].Xp        = 0;
    244251    catalog[0].average[Nave].Nm        = 1;
    245252    catalog[0].average[Nave].Nn        = 0;
    246     catalog[0].average[Nave].Xp        = NO_MAG;
    247     catalog[0].average[Nave].Xm        = NO_MAG;
    248     catalog[0].average[Nave].Xg        = NO_MAG;
    249253    catalog[0].average[Nave].offset    = Nmeas;
    250254    catalog[0].average[Nave].missing   = -1;
     
    261265
    262266    for (j = 0; j < Nsecfilt; j++) {
    263       catalog[0].secfilt[Nave*Nsecfilt+j].M_PS  = NO_MAG;
    264       catalog[0].secfilt[Nave*Nsecfilt+j].dM_PS = NO_MAG;
     267      catalog[0].secfilt[Nave*Nsecfilt+j].M  = NO_MAG;
     268      catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG;
    265269      catalog[0].secfilt[Nave*Nsecfilt+j].Xm    = NO_MAG;
    266270    }
    267271
    268     catalog[0].measure[Nmeas].dR_PS       = 0.0;
    269     catalog[0].measure[Nmeas].dD_PS       = 0.0;
    270     catalog[0].measure[Nmeas].M_PS        = stars[N].M;
    271     catalog[0].measure[Nmeas].dM_PS       = stars[N].dM;
    272     catalog[0].measure[Nmeas].Mcal_PS     = stars[N].Mcal;
    273     catalog[0].measure[Nmeas].t           = stars[N].t;
    274     catalog[0].measure[Nmeas].averef      = Nave;
    275     catalog[0].measure[Nmeas].source      = stars[N].code;  /* photcode */
    276     catalog[0].measure[Nmeas].dophot      = stars[N].dophot; 
    277     catalog[0].measure[Nmeas].flags       = 0;
    278     catalog[0].measure[Nmeas].dt_PS       = stars[N].dt;
    279     catalog[0].measure[Nmeas].airmass_PS  = stars[N].airmass;
    280 
    281     catalog[0].measure[Nmeas].Mgal_PS     = stars[N].Mgal;
    282     catalog[0].measure[Nmeas].FWx         = MIN (100*stars[N].fx, NO_MAG);
    283     catalog[0].measure[Nmeas].FWy         = MIN (100*stars[N].fy, NO_MAG);
    284     catalog[0].measure[Nmeas].theta       = MIN ((255/360)*stars[N].df, NO_ERR);
    285 
    286     Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    287     Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
    288     if (*Mval == NO_MAG) *Mval = Mcat;
     272    /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     273    /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     274    catalog[0].measure[Nmeas].Xccd     = stars[N].X;
     275    catalog[0].measure[Nmeas].Yccd     = stars[N].Y;
     276
     277    catalog[0].measure[Nmeas].dR       = 0.0;
     278    catalog[0].measure[Nmeas].dD       = 0.0;
     279    catalog[0].measure[Nmeas].M        = stars[N].M;
     280    catalog[0].measure[Nmeas].dM       = stars[N].dM;
     281    catalog[0].measure[Nmeas].Mcal     = stars[N].Mcal;
     282    catalog[0].measure[Nmeas].t        = stars[N].t;
     283    catalog[0].measure[Nmeas].averef   = Nave;
     284    catalog[0].measure[Nmeas].photcode = stars[N].code;  /* photcode */
     285    catalog[0].measure[Nmeas].dophot   = stars[N].dophot; 
     286    catalog[0].measure[Nmeas].flags    = 0;
     287    catalog[0].measure[Nmeas].dt       = stars[N].dt;
     288    catalog[0].measure[Nmeas].airmass  = stars[N].airmass;
     289
     290    catalog[0].measure[Nmeas].Mgal     = stars[N].Mgal;
     291    catalog[0].measure[Nmeas].FWx      = MIN (100*stars[N].fx, NO_MAG);
     292    catalog[0].measure[Nmeas].FWy      = MIN (100*stars[N].fy, NO_MAG);
     293    catalog[0].measure[Nmeas].theta    = MIN ((0xffff/360.0)*stars[N].df, NO_ERR);
     294
     295    /* set the average magnitude if not already set and the photcode.equiv is not 0 */
     296    /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     297    if (Nsec > -1) {
     298        catalog[0].secfilt[Nave*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]);
     299    }
    289300
    290301    /* next[Nmeas] should always be -1 in this context (it is always the only
  • trunk/Ohana/src/addstar/src/find_matches_refstars.c

    r8644 r12332  
    131131      /** add measurements for this star **/
    132132      /** *** dR,dD now in arcsec *** **/
    133       catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N][0].R);
    134       catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N][0].D);
    135       catalog[0].measure[Nmeas].M_PS        = MIN (stars[N][0].M,  NO_MAG);
    136       catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N][0].dM, NO_ERR);
    137       catalog[0].measure[Nmeas].Mcal_PS     = 0;
    138       catalog[0].measure[Nmeas].t           = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/
    139       catalog[0].measure[Nmeas].averef      = n;
    140       catalog[0].measure[Nmeas].source      = stars[N][0].code;
    141       catalog[0].measure[Nmeas].dophot      = 0;
    142       catalog[0].measure[Nmeas].flags       = 0;
    143       catalog[0].measure[Nmeas].dt_PS       = 0xffff;
    144 
    145       catalog[0].measure[Nmeas].Mgal_PS     = NO_MAG;
    146       catalog[0].measure[Nmeas].airmass_PS  = 0;
    147       catalog[0].measure[Nmeas].FWx         = NO_MAG;
    148       catalog[0].measure[Nmeas].FWy         = NO_MAG;
    149       catalog[0].measure[Nmeas].theta       = NO_ERR;
     133      catalog[0].measure[Nmeas].dR       = 3600.0*(catalog[0].average[n].R - stars[N][0].R);
     134      catalog[0].measure[Nmeas].dD       = 3600.0*(catalog[0].average[n].D - stars[N][0].D);
     135      catalog[0].measure[Nmeas].M        = MIN (stars[N][0].M,  NO_MAG);
     136      catalog[0].measure[Nmeas].dM       = MIN (stars[N][0].dM, NO_ERR);
     137      catalog[0].measure[Nmeas].Mcal     = 0;
     138      catalog[0].measure[Nmeas].t        = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/
     139      catalog[0].measure[Nmeas].averef   = n;
     140      catalog[0].measure[Nmeas].photcode = stars[N][0].code;
     141      catalog[0].measure[Nmeas].dophot   = 0;
     142      catalog[0].measure[Nmeas].flags    = 0;
     143      catalog[0].measure[Nmeas].dt       = 0xffff;
     144
     145      catalog[0].measure[Nmeas].Mgal     = NO_MAG;
     146      catalog[0].measure[Nmeas].airmass  = 0;
     147      catalog[0].measure[Nmeas].FWx      = NO_MAG;
     148      catalog[0].measure[Nmeas].FWy      = NO_MAG;
     149      catalog[0].measure[Nmeas].theta    = NO_MAG;
    150150       
     151      /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     152      /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     153      catalog[0].measure[Nmeas].Xccd     = 0.0;
     154      catalog[0].measure[Nmeas].Yccd     = 0.0;
     155
    151156      if (ACCEPT_MOTION) {
    152         catalog[0].average[n].uR          = stars[N][0].uR;
    153         catalog[0].average[n].uD          = stars[N][0].uD;
    154         catalog[0].average[n].duR         = stars[N][0].duR;
    155         catalog[0].average[n].duD         = stars[N][0].duD;
    156         catalog[0].average[n].P           = stars[N][0].P;
    157         catalog[0].average[n].dP          = stars[N][0].dP;
     157        catalog[0].average[n].uR         = stars[N][0].uR;
     158        catalog[0].average[n].uD         = stars[N][0].uD;
     159        catalog[0].average[n].duR        = stars[N][0].duR;
     160        catalog[0].average[n].duD        = stars[N][0].duD;
     161        catalog[0].average[n].P          = stars[N][0].P;
     162        catalog[0].average[n].dP         = stars[N][0].dP;
    158163      }
    159164
     
    207212    catalog[0].average[Nave].R         = stars[N][0].R;
    208213    catalog[0].average[Nave].D         = stars[N][0].D;
     214    catalog[0].average[Nave].Xp        = 0;
     215    catalog[0].average[Nave].Nm        = 1;
     216    catalog[0].average[Nave].Nn        = 0;
     217    catalog[0].average[Nave].offset    = Nmeas;
     218    catalog[0].average[Nave].missing   = -1;
     219    catalog[0].average[Nave].code      = 0;
    209220
    210221    if (ACCEPT_MOTION) {
     
    228239    }
    229240
    230     catalog[0].average[Nave].M         = NO_MAG;
    231     catalog[0].average[Nave].dM        = NO_MAG;
    232     catalog[0].average[Nave].Nm        = 1;
    233     catalog[0].average[Nave].Nn        = 0;
    234     catalog[0].average[Nave].Xp        = NO_MAG;
    235     catalog[0].average[Nave].Xm        = NO_MAG;
    236     catalog[0].average[Nave].Xg        = NO_MAG;
    237     catalog[0].average[Nave].offset    = Nmeas;
    238     catalog[0].average[Nave].missing   = -1;
    239     catalog[0].average[Nave].code      = 0;
    240 
    241241    for (j = 0; j < Nsecfilt; j++) {
    242       catalog[0].secfilt[Nave*Nsecfilt+j].M_PS  = NO_MAG;
    243       catalog[0].secfilt[Nave*Nsecfilt+j].dM_PS = NO_MAG;
    244       catalog[0].secfilt[Nave*Nsecfilt+j].Xm    = NO_MAG;
    245     }
    246 
    247     catalog[0].measure[Nmeas].dR_PS       = 0.0;
    248     catalog[0].measure[Nmeas].dD_PS       = 0.0;
    249     catalog[0].measure[Nmeas].M_PS        = MIN (stars[N][0].M,  NO_MAG);
    250     catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N][0].dM, NO_ERR);
    251     catalog[0].measure[Nmeas].Mcal_PS     = 0;
    252     catalog[0].measure[Nmeas].t           = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
    253     catalog[0].measure[Nmeas].averef      = Nave;
    254     catalog[0].measure[Nmeas].source      = stars[N][0].code;
    255     catalog[0].measure[Nmeas].dophot      = 0;
    256     catalog[0].measure[Nmeas].flags       = 0;
    257     catalog[0].measure[Nmeas].dt_PS       = 0xffff;
    258 
    259     catalog[0].measure[Nmeas].Mgal_PS     = NO_MAG;
    260     catalog[0].measure[Nmeas].airmass_PS  = 0;
    261     catalog[0].measure[Nmeas].FWx         = NO_MAG;
    262     catalog[0].measure[Nmeas].FWy         = NO_ERR;
    263     catalog[0].measure[Nmeas].theta       = NO_ERR;
     242      catalog[0].secfilt[Nave*Nsecfilt+j].M  = NO_MAG;
     243      catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG;
     244      catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG;
     245    }
     246
     247    catalog[0].measure[Nmeas].dR       = 0.0;
     248    catalog[0].measure[Nmeas].dD       = 0.0;
     249    catalog[0].measure[Nmeas].M        = MIN (stars[N][0].M,  NO_MAG);
     250    catalog[0].measure[Nmeas].dM       = MIN (stars[N][0].dM, NO_ERR);
     251    catalog[0].measure[Nmeas].Mcal     = 0;
     252    catalog[0].measure[Nmeas].t        = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
     253    catalog[0].measure[Nmeas].averef   = Nave;
     254    catalog[0].measure[Nmeas].photcode = stars[N][0].code;
     255    catalog[0].measure[Nmeas].dophot   = 0;
     256    catalog[0].measure[Nmeas].flags    = 0;
     257    catalog[0].measure[Nmeas].dt       = 0xffff;
     258
     259    catalog[0].measure[Nmeas].airmass  = 0;
     260    catalog[0].measure[Nmeas].Mgal     = NO_MAG;
     261    catalog[0].measure[Nmeas].FWx      = NO_MAG;
     262    catalog[0].measure[Nmeas].FWy      = NO_MAG;
     263    catalog[0].measure[Nmeas].theta    = NO_MAG;
     264
     265    /* XXX need to add dX, dY : need to load into stars[N].dX,dY */
     266    /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */
     267    catalog[0].measure[Nmeas].Xccd     = 0.0;
     268    catalog[0].measure[Nmeas].Yccd     = 0.0;
    264269
    265270    stars[N][0].found = Nmeas;
  • trunk/Ohana/src/addstar/src/find_proper.c

    r3339 r12332  
    111111        catalog[0].measure[Nmeas].t   = 0;    /* a flag: if 0, image is not in database */
    112112        catalog[0].measure[Nmeas].averef  = n;
    113         catalog[0].measure[Nmeas].source = USNO_RED;
     113        catalog[0].measure[Nmeas].photcode = USNO_RED;
    114114        catalog[0].measure[Nmeas+1].dR  = catalog[0].measure[Nmeas].dR;
    115115        catalog[0].measure[Nmeas+1].dD  = catalog[0].measure[Nmeas].dD;
     
    119119        catalog[0].measure[Nmeas+1].t   = 0;    /* a flag: if 0, image is not in database */
    120120        catalog[0].measure[Nmeas+1].averef  = n;
    121         catalog[0].measure[Nmeas+1].source = USNO_BLUE;
     121        catalog[0].measure[Nmeas+1].photcode = USNO_BLUE;
    122122        /* add flag in average to mark as matched with the USNO catalog */
    123123        catalog[0].average[n].code |= (ID_PROPER | ID_USNO);
  • trunk/Ohana/src/addstar/src/gstars.c

    r11584 r12332  
    77  int i, j, Nfile, Nheader, NHEADER, Nimage, NIMAGE;
    88  int Nskip, Nhead, Ndata, done, status, mode, NinStars;
    9   char **file;
     9  char **file, *name;
    1010  FILE *f;
    1111  glob_t globList;
     
    6363
    6464      ReadImageHeader (header, &image[i], photcode);
     65     
     66      /* find image rootname */
     67      name = filebasename (file[i]);
     68      snprintf (image[i].name, 32, name);
     69      free (name);
    6570   
    6671      switch (mode) {
     
    176181      }
    177182  }
     183  // some old format files did not write EXTTYPE.  they have a single table in the first
     184  // extension matched to the header in the PHU
     185  if (Nimage == 0) {
     186      extsize[0] = headers[0][0].size + gfits_matrix_size (headers[0]);
     187      extsize[1] = headers[1][0].size + gfits_matrix_size (headers[1]);
     188      gfits_scan (headers[1], "EXTNAME", "%s", 1, tmpword);
     189      if (!strcmp (tmpword, "SMPFILE")) {
     190          extdata[Nimage] = strcreate (tmpword);
     191          exttype[Nimage] = strcreate ("SMPDATA");
     192          exthead[Nimage] = strcreate ("PHU");
     193          extnum_head[Nimage] = 0;
     194          extnum_data[Nimage] = 1;
     195          Nimage = 1;
     196      }
     197  }
     198  if (Nimage == 0) Shutdown ("no object data in file");
     199   
    178200  if (VERBOSE) fprintf (stderr, "file %s has %d headers, including %d images\n", file[0], Nheader, Nimage);
     201
     202  /* find image rootname */
     203  name = filebasename (file[0]);
    179204
    180205  // now run through the images, interpret the headers and read the stars
     
    185210      ReadImageHeader (headers[Nhead], &image[i], 0);
    186211
    187       if (!strcmp(exthead[i], "PHU")) continue;
     212      // XXX use something to set the chip name? EXTNAME?
     213      if (!strcmp(exthead[i], "PHU") && (Nimage == 1)) {
     214        snprintf (image[i].name, 32, "%s", name);
     215      } else {
     216        snprintf (image[i].name, 32, "%s.%s", name, exthead[i]);
     217      }
     218
     219      // this is an error we should not encounter
     220      if (!strcmp(extdata[i], "PHU")) Shutdown ("error in data segment: PHU cannot be table");
    188221
    189222      // advance the pointer to the start of the corresponding table block
     
    199232      stars = MergeStars (stars, Nstars, inStars, image[i].nstar);
    200233  }
     234  free (name);
    201235  *Nimages = Nimage;
    202236  *images = image;
  • trunk/Ohana/src/addstar/src/load2mass_catalog.c

    r7780 r12332  
    3232
    3333    // XXX for now, set the average mag data to NULL
    34     catalog[0].average[Nave].M         = NO_MAG;
    35     catalog[0].average[Nave].dM        = NO_MAG;
    3634    catalog[0].average[Nave].Nm        = 0;
    3735    catalog[0].average[Nave].Nn        = 0;
    3836    catalog[0].average[Nave].Xp        = NO_MAG;
    39     catalog[0].average[Nave].Xm        = NO_MAG;
    40     catalog[0].average[Nave].Xg        = NO_MAG;
    4137    catalog[0].average[Nave].offset    = Nmeas;
    4238    catalog[0].average[Nave].missing   = -1;
     
    4440
    4541    for (j = 0; j < Nsec; j++) {
    46       catalog[0].secfilt[Nave*Nsec+j].M_PS  = NO_MAG;
    47       catalog[0].secfilt[Nave*Nsec+j].dM_PS = NO_MAG;
     42      catalog[0].secfilt[Nave*Nsec+j].M  = NO_MAG;
     43      catalog[0].secfilt[Nave*Nsec+j].dM = NO_MAG;
    4844      catalog[0].secfilt[Nave*Nsec+j].Xm    = NO_MAG;
    4945    }
     
    5147    // we now have the min chisq row. use this to supply the other filter values....
    5248    for (j = 0; j < 3; j++) {
    53       catalog[0].measure[Nmeas].dR_PS       = 0.0;
    54       catalog[0].measure[Nmeas].dD_PS       = 0.0;
    55       catalog[0].measure[Nmeas].M_PS        = MIN (stars[i+j].M,  NO_MAG);
    56       catalog[0].measure[Nmeas].dM_PS       = MIN (stars[i+j].dM,  NO_ERR);
    57       catalog[0].measure[Nmeas].Mcal_PS     = 0;
     49      catalog[0].measure[Nmeas].dR       = 0.0;
     50      catalog[0].measure[Nmeas].dD       = 0.0;
     51      catalog[0].measure[Nmeas].M        = MIN (stars[i+j].M,  NO_MAG);
     52      catalog[0].measure[Nmeas].dM       = MIN (stars[i+j].dM,  NO_ERR);
     53      catalog[0].measure[Nmeas].Mcal     = 0;
    5854      catalog[0].measure[Nmeas].t           = stars[i+j].t;
    5955      catalog[0].measure[Nmeas].averef      = Nave;
    60       catalog[0].measure[Nmeas].source      = stars[i+j].code;
     56      catalog[0].measure[Nmeas].photcode      = stars[i+j].code;
    6157      catalog[0].measure[Nmeas].dophot      = 0;
    6258      catalog[0].measure[Nmeas].flags       = 0;
    63       catalog[0].measure[Nmeas].dt_PS       = 0xffff;
     59      catalog[0].measure[Nmeas].dt       = 0xffff;
    6460
    65       catalog[0].measure[Nmeas].Mgal_PS     = NO_MAG;
    66       catalog[0].measure[Nmeas].airmass_PS  = 0;
     61      catalog[0].measure[Nmeas].Mgal     = NO_MAG;
     62      catalog[0].measure[Nmeas].airmass  = 0;
    6763      catalog[0].measure[Nmeas].FWx         = NO_MAG;
    6864      catalog[0].measure[Nmeas].FWy         = NO_ERR;
  • trunk/Ohana/src/addstar/src/replace_match.c

    r6683 r12332  
    77  /* search for entry and replace values M, dM, R, D */
    88  for (i = 0; i < average[0].Nm; i++) {
    9     if (measure[i].source != star[0].code) continue;
    10     measure[i].dR_PS       = 3600.0*(average[0].R - star[0].R);
    11     measure[i].dD_PS       = 3600.0*(average[0].D - star[0].D);
    12     measure[i].M_PS        = MIN (star[0].M,  NO_MAG);
    13     measure[i].dM_PS       = MIN (star[0].dM, NO_ERR);
     9    if (measure[i].photcode != star[0].code) continue;
     10    measure[i].dR       = 3600.0*(average[0].R - star[0].R);
     11    measure[i].dD       = 3600.0*(average[0].D - star[0].D);
     12    measure[i].M        = MIN (star[0].M,  NO_MAG);
     13    measure[i].dM       = MIN (star[0].dM, NO_ERR);
    1414    star[0].found          = average[0].offset + i;
    1515    return (TRUE);
  • trunk/Ohana/src/addstar/src/update_coords.c

    r6683 r12332  
    1919      continue;
    2020    }
    21     R = measure[m].dR_PS;
    22     D = measure[m].dD_PS;
     21    R = measure[m].dR;
     22    D = measure[m].dD;
    2323    r += R;
    2424    d += D;
     
    3737  m = average[0].offset;  /* first measurement of this star */
    3838  for (i = 0; i < average[0].Nm; i++) {
    39     measure[m].dR_PS -= r;
    40     measure[m].dD_PS -= d;
     39    measure[m].dR -= r;
     40    measure[m].dD -= d;
    4141    m = next[m];
    4242  }
Note: See TracChangeset for help on using the changeset viewer.