IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17246


Ignore:
Timestamp:
Mar 31, 2008, 12:36:44 PM (18 years ago)
Author:
eugene
Message:

add fields to extract image ref points

File:
1 edited

Legend:

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

    r16810 r17246  
    33// need to upgrade this to support multiple fields and WHERE clauses
    44
    5 enum {ZERO, RA, DEC, Xm, AIRMASS, MCAL, dMCAL, PHOTCODE, TIME, FWHM, EXPTIME, NSTAR, SKY, NCAL, FLAG, NX_PIX, NY_PIX, THETA, SKEW, SCALE, DSCALE, IMAGE_ID};
     5enum {ZERO,
     6      RA,
     7      DEC,
     8      Xm,
     9      AIRMASS,
     10      MCAL,
     11      dMCAL,
     12      PHOTCODE,
     13      TIME,
     14      FWHM,
     15      EXPTIME,
     16      NSTAR,
     17      NCAL,
     18      SKY,
     19      FLAG,
     20      NX_PIX,
     21      NY_PIX,
     22      THETA,
     23      SKEW,
     24      SCALE,
     25      DSCALE,
     26      IMAGE_ID,
     27      X_LL_CHIP,
     28      X_LR_CHIP,
     29      X_UL_CHIP,
     30      X_UR_CHIP,
     31      Y_LL_CHIP,
     32      Y_LR_CHIP,
     33      Y_UL_CHIP,
     34      Y_UR_CHIP,
     35      X_LL_FP,
     36      X_LR_FP,
     37      X_UL_FP,
     38      X_UR_FP,
     39      Y_LL_FP,
     40      Y_LR_FP,
     41      Y_UL_FP,
     42      Y_UR_FP,
     43};
    644
    745int imextract (int argc, char **argv) {
     
    76114  /* identify selection */
    77115  mode = ZERO;
    78   if (!strcasecmp (argv[1], "ra")) mode = RA;
    79   if (!strcasecmp (argv[1], "dec")) mode = DEC;
    80   if (!strcasecmp (argv[1], "Xm")) mode = Xm;
    81   if (!strcasecmp (argv[1], "airmass")) mode = AIRMASS;
    82   if (!strcasecmp (argv[1], "Mcal")) mode = MCAL;
    83   if (!strcasecmp (argv[1], "dMcal")) mode = dMCAL;
    84   if (!strcasecmp (argv[1], "photcode")) mode = PHOTCODE;
    85   if (!strcasecmp (argv[1], "time")) mode = TIME;
    86   if (!strcasecmp (argv[1], "FWHM")) mode = FWHM;
    87   if (!strcasecmp (argv[1], "exptime")) mode = EXPTIME;
    88   if (!strcasecmp (argv[1], "nstar")) mode = NSTAR;
    89   if (!strcasecmp (argv[1], "ncal")) mode = NCAL;
    90   if (!strcasecmp (argv[1], "sky")) mode = SKY;
    91   if (!strcasecmp (argv[1], "flag")) mode = FLAG;
    92   if (!strcasecmp (argv[1], "NX")) mode = NX_PIX;
    93   if (!strcasecmp (argv[1], "NY")) mode = NY_PIX;
    94   if (!strcasecmp (argv[1], "theta")) mode = THETA;
    95   if (!strcasecmp (argv[1], "skew")) mode = SKEW;
    96   if (!strcasecmp (argv[1], "scale")) mode = SCALE;
    97   if (!strcasecmp (argv[1], "dscale")) mode = DSCALE;
    98   if (!strcasecmp (argv[1], "imageID")) mode = IMAGE_ID;
     116  if (!strcasecmp (argv[1], "ra"       )) mode = RA;
     117  if (!strcasecmp (argv[1], "dec"      )) mode = DEC;
     118  if (!strcasecmp (argv[1], "Xm"       )) mode = Xm;
     119  if (!strcasecmp (argv[1], "airmass"  )) mode = AIRMASS;
     120  if (!strcasecmp (argv[1], "Mcal"     )) mode = MCAL;
     121  if (!strcasecmp (argv[1], "dMcal"    )) mode = dMCAL;
     122  if (!strcasecmp (argv[1], "photcode" )) mode = PHOTCODE;
     123  if (!strcasecmp (argv[1], "time"     )) mode = TIME;
     124  if (!strcasecmp (argv[1], "FWHM"     )) mode = FWHM;
     125  if (!strcasecmp (argv[1], "exptime"  )) mode = EXPTIME;
     126  if (!strcasecmp (argv[1], "nstar"    )) mode = NSTAR;
     127  if (!strcasecmp (argv[1], "ncal"     )) mode = NCAL;
     128  if (!strcasecmp (argv[1], "sky"      )) mode = SKY;
     129  if (!strcasecmp (argv[1], "flag"     )) mode = FLAG;
     130  if (!strcasecmp (argv[1], "NX"       )) mode = NX_PIX;
     131  if (!strcasecmp (argv[1], "NY"       )) mode = NY_PIX;
     132  if (!strcasecmp (argv[1], "theta"    )) mode = THETA;
     133  if (!strcasecmp (argv[1], "skew"     )) mode = SKEW;
     134  if (!strcasecmp (argv[1], "scale"    )) mode = SCALE;
     135  if (!strcasecmp (argv[1], "dscale"   )) mode = DSCALE;
     136  if (!strcasecmp (argv[1], "imageID"  )) mode = IMAGE_ID;
     137  if (!strcasecmp (argv[1], "X_LL_CHIP")) mode = X_LL_CHIP;
     138  if (!strcasecmp (argv[1], "X_LR_CHIP")) mode = X_LR_CHIP;
     139  if (!strcasecmp (argv[1], "X_UL_CHIP")) mode = X_UL_CHIP;
     140  if (!strcasecmp (argv[1], "X_UR_CHIP")) mode = X_UR_CHIP;
     141  if (!strcasecmp (argv[1], "Y_LL_CHIP")) mode = Y_LL_CHIP;
     142  if (!strcasecmp (argv[1], "Y_LR_CHIP")) mode = Y_LR_CHIP;
     143  if (!strcasecmp (argv[1], "Y_UL_CHIP")) mode = Y_UL_CHIP;
     144  if (!strcasecmp (argv[1], "Y_UR_CHIP")) mode = Y_UR_CHIP;
     145  if (!strcasecmp (argv[1], "X_LL_FP"  )) mode = X_LL_FP;
     146  if (!strcasecmp (argv[1], "X_LR_FP"  )) mode = X_LR_FP;
     147  if (!strcasecmp (argv[1], "X_UL_FP"  )) mode = X_UL_FP;
     148  if (!strcasecmp (argv[1], "X_UR_FP"  )) mode = X_UR_FP;
     149  if (!strcasecmp (argv[1], "Y_LL_FP"  )) mode = Y_LL_FP;
     150  if (!strcasecmp (argv[1], "Y_LR_FP"  )) mode = Y_LR_FP;
     151  if (!strcasecmp (argv[1], "Y_UL_FP"  )) mode = Y_UL_FP;
     152  if (!strcasecmp (argv[1], "Y_UR_FP"  )) mode = Y_UR_FP;
    99153  if (mode == ZERO) {
    100154    gprint (GP_ERR, "value may be one of the following:\n");
     
    215269        vec[0].elements[N] = (scale1-scale2);
    216270        break; }
    217           }
     271
     272    // reference pixel extractions
     273    case X_LL_CHIP:
     274    case Y_LL_CHIP:
     275    case Y_LR_CHIP:
     276    case X_UL_CHIP:
     277      vec[0].elements[N] = 0.0;
     278      break;
     279    case X_LR_CHIP:
     280    case X_UR_CHIP:
     281      vec[0].elements[N] = image[j].NX;
     282      break;
     283    case Y_UL_CHIP:
     284    case Y_UR_CHIP:
     285      vec[0].elements[N] = image[j].NX;
     286      break;
     287
     288    case X_LL_FP:
     289    case Y_LL_FP:
     290      XY_to_LM (&x, &y, 0.0, 0.0, &image[j].coords);
     291      vec[0].elements[N] = (mode == X_LL_FP) ? x : y;
     292      break;
     293    case X_LR_FP:
     294    case Y_LR_FP:
     295      XY_to_LM (&x, &y, image[j].NX, 0.0, &image[j].coords);
     296      vec[0].elements[N] = (mode == X_LR_FP) ? x : y;
     297      break;
     298    case X_UL_FP:
     299    case Y_UL_FP:
     300      XY_to_LM (&x, &y, 0.0, image[j].NY, &image[j].coords);
     301      vec[0].elements[N] = (mode == X_UL_FP) ? x : y;
     302      break;
     303    case X_UR_FP:
     304    case Y_UR_FP:
     305      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;
     307      break;
     308    }
    218309    N++;
    219310  }
Note: See TracChangeset for help on using the changeset viewer.