IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39311


Ignore:
Timestamp:
Jan 13, 2016, 4:20:51 PM (11 years ago)
Author:
eugene
Message:

improvements to loadtycho : use specific object positions for P objects, allow mean R,D to match J2000; add Bt,Vt to load2mass as option

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

Legend:

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

    r38986 r39311  
    1919} TMStars;
    2020
    21 short TM_J, TM_H, TM_K;
     21short TM_J, TM_H, TM_K, TM_B, TM_V;
    2222
    2323SkyTable *get2mass_acc (SkyRegion *patch, char *path, char *accel);
     
    4646// int       get2mass_3star (Stars *star, char *line, int Nmax);
    4747
    48 int get2mass_3star_full (Measure *measure, char *line, int Nmax);
     48int get2mass_3star_full (Measure *measure, char *line, int *Nmeasure);
    4949char *next2MASSfield (char *line);
    5050int set2MASS_ph_qual (Measure *measure, char qual);
  • trunk/Ohana/src/addstar/include/tycho.h

    r38467 r39311  
    99} Tycho_Stars;
    1010
     11int USE_PS1_EPOCH;
     12
    1113AddstarClientOptions args_loadtycho (int *argc, char **argv, AddstarClientOptions options);
    1214
  • trunk/Ohana/src/addstar/src/args_loadtycho.c

    r38467 r39311  
    4949  }
    5050
     51  USE_PS1_EPOCH = FALSE;
     52  if ((N = get_argument (*argc, argv, "-ps1-mean-epoch"))) {
     53    USE_PS1_EPOCH = TRUE;
     54    remove_argument (N, argc, argv);
     55  }
     56
    5157  /* extra error messages */
    5258  VERBOSE = FALSE;
  • trunk/Ohana/src/addstar/src/find_matches_refstars.c

    r39306 r39311  
    11# include "addstar.h"
     2# define DEBUG 0
    23
    34// see bottom of this file for differences between find_matches_refstars.c and find_matches.c
     
    1415  int Nsecfilt;
    1516
     17  if (DEBUG) ohana_memcheck(TRUE);
     18
    1619  /* photcode data -- should not have to modify secfilt / average */
    1720  Nsecfilt = GetPhotcodeNsecfilt ();
     
    5760  objID = tgtcat[0].objID;
    5861  catID = tgtcat[0].catID;
     62
     63  if (DEBUG) ohana_memcheck(TRUE);
    5964
    6065  /* project onto rectilinear grid with 1 arcsec pixels. the choice of ARC projection has
     
    119124
    120125  /****************** find matched stars ********************/
     126  if (DEBUG) ohana_memcheck(TRUE);
    121127
    122128  for (i = j = 0; (i < Nstars) && (j < Nave); ) {
     
    251257    i++;
    252258  }
     259  if (DEBUG) ohana_memcheck(TRUE);
    253260
    254261  /* incorporate unmatched refcat stars */
     
    333340    Nave ++;
    334341  }
     342  if (DEBUG) ohana_memcheck(TRUE);
    335343     
    336344  REALLOCATE (tgtcat[0].average, Average, Nave);
     
    341349
    342350  /* note stars which have been found in this tgtcat */
    343   for (i = 0; i < srccat->Nmeasure; i++) {
     351  for (i = 0; i < srccat->Naverage; i++) {
    344352    if (srccat->found_t[i] > -1) {
    345353      srccat->found_t[i] = -2;
     
    352360  tgtcat[0].Nsecfilt_mem = Nave*Nsecfilt;
    353361  if (VERBOSE) fprintf (stderr, "Nstars, Nave, Nmeas: "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT", ("OFF_T_FMT" matches)\n",  Nstars,  Nave,  Nmeas,  Nmatch);
     362
     363  if (DEBUG) ohana_memcheck(TRUE);
    354364
    355365  free (X1);
  • trunk/Ohana/src/addstar/src/get2mass_full.c

    r38986 r39311  
    66// fill in the data for a JHK triplet star.  takes a pointer to the start of the line the
    77// RA and DEC have already been set
    8 int get2mass_3star_full (Measure *measure, char *line, int Nmax) {
     8int get2mass_3star_full (Measure *measure, char *line, int *Nmeasure) {
    99
    1010  char *ptr;
     
    1414  if (line == NULL) Shutdown ("format error in 2mass");
    1515
    16   ptr = line;                 // ra  (assumed to be already set)
     16  ptr = line;                 // ra  (set for average, but not yet measure)
     17  double R = atof(ptr);       
     18
    1719  ptr = next2MASSfield (ptr); // dec (assumed to be already set)
     20  double D = atof(ptr);
     21
     22  measure[2].R = measure[1].R = measure[0].R = R;
     23  measure[2].D = measure[1].D = measure[0].D = D;
     24
    1825  ptr = next2MASSfield (ptr); // err_maj
    1926  measure[0].FWx = ToShortPixels(strtod (ptr, NULL));
     
    153160  measure[2].detID   = 0;
    154161  measure[2].imageID = 0;
     162
     163  *Nmeasure = 3;
     164
     165  ptr = next2MASSfield (ptr); // a (optical source association)
     166
     167  // if we have Tycho data, add as a new measurement
     168  if (*ptr == 'T') {
     169    ptr = next2MASSfield (ptr); // dist_opt (optical source association)
     170    float dR = atof(ptr) / 3600.0; // convert offset to degrees
     171
     172    ptr = next2MASSfield (ptr); // phi_opt (optical source association)
     173    float phi = atof(ptr);
     174
     175    ptr = next2MASSfield (ptr); // B_opt (optical source association)
     176    float B_j = atof(ptr);
     177
     178    ptr = next2MASSfield (ptr); // V_opt (optical source association)
     179    float V_j = atof(ptr);
     180
     181    *Nmeasure = 5;
     182
     183    // inherit all info from the base measurement
     184    measure[3] = measure[0];
     185    measure[4] = measure[0];
     186
     187    float dDEC = dR * cos(RAD_DEG*phi);
     188    float dRA  = dR * sin(RAD_DEG*phi) / cos(RAD_DEG*measure[3].D);
     189
     190    // transformations from Bj,Vj to Bt,Vt from 2mass explanatory supplement:
     191    float BV_t = (B_j - V_j) / 0.85;
     192    float V_t = V_j + 0.09 * BV_t;
     193    float B_t = BV_t + V_t;
     194
     195    measure[3].R -= dRA;
     196    measure[3].D -= dDEC;
     197    measure[3].photcode = TM_B;
     198    measure[3].M = B_t;
     199    measure[3].dM = 0.1;
     200
     201    measure[4].R = measure[3].R;
     202    measure[4].D = measure[3].D;
     203    measure[4].photcode = TM_V;
     204    measure[4].M = V_t;
     205    measure[4].dM = 0.1;
     206  }
    155207
    156208  return TRUE;
  • trunk/Ohana/src/addstar/src/get2mass_ops.c

    r38986 r39311  
    1212  NAMED_PHOTCODE (TM_H, "2MASS_H");
    1313  NAMED_PHOTCODE (TM_K, "2MASS_K");
     14
     15  NAMED_PHOTCODE (TM_B, "TYCHO_B_2MASS");
     16  NAMED_PHOTCODE (TM_V, "TYCHO_V_2MASS");
    1417
    1518  FilterSkip = TimeSkip = Qentry = 0;
  • trunk/Ohana/src/addstar/src/load2mass_as_rawdata.c

    r38986 r39311  
    150150        }
    151151
     152        // make sure we have enough space here for up to 5 more measurements:
     153        CHECK_REALLOCATE (newcat->measure, Measure, NMEAS, Nmeas + 5, 3000);
     154
     155        int Nmeasure = 0; // we are adding 3 (JHK) or 5 (+ B_T, V_T) measurements
     156
    152157        newcat->average[Nave].R = tstars[j].R;
    153158        newcat->average[Nave].D = tstars[j].D;
    154         get2mass_3star_full (&newcat->measure[Nmeas], &buffer[offset], Nbyte - offset);
     159        get2mass_3star_full (&newcat->measure[Nmeas], &buffer[offset], &Nmeasure);
    155160
    156161        tstars[j].flag = TRUE;
    157162
    158         newcat->average[Nave].Nmeasure = 3;
     163        newcat->average[Nave].Nmeasure = Nmeasure;
    159164        newcat->average[Nave].measureOffset = Nmeas;
    160165
    161166        Nave ++;
    162         Nmeas += 3;
     167        Nmeas += Nmeasure;
    163168
    164169        CHECK_REALLOCATE (newcat->average, Average, NAVE,  Nave,  1000);
    165         CHECK_REALLOCATE (newcat->measure, Measure, NMEAS, Nmeas, 3000);
    166170      }
    167171      newcat->Naverage = Nave;
  • trunk/Ohana/src/addstar/src/loadtycho_ops.c

    r38467 r39311  
    6161    Dref = Dobs;
    6262    Dps1 = Dobs;
    63   } else {
    64     star[0].average.dR  = atof (&line[57]) / 1000.0; // e_RAmdeg
    65     star[0].average.dD  = atof (&line[61]) / 1000.0; // e_DEmdeg
     63    goto got_positions;
     64  }
    6665
    67     star[0].average.uR  = atof (&line[41]) / 1000.0; // pmRA
    68     star[0].average.uD  = atof (&line[49]) / 1000.0; // pmDE
     66  star[0].average.dR  = atof (&line[57]) / 1000.0; // e_RAmdeg
     67  star[0].average.dD  = atof (&line[61]) / 1000.0; // e_DEmdeg
     68 
     69  star[0].average.uR  = atof (&line[41]) / 1000.0; // pmRA
     70  star[0].average.uD  = atof (&line[49]) / 1000.0; // pmDE
     71 
     72  star[0].average.duR = atof (&line[65]) / 1000.0; // e_pmRA
     73  star[0].average.duD = atof (&line[70]) / 1000.0; // e_pmDE
     74 
     75  if (line[13] == 'P') {
     76   
     77    double Ttycho = 0.5*(jyR + jyD) + 1990.0;
    6978
    70     star[0].average.duR = atof (&line[65]) / 1000.0; // e_pmRA
    71     star[0].average.duD = atof (&line[70]) / 1000.0; // e_pmDE
     79    Rref = Robs + ((2000.0 - Ttycho)/3600.0)*star[0].average.uR*cos(RAD_DEG*Dobs);
     80    Dref = Dobs + ((2000.0 - Ttycho)/3600.0)*star[0].average.uD;
     81  }
    7282
    73     Rps1 = Rref + ((2012.0 - 2000.0)/3600.0)*star[0].average.uR*cos(RAD_DEG*Dref);
    74     Dps1 = Dref + ((2012.0 - 2000.0)/3600.0)*star[0].average.uD;
    75 
    76     // use the mean (J2000) position for average or determine J2012?
     83  Rps1 = Rref + ((2012.0 - 2000.0)/3600.0)*star[0].average.uR*cos(RAD_DEG*Dref);
     84  Dps1 = Dref + ((2012.0 - 2000.0)/3600.0)*star[0].average.uD;
     85 
     86  // use the PS1 epoch for average
     87  if (USE_PS1_EPOCH) {
    7788    star[0].average.R = Rps1;
    7889    star[0].average.D = Dps1;
    79 
     90    star[0].average.Tmean = J2012;
     91  } else {
     92    star[0].average.R = Rref;
     93    star[0].average.D = Dref;
    8094    star[0].average.Tmean = J2000;
    8195  }
    8296
    83   float  M_B = atof (&line[110]); // BTmag
    84   float dM_B = atof (&line[117]); // e_BTmag
    85   float  M_V = atof (&line[123]); // VTmag
    86   float dM_V = atof (&line[130]); // e_VTmag
     97got_positions:
     98  {
     99    float  M_B = atof (&line[110]); // BTmag
     100    float dM_B = atof (&line[117]); // e_BTmag
     101    float  M_V = atof (&line[123]); // VTmag
     102    float dM_V = atof (&line[130]); // e_VTmag
    87103
    88   // we have NGROUP measurements (B,V) x (MeanEpoch, J2000, J2012)
    89   star[0].measure[0].t   = TychoEpoch;
    90   star[0].measure[1].t   = TychoEpoch;
    91   star[0].measure[2].t   = J2000;
    92   star[0].measure[3].t   = J2000;
    93   star[0].measure[4].t   = J2012;
    94   star[0].measure[5].t   = J2012;
     104    // we have NGROUP measurements (B,V) x (MeanEpoch, J2000, J2012)
     105    star[0].measure[0].t   = TychoEpoch;
     106    star[0].measure[1].t   = TychoEpoch;
     107    star[0].measure[2].t   = J2000;
     108    star[0].measure[3].t   = J2000;
     109    star[0].measure[4].t   = J2012;
     110    star[0].measure[5].t   = J2012;
    95111
    96   star[0].measure[0].R   = Robs;
    97   star[0].measure[0].D   = Dobs;
    98   star[0].measure[1].R   = Robs;
    99   star[0].measure[1].D   = Dobs;
     112    star[0].measure[0].R   = Robs;
     113    star[0].measure[0].D   = Dobs;
     114    star[0].measure[1].R   = Robs;
     115    star[0].measure[1].D   = Dobs;
    100116
    101   star[0].measure[2].R   = Rref;
    102   star[0].measure[2].D   = Dref;
    103   star[0].measure[3].R   = Rref;
    104   star[0].measure[3].D   = Dref;
     117    star[0].measure[2].R   = Rref;
     118    star[0].measure[2].D   = Dref;
     119    star[0].measure[3].R   = Rref;
     120    star[0].measure[3].D   = Dref;
    105121
    106   star[0].measure[4].R   = Rps1;
    107   star[0].measure[4].D   = Dps1;
    108   star[0].measure[5].R   = Rps1;
    109   star[0].measure[5].D   = Dps1;
     122    star[0].measure[4].R   = Rps1;
     123    star[0].measure[4].D   = Dps1;
     124    star[0].measure[5].R   = Rps1;
     125    star[0].measure[5].D   = Dps1;
    110126
    111   for (i = 0; i < NGROUP; i+=2) {
    112     star[0].measure[i+0].M        =  M_B;
    113     star[0].measure[i+0].dM       = dM_B;
    114     star[0].measure[i+0].photcode = TYCHO_B;
    115     star[0].measure[i+1].M        =  M_V;
    116     star[0].measure[i+1].dM       = dM_V;
    117     star[0].measure[i+1].photcode = TYCHO_V;
     127    for (i = 0; i < NGROUP; i+=2) {
     128      star[0].measure[i+0].M        =  M_B;
     129      star[0].measure[i+0].dM       = dM_B;
     130      star[0].measure[i+0].photcode = TYCHO_B;
     131      star[0].measure[i+1].M        =  M_V;
     132      star[0].measure[i+1].dM       = dM_V;
     133      star[0].measure[i+1].photcode = TYCHO_V;
     134    }
    118135  }
    119136  return TRUE;
Note: See TracChangeset for help on using the changeset viewer.