IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 21


Ignore:
Timestamp:
Jan 19, 2003, 7:26:08 AM (24 years ago)
Author:
eugene
Message:

added MEF, FRPTS support

Location:
trunk/Ohana/src/imregister/detrend
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/imregister/detrend/args.detsearch.c

    r12 r21  
    8585  }
    8686 
     87  /* image mode (mef, splt, etc) */
     88  base.ModeSelect = FALSE;
     89  base.Mode = M_NONE;
     90  if (N = get_argument (argc, argv, "-mode")) {
     91    remove_argument (N, &argc, argv);
     92    for (i = 0; (i < NMODE) && (base.Mode == M_NONE); i++) {
     93      if (!strncasecmp (argv[N], modename[i], strlen(argv[N]))) base.Mode = i;
     94    }
     95    if (base.Mode == M_NONE) {
     96      fprintf (stderr, "ERROR: invalid image mode %s\n", argv[N]);
     97      exit (1);
     98    }
     99    remove_argument (N, &argc, argv);
     100    base.ModeSelect = TRUE;
     101  }
     102 
    87103  /* define time / ranges */
    88104  tstart = tstop = (unsigned long *) NULL;
     
    259275    if (!strcasecmp (output.ModifyEntry, "label")) goto valid_entry;
    260276    if (!strcasecmp (output.ModifyEntry, "order")) goto valid_entry;
     277    if (!strcasecmp (output.ModifyEntry, "mode"))  goto valid_entry;
    261278    if (!strcasecmp (output.ModifyEntry, "tstop")) goto valid_entry;
    262279    if (!strcasecmp (output.ModifyEntry, "tstart")) goto valid_entry;
  • trunk/Ohana/src/imregister/detrend/criteria.c

    r12 r21  
    1414  for (i = 0; (i < Ncriteria) && (match.state == MATCH_NONE); i++) {
    1515
    16     /***********  fix this *****/
    17     if (criteria[i].CCDSelect    && (image[0].ccd             != criteria[i].CCD))    continue;
     16    if (criteria[i].CCDSelect) {
     17      if (image[0].mode == M_MODES) goto valid_ccd;
     18      if (image[0].mode == M_MODES) goto valid_ccd;
     19      if (image[0].ccd  == criteria[i].CCD) goto valid_ccd;
     20      continue;
     21    }
     22  valid_ccd:
     23
    1824    if (criteria[i].TypeSelect   && (image[0].type            != criteria[i].Type))   continue;
     25    if (criteria[i].ModeSelect   && (image[0].mode            != criteria[i].Mode))   continue;
    1926    if (criteria[i].FilterSelect && (image[0].filter          != criteria[i].Filter)) continue;
    2027
  • trunk/Ohana/src/imregister/detrend/define.c

    r3 r21  
    2323    fits_define_bintable_column (theader, "J",    "VERSION",    "image version number",      "",                              1.0, 0.0);
    2424    fits_define_bintable_column (theader, "J",    "ORDER",      "selection order",           "",                              1.0, 0.0);
    25     fits_define_bintable_column (theader, "60A",  "RESERVED",   "space for additions",       "photcode",                      1.0, 0.0);
     25    fits_define_bintable_column (theader, "A",    "MODE",       "image mode",                "",                              1.0, 0.0);
     26    fits_define_bintable_column (theader, "59A",  "RESERVED",   "space for additions",       "",                              1.0, 0.0);
    2627    fits_define_bintable_column (theader, "64A",  "LABEL",      "data label",                "",                              1.0, 0.0);
    2728    fits_define_bintable_column (theader, "256A", "PATH",       "filename in db",            "",                              1.0, 0.0);
  • trunk/Ohana/src/imregister/detrend/entry.c

    r3 r21  
    1818  newdata.exptime   = descriptor.Exptime;
    1919  newdata.Norder    = descriptor.order;
    20   bzero (newdata.dummy, 60);
     20  newdata.mode      = descriptor.mode;
     21  bzero (newdata.dummy, 59);
    2122  snprintf (newdata.label, 64, "%s", descriptor.label);
    2223 
  • trunk/Ohana/src/imregister/detrend/imdef.c

    r10 r21  
    44int DefineImage (char *filename, Descriptor *descriptor) {
    55
    6   int i;
     6  int i, Extend, Nextend;
    77  char line[512];
    88  Header header;
     
    2121    }
    2222    for (i = 0; i < NTYPE; i++) {
    23       if (!strncasecmp (line, typename[i], strlen(typename[i]))) {
     23      if (!strcasecmp (line, typename[i])) {
    2424        descriptor[0].type = i;
    2525      }
     
    4444  }
    4545
     46  /* modes: a special case */
     47  if (descriptor[0].type == T_MODES) {
     48    descriptor[0].mode      = M_MODES;
     49    descriptor[0].CCD       = Nccd;
     50    descriptor[0].CCDSelect = TRUE;
     51  }
     52
     53  /* identify MODE (MEF / SPLIT)  */
     54  descriptor[0].mode = MODE_SPLIT;
     55  Extend = FALSE;
     56  fits_scan (&header, "EXTEND", "%t", 1, &Extend);
     57  if (Extend) {
     58    descriptor[0].mode      = M_MEF;
     59    descriptor[0].CCD       = Nccd;
     60    descriptor[0].CCDSelect = TRUE;
     61    fits_scan (&header, "NEXTEND",  "%d", 1, &Nextend);
     62    if (Nextend != Nccd) {
     63      fprintf (stderr, "warning: NEXTEND != Nccd (%d, %d)\n", Nextend, Nccd);
     64    }     
     65  }
     66
    4667  /* now identify CCD number */
    4768  if (!descriptor[0].CCDSelect) {
    48     if (descriptor[0].type != T_MODES) {
    49       char ID[64];
     69    char ID[64];
    5070
    51       descriptor[0].CCD = -1;
    52       if (!fits_scan (&header, CCDnumKeyword, "%s", 1, ID)) {
    53         fprintf (stderr, "ERROR: failure to read %s from header\n", CCDnumKeyword);
    54         exit (1);
     71    descriptor[0].CCD = -1;
     72    if (!fits_scan (&header, CCDnumKeyword, "%s", 1, ID)) {
     73      fprintf (stderr, "ERROR: failure to read %s from header\n", CCDnumKeyword);
     74      exit (1);
     75    }
     76    for (i = 0; (i < Nccd) && (descriptor[0].CCD == -1); i++) {
     77      if (strnumcmp (ID, ccds[i])) {
     78        descriptor[0].CCD = i;
    5579      }
    56       for (i = 0; (i < Nccd) && (descriptor[0].CCD == -1); i++) {
    57         if (strnumcmp (ID, ccds[i])) {
    58           descriptor[0].CCD = i;
    59         }
    60       }
    61       if (descriptor[0].CCD == -1) {
    62         fprintf (stderr, "warning: ccd id not found\n");
    63         descriptor[0].CCD = 0;
    64       }
    65       descriptor[0].CCDSelect = TRUE;
    66     } else {
    67       descriptor[0].CCD = Nccd;
    6880    }
     81    if (descriptor[0].CCD == -1) {
     82      fprintf (stderr, "warning: ccd id not found\n");
     83      descriptor[0].CCD = 0;
     84    }
     85    descriptor[0].CCDSelect = TRUE;
    6986  }
    7087
  • trunk/Ohana/src/imregister/detrend/modify.c

    r3 r21  
    44int ModifySubset (Match *match, int Nmatch) {
    55 
    6   int i, j, Nimage;
     6  int i, j, Nimage, value;
    77  int *list;
    88  DetReg *image;
     
    1010  image = get_images (&Nimage);
    1111  ALLOCATE (list, int, Nimage);
     12  if (output.ModifyEntry, "mode") {
     13    for (i = 0; i < NMODE; i++) {
     14      if (!strncasecmp (output.ModifyValue, modename[i], strlen(modename[i]))) {
     15        value = i;
     16        goto valid_mode;
     17      }
     18    }
     19    fprintf (stderr, "ERROR: invalid image mode %s\n", output.ModifyValue);
     20    exit (1);
     21  }
     22  if (!strcasecmp (output.ModifyEntry, "order")) {
     23    value = atoi (output.ModifyValue);
     24  }
     25 valid_mode:
    1226
    1327  /* list matched images */
     
    2034    }
    2135    if (!strcasecmp (output.ModifyEntry, "order")) {
    22       image[i].Norder = atoi (output.ModifyValue);
     36      image[i].Norder = value;
     37    }
     38    if (!strcasecmp (output.ModifyEntry, "mode")) {
     39      image[i].mode   = value;
    2340    }
    2441    if (!strcasecmp (output.ModifyEntry, "tstart")) {
     
    2643    }
    2744    if (!strcasecmp (output.ModifyEntry, "tstop")) {
    28       image[i].tstop = output.TimeValue;
     45      image[i].tstop  = output.TimeValue;
    2946    }
    3047  }
  • trunk/Ohana/src/imregister/detrend/output.c

    r14 r21  
    5555  DetReg *newdata;
    5656  FILE *f;
    57   char *startstr, *stopstr, *regstr, *line, key[33];
    58   char *filtstr, *typestr, *ccdstr, *datestr, *p;
     57  char *startstr, *stopstr, *regstr, *line, key[33], ccdinfo[16];
     58  char *filtstr, *typestr, *modestr, *ccdstr, *datestr, *p;
    5959  int i;
    6060  unsigned long tsecond;
     
    8484  fits_define_table_column (&theader, "A10",  "IMAGETYP",   "detrend type",              "");
    8585  fits_define_table_column (&theader, "A10",  "FILTER",     "filter name",               "");
    86   fits_define_table_column (&theader, "A7",   "CCDID",      "ccd name",                  "");
     86  fits_define_table_column (&theader, "A7",   "CCDINFO",    "ccd information",                  "");
     87  fits_define_table_column (&theader, "A7",   "MODE",       "data format mode",                  "");
    8788  fits_define_table_column (&theader, "I3",   "VERSION",    "image version number",      "");
    8889  fits_define_table_column (&theader, "I3",   "ORDER",      "selection order",           "");
     
    9899  fits_modify (&theader, "TNULL6",  "%s", 1, "NULL");  /* IMAGETYP   */
    99100  fits_modify (&theader, "TNULL7",  "%s", 1, "NULL");  /* FILTER     */
    100   fits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* CCDID      */
    101   fits_modify (&theader, "TNULL9",  "%s", 1, "-1");    /* VERSION    */
    102   fits_modify (&theader, "TNULL10", "%s", 1, "-1");    /* ORDER      */
    103   fits_modify (&theader, "TNULL11", "%s", 1, "NULL");  /* LABEL      */
    104   fits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* PATH       */
     101  fits_modify (&theader, "TNULL8",  "%s", 1, "NULL");  /* CCDINFO    */
     102  fits_modify (&theader, "TNULL9",  "%s", 1, "NULL");  /* MODE       */
     103  fits_modify (&theader, "TNULL10", "%s", 1, "-1");    /* VERSION    */
     104  fits_modify (&theader, "TNULL11", "%s", 1, "-1");    /* ORDER      */
     105  fits_modify (&theader, "TNULL12", "%s", 1, "NULL");  /* LABEL      */
     106  fits_modify (&theader, "TNULL13", "%s", 1, "NULL");  /* PATH       */
    105107
    106108  fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* KEY        */
     
    111113  fits_modify (&theader, "TNVAL6",  "%s", 1, "NA");    /* IMAGETYP   */
    112114  fits_modify (&theader, "TNVAL7",  "%s", 1, "NA");    /* FILTER     */
    113   fits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* CCDID      */
    114   fits_modify (&theader, "TNVAL9",  "%s", 1, "-2");    /* VERSION    */
    115   fits_modify (&theader, "TNVAL10", "%s", 1, "-2");    /* ORDER      */
    116   fits_modify (&theader, "TNVAL11", "%s", 1, "NA");    /* LABEL      */
    117   fits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* PATH       */
     115  fits_modify (&theader, "TNVAL8",  "%s", 1, "NA");    /* CCDINFO    */
     116  fits_modify (&theader, "TNVAL9",  "%s", 1, "NA");    /* MODE       */
     117  fits_modify (&theader, "TNVAL10",  "%s", 1, "-2");    /* VERSION    */
     118  fits_modify (&theader, "TNVAL11", "%s", 1, "-2");    /* ORDER      */
     119  fits_modify (&theader, "TNVAL12", "%s", 1, "NA");    /* LABEL      */
     120  fits_modify (&theader, "TNVAL13", "%s", 1, "NA");    /* PATH       */
    118121
    119122  /* create table, add data values */
     
    139142    regstr   = sec_to_date (newdata[0].treg);
    140143    typestr  = typename[newdata[0].type];
     144    modestr  = modename[newdata[0].mode];
    141145    filtstr  = filterhash[newdata[0].filter];
    142     ccdstr   = ccds[newdata[0].ccd];
     146
     147    if (newdata[0].mode == M_SPLIT) {
     148      ccdstr   = ccds[newdata[0].ccd];
     149    } else {
     150      sprintf (ccdinfo, "%-3d", newdata[0].ccd);
     151      ccdstr   = ccdinfo;
     152    }
    143153
    144154    line = fits_table_print (&table, key, startstr, stopstr, regstr,
    145                              newdata[0].exptime, typestr, filtstr, ccdstr,
     155                             newdata[0].exptime, typestr, filtstr, ccdstr, modestr,
    146156                             newdata[0].Nentry, newdata[0].Norder,
    147157                             newdata[0].label, newdata[0].filename);
     
    171181 
    172182  char *dBPath, *typestr, *filtstr;
    173   char *timestr;
    174   int i, j;
    175 
     183  char *timestr, *modestr, *ccdstr, ccdinfo[16], ccdformat[16];
     184  int i, j, Nc;
     185
     186  Nc = strlen (ccds[0]);
     187  sprintf (ccdformat, "%%%dd", Nc);
    176188  dBPath = get_dBPath ();
    177189
     
    195207
    196208    typestr = typename[MIN (MAX (detdata[i].type, 0), NTYPE - 1)];
     209    modestr = modename[MIN (MAX (detdata[i].mode, 0), NMODE - 1)];
    197210    filtstr = filterhash[MIN (MAX (detdata[i].filter, 0), NFILTER - 1)];
     211
     212    if (detdata[i].mode == M_SPLIT) {
     213      ccdstr   = ccds[detdata[i].ccd];
     214    } else {
     215      sprintf (ccdinfo, ccdformat, detdata[i].ccd);
     216      ccdstr   = ccdinfo;
     217    }
    198218
    199219    /* output mode (Select vs List) */
     
    201221      fprintf (stdout, "%s/%s\n", dBPath, detdata[i].filename);
    202222    } else {
    203       fprintf (stdout, "%-40s = %19s %7s %6s %02d %2d %2d %6.1f  %20s\n",
    204                detdata[i].filename, timestr, typestr, filtstr, detdata[i].ccd,
     223      fprintf (stdout, "%-40s = %19s %7s %6s %6s %s %2d %2d %6.1f  %20s\n",
     224               detdata[i].filename, timestr, modestr, typestr, filtstr, ccdstr,
    205225               detdata[i].Nentry, detdata[i].Norder, detdata[i].exptime, detdata[i].label);
    206226    }
Note: See TracChangeset for help on using the changeset viewer.