IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 25, 2008, 4:51:39 PM (18 years ago)
Author:
eugene
Message:

convert opihi vectors to double type, add option for int type as well

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c

    r17246 r20839  
    165165
    166166  /* create storage vector */
    167   REALLOCATE (vec[0].elements, float, Nimage);
     167  REALLOCATE (vec[0].elements.Flt, opihi_flt, Nimage);
    168168  vec[0].Nelements = Nimage;
    169169 
     
    186186        y = 0.5*image[j].NY;
    187187        XY_to_RD (&ra, &dec, x, y, &image[j].coords);
    188         vec[0].elements[N] = ra;
     188        vec[0].elements.Flt[N] = ra;
    189189        break;
    190190      case DEC:
     
    193193        y = 0.5*image[j].NY;
    194194        XY_to_RD (&ra, &dec, x, y, &image[j].coords);
    195         vec[0].elements[N] = dec;
     195        vec[0].elements.Flt[N] = dec;
    196196        break;
    197197      case Xm:
    198         vec[0].elements[N] = pow(10.0, 0.01*image[j].Xm);
     198        vec[0].elements.Flt[N] = pow(10.0, 0.01*image[j].Xm);
    199199        break;
    200200      case AIRMASS:
    201         vec[0].elements[N] = image[j].secz;
     201        vec[0].elements.Flt[N] = image[j].secz;
    202202        break;
    203203      case MCAL:
    204         vec[0].elements[N] = image[j].Mcal;
     204        vec[0].elements.Flt[N] = image[j].Mcal;
    205205        break;
    206206      case dMCAL:
    207         vec[0].elements[N] = image[j].dMcal;
     207        vec[0].elements.Flt[N] = image[j].dMcal;
    208208        break;
    209209      case PHOTCODE:
    210         vec[0].elements[N] = image[j].photcode;
     210        vec[0].elements.Flt[N] = image[j].photcode;
    211211        break;
    212212      case TIME:
    213213        t = image[j].tzero + 0.5*image[j].NY * image[j].trate / 10000;
    214         vec[0].elements[N] = TimeValue (t, TimeReference, TimeFormat);
     214        vec[0].elements.Flt[N] = TimeValue (t, TimeReference, TimeFormat);
    215215        break;
    216216      case FWHM:
    217         vec[0].elements[N] = image[j].fwhm_x / 25.0;
     217        vec[0].elements.Flt[N] = image[j].fwhm_x / 25.0;
    218218        break;
    219219      case EXPTIME:
    220         vec[0].elements[N] = image[j].exptime;
     220        vec[0].elements.Flt[N] = image[j].exptime;
    221221        break;
    222222      case NSTAR:
    223         vec[0].elements[N] = image[j].nstar;
     223        vec[0].elements.Flt[N] = image[j].nstar;
    224224        break;
    225225      case NCAL:
    226         vec[0].elements[N] = image[j].Mxxxx;
     226        vec[0].elements.Flt[N] = image[j].Mxxxx;
    227227        break;
    228228      case SKY:
    229         vec[0].elements[N] = image[j].Myyyy + 0x8000;
     229        vec[0].elements.Flt[N] = image[j].Myyyy + 0x8000;
    230230        break;
    231231      case FLAG:
    232         vec[0].elements[N] = image[j].code;
     232        vec[0].elements.Flt[N] = image[j].code;
    233233        break;
    234234      case NX_PIX:
    235         vec[0].elements[N] = image[j].NX;
     235        vec[0].elements.Flt[N] = image[j].NX;
    236236        break;
    237237      case NY_PIX:
    238         vec[0].elements[N] = image[j].NY;
     238        vec[0].elements.Flt[N] = image[j].NY;
    239239        break;
    240240      case IMAGE_ID:
    241         vec[0].elements[N] = image[j].imageID;
     241        vec[0].elements.Flt[N] = image[j].imageID;
    242242        break;
    243243      case THETA: {
     
    247247        theta1 = DEG_RAD*atan2 (+s1*image[j].coords.pc1_2, s1*image[j].coords.pc1_1);
    248248        theta2 = DEG_RAD*atan2 (-s2*image[j].coords.pc2_1, s2*image[j].coords.pc2_2);
    249         vec[0].elements[N] = 0.5*(theta1+theta2);
     249        vec[0].elements.Flt[N] = 0.5*(theta1+theta2);
    250250        break; }
    251251      case SKEW: {
     
    255255        theta1 = DEG_RAD*atan2 (+s1*image[j].coords.pc1_2, s1*image[j].coords.pc1_1);
    256256        theta2 = DEG_RAD*atan2 (-s2*image[j].coords.pc2_1, s2*image[j].coords.pc2_2);
    257         vec[0].elements[N] = (theta1-theta2);
     257        vec[0].elements.Flt[N] = (theta1-theta2);
    258258        break; }
    259259      case SCALE: {
     
    261261        scale1 = fabs(image[j].coords.cdelt1);
    262262        scale2 = fabs(image[j].coords.cdelt2);
    263         vec[0].elements[N] = 0.5*(scale1+scale2);
     263        vec[0].elements.Flt[N] = 0.5*(scale1+scale2);
    264264        break; }
    265265      case DSCALE: {
     
    267267        scale1 = fabs(image[j].coords.cdelt1);
    268268        scale2 = fabs(image[j].coords.cdelt2);
    269         vec[0].elements[N] = (scale1-scale2);
     269        vec[0].elements.Flt[N] = (scale1-scale2);
    270270        break; }
    271271
     
    275275    case Y_LR_CHIP:
    276276    case X_UL_CHIP:
    277       vec[0].elements[N] = 0.0;
     277      vec[0].elements.Flt[N] = 0.0;
    278278      break;
    279279    case X_LR_CHIP:
    280280    case X_UR_CHIP:
    281       vec[0].elements[N] = image[j].NX;
     281      vec[0].elements.Flt[N] = image[j].NX;
    282282      break;
    283283    case Y_UL_CHIP:
    284284    case Y_UR_CHIP:
    285       vec[0].elements[N] = image[j].NX;
     285      vec[0].elements.Flt[N] = image[j].NX;
    286286      break;
    287287
     
    289289    case Y_LL_FP:
    290290      XY_to_LM (&x, &y, 0.0, 0.0, &image[j].coords);
    291       vec[0].elements[N] = (mode == X_LL_FP) ? x : y;
     291      vec[0].elements.Flt[N] = (mode == X_LL_FP) ? x : y;
    292292      break;
    293293    case X_LR_FP:
    294294    case Y_LR_FP:
    295295      XY_to_LM (&x, &y, image[j].NX, 0.0, &image[j].coords);
    296       vec[0].elements[N] = (mode == X_LR_FP) ? x : y;
     296      vec[0].elements.Flt[N] = (mode == X_LR_FP) ? x : y;
    297297      break;
    298298    case X_UL_FP:
    299299    case Y_UL_FP:
    300300      XY_to_LM (&x, &y, 0.0, image[j].NY, &image[j].coords);
    301       vec[0].elements[N] = (mode == X_UL_FP) ? x : y;
     301      vec[0].elements.Flt[N] = (mode == X_UL_FP) ? x : y;
    302302      break;
    303303    case X_UR_FP:
    304304    case Y_UR_FP:
    305305      XY_to_LM (&x, &y, image[j].NX, image[j].NY, &image[j].coords);
    306       vec[0].elements[N] = (mode == X_UR_FP) ? x : y;
     306      vec[0].elements.Flt[N] = (mode == X_UR_FP) ? x : y;
    307307      break;
    308308    }
     
    311311 
    312312  vec[0].Nelements = N;
    313   REALLOCATE (vec[0].elements, float, N);
     313  REALLOCATE (vec[0].elements.Flt, opihi_flt, N);
    314314
    315315  free (subset);
Note: See TracChangeset for help on using the changeset viewer.