IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6683


Ignore:
Timestamp:
Mar 26, 2006, 10:46:32 AM (20 years ago)
Author:
eugene
Message:

adding proper motion and parallax to addstar, dropping _PS from RA and DEC in average

Location:
trunk/Ohana/src
Files:
2 added
50 edited

Legend:

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

    r6675 r6683  
    6969double  SNLIMIT;
    7070int     ACCEPT_ASTROM;  // accept even bad astrometry solutions (NASTRO == 0)
     71int     ACCEPT_MOTION;  // accept reference proper motion measurements
    7172int     TEXTMODE;       // force input file to be loaded as RAW
    7273int     SUBPIX;         // apply a subpix correction
     
    125126double     get_subpix             PROTO((double x, double y));
    126127Stars     *getgsc                 PROTO((SkyRegion *patch, int *NSTARS));
    127 Stars     *gettycho               PROTO((SkyRegion *catstats, int photcode, double epoch, int *Nstars));
     128Stars     *gettycho               PROTO((SkyRegion *catstats, int photcode, int *Nstars));
    128129Stars     *getusno                PROTO((SkyRegion *catstats, int photcode, int *Nstars));
    129 Stars     *getusnob               PROTO((SkyRegion *catstats, int photcode, double epoch, int *Nstars));
     130Stars     *getusnob               PROTO((SkyRegion *catstats, int photcode, int *Nstars));
    130131Image     *gimages                PROTO((FITS_DB *db, Image *image, Coords *mosaic, int *Npimage));
    131132Stars     *grefcat                PROTO((char *Refcat, SkyRegion *catstats, int photcode, int *nstars));
     
    188189
    189190/**
    190   there is an inconsistency to be resolved: fixed structures (like Image)
    191   need a fixed bit-length time (e_time), but these functions all use the
    192   UNIX time_t types, which may be 32 or 64 bits, depending on the machine.
    193   This can be resolved by using time_t with these functions, but casting
    194   between e_time and time_t when necessary (ie, cannot return data to an
    195   e_time pointer from one of these functions)
     191    there is an inconsistency to be resolved: fixed structures (like Image)
     192    need a fixed bit-length time (e_time), but these functions all use the
     193    UNIX time_t types, which may be 32 or 64 bits, depending on the machine.
     194    This can be resolved by using time_t with these functions, but casting
     195    between e_time and time_t when necessary (ie, cannot return data to an
     196    e_time pointer from one of these functions)
    196197**/
    197198
  • trunk/Ohana/src/addstar/src/addstar.c

    r6236 r6683  
    4242
    4343  switch (options.mode) {
    44   case M_IMAGE:
    45     stars = gstars (argv[1], &Nstars, options.photcode, &image);
    46     if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars);
    47     RegisterMosaic (MOSAIC);
    48     skylist = SkyListByImage (sky, -1, &image);
    49     overlap = gimages (&db, &image, MOSAIC, &Noverlap);
    50     break;
    51   case M_REFLIST:
    52     stars = grefstars (argv[1], options.photcode, &Nstars);
    53     skylist = SkyListForStars (sky, -1, stars, Nstars);
    54     break;
    55   case M_REFCAT:
    56     skylist = SkyListByPatch (sky, -1, &UserPatch);
    57     break;
     44    case M_IMAGE:
     45      stars = gstars (argv[1], &Nstars, options.photcode, &image);
     46      if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars);
     47      RegisterMosaic (MOSAIC);
     48      skylist = SkyListByImage (sky, -1, &image);
     49      overlap = gimages (&db, &image, MOSAIC, &Noverlap);
     50      break;
     51    case M_REFLIST:
     52      stars = grefstars (argv[1], options.photcode, &Nstars);
     53      skylist = SkyListForStars (sky, -1, stars, Nstars);
     54      break;
     55    case M_REFCAT:
     56      skylist = SkyListByPatch (sky, -1, &UserPatch);
     57      break;
    5858  }
    5959  if (options.only_match || options.existing_regions) {
     
    9797
    9898    switch (options.mode) {
    99     case M_IMAGE:
    100       Nsubset = Nstars;
    101       if (options.closest) {
    102         find_matches_closest (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);
    103       } else {
    104         find_matches (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);
    105       }
    106       break;
    107     case M_REFCAT:
    108       stars = grefcat (argv[1], skylist[0].regions[i], options.photcode, &Nstars);
    109     case M_REFLIST:
    110       subset = find_subset (skylist[0].regions[i], stars, Nstars, &Nsubset);
    111       find_matches_refstars (skylist[0].regions[i], subset, Nsubset, &catalog, options);
    112       if (Nsubset) free (subset);
    113       break;
     99      case M_IMAGE:
     100        Nsubset = Nstars;
     101        if (options.closest) {
     102          find_matches_closest (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);
     103        } else {
     104          find_matches (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);
     105        }
     106        break;
     107      case M_REFCAT:
     108        stars = grefcat (argv[1], skylist[0].regions[i], options.photcode, &Nstars);
     109      case M_REFLIST:
     110        subset = find_subset (skylist[0].regions[i], stars, Nstars, &Nsubset);
     111        find_matches_refstars (skylist[0].regions[i], subset, Nsubset, &catalog, options);
     112        if (Nsubset) free (subset);
     113        break;
    114114    }
    115115
  • trunk/Ohana/src/addstar/src/args.c

    r5585 r6683  
    190190  if ((N = get_argument (argc, argv, "-accept"))) {
    191191    ACCEPT_ASTROM = TRUE;
     192    remove_argument (N, &argc, argv);
     193  }
     194  if ((N = get_argument (argc, argv, "-accept-astrom"))) {
     195    ACCEPT_ASTROM = TRUE;
     196    remove_argument (N, &argc, argv);
     197  }
     198  /* accept proper-motion data from reference */
     199  ACCEPT_MOTION = FALSE;
     200  if ((N = get_argument (argc, argv, "-accept-motion"))) {
     201    ACCEPT_MOTION = TRUE;
    192202    remove_argument (N, &argc, argv);
    193203  }
     
    258268  fprintf (stderr, "  -skyprobe                   : specify skyprobe mode\n");
    259269  fprintf (stderr, "  -accept                     : accept bad astrometry from header\n");
     270  fprintf (stderr, "  -accept-astrom              : accept bad astrometry from header\n");
     271  fprintf (stderr, "  -accept-motion              : accept proper-motion data from reference\n");
    260272  fprintf (stderr, "  -force                      : force read of database with inconsistent info\n");
    261273  fprintf (stderr, "  -v                          : verbose mode\n");
  • trunk/Ohana/src/addstar/src/find_matches.c

    r5443 r6683  
    7171  /* build spatial index (RA sort) */
    7272  for (i = 0; i < Nave; i++) {
    73     fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R_PS, catalog[0].average[i].D_PS, &tcoords);
     73    fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords);
    7474    N2[i] = i;
    7575    catalog[0].found[N2[i]] = -1;
     
    138138      /** add measurements for this star **/
    139139      /** dR,dD now represent arcsec **/
    140       catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R_PS - stars[N].R);
    141       catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D_PS - stars[N].D);
     140      catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N].R);
     141      catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N].D);
    142142      catalog[0].measure[Nmeas].M_PS        = MIN (stars[N].M + MTIME, NO_MAG);
    143143      catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N].dM, NO_ERR);  /* error in input files stored in thousandths of mag */
     
    159159      /* check for entries in the secfilt lists */
    160160      Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    161       Mval = (Nsec == -1) ? &catalog[0].average[n].M_PS : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
     161      Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
    162162      if (*Mval == NO_MAG) *Mval = Mcat;
    163163      /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     
    213213
    214214      /* should the catalog star be on this image? project into image coords */
    215       if (!in_image (catalog[0].average[n].R_PS, catalog[0].average[n].D_PS, image)) continue;
     215      if (!in_image (catalog[0].average[n].R, catalog[0].average[n].D, image)) continue;
    216216      add_miss_link (&catalog[0].average[n], next_miss, Nmiss);
    217217
    218218      /* calculate time of exposure for this coordinate in the image */
    219       RD_to_XY (&X, &Y, catalog[0].average[n].R_PS, catalog[0].average[n].D_PS, &image[0].coords);       
     219      RD_to_XY (&X, &Y, catalog[0].average[n].R, catalog[0].average[n].D, &image[0].coords);     
    220220      catalog[0].missing[Nmiss].t  = image[0].tzero + 1e-4*Y*image[0].trate;  /* trate is in 0.1 msec / row */
    221221      catalog[0].average[n].Nn ++;
     
    245245    secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);
    246246
    247     catalog[0].average[Nave].R_PS      = stars[N].R;
    248     catalog[0].average[Nave].D_PS      = stars[N].D;
    249     catalog[0].average[Nave].M_PS      = NO_MAG;
    250     catalog[0].average[Nave].dM_PS     = NO_MAG;
     247    catalog[0].average[Nave].R         = stars[N].R;
     248    catalog[0].average[Nave].D         = stars[N].D;
     249    catalog[0].average[Nave].M         = NO_MAG;
     250    catalog[0].average[Nave].dM        = NO_MAG;
    251251    catalog[0].average[Nave].Nm        = 1;
    252252    catalog[0].average[Nave].Nn        = 0;
     
    257257    catalog[0].average[Nave].missing   = -1;
    258258    catalog[0].average[Nave].code      = 0;
     259
     260    catalog[0].average[Nave].dR        = 0;
     261    catalog[0].average[Nave].dD        = 0;
     262    catalog[0].average[Nave].uR        = 0;
     263    catalog[0].average[Nave].uD        = 0;
     264    catalog[0].average[Nave].duR       = 0;
     265    catalog[0].average[Nave].duD       = 0;
     266    catalog[0].average[Nave].P         = 0;
     267    catalog[0].average[Nave].dP        = 0;
    259268
    260269    for (j = 0; j < Nsecfilt; j++) {
     
    283292
    284293    Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    285     Mval = (Nsec == -1) ? &catalog[0].average[Nave].M_PS : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
     294    Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
    286295    if (*Mval == NO_MAG) *Mval = Mcat;
    287296
     
    295304      }
    296305      if (!FindMosaicForImage (overlap, Noverlap, j)) continue;
    297       if (!in_image (catalog[0].average[Nave].R_PS, catalog[0].average[Nave].D_PS, &overlap[j])) continue;
     306      if (!in_image (catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j])) continue;
    298307      add_miss_link (&catalog[0].average[Nave], next_miss, Nmiss);
    299308
    300309      /* get time of exposure of this portion of the image */
    301       RD_to_XY (&X, &Y, catalog[0].average[Nave].R_PS, catalog[0].average[Nave].D_PS, &overlap[j].coords);       
     310      RD_to_XY (&X, &Y, catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j].coords);     
    302311      catalog[0].missing[Nmiss].t  = overlap[j].tzero + 1e-4*Y*overlap[j].trate;  /* rough guess at time */
    303312      catalog[0].average[Nave].Nn ++;
  • trunk/Ohana/src/addstar/src/find_matches_closest.c

    r5443 r6683  
    7171  /* build spatial index (RA sort) */
    7272  for (i = 0; i < Nave; i++) {
    73     fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R_PS, catalog[0].average[i].D_PS, &tcoords);
     73    fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords);
    7474    N2[i] = i;
    7575    catalog[0].found[N2[i]] = -1;
     
    154154    /** add measurements for this star **/
    155155    /** dR,dD now represent arcsec **/
    156     catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R_PS - stars[N].R);
    157     catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D_PS - stars[N].D);
     156    catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N].R);
     157    catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N].D);
    158158    catalog[0].measure[Nmeas].M_PS        = MIN (stars[N].M + MTIME, NO_MAG);
    159159    catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N].dM, NO_ERR);  /* error in input files stored in thousandths of mag */
     
    175175    /* check for entries in the secfilt lists */
    176176    Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    177     Mval = (Nsec == -1) ? &catalog[0].average[n].M_PS : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
     177    Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;
    178178    if (*Mval == NO_MAG) *Mval = Mcat;
    179179    /* in UPDATE mode, this value is not saved; use relphot to recalculate */
     
    211211
    212212      /* should the catalog star be on this image? project into image coords */
    213       if (!in_image (catalog[0].average[n].R_PS, catalog[0].average[n].D_PS, image)) continue;
     213      if (!in_image (catalog[0].average[n].R, catalog[0].average[n].D, image)) continue;
    214214      add_miss_link (&catalog[0].average[n], next_miss, Nmiss);
    215215
    216216      /* calculate time of exposure for this coordinate in the image */
    217       RD_to_XY (&X, &Y, catalog[0].average[n].R_PS, catalog[0].average[n].D_PS, &image[0].coords);       
     217      RD_to_XY (&X, &Y, catalog[0].average[n].R, catalog[0].average[n].D, &image[0].coords);     
    218218      catalog[0].missing[Nmiss].t  = image[0].tzero + 1e-4*Y*image[0].trate;  /* trate is in 0.1 msec / row */
    219219      catalog[0].average[n].Nn ++;
     
    243243    secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);
    244244
    245     catalog[0].average[Nave].R_PS      = stars[N].R;
    246     catalog[0].average[Nave].D_PS      = stars[N].D;
    247     catalog[0].average[Nave].M_PS      = NO_MAG;
    248     catalog[0].average[Nave].dM_PS     = NO_MAG;
     245    catalog[0].average[Nave].R         = stars[N].R;
     246    catalog[0].average[Nave].D         = stars[N].D;
     247    catalog[0].average[Nave].M         = NO_MAG;
     248    catalog[0].average[Nave].dM        = NO_MAG;
    249249    catalog[0].average[Nave].Nm        = 1;
    250250    catalog[0].average[Nave].Nn        = 0;
     
    255255    catalog[0].average[Nave].missing   = -1;
    256256    catalog[0].average[Nave].code      = 0;
     257
     258    catalog[0].average[Nave].dR        = 0;
     259    catalog[0].average[Nave].dD        = 0;
     260    catalog[0].average[Nave].uR        = 0;
     261    catalog[0].average[Nave].uD        = 0;
     262    catalog[0].average[Nave].duR       = 0;
     263    catalog[0].average[Nave].duD       = 0;
     264    catalog[0].average[Nave].P         = 0;
     265    catalog[0].average[Nave].dP        = 0;
    257266
    258267    for (j = 0; j < Nsecfilt; j++) {
     
    281290
    282291    Mcat = PhotCat (&catalog[0].measure[Nmeas]);
    283     Mval = (Nsec == -1) ? &catalog[0].average[Nave].M_PS : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
     292    Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;
    284293    if (*Mval == NO_MAG) *Mval = Mcat;
    285294
     
    293302      }
    294303      if (!FindMosaicForImage (overlap, Noverlap, j)) continue;
    295       if (!in_image (catalog[0].average[Nave].R_PS, catalog[0].average[Nave].D_PS, &overlap[j])) continue;
     304      if (!in_image (catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j])) continue;
    296305      add_miss_link (&catalog[0].average[Nave], next_miss, Nmiss);
    297306
    298307      /* get time of exposure of this portion of the image */
    299       RD_to_XY (&X, &Y, catalog[0].average[Nave].R_PS, catalog[0].average[Nave].D_PS, &overlap[j].coords);       
     308      RD_to_XY (&X, &Y, catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j].coords);     
    300309      catalog[0].missing[Nmiss].t  = overlap[j].tzero + 1e-4*Y*overlap[j].trate;  /* rough guess at time */
    301310      catalog[0].average[Nave].Nn ++;
  • trunk/Ohana/src/addstar/src/find_matches_refstars.c

    r5443 r6683  
    6262 
    6363  for (i = 0; i < Nave; i++) {
    64     fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R_PS, catalog[0].average[i].D_PS, &tcoords);
     64    fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords);
    6565    N2[i] = i;
    6666    catalog[0].found[N2[i]] = -1;
     
    128128      /** add measurements for this star **/
    129129      /** *** dR,dD now in arcsec *** **/
    130       catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R_PS - stars[N][0].R);
    131       catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D_PS - stars[N][0].D);
     130      catalog[0].measure[Nmeas].dR_PS       = 3600.0*(catalog[0].average[n].R - stars[N][0].R);
     131      catalog[0].measure[Nmeas].dD_PS       = 3600.0*(catalog[0].average[n].D - stars[N][0].D);
    132132      catalog[0].measure[Nmeas].M_PS        = MIN (stars[N][0].M,  NO_MAG);
    133133      catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N][0].dM, NO_ERR);
    134134      catalog[0].measure[Nmeas].Mcal_PS     = 0;
    135       catalog[0].measure[Nmeas].t        = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/
    136       catalog[0].measure[Nmeas].averef   = n;
    137       catalog[0].measure[Nmeas].source   = stars[N][0].code;
    138       catalog[0].measure[Nmeas].dophot   = 0;
    139       catalog[0].measure[Nmeas].flags    = 0;
    140       catalog[0].measure[Nmeas].dt_PS    = 0xffff;
     135      catalog[0].measure[Nmeas].t           = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/
     136      catalog[0].measure[Nmeas].averef      = n;
     137      catalog[0].measure[Nmeas].source      = stars[N][0].code;
     138      catalog[0].measure[Nmeas].dophot      = 0;
     139      catalog[0].measure[Nmeas].flags       = 0;
     140      catalog[0].measure[Nmeas].dt_PS       = 0xffff;
    141141
    142142      catalog[0].measure[Nmeas].Mgal_PS     = NO_MAG;
     
    146146      catalog[0].measure[Nmeas].theta       = NO_ERR;
    147147       
     148      if (ACCEPT_MOTION) {
     149        catalog[0].average[n].uR          = stars[N][0].uR;
     150        catalog[0].average[n].uD          = stars[N][0].uD;
     151        catalog[0].average[n].duR         = stars[N][0].duR;
     152        catalog[0].average[n].duD         = stars[N][0].duD;
     153        catalog[0].average[n].P           = stars[N][0].P;
     154        catalog[0].average[n].dP          = stars[N][0].dP;
     155      }
     156
    148157      /** don't update average / secfilt values for REF photcodes **/
    149158
     
    193202    if (stars[N][0].found >= 0) continue;
    194203
    195     catalog[0].average[Nave].R_PS         = stars[N][0].R;
    196     catalog[0].average[Nave].D_PS         = stars[N][0].D;
    197     catalog[0].average[Nave].M_PS         = NO_MAG;
    198     catalog[0].average[Nave].dM_PS        = NO_MAG;
     204    catalog[0].average[Nave].R         = stars[N][0].R;
     205    catalog[0].average[Nave].D         = stars[N][0].D;
     206
     207    if (ACCEPT_MOTION) {
     208      catalog[0].average[Nave].dR    = stars[N][0].dR;
     209      catalog[0].average[Nave].dD    = stars[N][0].dD;
     210      catalog[0].average[Nave].uR    = stars[N][0].uR;
     211      catalog[0].average[Nave].uD    = stars[N][0].uD;
     212      catalog[0].average[Nave].duR   = stars[N][0].duR;
     213      catalog[0].average[Nave].duD   = stars[N][0].duD;
     214      catalog[0].average[Nave].P     = stars[N][0].P;
     215      catalog[0].average[Nave].dP    = stars[N][0].dP;
     216    } else {
     217      catalog[0].average[Nave].dR    = 0;
     218      catalog[0].average[Nave].dD    = 0;
     219      catalog[0].average[Nave].uR    = 0;
     220      catalog[0].average[Nave].uD    = 0;
     221      catalog[0].average[Nave].duR   = 0;
     222      catalog[0].average[Nave].duD   = 0;
     223      catalog[0].average[Nave].P     = 0;
     224      catalog[0].average[Nave].dP    = 0;
     225    }
     226
     227    catalog[0].average[Nave].M         = NO_MAG;
     228    catalog[0].average[Nave].dM        = NO_MAG;
    199229    catalog[0].average[Nave].Nm        = 1;
    200230    catalog[0].average[Nave].Nn        = 0;
     
    217247    catalog[0].measure[Nmeas].dM_PS       = MIN (stars[N][0].dM, NO_ERR);
    218248    catalog[0].measure[Nmeas].Mcal_PS     = 0;
    219     catalog[0].measure[Nmeas].t        = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
    220     catalog[0].measure[Nmeas].averef   = Nave;
    221     catalog[0].measure[Nmeas].source   = stars[N][0].code;
    222     catalog[0].measure[Nmeas].dophot   = 0;
    223     catalog[0].measure[Nmeas].flags    = 0;
     249    catalog[0].measure[Nmeas].t           = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
     250    catalog[0].measure[Nmeas].averef      = Nave;
     251    catalog[0].measure[Nmeas].source      = stars[N][0].code;
     252    catalog[0].measure[Nmeas].dophot      = 0;
     253    catalog[0].measure[Nmeas].flags       = 0;
    224254    catalog[0].measure[Nmeas].dt_PS       = 0xffff;
    225255
  • trunk/Ohana/src/addstar/src/gettycho.c

    r6675 r6683  
    66static SkyTable *tychoTable = NULL;
    77
    8 Stars *gettycho (SkyRegion *catstats, int photcode, double epoch, int *nstars) {
     8Stars *gettycho (SkyRegion *catstats, int photcode, int *nstars) {
    99
    1010  int i, j, nitems;
     
    1414  int NTYCHO, Ntycho;
    1515  int firstRow, firstByte;
    16   Stars *stars;
    1716  short int TYCHO_B, TYCHO_V;
     17  e_time TychoEpoch;
    1818  SkyRegion *region;
    1919  SkyList  *skylist;
     20  Stars *stars;
    2021
    2122  /* require photcode */
     
    4748
    4849  ALLOCATE (buffer, char, NITEM*NBYTE);
     50
     51  TychoEpoch = date_to_sec ("1991/04/02,07:30:00");
    4952
    5053  for (i = 0; i < skylist[0].Nregions; i++) {
     
    8083        if (stars[Ntycho].D > UserPatch.Dmax) continue;
    8184
    82         stars[Ntycho].t     = 0;
     85        stars[Ntycho].dR  = 1000 * atof (&line[57]);
     86        stars[Ntycho].dD  = 1000 * atof (&line[64]);
     87
     88        /* XXX : we need to apply uR,uD to R,D to advance to 2000.0 */
     89        stars[Ntycho].uR  = atof (&line[41]);
     90        stars[Ntycho].uD  = atof (&line[49]);
     91
     92        stars[Ntycho].duR = atof (&line[69]);
     93        stars[Ntycho].duD = atof (&line[75]);
     94       
     95        stars[Ntycho].P   = 0;
     96        stars[Ntycho].dP  = 0;
     97
     98        /* Tycho uses J2000 equinox and 1991.25 epoch for coordinates */
     99        /* the magnitudes have no temporal information */
     100        stars[Ntycho].t   = TychoEpoch;
    83101        stars[Ntycho].found = -1;
    84102     
  • trunk/Ohana/src/addstar/src/getusnob.c

    r6675 r6683  
    44# define NELEM  20
    55
    6 Stars *getusnob (SkyRegion *catstats, int photcode, double epoch, int *nstars) {
     6Stars *getusnob (SkyRegion *catstats, int photcode, int *nstars) {
    77
    88  long int offset;
     
    1313  FILE *f;
    1414  double dec;
    15   double uR, uD;
    1615  float m1, m2, mag;
    1716  int iDEC0, iDEC1, iRA0, iRA1;
    1817  int spd, spd_start, spd_end;
    1918  int NUSNO, Nusno, Nstars;
     19  short int USNO_RED, USNO_BLUE;
     20  e_time USNOepoch;
    2021  Stars *stars;
    21   short int USNO_RED, USNO_BLUE;
    2222
    2323  /* require photcode */
     
    110110    }
    111111
     112    USNOepoch = date_to_sec ("2000/01/01,00:00:00");
     113
    112114    buf = buffer;
    113115    /* print out data from slice within RA and DEC range */
     
    118120      if (buf[1] > iDEC1) continue;
    119121     
     122      /* USNO coords are reported for J2000 / epoch 2000.0 */
    120123      /* extract the basic stellar data */
    121124      bzero (&stars[Nusno], sizeof(Stars));
    122       stars[Nusno].R = buf[0]/360000.0;
    123       stars[Nusno].D = buf[1]/360000.0 - 90.0;
    124       stars[Nusno].dM    = NO_ERR;
    125       stars[Nusno].t     = 0;
     125      stars[Nusno].R   = buf[0]/360000.0;
     126      stars[Nusno].D   = buf[1]/360000.0 - 90.0;
     127
     128      /* XXX uR cos(D) or just uR ??? */
     129      stars[Nusno].uR  = 2.0 * ((buf[2]       % 10000) - 5000);
     130      stars[Nusno].uD  = 2.0 * ((buf[2]/10000 % 10000) - 5000);
     131
     132      stars[Nusno].duR = (buf[3]      % 1000);
     133      stars[Nusno].duD = (buf[3]/1000 % 1000);
     134
     135      stars[Nusno].dR  = 0.001 * (buf[4]      % 1000);
     136      stars[Nusno].dD  = 0.001 * (buf[4]/1000 % 1000);
     137
     138      stars[Nusno].P   = 0;
     139      stars[Nusno].dP  = 0;
     140
     141      /* USNO magnitude errors are reported as a fixed 0.3 mag */
     142      stars[Nusno].dM    = 0.3;
    126143      stars[Nusno].found = -1;
    127144     
     145      /* USNO-B uses J2000 equinox and 2000.0 epoch for coordinates */
     146      /* the magnitudes have no temporal information */
     147      stars[Nusno].t     = USNOepoch;
     148
    128149      /* one pass of addstar does either r or b */
    129       if (photcode == USNO_RED) {
    130         m1 = fabs(0.01 * (buf[7] % 10000)); /* 1st red mag */
     150      if (photcode == USNO_BLUE) {
     151        m1 = fabs(0.01 * (buf[5] % 10000)); /* 1st blue mag */
     152        m2 = fabs(0.01 * (buf[7] % 10000)); /* 1st blue mag */
     153        stars[Nusno].code  = USNO_BLUE;
     154      } else {
     155        m1 = fabs(0.01 * (buf[6] % 10000)); /* 1st red mag */
    131156        m2 = fabs(0.01 * (buf[8] % 10000)); /* 2nd red mag */
    132157        stars[Nusno].code  = USNO_RED;
    133       } else {
    134         m1 = fabs(0.01 * (buf[5] % 10000)); /* 1st blue mag */
    135         m2 = fabs(0.01 * (buf[6] % 10000)); /* 1st blue mag */
    136         stars[Nusno].code  = USNO_BLUE;
    137158      }
    138159
     
    143164        mag = (m1) ? m1 : m2;
    144165      }
     166      stars[Nusno].M = (mag == 0.0) ? 32.0 : mag;
    145167
    146       uR = (buf[2] % 10000);
    147       uR = (uR - 5000.0) * 0.002 / 3600.0;
    148       uD = ((buf[2] / 10000) % 10000);
    149       uD = (uD - 5000.0) * 0.002 / 3600.0;
    150 
    151       /* need to carry the proper motions */
    152       stars[Nusno].M = (mag == 0.0) ? 32.0 : mag;
    153       stars[Nusno].R += uR*(epoch - 2000.0);
    154       stars[Nusno].D += uD*(epoch - 2000.0);
    155168      Nusno ++;
    156169      CHECK_REALLOCATE (stars, Stars, NUSNO, Nusno, 5000);
  • trunk/Ohana/src/addstar/src/greference.c

    r6675 r6683  
    2121  /* get stars from the USNO B catalog for the given region */
    2222  if (!strcasecmp (Refcat, "USNOB")) {
    23     stars = getusnob (region, photcode, 2000.0, &Nstars);
     23    stars = getusnob (region, photcode, &Nstars);
    2424  }
    2525
    2626  /* get stars from the USNO B catalog for the given region */
    2727  if (!strcasecmp (Refcat, "TYCHO")) {
    28     stars = gettycho (region, photcode, 2000.0, &Nstars);
     28    stars = gettycho (region, photcode, &Nstars);
    2929  }
    3030
  • trunk/Ohana/src/addstar/src/replace_match.c

    r5328 r6683  
    88  for (i = 0; i < average[0].Nm; i++) {
    99    if (measure[i].source != star[0].code) continue;
    10     measure[i].dR_PS       = 3600.0*(average[0].R_PS - star[0].R);
    11     measure[i].dD_PS       = 3600.0*(average[0].D_PS - star[0].D);
     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);
    1212    measure[i].M_PS        = MIN (star[0].M,  NO_MAG);
    1313    measure[i].dM_PS       = MIN (star[0].dM, NO_ERR);
  • trunk/Ohana/src/addstar/src/update_coords.c

    r5239 r6683  
    3333  r = r / Npt;  /* these are corrections in 1/100 arcsec to RA and DEC */
    3434  d = d / Npt;
    35   average[0].R_PS -= r / 3600.0;
    36   average[0].D_PS -= d / 3600.0;
     35  average[0].R -= r / 3600.0;
     36  average[0].D -= d / 3600.0;
    3737  m = average[0].offset;  /* first measurement of this star */
    3838  for (i = 0; i < average[0].Nm; i++) {
  • trunk/Ohana/src/gastro/src/gptolemy.c

    r5320 r6683  
    1616  catalog.filename = filename;
    1717  switch (lock_catalog (&catalog, LCK_SOFT)) {
    18   case 0:
    19   case 2:
    20     fprintf (stderr, "can't load catalog data\n");
    21     return (FALSE);
    22   case 1:
    23     break;
     18    case 0:
     19    case 2:
     20      fprintf (stderr, "can't load catalog data\n");
     21      return (FALSE);
     22    case 1:
     23      break;
    2424  }
    2525
     
    4444  /* select all entries, ignore magnitudes */
    4545  for (i = 0; i < catalog.Naverage; i++, nstar++) {
    46     stars[0][nstar].X = catalog.average[i].R_PS;
    47     stars[0][nstar].Y = catalog.average[i].D_PS;
     46    stars[0][nstar].X = catalog.average[i].R;
     47    stars[0][nstar].Y = catalog.average[i].D;
    4848    stars[0][nstar].mag = catalog.measure[catalog.average[i].offset].M_PS;
    4949  }
     
    5252# if (0) 
    5353  for (i = 0; i < catalog.Naverage; i++, nstar++) {
    54     stars[0][nstar].X = catalog.average[i].R_PS;
    55     stars[0][nstar].Y = catalog.average[i].D_PS;
     54    stars[0][nstar].X = catalog.average[i].R;
     55    stars[0][nstar].Y = catalog.average[i].D;
    5656    GotIt = FALSE;
    57     if (catalog.average[i].M_PS != NO_MAG) {
    58       stars[0][nstar].mag = catalog.average[i].M_PS;
     57    if (catalog.average[i].M != NO_MAG) {
     58      stars[0][nstar].mag = catalog.average[i].M;
    5959      GotIt = TRUE;
    6060    }
  • trunk/Ohana/src/gastro2/src/gptolemy2.c

    r5320 r6683  
    1818  catalog.filename = filename;
    1919  switch (lock_catalog (&catalog, LCK_SOFT)) {
    20   case 0:
    21   case 2:
    22     fprintf (stderr, "can't lock catalog data %s\n", filename);
    23     return ((GSCdata *)NULL);
    24   case 1:
    25     break;
     20    case 0:
     21    case 2:
     22      fprintf (stderr, "can't lock catalog data %s\n", filename);
     23      return ((GSCdata *)NULL);
     24    case 1:
     25      break;
    2626  }
    2727
     
    4242  /* select all entries, ignore magnitudes */
    4343  for (i = 0; i < catalog.Naverage; i++, nstar++) {
    44     stars[nstar].R = catalog.average[i].R_PS;
    45     stars[nstar].D = catalog.average[i].D_PS;
     44    stars[nstar].R = catalog.average[i].R;
     45    stars[nstar].D = catalog.average[i].D;
    4646    stars[nstar].M = catalog.measure[catalog.average[i].offset].M_PS;
    4747  }
  • trunk/Ohana/src/libautocode/Makefile

    r6454 r6683  
    2929$(SRC)/average-elixir.$(ARCH).o \
    3030$(SRC)/average-panstarrs.$(ARCH).o \
     31$(SRC)/average-pmtest.$(ARCH).o \
    3132$(SRC)/secfilt.$(ARCH).o \
    3233$(SRC)/secfilt-loneos.$(ARCH).o \
     
    6162$(INC)/average-elixir.h \
    6263$(INC)/average-panstarrs.h \
     64$(INC)/average-pmtest.h \
    6365$(INC)/secfilt.h \
    6466$(INC)/secfilt-loneos.h \
  • trunk/Ohana/src/libautocode/def/Stars.d

    r6678 r6683  
    22EXTNAME STARS
    33TYPE    BINTABLE
    4 SIZE    128
     4SIZE    176
    55
    6 FIELD     X,                X,                    double,         x coordinate on image
    7 FIELD     Y,                Y,                    double,         y coordinate on image
    8 FIELD     R,                R,                    double,         ra coordinate on sky
    9 FIELD     D,                D,                    double,         dec coordinate on sky
    10 FIELD     uR,               uR,                   double,         proper motion in RA
    11 FIELD     uD,               uD,                   double,         proper motion in DEC
    12 FIELD     M,                M,                    double,         instrumental mag
    13 FIELD     dM,               DM,                   double,         error on mag
    14 FIELD     sky,              SKY,                  double,         local sky counts
    15 FIELD     fx,               FX,                   double,         object FWHM x-dir
    16 FIELD     fy,               FY,                   double,         object FWHM y-dir
    17 FIELD     df,               DF,                   double,         object position angle
    18 FIELD     Mgal,             MGAL,                 double,         alternative (galaxy) magnitude
    19 FIELD     Map,              MAP,                  double,         alternative (aperture) magnitude
    20 FIELD     found,            FOUND,                int,            found in database catalog?
    21 FIELD     t,                T,                    e_time,         date/time of exposure (UNIX)
    22 FIELD     code,             CODE,                 short,          .
    23 FIELD     dophot,           DOPHOT,               char,           dophot type code
    24 FIELD     dummy,            DUMMY,                char[5],        .
     6FIELD     X,                X,          double,    x coordinate on image,            pixels
     7FIELD     Y,                Y,          double,    y coordinate on image,            pixels
     8FIELD     R,                R,          double,    ra coordinate on sky,             decimal degrees
     9FIELD     D,                D,          double,    dec coordinate on sky,            decimal degrees
     10FIELD     dR,               dR,         double,    ra error,                         arcsec
     11FIELD     dD,               dD,         double,    dec error,                        arcsec
     12FIELD     uR,               U_RA,       double,    proper motion in RA,              milliarcsec/year
     13FIELD     uD,               U_DEC,      double,    proper motion in DEC,             milliarcsec/year
     14FIELD     duR,              U_RA_ERR,   double,    p-m error in RA,                  milliarcsec/year
     15FIELD     duD,              U_DEC_ERR,  double,    p-m error in DEC,                 milliarcsec/year
     16FIELD     P,                PAR,        double,    parallax,                         milliarcsec
     17FIELD     dP,               PAR_ERR,    double,    parallax error,                   milliarcsec
     18FIELD     M,                M,          double,    instrumental mag
     19FIELD     dM,               DM,         double,    error on mag
     20FIELD     sky,              SKY,        double,    local sky counts
     21FIELD     fx,               FX,         double,    object FWHM x-dir,                pixels?
     22FIELD     fy,               FY,         double,    object FWHM y-dir,                pixels?
     23FIELD     df,               DF,         double,    object position angle,            degrees
     24FIELD     Mgal,             MGAL,       double,    alternative (galaxy) magnitude
     25FIELD     Map,              MAP,        double,    alternative (aperture) magnitude
     26FIELD     found,            FOUND,      int,       found in database catalog?
     27FIELD     t,                T,          e_time,    date/time of exposure (UNIX)
     28FIELD     code,             CODE,       short,     .
     29FIELD     dophot,           DOPHOT,     char,      dophot type code
     30FIELD     dummy,            DUMMY,      char[5],   .
     31
     32# this structure is only used internally and for interprocess communication (addstar)
     33# dR, uR, etc should be better defined at the pole...
     34# define down the types to floats where reasonable (all but R,D)?
     35# R,D should be in ICRS, J2000, epoch 2000 : precess as needed, apply p-m as needed
  • trunk/Ohana/src/libautocode/def/average-panstarrs.d

    r5014 r6683  
    1818FIELD offset,         offset,     int,              offset to first measurement
    1919FIELD missing,        missing,    int,              offset to first missing obs
    20 FIELD dummy,          dummmy,     int,              extra space
     20FIELD dummy,          dummy,      int,              extra space
     21
     22# change this table eventually to a temp name and provide a script to fix existing DBs
  • trunk/Ohana/src/libautocode/def/average.d

    r6454 r6683  
    22EXTNAME      DVO_AVERAGE
    33TYPE         BINTABLE
    4 SIZE         44
     4SIZE         76
    55DESCRIPTION  DVO Average Object Table
    66
    77# elements of data structure / FITS table
    88
    9 FIELD R_PS,           RA,         double,           RA,                           decimal degrees
    10 FIELD D_PS,           DEC,        double,           DEC,                          decimal degrees
    11 FIELD M_PS,           MAG,        float,            primary mag,                  mag
    12 FIELD dM_PS,          MAG_ERR,    float,            error on primary mag,         mag
     9FIELD R,              RA,         double,           RA,                           decimal degrees
     10FIELD D,              DEC,        double,           DEC,                          decimal degrees
     11FIELD dR,             RA_ERR,     float,            RA error                      arcsec
     12FIELD dD,             DEC_ERR,    float,            DEC error                     arcsec
     13
     14FIELD uR,             U_RA,       float,            RA*cos(D) proper-motion,      arcsec/year
     15FIELD uD,             U_DEC,      float,            DEC proper-motion,            arcsec/year
     16FIELD duR,            V_RA_ERR,   float,            RA*cos(D) p-m error,          arcsec/year
     17FIELD duD,            V_DEC_ERR,  float,            DEC p-m error,                arcsec/year
     18FIELD P,              PAR,        float,            parallax,                     arcsec
     19FIELD dP,             PAR_ERR,    float,            parallax error,               arcsec
     20
     21FIELD M,              MAG,        float,            primary mag,                  mag
     22FIELD dM,             MAG_ERR,    float,            error on primary mag,         mag
    1323FIELD Xp,             SIGMA_POS,  short,            position scatter,             1/100 arcsec
    1424FIELD Xm,             CHISQ_MAG,  short,            chisq for primary mag,        [100*log(value)]
     
    2030FIELD missing,        missing,    int,              offset to first missing obs
    2131
    22 #
    23 # V_RA,   float,            proper-motion (arcsec/year),
    24 # V_DEC   float,            proper-motion (arcsec/year),
    25 # PAR     float             parallax (arcseconds)
    26 # D_V_RA  float,            proper-motion error (arcsec/year),
    27 # D_V_DEC float,            proper-motion error (arcsec/year),
    28 # D_PAR   float             parallax error (arcseconds)
     32# this structure should only be used for internal representations
     33# the average-FORMAT structures should be used for external representations
  • trunk/Ohana/src/libdvo/Makefile

    r5441 r6683  
    4141$(SRC)/dvo_convert_loneos.$(ARCH).o    \
    4242$(SRC)/dvo_convert_panstarrs.$(ARCH).o \
     43$(SRC)/dvo_convert_pmtest.$(ARCH).o \
    4344$(SRC)/skyregion_io.$(ARCH).o    \
    4445$(SRC)/skyregion_gsc.$(ARCH).o    \
     
    5152$(ASRC)/average-elixir.$(ARCH).o \
    5253$(ASRC)/average-panstarrs.$(ARCH).o \
     54$(ASRC)/average-pmtest.$(ARCH).o \
    5355$(ASRC)/secfilt.$(ARCH).o \
    5456$(ASRC)/secfilt-loneos.$(ARCH).o \
  • trunk/Ohana/src/libdvo/include/dvo.h

    r6643 r6683  
    66# define DVO_H
    77
    8 # define ELIXIR 1
    9 # define PANSTARRS 0
    10 # define LONEOS 0
     8/*
     9  # define ELIXIR 1
     10  # define PANSTARRS 0
     11  # define LONEOS 0
     12*/
    1113
    1214/*** named data values (convert all to enums?) ***/
     
    1618
    1719/* DVO table formats */
    18 enum {DVO_FORMAT_UNDEF, DVO_FORMAT_INTERNAL, DVO_FORMAT_ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS} DVOTableFormat;
     20enum {DVO_FORMAT_UNDEF, DVO_FORMAT_INTERNAL, DVO_FORMAT_ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS, DVO_FORMAT_PMTEST} DVOTableFormat;
    1921
    2022/* image data modes in RegImage */
     
    6365/* some subtle distinctions between the blend flags:
    6466   BLEND_IMAGE: the star on an image is matched with more
    65       than one star in the catalog (image has worse seeing than catalog)
     67   than one star in the catalog (image has worse seeing than catalog)
    6668   BLEND_CATALOG: the star in the catalog is matched with more
    67       than one star on the image (image has better seeing than catalog)
     69   than one star on the image (image has better seeing than catalog)
    6870   CALIBRATED: relative photometry has been performed on this measurement
    6971   BLEND_IMAGE_NEIGHBOR: the star on an image is matched with more
    70       than one star in the catalog, but not in the same catalog file.
     72   than one star in the catalog, but not in the same catalog file.
    7173*/
    7274
     
    285287Average *AverageElixirToInternal (AverageElixir *in, int Nvalues);
    286288Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues);
     289Average *AveragePMtestToInternal (AveragePMtest *in, int Nvalues);
    287290AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues);
    288291AverageElixir *AverageInternalToElixir (Average *in, int Nvalues);
    289292AveragePanstarrs *AverageInternalToPanstarrs (Average *in, int Nvalues);
     293AveragePMtest *AverageInternalToPMtest (Average *in, int Nvalues);
    290294
    291295Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, int *format);
  • trunk/Ohana/src/libdvo/src/LoadPhotcodes.c

    r5241 r6683  
    630630    Ns2 = photcodes[0].hashNsec[code[0].c2];
    631631 
    632     m1 = (Ns1 == -1) ? average[0].M_PS : secfilt[Ns1].M_PS;
    633     m2 = (Ns2 == -1) ? average[0].M_PS : secfilt[Ns2].M_PS;
     632    m1 = (Ns1 == -1) ? average[0].M : secfilt[Ns1].M_PS;
     633    m2 = (Ns2 == -1) ? average[0].M : secfilt[Ns2].M_PS;
    634634    mc = ((m1 == NO_MAG_PS) || (m2 == NO_MAG_PS)) ? NO_MAG_PS : (m1 - m2);
    635635    return (mc);
     
    647647  } else {
    648648    Ns = photcodes[0].hashNsec[color[0].code];
    649     m1 = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     649    m1 = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    650650  }     
    651651
     
    661661  } else {
    662662    Ns = photcodes[0].hashNsec[color[0].code];
    663     m2 = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     663    m2 = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    664664  }     
    665665  mc = ((m1 == NO_MAG_PS) || (m2 == NO_MAG_PS)) ? NO_MAG_PS : (m1 - m2);
     
    675675
    676676  Ns = photcodes[0].hashNsec[code[0].code];
    677   Mave = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     677  Mave = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    678678  Mref = Mave + F_PS*code[0].C;
    679679
     
    699699
    700700  Ns = photcodes[0].hashNsec[code[0].code];
    701   Mave = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     701  Mave = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    702702  return (Mave);
    703703}
     
    710710
    711711  Ns = photcodes[0].hashNsec[code[0].code];
    712   dM  = (Ns == -1) ? average[0].dM_PS : secfilt[Ns].dM_PS;
     712  dM  = (Ns == -1) ? average[0].dM : secfilt[Ns].dM_PS;
    713713  return (dM);
    714714}
     
    746746  } else {
    747747    Ns = photcodes[0].hashNsec[code[0].code];
    748     M1 = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     748    M1 = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    749749  }     
    750750
    751  filter1:
     751filter1:
    752752  code = GetPhotcodebyCode (c2);
    753753  if (code == NULL) return (FALSE);
     
    762762  } else {
    763763    Ns = photcodes[0].hashNsec[code[0].code];
    764     M2 = (Ns == -1) ? average[0].M_PS : secfilt[Ns].M_PS;
     764    M2 = (Ns == -1) ? average[0].M : secfilt[Ns].M_PS;
    765765  }     
    766766 
    767  filter2:
     767filter2:
    768768
    769769  dM = M1 - M2;
     
    776776
    777777# code name     type  zero  airmass  offset  c1 c2  slope  <color>  primary
    778   1    B        pri   24.0  0.15     -       -  -   -      -        -
    779   2    B        pri   24.0  0.15     -       -  -   -      -        -
    780   3    B1       sec   22.5  0.18     0.15    1  2   0.10   0.50     1
    781   1000 USNO_B   ref   -     -        -       -  -   -      -        -
     7781    B        pri   24.0  0.15     -       -  -   -      -        -
     7792    B        pri   24.0  0.15     -       -  -   -      -        -
     7803    B1       sec   22.5  0.18     0.15    1  2   0.10   0.50     1
     7811000 USNO_B   ref   -     -        -       -  -   -      -        -
    782782
    783783*/
  • trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c

    r5320 r6683  
    3232    if (!strcmp (format, "ELIXIR")) catalog[0].catformat = DVO_FORMAT_ELIXIR;
    3333    if (!strcmp (format, "PANSTARRS")) catalog[0].catformat = DVO_FORMAT_PANSTARRS;
     34    if (!strcmp (format, "PMTEST")) catalog[0].catformat = DVO_FORMAT_PMTEST;
    3435    if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format;
    3536  }
     
    7172    case DVO_FORMAT_PANSTARRS:
    7273      AverageSize = sizeof(AveragePanstarrs);
     74      MeasureSize = sizeof(MeasurePanstarrs);
     75      SecFiltSize = sizeof (SecFiltPanstarrs);
     76      break;
     77    case DVO_FORMAT_PMTEST:
     78      AverageSize = sizeof(AveragePMtest);
    7379      MeasureSize = sizeof(MeasurePanstarrs);
    7480      SecFiltSize = sizeof (SecFiltPanstarrs);
     
    157163
    158164  if (VERBOSE) fprintf (stderr, "read %d stars from catalog file %s (%d measurements, %d missing, %d secondary filters)\n",
    159            catalog[0].Naverage, catalog[0].filename, catalog[0].Nmeasure, catalog[0].Nmissing, catalog[0].Nsecfilt);
     165                        catalog[0].Naverage, catalog[0].filename, catalog[0].Nmeasure, catalog[0].Nmissing, catalog[0].Nsecfilt);
    160166
    161167  /* check data integrity */
     
    198204  if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
    199205  if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
     206  if (catalog[0].catformat == DVO_FORMAT_PMTEST)    fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
    200207
    201208  /* rewind file pointers and truncate file */
     
    243250  AverageLoneos *tmpAverageLoneos;
    244251  AveragePanstarrs *tmpAveragePanstarrs;
     252  AveragePMtest *tmpAveragePMtest;
    245253
    246254  switch (format) {
     
    287295      free (tmpAveragePanstarrs);
    288296      break;
     297    case DVO_FORMAT_PMTEST:
     298      ALLOCATE (tmpAveragePMtest, AveragePMtest, MAX (Naverage, 1));
     299      nitems = fread (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
     300      if (nitems != Naverage) {
     301        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
     302        return (NULL);
     303      }
     304      fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
     305      average = AveragePMtestToInternal (tmpAveragePMtest, Naverage);
     306      free (tmpAveragePMtest);
     307      break;
    289308    default:
    290309      fprintf (stderr, "error reading measures\n");
     
    302321  AverageLoneos *tmpAverageLoneos;
    303322  AveragePanstarrs *tmpAveragePanstarrs;
     323  AveragePMtest *tmpAveragePMtest;
    304324
    305325  switch (format) {
     
    342362      }
    343363      break;
     364    case DVO_FORMAT_PMTEST:
     365      tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
     366      fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
     367      nitems = fwrite (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
     368      free (tmpAveragePMtest);
     369      if (nitems != Naverage) {
     370        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
     371        return (FALSE);
     372      }
     373      break;
    344374    default:
    345375      fprintf (stderr, "error writing averages\n");
     
    392422      break;
    393423    case DVO_FORMAT_PANSTARRS:
     424    case DVO_FORMAT_PMTEST:
    394425      ALLOCATE (tmpMeasurePanstarrs, MeasurePanstarrs, MAX (Nmeasure, 1));
    395426      nitems = fread (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f);
     
    448479      break;
    449480    case DVO_FORMAT_PANSTARRS:
     481    case DVO_FORMAT_PMTEST:
    450482      tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
    451483      fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
     
    507539      break;
    508540    case DVO_FORMAT_PANSTARRS:
     541    case DVO_FORMAT_PMTEST:
    509542      ALLOCATE (tmpSecFiltPanstarrs, SecFiltPanstarrs, MAX (Nsecfilt, 1));
    510543      nitems = fread (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f);
     
    563596      break;
    564597    case DVO_FORMAT_PANSTARRS:
     598    case DVO_FORMAT_PMTEST:
    565599      tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
    566600      fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
  • trunk/Ohana/src/libdvo/src/dvo_convert.c

    r5241 r6683  
    66   The TYPE-Ftable conversions functions create output tables in the format requested
    77   by the 'format' function parameter.
    8  */
     8*/
    99
    1010/** this file might be more readable if I use macros for the repetative
     
    5252    return (average);
    5353  }
     54  if (!strcmp (extname, "DVO_AVERAGE_PMTEST")) {
     55    AveragePMtest *tmpAverage;
     56    tmpAverage = fits_table_get_AveragePMtest (ftable, Naverage, NULL);
     57    average = AveragePMtestToInternal (tmpAverage, *Naverage);
     58    free (tmpAverage);
     59    *format = DVO_FORMAT_PMTEST;
     60    return (average);
     61  }
    5462
    5563  fprintf (stderr, "table format unknown: %s\n", extname);
     
    6472  AverageLoneos *tmpAverageLoneos ;
    6573  AveragePanstarrs *tmpAveragePanstarrs;
     74  AveragePMtest *tmpAveragePMtest;
    6675
    6776  /* convert from the internal format */
     
    8493      fits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);
    8594      free (tmpAveragePanstarrs);
     95      break;
     96    case DVO_FORMAT_PMTEST:
     97      tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
     98      fits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);
     99      free (tmpAveragePMtest);
    86100      break;
    87101    default:
     
    125139    return (measure);
    126140  }
    127   if (!strcmp (extname, "DVO_MEASURE_PANSTARRS")) {
     141  if (!strcmp (extname, "DVO_MEASURE_PANSTARRS") || !strcmp (extname, "DVO_MEASURE_PMTEST")) {
    128142    MeasurePanstarrs *tmpMeasure;
    129143    tmpMeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);
     
    162176      break;
    163177    case DVO_FORMAT_PANSTARRS:
     178    case DVO_FORMAT_PMTEST:
    164179      tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
    165180      fits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);
     
    206221    return (secfilt);
    207222  }
    208   if (!strcmp (extname, "DVO_SECFILT_PANSTARRS")) {
     223  if (!strcmp (extname, "DVO_SECFILT_PANSTARRS") || !strcmp (extname, "DVO_SECFILT_PMTEST")) {
    209224    SecFiltPanstarrs *tmpSecFilt;
    210225    tmpSecFilt = fits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);
     
    243258      break;
    244259    case DVO_FORMAT_PANSTARRS:
     260    case DVO_FORMAT_PMTEST:
    245261      tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
    246262      fits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);
     
    297313    goto set_header;
    298314  }
    299   if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) {
     315  if (!strcmp (extname, "DVO_IMAGE_PANSTARRS") || !strcmp (extname, "DVO_IMAGE_PMTEST")) {
    300316    ImagePanstarrs *tmpimage;
    301317    *format = DVO_FORMAT_PANSTARRS;
     
    344360      break;
    345361    case DVO_FORMAT_PANSTARRS:
     362    case DVO_FORMAT_PMTEST:
    346363      tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) ftable[0].buffer, Nimage);
    347364      free (ftable[0].buffer);
     
    358375int ImageToVtable (VTable *vtable, Header *theader, int format) {
    359376
     377  ImageElixir *tmpImageElixir;
     378  ImageLoneos *tmpImageLoneos;
     379  ImagePanstarrs *tmpImagePanstarrs;
    360380  int i, Nrow, Nimage;
    361381
     
    363383
    364384  /* convert from the internal format */
    365   if (format == DVO_FORMAT_INTERNAL) {
    366     for (i = 0; i < Nrow; i++) {
    367       fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
    368     }
    369     return (TRUE);
    370   }
    371   if (format == DVO_FORMAT_ELIXIR) {
    372     ImageElixir *tmpImage;
    373 
    374     /* convert table rows from internal to external format */
    375     for (i = 0; i < Nrow; i++) {
    376       tmpImage = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1);
    377       fits_convert_ImageElixir (tmpImage, sizeof(ImageElixir), 1);
    378       free (vtable[0].buffer[i]);
    379       vtable[0].buffer[i] = (char *) tmpImage;
    380     }
    381 
    382     /* convert header from old format to new format */
    383     fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    384 
    385     fits_free_header (theader);
    386     fits_table_mkheader_ImageElixir (theader);
    387 
    388     fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    389     theader[0].Naxis[1] = Nimage;
    390     vtable[0].size = fits_matrix_size (theader);
    391     return (TRUE);
    392   }
    393   if (format == DVO_FORMAT_LONEOS) {
    394     ImageLoneos *tmpImage;
    395 
    396     /* convert table rows from internal to external format */
    397     for (i = 0; i < Nrow; i++) {
    398       tmpImage = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1);
    399       fits_convert_ImageLoneos (tmpImage, sizeof(ImageLoneos), 1);
    400       free (vtable[0].buffer[i]);
    401       vtable[0].buffer[i] = (char *) tmpImage;
    402     }
    403 
    404     /* convert header from old format to new format */
    405     fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    406 
    407     fits_free_header (theader);
    408     fits_table_mkheader_ImageLoneos (theader);
    409 
    410     fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    411     theader[0].Naxis[1] = Nimage;
    412     vtable[0].size = fits_matrix_size (theader);
    413     return (TRUE);
    414   }
    415   if (format == DVO_FORMAT_PANSTARRS) {
    416     ImagePanstarrs *tmpImage;
    417 
    418     /* convert table rows from internal to external format */
    419     for (i = 0; i < Nrow; i++) {
    420       tmpImage = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1);
    421       fits_convert_ImagePanstarrs (tmpImage, sizeof(ImagePanstarrs), 1);
    422       free (vtable[0].buffer[i]);
    423       vtable[0].buffer[i] = (char *) tmpImage;
    424     }
    425 
    426     /* convert header from old format to new format */
    427     fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
    428     fits_free_header (theader);
    429     fits_table_mkheader_ImagePanstarrs (theader);
    430     fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
    431     theader[0].Naxis[1] = Nimage;
    432     vtable[0].size = fits_matrix_size (theader);
    433     return (TRUE);
     385  switch (format) {
     386    case DVO_FORMAT_INTERNAL:
     387      for (i = 0; i < Nrow; i++) {
     388        fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);
     389      }
     390      return (TRUE);
     391    case DVO_FORMAT_ELIXIR:
     392      /* convert table rows from internal to external format */
     393      for (i = 0; i < Nrow; i++) {
     394        tmpImageElixir = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1);
     395        fits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);
     396        free (vtable[0].buffer[i]);
     397        vtable[0].buffer[i] = (char *) tmpImageElixir;
     398      }
     399
     400      /* convert header from old format to new format */
     401      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     402
     403      fits_free_header (theader);
     404      fits_table_mkheader_ImageElixir (theader);
     405
     406      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     407      theader[0].Naxis[1] = Nimage;
     408      vtable[0].size = fits_matrix_size (theader);
     409      return (TRUE);
     410    case DVO_FORMAT_LONEOS:
     411      /* convert table rows from internal to external format */
     412      for (i = 0; i < Nrow; i++) {
     413        tmpImageLoneos = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1);
     414        fits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);
     415        free (vtable[0].buffer[i]);
     416        vtable[0].buffer[i] = (char *) tmpImageLoneos;
     417      }
     418
     419      /* convert header from old format to new format */
     420      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     421
     422      fits_free_header (theader);
     423      fits_table_mkheader_ImageLoneos (theader);
     424
     425      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     426      theader[0].Naxis[1] = Nimage;
     427      vtable[0].size = fits_matrix_size (theader);
     428      return (TRUE);
     429    case DVO_FORMAT_PANSTARRS:
     430      /* convert table rows from internal to external format */
     431      for (i = 0; i < Nrow; i++) {
     432        tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1);
     433        fits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);
     434        free (vtable[0].buffer[i]);
     435        vtable[0].buffer[i] = (char *) tmpImagePanstarrs;
     436      }
     437
     438      /* convert header from old format to new format */
     439      fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);
     440      fits_free_header (theader);
     441      fits_table_mkheader_ImagePanstarrs (theader);
     442      fits_modify (theader, "NAXIS2", "%d", 1, Nimage);
     443      theader[0].Naxis[1] = Nimage;
     444      vtable[0].size = fits_matrix_size (theader);
     445      return (TRUE);
     446    default:
     447      break;
    434448  }
    435449  fprintf (stderr, "table format unknown (image vtable)\n");
  • trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c

    r5241 r6683  
    6868
    6969  for (i = 0; i < Nvalues; i++) {
    70     out[i].R_PS    = in[i].R;     
    71     out[i].D_PS    = in[i].D;     
    72     out[i].M_PS    = in[i].M  * 0.001;     
    73     out[i].dM_PS   = in[i].dM * 0.001;     
     70    out[i].R       = in[i].R;     
     71    out[i].D       = in[i].D;     
     72    out[i].M       = in[i].M  * 0.001;     
     73    out[i].dM      = in[i].dM * 0.001;     
    7474    out[i].Xp      = in[i].Xp;     
    7575    out[i].Xm      = in[i].Xm;     
     
    8080    out[i].missing = in[i].missing;
    8181    out[i].Xg      = in[i].Xg;
     82
     83    /* these don't exist in Elixir */
     84    out[i].dR      = 0;
     85    out[i].dD      = 0;
     86    out[i].uR      = 0;
     87    out[i].uD      = 0;
     88    out[i].duR     = 0;
     89    out[i].duD     = 0;
     90    out[i].P       = 0;
     91    out[i].dP      = 0;
    8292  }
    8393  return (out);
     
    93103
    94104  for (i = 0; i < Nvalues; i++) {
    95     out[i].R       = in[i].R_PS;     
    96     out[i].D       = in[i].D_PS;     
    97     out[i].M       = in[i].M_PS  * 1000.0;     
    98     out[i].dM      = in[i].dM_PS * 1000.0;
     105    out[i].R       = in[i].R;     
     106    out[i].D       = in[i].D;     
     107    out[i].M       = in[i].M  * 1000.0;     
     108    out[i].dM      = in[i].dM * 1000.0;
    99109    out[i].Xp      = in[i].Xp;     
    100110    out[i].Xm      = in[i].Xm;     
  • trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c

    r5241 r6683  
    6767
    6868  for (i = 0; i < Nvalues; i++) {
    69     out[i].R_PS    = in[i].R;     
    70     out[i].D_PS    = in[i].D;     
    71     out[i].M_PS    = in[i].M * 0.001;     
     69    out[i].R       = in[i].R;     
     70    out[i].D       = in[i].D;     
     71    out[i].M       = in[i].M * 0.001;     
    7272    out[i].Xp      = in[i].Xp;     
    7373    out[i].Xm      = in[i].Xm;     
     
    7979
    8080    /* these don't exist in Loneos */
    81     out[i].dM_PS   = 0xffff;
     81    out[i].dR      = 0;
     82    out[i].dD      = 0;
     83    out[i].uR      = 0;
     84    out[i].uD      = 0;
     85    out[i].duR     = 0;
     86    out[i].duD     = 0;
     87    out[i].P       = 0;
     88    out[i].dP      = 0;
     89    out[i].dM      = 0xffff;
    8290    out[i].Xg      = 0xffff;
    8391  }
     
    94102
    95103  for (i = 0; i < Nvalues; i++) {
    96     out[i].R       = in[i].R_PS;     
    97     out[i].D       = in[i].D_PS;     
    98     out[i].M       = in[i].M_PS * 1000.0;     
     104    out[i].R       = in[i].R;     
     105    out[i].D       = in[i].D;     
     106    out[i].M       = in[i].M * 1000.0;     
    99107    out[i].Xp      = in[i].Xp;     
    100108    out[i].Xm      = in[i].Xm;     
  • trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs.c

    r5241 r6683  
    7070
    7171  for (i = 0; i < Nvalues; i++) {
    72     out[i].R_PS    = in[i].R;     
    73     out[i].D_PS    = in[i].D;     
    74     out[i].M_PS    = in[i].M;     
    75     out[i].dM_PS   = in[i].dM;
     72    out[i].R       = in[i].R;     
     73    out[i].D       = in[i].D;     
     74    out[i].M       = in[i].M;     
     75    out[i].dM      = in[i].dM;
    7676    out[i].Xp      = in[i].Xp;     
    7777    out[i].Xm      = in[i].Xm;     
     
    8282    out[i].offset  = in[i].offset;
    8383    out[i].missing = in[i].missing;
     84
     85    /* these don't exist in Panstarrs */
     86    out[i].dR      = 0;
     87    out[i].dD      = 0;
     88    out[i].uR      = 0;
     89    out[i].uD      = 0;
     90    out[i].duR     = 0;
     91    out[i].duD     = 0;
     92    out[i].P       = 0;
     93    out[i].dP      = 0;
    8494  }
    8595  return (out);
     
    95105
    96106  for (i = 0; i < Nvalues; i++) {
    97     out[i].R       = in[i].R_PS;     
    98     out[i].D       = in[i].D_PS;     
    99     out[i].M       = in[i].M_PS;     
    100     out[i].dM      = in[i].dM_PS;
     107    out[i].R       = in[i].R;     
     108    out[i].D       = in[i].D;     
     109    out[i].M       = in[i].M;     
     110    out[i].dM      = in[i].dM;
    101111    out[i].Xp      = in[i].Xp;     
    102112    out[i].Xm      = in[i].Xm;     
  • trunk/Ohana/src/libohana/src/time.c

    r5926 r6683  
    4848  value += tmp / 3600.0;
    4949
    50  escape:
     50escape:
    5151  if (neg) {
    5252    value *= -1;
     
    6464  *ra = *dec = 0;
    6565  switch (dms_to_ddd (&Ra, str1)) {
    66   case 0:
    67     fprintf (stderr, "syntax error in RA\n");
    68     return (FALSE);
    69   case 1:
    70     break;
    71   case 2:
    72     Ra = Ra * 15;
    73     break;
     66    case 0:
     67      fprintf (stderr, "syntax error in RA\n");
     68      return (FALSE);
     69    case 1:
     70      break;
     71    case 2:
     72      Ra = Ra * 15;
     73      break;
    7474  }
    7575  switch (dms_to_ddd (&Dec, str2)) {
    76   case 0:
    77     fprintf (stderr, "syntax error in DEC\n");
    78     return (FALSE);
    79   case 1:
    80   case 2:
    81     break;
     76    case 0:
     77      fprintf (stderr, "syntax error in DEC\n");
     78      return (FALSE);
     79    case 1:
     80    case 2:
     81      break;
    8282  }
    8383  *ra = Ra;
     
    151151   
    152152  switch (chk_time (line)) {
    153   case 0:
    154     return (FALSE);
    155   case TIME_DATE:
    156     *second = date_to_sec (line);
    157     return (TRUE);
    158   case TIME_DAYS:
    159     *second = strtod (line, 0) * 86400.0;
    160     return (TRUE);
    161   case TIME_HOURS:
    162     *second = strtod (line, 0) * 3600.0;
    163     return (TRUE);
    164   case TIME_MINUTES:
    165     *second = strtod (line, 0) * 60.0;
    166     return (TRUE);
    167   case TIME_SECONDS:
    168     *second = strtod (line, 0);
    169     return (TRUE);
    170   case TIME_JD:
    171     jd = strtod (line, 0);
    172     *second = jd_to_sec (jd);
    173     return (TRUE);
    174   case TIME_MJD:
    175     jd = strtod (line, 0);
    176     *second = mjd_to_sec (jd);
    177     return (TRUE);
     153    case 0:
     154      return (FALSE);
     155    case TIME_DATE:
     156      *second = date_to_sec (line);
     157      return (TRUE);
     158    case TIME_DAYS:
     159      *second = strtod (line, 0) * 86400.0;
     160      return (TRUE);
     161    case TIME_HOURS:
     162      *second = strtod (line, 0) * 3600.0;
     163      return (TRUE);
     164    case TIME_MINUTES:
     165      *second = strtod (line, 0) * 60.0;
     166      return (TRUE);
     167    case TIME_SECONDS:
     168      *second = strtod (line, 0);
     169      return (TRUE);
     170    case TIME_JD:
     171      jd = strtod (line, 0);
     172      *second = jd_to_sec (jd);
     173      return (TRUE);
     174    case TIME_MJD:
     175      jd = strtod (line, 0);
     176      *second = mjd_to_sec (jd);
     177      return (TRUE);
    178178  }
    179179  return (FALSE);
     
    185185 
    186186  switch (chk_time (line)) {
    187   case 0:
    188   case TIME_JD:
    189   case TIME_MJD:
    190   case TIME_DATE:
    191     return (FALSE);
    192   case TIME_DAYS:
    193     *second = strtod (line, 0) * 86400.0;
    194     return (TRUE);
    195   case TIME_HOURS:
    196     *second = strtod (line, 0) * 3600.0;
    197     return (TRUE);
    198   case TIME_MINUTES:
    199     *second = strtod (line, 0) * 60.0;
    200     return (TRUE);
    201   case TIME_SECONDS:
    202     *second = strtod (line, 0);
    203     return (TRUE);
     187    case 0:
     188    case TIME_JD:
     189    case TIME_MJD:
     190    case TIME_DATE:
     191      return (FALSE);
     192    case TIME_DAYS:
     193      *second = strtod (line, 0) * 86400.0;
     194      return (TRUE);
     195    case TIME_HOURS:
     196      *second = strtod (line, 0) * 3600.0;
     197      return (TRUE);
     198    case TIME_MINUTES:
     199      *second = strtod (line, 0) * 60.0;
     200      return (TRUE);
     201    case TIME_SECONDS:
     202      *second = strtod (line, 0);
     203      return (TRUE);
    204204  }
    205205  return (FALSE);
     
    312312  p1 = p2 + 1;
    313313
    314  escape:
     314escape:
    315315  jd = now.tm_mday - 32075 + (int)(1461*(1900 + now.tm_year + 4800 + (int)(((now.tm_mon+1)-14)/12))/4)
    316316    + (int)(367*((now.tm_mon+1) - 2 - (int)(((now.tm_mon+1) - 14)/12)*12)/12)
  • trunk/Ohana/src/mosastro/src/gptolemy.c

    r5320 r6683  
    1010  catalog.filename = filename;
    1111  switch (lock_catalog (&catalog, LCK_SOFT)) {
    12   case 0:
    13   case 2:
    14     fprintf (stderr, "can't lock catalog data %s\n", filename);
    15     *NSTARS = Nstars;
    16     return (NULL);
    17   case 1:
    18     break;
     12    case 0:
     13    case 2:
     14      fprintf (stderr, "can't lock catalog data %s\n", filename);
     15      *NSTARS = Nstars;
     16      return (NULL);
     17    case 1:
     18      break;
    1919  }
    2020
     
    3232  for (i = 0; i < catalog.Naverage; i++) {
    3333    bzero (&stars[i], sizeof(StarData));
    34     stars[i].R   = catalog.average[i].R_PS;
    35     stars[i].D   = catalog.average[i].D_PS;
     34    stars[i].R   = catalog.average[i].R;
     35    stars[i].D   = catalog.average[i].D;
    3636    stars[i].Mag = catalog.measure[catalog.average[i].offset].M_PS;
    3737  }
  • trunk/Ohana/src/opihi/Makefile.Common

    r6000 r6683  
    2727        @if [ ! -d $(DESTLIB) ]; then mkdir -p $(DESTLIB); fi
    2828        @echo ""
     29        @echo "current: $^"
     30        @echo "current: $*"
     31        @echo "current: $@"
    2932        rm -f $@
    3033        cp $^ $@
  • trunk/Ohana/src/opihi/dvo/calextract.c

    r5945 r6683  
    6363    catalog.filename = skylist[0].filename[Nr];
    6464    switch (lock_catalog (&catalog, LCK_SOFT)) {
    65     case 2:
    66       unlock_catalog (&catalog);
    67     case 0:
    68       continue;
     65      case 2:
     66        unlock_catalog (&catalog);
     67      case 0:
     68        continue;
    6969    }
    7070    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    9999      vec[Nm ][0].elements[N] = M2;
    100100      vec[NC ][0].elements[N] = color;
    101       vec[NR ][0].elements[N] = catalog.average[i].R_PS;
    102       vec[ND ][0].elements[N] = catalog.average[i].D_PS;
     101      vec[NR ][0].elements[N] = catalog.average[i].R;
     102      vec[ND ][0].elements[N] = catalog.average[i].D;
    103103      vec[Nd1][0].elements[N] = ExtractAverages (code[0], mode[0], &catalog.average[i], &catalog.secfilt[i*Nsec], &catalog.measure[m], AVE_dMAG);
    104104      vec[Nd2][0].elements[N] = dM2;
     
    133133  return (FALSE);
    134134
    135  escape:
     135escape:
    136136 
    137137  if (RegionName != NULL) free (RegionName);
  • trunk/Ohana/src/opihi/dvo/calmextract.c

    r5945 r6683  
    7676    catalog.filename = skylist[0].filename[Nr];
    7777    switch (lock_catalog (&catalog, LCK_SOFT)) {
    78     case 2:
    79       unlock_catalog (&catalog);
    80     case 0:
    81       continue;
     78      case 2:
     79        unlock_catalog (&catalog);
     80      case 0:
     81        continue;
    8282    }
    8383    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    134134        vec[Nc ][0].elements[N] = color;
    135135        vec[Ns ][0].elements[N] = Nstar;
    136         vec[NR ][0].elements[N] = catalog.average[i].R_PS;
    137         vec[ND ][0].elements[N] = catalog.average[i].D_PS;
     136        vec[NR ][0].elements[N] = catalog.average[i].R;
     137        vec[ND ][0].elements[N] = catalog.average[i].D;
    138138      }
    139139      Nstar ++;
     
    160160  return (FALSE);
    161161
    162  escape:
     162escape:
    163163 
    164164  FreeImageSelection ();
  • trunk/Ohana/src/opihi/dvo/compare.c

    r4865 r6683  
    33
    44void compare (Catalog *catlog1, Catalog *catlog2,
    5          Vector *rvec,  Vector *dvec,  Vector *mvec, Vector *drvec, Vector *ddvec, Vector *dmvec, double radius) {
     5              Vector *rvec,  Vector *dvec,  Vector *mvec, Vector *drvec, Vector *ddvec, Vector *dmvec, double radius) {
    66
    77  int i, j, first_j, Nmatch, NMATCH;
     
    1919  for (i = j = 0; (i < catlog1[0].Naverage) && (j < catlog2[0].Naverage);) {
    2020   
    21     dX = catlog1[0].average[i].R_PS - catlog2[0].average[j].R_PS;
     21    dX = catlog1[0].average[i].R - catlog2[0].average[j].R;
    2222
    2323    if (!(i % 100))
     
    3232      first_j = j;
    3333      for (j = first_j; (fabs (dX) < radius) && (j < catlog2[0].Naverage); j++) {
    34         dX = catlog1[0].average[i].R_PS - catlog2[0].average[j].R_PS;
    35         dY = catlog1[0].average[i].D_PS - catlog2[0].average[j].D_PS;
     34        dX = catlog1[0].average[i].R - catlog2[0].average[j].R;
     35        dY = catlog1[0].average[i].D - catlog2[0].average[j].D;
    3636        dR = hypot (dX, dY);
    3737        if (dR < radius) {
    38            rvec[0].elements[Nmatch] = catlog1[0].average[i].R_PS;
    39            dvec[0].elements[Nmatch] = catlog1[0].average[i].D_PS;
    40            mvec[0].elements[Nmatch] = catlog1[0].average[i].M_PS;
     38          rvec[0].elements[Nmatch] = catlog1[0].average[i].R;
     39          dvec[0].elements[Nmatch] = catlog1[0].average[i].D;
     40          mvec[0].elements[Nmatch] = catlog1[0].average[i].M;
    4141          drvec[0].elements[Nmatch] = dX;
    4242          ddvec[0].elements[Nmatch] = dY;
    43           dmvec[0].elements[Nmatch] = catlog1[0].average[i].M_PS - catlog2[0].average[j].M_PS;
     43          dmvec[0].elements[Nmatch] = catlog1[0].average[i].M - catlog2[0].average[j].M;
    4444          Nmatch ++;
    4545          if (Nmatch == NMATCH - 1) {
     
    6666  REALLOCATE (dmvec[0].elements, float, Nmatch);
    6767 
    68    rvec[0].Nelements = Nmatch;
    69    dvec[0].Nelements = Nmatch;
    70    mvec[0].Nelements = Nmatch;
     68  rvec[0].Nelements = Nmatch;
     69  dvec[0].Nelements = Nmatch;
     70  mvec[0].Nelements = Nmatch;
    7171  drvec[0].Nelements = Nmatch;
    7272  ddvec[0].Nelements = Nmatch;
  • trunk/Ohana/src/opihi/dvo/dmt.c

    r5945 r6683  
    7171    catalog.filename = skylist[0].filename[k];
    7272    switch (lock_catalog (&catalog, LCK_SOFT)) {
    73     case 2:
    74       unlock_catalog (&catalog);
    75     case 0:
    76       continue;
     73      case 2:
     74        unlock_catalog (&catalog);
     75      case 0:
     76        continue;
    7777    }
    7878    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    8686      if (catalog.average[i].Nm != 3) continue;
    8787      m = catalog.average[i].offset;
    88       M0 = (Ns == -1) ? catalog.average[i].M_PS : catalog.secfilt[i*Nsec+Ns].M_PS;
     88      M0 = (Ns == -1) ? catalog.average[i].M : catalog.secfilt[i*Nsec+Ns].M_PS;
    8989      M1 = PhotCat (&catalog.measure[m+0]);
    9090      M2 = PhotCat (&catalog.measure[m+1]);
     
    9898      Yvec.elements[N] = (dmt1 + dmt2) / 2.0;
    9999      if (SaveVectors) {
    100         Rvec.elements[N] = catalog.average[i].R_PS;
    101         Dvec.elements[N] = catalog.average[i].D_PS;
     100        Rvec.elements[N] = catalog.average[i].R;
     101        Dvec.elements[N] = catalog.average[i].D;
    102102        Zvec.elements[N] = M0;
    103103      }
  • trunk/Ohana/src/opihi/dvo/dvomisc.c

    r4800 r6683  
    1515 
    1616  for (i = 0; i < Naverage; i++) {
    17     A = average[i].R_PS;
    18     D = average[i].D_PS;
     17    A = average[i].R;
     18    D = average[i].D;
    1919    SD =  cos(RAD_DEG*A + zeta)*sin(theta)*cos(RAD_DEG*D) + cos(theta)*sin(RAD_DEG*D);
    2020    CD = sqrt (1 - SD*SD);
     
    2828      RA += 360;
    2929   
    30     average[i].R_PS = RA;
    31     average[i].D_PS = DEC;
     30    average[i].R = RA;
     31    average[i].D = DEC;
    3232  }
    3333
     
    5959    j = (l << 1) + 1;
    6060    while (j <= ir) {
    61       if (j < ir && ave[j].R_PS < ave[j+1].R_PS) j++;
    62       if (tmp.R_PS < ave[j].R_PS) {
     61      if (j < ir && ave[j].R < ave[j+1].R) j++;
     62      if (tmp.R < ave[j].R) {
    6363        ave[i] = ave[j];
    6464        j += (i=j) + 1;
  • trunk/Ohana/src/opihi/dvo/gstar.c

    r6642 r6683  
    7272  catalog.filename = skylist[0].filename[0];
    7373  switch (lock_catalog (&catalog, LCK_SOFT)) {
    74   case 2:
    75     unlock_catalog (&catalog);
    76   case 0:
    77     return (FALSE);
     74    case 2:
     75      unlock_catalog (&catalog);
     76    case 0:
     77      return (FALSE);
    7878  }
    7979  catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    9292  /* stars are not guaranteed to be sorted in RA or in DEC, so first sort the list */
    9393  for (i = 0; i < Nstars; i++) {
    94     RA[i] = catalog.average[i].R_PS;
    95     DEC[i] = catalog.average[i].D_PS;
     94    RA[i] = catalog.average[i].R;
     95    DEC[i] = catalog.average[i].D;
    9696    N1[i] = i;
    9797  }
     
    138138      k = N1[i];
    139139      if (!QUIET) {
    140           fprintf (GetOutfile(), "star: %d\n", k);
    141           fprintf (GetOutfile(), "%9.5f %9.5f %3d of %3d  %4.1f %5d\n", catalog.average[k].R_PS, catalog.average[k].D_PS,
    142                    catalog.average[k].Nm, catalog.average[k].Nn + catalog.average[k].Nm,
    143                    0.01*catalog.average[k].Xp, catalog.average[k].code);
     140        fprintf (GetOutfile(), "star: %d\n", k);
     141        fprintf (GetOutfile(), "%9.5f %9.5f %3d of %3d  %4.1f %5d\n", catalog.average[k].R, catalog.average[k].D,
     142                 catalog.average[k].Nm, catalog.average[k].Nn + catalog.average[k].Nm,
     143                 0.01*catalog.average[k].Xp, catalog.average[k].code);
    144144     
    145           /* filter names -- primary code is 0 in this function */
    146           for (j = 0; j < Nsec + 1; j++) {
    147               code = GetPhotcodebyNsec (j);
    148               fprintf (GetOutfile (), "%s ", code[0].name);
    149           }
    150           fprintf (GetOutfile (), "\n");
    151 
    152           /* average mags */
    153           print_value (GetOutfile(), catalog.average[k].M_PS, catalog.average[k].M_PS);
    154           for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].M_PS, catalog.secfilt[j + Nsec*k].M_PS);
    155           fprintf (GetOutfile(), "\n");
    156 
    157           /* average mag errors */
    158           print_value (GetOutfile(), catalog.average[k].dM_PS, catalog.average[k].dM_PS);
    159           for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].dM_PS, catalog.secfilt[j + Nsec*k].dM_PS);
    160           fprintf (GetOutfile(), "\n");
    161 
    162           /* average mag chisq */
    163           print_value (GetOutfile(), pow (10.0, 0.01*catalog.average[k].Xm), catalog.average[k].Xm);
    164           for (j = 0; j < Nsec; j++) print_value (GetOutfile(), pow (10.0, 0.01*catalog.secfilt[j + Nsec*k].Xm), catalog.secfilt[j + Nsec*k].Xm);
    165           fprintf (GetOutfile(), "\n");
     145        /* filter names -- primary code is 0 in this function */
     146        for (j = 0; j < Nsec + 1; j++) {
     147          code = GetPhotcodebyNsec (j);
     148          fprintf (GetOutfile (), "%s ", code[0].name);
     149        }
     150        fprintf (GetOutfile (), "\n");
     151
     152        /* average mags */
     153        print_value (GetOutfile(), catalog.average[k].M, catalog.average[k].M);
     154        for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].M_PS, catalog.secfilt[j + Nsec*k].M_PS);
     155        fprintf (GetOutfile(), "\n");
     156
     157        /* average mag errors */
     158        print_value (GetOutfile(), catalog.average[k].dM, catalog.average[k].dM);
     159        for (j = 0; j < Nsec; j++) print_value (GetOutfile(), catalog.secfilt[j + Nsec*k].dM_PS, catalog.secfilt[j + Nsec*k].dM_PS);
     160        fprintf (GetOutfile(), "\n");
     161
     162        /* average mag chisq */
     163        print_value (GetOutfile(), pow (10.0, 0.01*catalog.average[k].Xm), catalog.average[k].Xm);
     164        for (j = 0; j < Nsec; j++) print_value (GetOutfile(), pow (10.0, 0.01*catalog.secfilt[j + Nsec*k].Xm), catalog.secfilt[j + Nsec*k].Xm);
     165        fprintf (GetOutfile(), "\n");
    166166      }
    167167
  • trunk/Ohana/src/opihi/dvo/imdata.c

    r5945 r6683  
    122122    catalog.filename = skylist[0].filename[j];
    123123    switch (lock_catalog (&catalog, LCK_SOFT)) {
    124     case 2:
    125       unlock_catalog (&catalog);
    126     case 0:
    127       continue;
     124      case 2:
     125        unlock_catalog (&catalog);
     126      case 0:
     127        continue;
    128128    }
    129129    catalog.catflags = LOAD_AVES;
     
    136136    /* assign vector values */
    137137    switch (mode) {
    138     case (1):  /* ra */
    139       for (i = 0; i < catalog.Nmeasure; i++) {
    140         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    141         n = catalog.measure[i].averef;
    142         vec[0].elements[N] = catalog.average[n].R_PS - catalog.measure[i].dR_PS / 3600.0;
    143         N++;
    144         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    145       }
    146       break;
    147     case (2):  /* dec */
    148       for (i = 0; i < catalog.Nmeasure; i++) {
    149         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    150         n = catalog.measure[i].averef;
    151         vec[0].elements[N] = catalog.average[n].D_PS - catalog.measure[i].dD_PS / 3600.0;
    152         N++;
    153         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    154       }
    155       break;
    156     case (3):  /* mag */
    157       for (i = 0; i < catalog.Nmeasure; i++) {
    158         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    159         vec[0].elements[N] = catalog.measure[i].M_PS;
    160         N++;
    161         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    162       }
    163       break;
    164     case (4):  /* dmag */
    165       for (i = 0; i < catalog.Nmeasure; i++) {
    166         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    167         vec[0].elements[N] = catalog.measure[i].dM_PS;
    168         N++;
    169         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    170       }
    171       break;
    172     case (5):  /* Mcal */
    173       for (i = 0; i < catalog.Nmeasure; i++) {
    174         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    175         vec[0].elements[N] = catalog.measure[i].Mcal_PS;
    176         N++;
    177         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    178       }
    179       break;
    180     case (6):  /* Mrel */
    181       for (i = 0; i < catalog.Nmeasure; i++) {
    182         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    183         n = catalog.measure[i].averef;
    184         vec[0].elements[N] = catalog.average[n].M_PS;
    185         N++;
    186       }
    187       break;
    188     case (7):  /* source */
    189       for (i = 0; i < catalog.Nmeasure; i++) {
    190         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    191         vec[0].elements[N] = catalog.measure[i].source;
    192         N++;
    193         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    194       }
    195       break;
    196     case (10):  /* time */
    197       for (i = 0; i < catalog.Nmeasure; i++) {
    198         if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
    199         vec[0].elements[N] = TimeValue (catalog.measure[i].t, TimeReference, TimeFormat);
    200         N++;
    201         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
    202       }
    203       break;
     138      case (1):  /* ra */
     139        for (i = 0; i < catalog.Nmeasure; i++) {
     140          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     141          n = catalog.measure[i].averef;
     142          vec[0].elements[N] = catalog.average[n].R - catalog.measure[i].dR_PS / 3600.0;
     143          N++;
     144          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     145        }
     146        break;
     147      case (2):  /* dec */
     148        for (i = 0; i < catalog.Nmeasure; i++) {
     149          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     150          n = catalog.measure[i].averef;
     151          vec[0].elements[N] = catalog.average[n].D - catalog.measure[i].dD_PS / 3600.0;
     152          N++;
     153          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     154        }
     155        break;
     156      case (3):  /* mag */
     157        for (i = 0; i < catalog.Nmeasure; i++) {
     158          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     159          vec[0].elements[N] = catalog.measure[i].M_PS;
     160          N++;
     161          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     162        }
     163        break;
     164      case (4):  /* dmag */
     165        for (i = 0; i < catalog.Nmeasure; i++) {
     166          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     167          vec[0].elements[N] = catalog.measure[i].dM_PS;
     168          N++;
     169          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     170        }
     171        break;
     172      case (5):  /* Mcal */
     173        for (i = 0; i < catalog.Nmeasure; i++) {
     174          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     175          vec[0].elements[N] = catalog.measure[i].Mcal_PS;
     176          N++;
     177          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     178        }
     179        break;
     180      case (6):  /* Mrel */
     181        for (i = 0; i < catalog.Nmeasure; i++) {
     182          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     183          n = catalog.measure[i].averef;
     184          vec[0].elements[N] = catalog.average[n].M;
     185          N++;
     186        }
     187        break;
     188      case (7):  /* source */
     189        for (i = 0; i < catalog.Nmeasure; i++) {
     190          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     191          vec[0].elements[N] = catalog.measure[i].source;
     192          N++;
     193          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     194        }
     195        break;
     196      case (10):  /* time */
     197        for (i = 0; i < catalog.Nmeasure; i++) {
     198          if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue;
     199          vec[0].elements[N] = TimeValue (catalog.measure[i].t, TimeReference, TimeFormat);
     200          N++;
     201          CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 1000);
     202        }
     203        break;
    204204    }
    205205    if (catalog.average != 0) {
  • trunk/Ohana/src/opihi/dvo/lcurve.c

    r5945 r6683  
    8383  catalog.filename = skylist[0].filename[0];
    8484  switch (lock_catalog (&catalog, LCK_SOFT)) {
    85   case 2:
    86     unlock_catalog (&catalog);
    87   case 0:
    88     return (FALSE);
     85    case 2:
     86      unlock_catalog (&catalog);
     87    case 0:
     88      return (FALSE);
    8989  }
    9090  catalog.catflags = LOAD_AVES | LOAD_MEAS;
     
    103103  /* stars are not guaranteed to be sorted in RA or in DEC, so first sort the list */
    104104  for (i = 0; i < Nstars; i++) {
    105     RA[i] = catalog.average[i].R_PS;
    106     DEC[i] = catalog.average[i].D_PS;
     105    RA[i] = catalog.average[i].R;
     106    DEC[i] = catalog.average[i].D;
    107107    N1[i] = i;
    108108  }
  • trunk/Ohana/src/opihi/dvo/lightcurve.c

    r5945 r6683  
    5959  catalog.filename = skylist[0].filename[0];
    6060  switch (lock_catalog (&catalog, LCK_SOFT)) {
    61   case 2:
    62     unlock_catalog (&catalog);
    63   case 0:
    64     return (FALSE);
     61    case 2:
     62      unlock_catalog (&catalog);
     63    case 0:
     64      return (FALSE);
    6565  }
    6666  catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    7979  /* stars are not guaranteed to be sorted in RA or in DEC, so first sort the list */
    8080  for (i = 0; i < Nstars; i++) {
    81     RA[i] = catalog.average[i].R_PS;
    82     DEC[i] = catalog.average[i].D_PS;
     81    RA[i] = catalog.average[i].R;
     82    DEC[i] = catalog.average[i].D;
    8383    N1[i] = i;
    8484  }
  • trunk/Ohana/src/opihi/dvo/mextract.c

    r5945 r6683  
    5858    catalog.filename = skylist[0].filename[i];
    5959    switch (lock_catalog (&catalog, LCK_SOFT)) {
    60     case 2:
    61       unlock_catalog (&catalog);
    62     case 0:
    63       continue;
     60      case 2:
     61        unlock_catalog (&catalog);
     62      case 0:
     63        continue;
    6464    }
    6565    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
  • trunk/Ohana/src/opihi/dvo/photometry.c

    r4865 r6683  
    225225
    226226  param = AVE_ZERO;
    227   if (!strcasecmp (parname, "ra"))    param = AVE_RA;
    228   if (!strcasecmp (parname, "dec"))   param = AVE_DEC;
     227  if (!strcasecmp (parname, "RA"))    param = AVE_RA;
     228  if (!strcasecmp (parname, "DEC"))   param = AVE_DEC;
     229
     230  if (!strcasecmp (parname, "dRA"))   param = AVE_RA_ERR;
     231  if (!strcasecmp (parname, "dDEC"))  param = AVE_DEC_ERR;
     232
     233  if (!strcasecmp (parname, "uRA"))   param = AVE_U_RA;
     234  if (!strcasecmp (parname, "uDEC"))  param = AVE_U_DEC;
     235  if (!strcasecmp (parname, "duRA"))  param = AVE_U_RA_ERR;
     236  if (!strcasecmp (parname, "duDEC")) param = AVE_U_DEC_ERR;
     237
     238  if (!strcasecmp (parname, "par"))   param = AVE_PAR;
     239  if (!strcasecmp (parname, "dpar"))  param = AVE_PAR_ERR;
     240
    229241  if (!strcasecmp (parname, "dmag"))  param = AVE_dMAG;
    230242  if (!strcasecmp (parname, "mag"))   param = AVE_MAG;
     
    564576  switch (param) {
    565577    case AVE_RA:
    566       value = average[0].R_PS;
     578      value = average[0].R;
    567579      break;
    568580    case AVE_DEC:
    569       value = average[0].D_PS;
    570       break;
     581      value = average[0].D;
     582      break;
     583    case AVE_RA_ERR:
     584      value = average[0].dR;
     585      break;
     586    case AVE_DEC_ERR:
     587      value = average[0].dD;
     588      break;
     589
     590    case AVE_U_RA:
     591      value = average[0].uR;
     592      break;
     593    case AVE_U_DEC:
     594      value = average[0].uD;
     595      break;
     596    case AVE_U_RA_ERR:
     597      value = average[0].duR;
     598      break;
     599    case AVE_U_DEC_ERR:
     600      value = average[0].duD;
     601      break;
     602
     603    case AVE_PAR:
     604      value = average[0].P;
     605      break;
     606    case AVE_PAR_ERR:
     607      value = average[0].dP;
     608      break;
     609
     610
    571611    case AVE_NMEAS:
    572612      value = average[0].Nm;
     
    924964  }
    925965
    926  skip:
     966skip:
    927967  if (M1 != NULL) free (M1);
    928968  if (M2 != NULL) free (M2);
     
    10581098      break;
    10591099    case MEAS_RA: /* OK */
    1060       value = average[0].R_PS - measure[0].dR_PS / 3600.0;
     1100      value = average[0].R - measure[0].dR_PS / 3600.0;
    10611101      break;
    10621102    case MEAS_DEC: /* OK */
    1063       value = average[0].D_PS - measure[0].dD_PS / 3600.0;
     1103      value = average[0].D - measure[0].dD_PS / 3600.0;
    10641104      break;
    10651105    case MEAS_dMAG: /* OK */
     
    10941134      break;
    10951135    case MEAS_XCCD: /* OK */
    1096       ra  = average[0].R_PS - measure[0].dR_PS / 3600.0;
    1097       dec = average[0].D_PS - measure[0].dD_PS / 3600.0;
     1136      ra  = average[0].R - measure[0].dR_PS / 3600.0;
     1137      dec = average[0].D - measure[0].dD_PS / 3600.0;
    10981138      image = MatchImage (measure[0].t, measure[0].source);
    10991139      if (image == NULL) break;
     
    11021142      break;
    11031143    case MEAS_YCCD: /* OK */
    1104       ra  = average[0].R_PS - measure[0].dR_PS / 3600.0;
    1105       dec = average[0].D_PS - measure[0].dD_PS / 3600.0;
     1144      ra  = average[0].R - measure[0].dR_PS / 3600.0;
     1145      dec = average[0].D - measure[0].dD_PS / 3600.0;
    11061146      image = MatchImage (measure[0].t, measure[0].source);
    11071147      if (image == NULL) break;
     
    11101150      break;
    11111151    case MEAS_XMOSAIC: /* OK */
    1112       ra  = average[0].R_PS - measure[0].dR_PS / 3600.0;
    1113       dec = average[0].D_PS - measure[0].dD_PS / 3600.0;
     1152      ra  = average[0].R - measure[0].dR_PS / 3600.0;
     1153      dec = average[0].D - measure[0].dD_PS / 3600.0;
    11141154      mosaic = MatchMosaic (measure[0].t, measure[0].source);
    11151155      if (mosaic == NULL) break;
     
    11181158      break;
    11191159    case MEAS_YMOSAIC: /* OK */
    1120       ra  = average[0].R_PS - measure[0].dR_PS / 3600.0;
    1121       dec = average[0].D_PS - measure[0].dD_PS / 3600.0;
     1160      ra  = average[0].R - measure[0].dR_PS / 3600.0;
     1161      dec = average[0].D - measure[0].dD_PS / 3600.0;
    11221162      mosaic = MatchMosaic (measure[0].t, measure[0].source);
    11231163      if (mosaic == NULL) break;
  • trunk/Ohana/src/opihi/dvo/pmeasure.c

    r5945 r6683  
    8383    catalog.filename = skylist[0].filename[j];
    8484    switch (lock_catalog (&catalog, LCK_SOFT)) {
    85     case 2:
    86       unlock_catalog (&catalog);
    87     case 0:
    88       continue;
     85      case 2:
     86        unlock_catalog (&catalog);
     87      case 0:
     88        continue;
    8989    }
    9090    catalog.catflags = LOAD_AVES | LOAD_MEAS;
     
    107107    for (N = i = 0; i < catalog.Naverage; i++) {
    108108      if (IDclip && (catalog.average[i].code != IDchoice)) continue;
    109       while (catalog.average[i].R_PS < Rmin) catalog.average[i].R_PS += 360.0;
    110       while (catalog.average[i].R_PS > Rmax) catalog.average[i].R_PS -= 360.0;
     109      while (catalog.average[i].R < Rmin) catalog.average[i].R += 360.0;
     110      while (catalog.average[i].R > Rmax) catalog.average[i].R -= 360.0;
    111111      m = catalog.average[i].offset;
    112112      for (k = 0; k < catalog.average[i].Nm; k++) {
     
    120120        if (LimExclude && (Zvec.elements[N] > 0.99)) continue;
    121121        if (Zvec.elements[N] < 0.011) continue;
    122         fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R_PS - catalog.measure[m+k].dR_PS/3600.0, catalog.average[i].D_PS - catalog.measure[m+k].dD_PS/3600.0, &graphmode.coords);
     122        fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], catalog.average[i].R - catalog.measure[m+k].dR_PS/3600.0, catalog.average[i].D - catalog.measure[m+k].dD_PS/3600.0, &graphmode.coords);
    123123        N ++;
    124124      }
  • trunk/Ohana/src/opihi/dvo/subpix.c

    r5945 r6683  
    4343  catalog.filename = skylist[0].filename[0];
    4444  switch (lock_catalog (&catalog, LCK_SOFT)) {
    45   case 2:
    46     unlock_catalog (&catalog);
    47   case 0:
    48     return (FALSE);
     45    case 2:
     46      unlock_catalog (&catalog);
     47    case 0:
     48      return (FALSE);
    4949  }
    5050  catalog.catflags = LOAD_AVES | LOAD_MEAS;
     
    6161  ALLOCATE (index, int, Nstars);
    6262  for (i = 0; i < Nstars; i++) {
    63     RA[i] = catalog.average[i].R_PS;
    64     DEC[i] = catalog.average[i].D_PS;
     63    RA[i] = catalog.average[i].R;
     64    DEC[i] = catalog.average[i].D;
    6565    index[i] = i;
    6666  }
  • trunk/Ohana/src/opihi/include/dvo1.h

    r5451 r6683  
    1515
    1616/* average params */
    17 enum {AVE_ZERO, AVE_RA, AVE_DEC, AVE_MAG, AVE_REF, AVE_dMAG, AVE_Xm, AVE_Xp, AVE_NMEAS,
    18       AVE_NMISS, AVE_TYPE, AVE_NPHOT, AVE_NCODE, AVE_NCRIT, AVE_FLAG, AVE_TYPEFRAC};
     17enum {AVE_ZERO, AVE_RA, AVE_DEC, AVE_RA_ERR, AVE_DEC_ERR, AVE_U_RA, AVE_U_DEC,
     18      AVE_U_RA_ERR, AVE_U_DEC_ERR, AVE_PAR, AVE_PAR_ERR, AVE_MAG, AVE_REF, AVE_dMAG,
     19      AVE_Xm, AVE_Xp, AVE_NMEAS, AVE_NMISS, AVE_TYPE, AVE_NPHOT, AVE_NCODE, AVE_NCRIT,
     20      AVE_FLAG, AVE_TYPEFRAC};
    1921
    2022typedef struct {
  • trunk/Ohana/src/relphot/src/ImageOps.c

    r5143 r6683  
    111111      /* add this measurement to the grid cell for this chip */
    112112      ave = measure[0].averef;
    113       ra  = catalog[cat].average[ave].R_PS - measure[0].dR_PS / 3600.0;
    114       dec = catalog[cat].average[ave].D_PS - measure[0].dD_PS / 3600.0;
     113      ra  = catalog[cat].average[ave].R - measure[0].dR_PS / 3600.0;
     114      dec = catalog[cat].average[ave].D - measure[0].dD_PS / 3600.0;
    115115       
    116116      /* X,Y always positive-definite in range 0,0 - dX, dY */
  • trunk/Ohana/src/relphot/src/MosaicOps.c

    r5143 r6683  
    591591
    592592      ave = catalog[c].measure[m].averef;
    593       xlist[N] = catalog[c].average[ave].R_PS - catalog[c].measure[m].dR_PS / 3600.0;
    594       ylist[N] = catalog[c].average[ave].D_PS - catalog[c].measure[m].dD_PS / 3600.0;
     593      xlist[N] = catalog[c].average[ave].R - catalog[c].measure[m].dR_PS / 3600.0;
     594      ylist[N] = catalog[c].average[ave].D - catalog[c].measure[m].dD_PS / 3600.0;
    595595      N++;
    596596    }
  • trunk/Ohana/src/relphot/src/StarOps.c

    r5143 r6683  
    2828  if (catalog[cat].average[ave].code & STAR_BAD) return (NO_MAG); 
    2929 
    30   value = PhotPrimary ? catalog[cat].average[ave].M_PS : catalog[cat].secfilt[PhotNsec*ave+PhotSec].M_PS;
     30  value = PhotPrimary ? catalog[cat].average[ave].M : catalog[cat].secfilt[PhotNsec*ave+PhotSec].M_PS;
    3131  return (value);
    3232}
     
    6666
    6767      if (PhotPrimary) {
    68         catalog[i].average[j].M_PS = stats.mean;
    69         catalog[i].average[j].dM_PS = stats.sigma;
     68        catalog[i].average[j].M = stats.mean;
     69        catalog[i].average[j].dM = stats.sigma;
    7070        catalog[i].average[j].Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq) : NO_MAG;
    7171      } else {
     
    122122      /* use sigma or error in dM for output? */
    123123      if (PhotPrimary) {
    124         catalog[i].average[j].M_PS = stats.mean;
    125         catalog[i].average[j].dM_PS = MAX (stats.sigma, stats.error);
     124        catalog[i].average[j].M = stats.mean;
     125        catalog[i].average[j].dM = MAX (stats.sigma, stats.error);
    126126        catalog[i].average[j].Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq) : NO_MAG;
    127127      } else {
     
    187187      Chisq = pow (10.0, 0.01*Xm);
    188188      xlist[Ntot] = Chisq;
    189       slist[Ntot] = PhotPrimary ? catalog[i].average[j].dM_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
     189      slist[Ntot] = PhotPrimary ? catalog[i].average[j].dM : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
    190190      dlist[Ntot] = 1;
    191191      Ntot ++;
     
    203203  for (i = 0; i < Ncatalog; i++) {
    204204    for (j = 0; j < catalog[i].Naverage; j++) {
    205       dM = PhotPrimary ? catalog[i].average[j].dM_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
     205      dM = PhotPrimary ? catalog[i].average[j].dM : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
    206206      Xm = PhotPrimary ? catalog[i].average[j].Xm    : catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
    207207      Chisq = pow (10.0, 0.01*Xm);
     
    423423      if (catalog[i].average[j].code & STAR_BAD) continue; 
    424424
    425       dM = PhotPrimary ? catalog[i].average[j].dM_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
     425      dM = PhotPrimary ? catalog[i].average[j].dM : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
    426426      list[n] = dM;
    427427      dlist[n] = 1;
     
    452452    for (j = 0; j < catalog[i].Naverage; j++) {
    453453      if (catalog[i].average[j].code & STAR_BAD) continue; 
    454       dMrel = PhotPrimary ? catalog[i].average[j].dM_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
     454      dMrel = PhotPrimary ? catalog[i].average[j].dM : catalog[i].secfilt[PhotNsec*j+PhotSec].dM_PS;
    455455      bin = dMrel / 0.00025;
    456456      bin = MAX (0, MIN (NBIN-1, bin));
     
    483483    for (j = 0; j < catalog[i].Naverage; j++) {
    484484      if (catalog[i].average[j].code & STAR_BAD) continue;
    485       xlist[N] = PhotPrimary ? catalog[i].average[j].M_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].M_PS;
     485      xlist[N] = PhotPrimary ? catalog[i].average[j].M : catalog[i].secfilt[PhotNsec*j+PhotSec].M_PS;
    486486      value    = PhotPrimary ? catalog[i].average[j].Xm   : catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
    487487      if (value == NO_MAG) continue;
     
    517517  for (i = 0; i < Ncatalog; i++) {
    518518    for (j = 0; j < catalog[i].Naverage; j++) {
    519       xlist[N] = catalog[i].average[j].R_PS;
    520       ylist[N] = catalog[i].average[j].D_PS;
     519      xlist[N] = catalog[i].average[j].R;
     520      ylist[N] = catalog[i].average[j].D;
    521521      N++;
    522522    }
  • trunk/Ohana/src/relphot/src/bcatalog.c

    r4865 r6683  
    1818  for (i = 0; i < catalog[0].Naverage; i++) {
    1919    if (catalog[0].average[i].Nm < 2) continue;
    20     if (catalog[0].average[i].R_PS < fullregion[0].RA[0]) continue;
    21     if (catalog[0].average[i].R_PS > fullregion[0].RA[1]) continue;
    22     if (catalog[0].average[i].D_PS < fullregion[0].DEC[0]) continue;
    23     if (catalog[0].average[i].D_PS > fullregion[0].DEC[1]) continue;
     20    if (catalog[0].average[i].R < fullregion[0].RA[0]) continue;
     21    if (catalog[0].average[i].R > fullregion[0].RA[1]) continue;
     22    if (catalog[0].average[i].D < fullregion[0].DEC[0]) continue;
     23    if (catalog[0].average[i].D > fullregion[0].DEC[1]) continue;
    2424
    2525    /* start with all stars good */
     
    3232    if (RESET) {
    3333      float *p;
    34       p = (PhotPrimary) ? &subcatalog[0].average[Naverage].M_PS : &subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].M_PS;
     34      p = (PhotPrimary) ? &subcatalog[0].average[Naverage].M : &subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].M_PS;
    3535      *p = NO_MAG;
    36       p = (PhotPrimary) ? &subcatalog[0].average[Naverage].dM_PS : &subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].dM_PS;
     36      p = (PhotPrimary) ? &subcatalog[0].average[Naverage].dM : &subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].dM_PS;
    3737      *p = NO_MAG;
    3838      subcatalog[0].average[Naverage].code &= ~ID_STAR_FEW;
  • trunk/Ohana/src/relphot/src/plot_scatter.c

    r5143 r6683  
    3232        if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
    3333
    34         Mrel = PhotPrimary ? catalog[i].average[j].M_PS : catalog[i].secfilt[PhotNsec*j+PhotSec].M_PS;
     34        Mrel = PhotPrimary ? catalog[i].average[j].M : catalog[i].secfilt[PhotNsec*j+PhotSec].M_PS;
    3535        xlist[N] = Mrel;
    3636        ylist[N] = PhotSys  (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]) - Mcal - Mmos - Mgrid - Mrel;
  • trunk/Ohana/src/relphot/src/setExclusions.c

    r4796 r6683  
    2525        /* select measurements by mag limit */
    2626        if (AreaSelect) {
    27           r = catalog[i].average[j].R_PS + catalog[i].measure[m].dR_PS / 3600.0;
    28           d = catalog[i].average[j].D_PS + catalog[i].measure[m].dD_PS / 3600.0;
     27          r = catalog[i].average[j].R + catalog[i].measure[m].dR_PS / 3600.0;
     28          d = catalog[i].average[j].D + catalog[i].measure[m].dD_PS / 3600.0;
    2929          if ((coords = getCoords (m, i)) == NULL) goto markbad;
    3030          RD_to_XY (&x, &y, r, d, coords);
  • trunk/Ohana/src/relphot/src/setMrelFinal.c

    r4865 r6683  
    1111
    1212    for (i = 0; i < catalog[0].Naverage; i++) {
    13       p = (PhotPrimary) ? &catalog[0].average[i].M_PS  : &catalog[0].secfilt[PhotNsec*i+PhotSec].M_PS;
     13      p = (PhotPrimary) ? &catalog[0].average[i].M  : &catalog[0].secfilt[PhotNsec*i+PhotSec].M_PS;
    1414      *p = NO_MAG;
    15       p = (PhotPrimary) ? &catalog[0].average[i].dM_PS : &catalog[0].secfilt[PhotNsec*i+PhotSec].dM_PS;
     15      p = (PhotPrimary) ? &catalog[0].average[i].dM : &catalog[0].secfilt[PhotNsec*i+PhotSec].dM_PS;
    1616      *p = NO_MAG;
    1717      q = (PhotPrimary) ? &catalog[0].average[i].Xm : &catalog[0].secfilt[PhotNsec*i+PhotSec].Xm;
     
    143143/* dophot types:
    144144
    145    1 - star
    146    2 - galaxy
    147    3 - star
    148    4 - weak
    149    5 - edge
    150    7 - weak
    151    9 - weak
    152    10 - sat
     1451 - star
     1462 - galaxy
     1473 - star
     1484 - weak
     1495 - edge
     1507 - weak
     1519 - weak
     15210 - sat
    153153*/
    154154
  • trunk/Ohana/src/uniphot/src/update_catalog.c

    r5320 r6683  
    1515  for (i = 0; i < catalog[0].Naverage; i++) {
    1616   
    17     Mp = Primary ? &catalog[0].average[i].M_PS : &catalog[0].secfilt[i*Nsecfilt+Nsec].M_PS;
     17    Mp = Primary ? &catalog[0].average[i].M : &catalog[0].secfilt[i*Nsecfilt+Nsec].M_PS;
    1818    if (*Mp != NO_MAG) *Mp += sgroup[0].M;
    1919
Note: See TracChangeset for help on using the changeset viewer.