IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

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

complete merge from branch dvo-mods-2007-02

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c

    r6683 r12332  
    1010
    1111  for (i = 0; i < Nvalues; i++) {
    12     out[i].dR_PS   = in[i].dR * 0.01;
    13     out[i].dD_PS   = in[i].dD * 0.01;
    14     out[i].M_PS    = in[i].M  * 0.001;
    15     out[i].dM_PS   = in[i].dM * 0.001;
    16     out[i].dt_PS      = in[i].dt * 0.001;
    17     out[i].Mcal_PS    = in[i].Mcal * 0.001;
    18     out[i].Mgal_PS    = in[i].Mgal * 0.001;
    19     out[i].airmass_PS = in[i].airmass * 0.001;
     12    out[i].dR       = in[i].dR * 0.01;
     13    out[i].dD       = in[i].dD * 0.01;
     14    out[i].M        = in[i].M  * 0.001;
     15    out[i].dM       = in[i].dM * 0.001;
     16    out[i].dt       = in[i].dt * 0.001;
     17    out[i].Mcal     = in[i].Mcal * 0.001;
     18    out[i].Mgal     = in[i].Mgal * 0.001;
     19    out[i].airmass  = in[i].airmass * 0.001;
     20    out[i].FWx      = in[i].FWx;
     21    out[i].FWy      = in[i].fwy * in[i].FWx * 0.01;
     22    out[i].theta    = in[i].theta*(0x10000 / 0x100);
     23    out[i].dophot   = in[i].dophot;
     24    out[i].photcode = in[i].source;
     25    out[i].t        = in[i].t;
     26    out[i].averef   = in[i].averef;
     27    out[i].flags    = in[i].flags;
     28   
     29    /* these can be determined if needed / desired */
     30    out[i].Xccd     = 0;
     31    out[i].Yccd     = 0;
     32    out[i].dXccd    = 0;
     33    out[i].dYccd    = 0;
     34
     35    /* these do not have a corresponding value */
     36    out[i].stargal  = 0;
     37    out[i].Sky      = 0;
     38    out[i].dSky     = 0;
     39    out[i].qPSF     = 0;
     40
     41    /* XXX add these later */
     42    out[i].detID_hi = 0;
     43    out[i].detID_lo = 0;
     44    out[i].imageID_hi = 0;
     45    out[i].imageID_lo = 0;
     46  }
     47  return (out);
     48}
     49
     50/* convert internal measures to elixir-format measures */
     51MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues) {
     52
     53  int i;
     54  MeasureElixir *out;
     55
     56  ALLOCATE (out, MeasureElixir, Nvalues);
     57
     58  for (i = 0; i < Nvalues; i++) {
     59    out[i].dR      = in[i].dR * 100.0;
     60    out[i].dD      = in[i].dD * 100.0;
     61    out[i].M       = in[i].M  * 1000.0;
     62    out[i].dM      = in[i].dM * 1000.0;
     63    out[i].dt      = in[i].dt * 1000.0;
     64    out[i].Mcal    = in[i].Mcal * 1000.0;
     65    out[i].Mgal    = in[i].Mgal * 1000.0;
     66    out[i].airmass = in[i].airmass * 1000.0;
    2067    out[i].FWx     = in[i].FWx;
    21     out[i].FWy     = in[i].fwy * in[i].FWx * 0.01;
    22     out[i].theta   = in[i].theta;
     68    out[i].fwy     = in[i].FWy * 100.0 / in[i].FWx;
     69    out[i].theta   = in[i].theta*(0x100/ 0x10000);
    2370    out[i].dophot  = in[i].dophot;
    24     out[i].source  = in[i].source;
     71    out[i].source  = in[i].photcode;
    2572    out[i].t       = in[i].t;
    2673    out[i].averef  = in[i].averef;
     
    3077}
    3178
    32 /* convert internal measures to elixir-format measures */
    33 MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues) {
    34 
    35   int i;
    36   MeasureElixir *out;
    37 
    38   ALLOCATE (out, MeasureElixir, Nvalues);
    39 
    40   for (i = 0; i < Nvalues; i++) {
    41     out[i].dR      = in[i].dR_PS * 100.0;
    42     out[i].dD      = in[i].dD_PS * 100.0;
    43     out[i].M       = in[i].M_PS  * 1000.0;
    44     out[i].dM      = in[i].dM_PS * 1000.0;
    45     out[i].dt      = in[i].dt_PS * 1000.0;
    46     out[i].Mcal    = in[i].Mcal_PS * 1000.0;
    47     out[i].Mgal    = in[i].Mgal_PS * 1000.0;
    48     out[i].airmass = in[i].airmass_PS * 1000.0;
    49     out[i].FWx     = in[i].FWx;
    50     out[i].fwy     = 100.0 * in[i].FWy / in[i].FWx;
    51     out[i].theta   = in[i].theta;
    52     out[i].dophot  = in[i].dophot;
    53     out[i].source  = in[i].source;
    54     out[i].t       = in[i].t;
    55     out[i].averef  = in[i].averef;
    56     out[i].flags   = in[i].flags;
    57   }
    58   return (out);
    59 }
    60 
    6179/* convert elixir-format averages to internal averages */
    62 Average *AverageElixirToInternal (AverageElixir *in, int Nvalues) {
     80Average *AverageElixirToInternal (AverageElixir *in, int Nvalues, SecFilt **primary) {
    6381
    6482  int i;
     
    6684
    6785  ALLOCATE (out, Average, Nvalues);
     86  ALLOCATE (*primary, SecFilt, Nvalues);
    6887
    6988  for (i = 0; i < Nvalues; i++) {
    7089    out[i].R       = in[i].R;     
    7190    out[i].D       = in[i].D;     
    72     out[i].M       = in[i].M  * 0.001;     
    73     out[i].dM      = in[i].dM * 0.001;     
    7491    out[i].Xp      = in[i].Xp;     
    75     out[i].Xm      = in[i].Xm;     
    7692    out[i].Nm      = in[i].Nm;     
    7793    out[i].Nn      = in[i].Nn;     
     
    7995    out[i].offset  = in[i].offset;
    8096    out[i].missing = in[i].missing;
    81     out[i].Xg      = in[i].Xg;
    8297
    8398    /* these don't exist in Elixir */
     
    90105    out[i].P       = 0;
    91106    out[i].dP      = 0;
     107
     108    /* XXX add these later */
     109    out[i].objID_hi = 0;
     110    out[i].objID_lo = 0;
     111
     112    primary[0][i].M  = in[i].M  * 0.001;     
     113    primary[0][i].dM = in[i].dM * 0.001;     
     114    primary[0][i].Xm = in[i].Xm;     
     115    primary[0][i].Ncode = 0;     
     116    primary[0][i].Nused = 0;
     117
     118    // XXX drop this or keep this?
     119    // primary[0][i].Xg = in[i].Xg;
    92120  }
    93121  return (out);
     
    95123
    96124/* convert internal averages to elixir-format averages */
    97 AverageElixir *AverageInternalToElixir (Average *in, int Nvalues) {
     125AverageElixir *AverageInternalToElixir (Average *in, int Nvalues, SecFilt *primary) {
    98126
    99127  int i;
     
    105133    out[i].R       = in[i].R;     
    106134    out[i].D       = in[i].D;     
    107     out[i].M       = in[i].M  * 1000.0;     
    108     out[i].dM      = in[i].dM * 1000.0;
    109135    out[i].Xp      = in[i].Xp;     
    110     out[i].Xm      = in[i].Xm;     
    111136    out[i].Nm      = in[i].Nm;     
    112137    out[i].Nn      = in[i].Nn;     
     
    114139    out[i].offset  = in[i].offset;
    115140    out[i].missing = in[i].missing;
    116     out[i].Xg      = in[i].Xg;
     141
     142    out[i].M       = primary[i].M  * 1000.0;     
     143    out[i].dM      = primary[i].dM * 1000.0;
     144    out[i].Xm      = primary[i].Xm;     
     145    // out[i].Xg      = in[i].Xg;
    117146  }
    118147  return (out);
     
    128157
    129158  for (i = 0; i < Nvalues; i++) {
    130     out[i].M_PS    = in[i].M  * 0.001;     
    131     out[i].dM_PS   = in[i].dM * 0.001;     
    132     out[i].Xm      = in[i].Xm;     
     159    out[i].M     = in[i].M  * 0.001;     
     160    out[i].dM    = in[i].dM * 0.001;     
     161    out[i].Xm    = in[i].Xm;     
     162    out[i].Ncode = 0;
     163    out[i].Nused = 0;
    133164  }
    134165  return (out);
     
    144175
    145176  for (i = 0; i < Nvalues; i++) {
    146     out[i].M       = in[i].M_PS  * 1000.0;     
    147     out[i].dM      = in[i].dM_PS * 1000.0;
     177    out[i].M       = in[i].M  * 1000.0;     
     178    out[i].dM      = in[i].dM * 1000.0;
    148179    out[i].Xm      = in[i].Xm;     
    149180  }
     
    166197    out[i].tzero            = in[i].tzero;
    167198    out[i].nstar            = in[i].nstar;
    168     out[i].secz_PS          = in[i].secz * 0.001;
     199    out[i].secz             = in[i].secz * 0.001;
    169200    out[i].NX               = in[i].NX;
    170201    out[i].NY               = in[i].NY;
    171     out[i].apmifit_PS       = in[i].apmifit * 0.001;
    172     out[i].dapmifit_PS      = in[i].dapmifit * 0.001;
    173     out[i].Mcal_PS          = in[i].Mcal * 0.001;
    174     out[i].dMcal_PS         = in[i].dMcal * 0.001;
     202    out[i].apmifit          = in[i].apmifit * 0.001;
     203    out[i].dapmifit         = in[i].dapmifit * 0.001;
     204    out[i].Mcal             = in[i].Mcal * 0.001;
     205    out[i].dMcal            = in[i].dMcal * 0.001;
    175206    out[i].Xm               = in[i].Xm;
    176     out[i].source           = in[i].source;
     207    out[i].photcode         = in[i].source;
    177208    out[i].exptime          = in[i].exptime;
    178209    out[i].detection_limit  = in[i].detection_limit;
     
    199230    out[i].Mxyyy            = in[i].Mxyyy;
    200231    out[i].Myyyy            = in[i].Myyyy;
     232
     233    /* XXX add these later */
     234    out[i].imageID_hi = 0;
     235    out[i].imageID_lo = 0;
    201236  }
    202237  return (out);
     
    218253    out[i].tzero            = in[i].tzero;
    219254    out[i].nstar            = in[i].nstar;
    220     out[i].secz             = in[i].secz_PS * 1000.0;
     255    out[i].secz             = in[i].secz * 1000.0;
    221256    out[i].NX               = in[i].NX;
    222257    out[i].NY               = in[i].NY;
    223     out[i].apmifit          = in[i].apmifit_PS * 1000.0;
    224     out[i].dapmifit         = in[i].dapmifit_PS * 1000.0;
    225     out[i].Mcal             = in[i].Mcal_PS * 1000.0;
    226     out[i].dMcal            = in[i].dMcal_PS * 1000.0;
     258    out[i].apmifit          = in[i].apmifit * 1000.0;
     259    out[i].dapmifit         = in[i].dapmifit * 1000.0;
     260    out[i].Mcal             = in[i].Mcal * 1000.0;
     261    out[i].dMcal            = in[i].dMcal * 1000.0;
    227262    out[i].Xm               = in[i].Xm;
    228     out[i].source           = in[i].source;
     263    out[i].source           = in[i].photcode;
    229264    out[i].exptime          = in[i].exptime;
    230265    out[i].detection_limit  = in[i].detection_limit;
Note: See TracChangeset for help on using the changeset viewer.