IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changes in / [20:30]


Ignore:
Location:
/trunk/Ohana/src
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • /trunk/Ohana/src/imregister/base/ConfigFilter.c

    r20 r30  
    6767  int i, blank;
    6868
     69  /* convert spaces to . */
    6970  blank = FALSE;
    7071  p = line;
     
    8182  *p = 0;
    8283
     84  /* find defined filter name */
    8385  for (i = 0; i < NFILTER; i++) {
    8486    if (!strcasecmp (line, filtername[i])) {
     87      /* careful: line[80] */
    8588      strcpy (line, filterhash[filternum[i]]);
    8689      return (TRUE);
    8790    }
    8891  }     
    89   fprintf (stderr, "invalid filter %s\n", line);
    90   snprintf (tmp, 30, "UKN:%s", line);
    91   strcpy (line, tmp);
    92   return (TRUE);
     92  fprintf (stderr, "unknown filter %s\n", line);
     93  return (FALSE);
    9394}
  • /trunk/Ohana/src/imregister/base/ConfigInit.c

    r20 r30  
    3131  WarnConfig (config, "DETREND_RECIPES",             "%s", 0, RecipeFile);
    3232                                                   
     33  /* pixel scale for FWHM */
     34  WarnConfig (config, "ASEC_PIX",                    "%lf", 0, &ARCSEC_PIXEL);
     35
    3336  /* keyword abstractions for parse_time */       
    3437  WarnConfig (config, "DATE-KEYWORD",                "%s", 0, DateKeyword);
  • /trunk/Ohana/src/imregister/detrend/args.detsearch.c

    r20 r30  
    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

    r20 r30  
    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_MEF) 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

    r20 r30  
    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

    r20 r30  
    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

    r20 r30  
    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

    r20 r30  
    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

    r20 r30  
    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    }
  • /trunk/Ohana/src/imregister/imreg/args.imsearch.c

    r20 r30  
    115115
    116116    criteria.Proc = -1;
    117     if (strcasecmp (argv[N], "t")) criteria.Proc = TRUE;
    118     if (strcasecmp (argv[N], "f")) criteria.Proc = FALSE;
     117    if (!strcasecmp (argv[N], "t")) criteria.Proc = TRUE;
     118    if (!strcasecmp (argv[N], "f")) criteria.Proc = FALSE;
    119119    remove_argument (N, &argc, argv);
    120120    if (criteria.Proc == -1) {
     
    124124  }
    125125
     126  criteria.DistSelect = FALSE;
     127  if (N = get_argument (argc, argv, "-dist")) {
     128    criteria.DistSelect = TRUE;
     129    remove_argument (N, &argc, argv);
     130
     131    criteria.Dist = -1;
     132    if (!strcasecmp (argv[N], "t")) criteria.Dist = TRUE;
     133    if (!strcasecmp (argv[N], "f")) criteria.Dist = FALSE;
     134    remove_argument (N, &argc, argv);
     135    if (criteria.Dist == -1) {
     136      fprintf (stderr, "ERROR: -dist (t/f)\n");
     137      exit (1);
     138    }
     139  }
     140
    126141  /*** command-line options which modify the output list */
    127142  if (N = get_argument (argc, argv, "-treg")) {
     
    157172
    158173  /*** command-line options which modify behavior (delete, modify, newpath, mef2split split2mef */
    159   output.delete = output.modify = 0;
    160   output.Newpath = output.mef2split = output.split2mef = FALSE;
    161 
    162   if (N = get_argument (argc, argv, "-del")) {
    163     remove_argument (N, &argc, argv);
    164     output.delete ++;
    165   }
     174  output.delete = output.modify = FALSE;
     175  output.modify_path = output.modify_dist = FALSE;
     176  output.mef2split = output.split2mef = FALSE;
     177
    166178  if (N = get_argument (argc, argv, "-delete")) {
    167179    remove_argument (N, &argc, argv);
    168     output.delete ++;
    169   }
    170   if (N = get_argument (argc, argv, "-newpath")) {
    171     output.Newpath = TRUE;
    172     remove_argument (N, &argc, argv);
    173     output.oldpath = strcreate (argv[N]);
    174     remove_argument (N, &argc, argv);
    175     output.newpath = strcreate (argv[N]);
    176     remove_argument (N, &argc, argv);
    177     output.modify ++;
    178   }
    179   if (N = get_argument (argc, argv, "-mef2split")) {
    180     remove_argument (N, &argc, argv);
    181     output.mef2split = TRUE;
    182     output.modify ++;
    183   }
    184   if (N = get_argument (argc, argv, "-split2mef")) {
    185     remove_argument (N, &argc, argv);
    186     output.split2mef = TRUE;
    187     output.modify ++;
    188   }
    189   if (output.modify + output.delete > 1) {
    190     fprintf (stderr, "can't specify more than one modifier at a time\n");
     180    output.delete = TRUE;
     181  }
     182
     183  if (N = get_argument (argc, argv, "-modify")) {
     184    if (output.delete) {
     185      fprintf (stderr, "can't specify more than one modifier at a time\n");
     186      exit (1);
     187    }
     188    remove_argument (N, &argc, argv);
     189    output.modify = TRUE;
     190   
     191    if (!strcasecmp (argv[N], "path")) {
     192      output.modify_path = TRUE;
     193      remove_argument (N, &argc, argv);
     194      output.oldpath = strcreate (argv[N]);
     195      remove_argument (N, &argc, argv);
     196      output.newpath = strcreate (argv[N]);
     197      remove_argument (N, &argc, argv);
     198      goto valid_modify;
     199    }
     200
     201    if (!strcasecmp (argv[N], "mode")) {
     202      remove_argument (N, &argc, argv);
     203      if (!strcasecmp (argv[N], "mef")) {
     204        output.mef2split = TRUE;
     205        remove_argument (N, &argc, argv);
     206        goto valid_modify;
     207      }
     208      if (!strcasecmp (argv[N], "split")) {
     209        output.split2mef = TRUE;
     210        remove_argument (N, &argc, argv);
     211        goto valid_modify;
     212      }
     213    }
     214
     215    if (!strcasecmp (argv[N], "dist")) {
     216      output.modify_dist = TRUE;
     217      remove_argument (N, &argc, argv);
     218      if (!strcasecmp (argv[N], "t")) {
     219        output.dist = TRUE;
     220        remove_argument (N, &argc, argv);
     221        goto valid_modify;
     222      }
     223      if (!strcasecmp (argv[N], "f")) {
     224        output.dist = FALSE;
     225        remove_argument (N, &argc, argv);
     226        goto valid_modify;
     227      }
     228    }
     229
     230    if (!strcasecmp (argv[N], "help")) {
     231      fprintf (stderr, "-modify option: \n");
     232      fprintf (stderr, "  -modify path (oldpath) (newpath)\n");
     233      fprintf (stderr, "  -modify mode (mef | split)\n");
     234      fprintf (stderr, "  -modify dist (t | f)\n\n");
     235      fprintf (stderr, "  mode mef : convert mef to split\n");
     236      fprintf (stderr, "  mode split : convert split to mef\n");
     237      exit (2);
     238    }
     239
     240    fprintf (stderr, "invalid -modify option, try -modify help\n");
    191241    exit (1);
    192242  }
     243 valid_modify:
    193244
    194245  if (argc != 1) {
     
    197248    fprintf (stderr, "  [-etime exptime] [-filter name] [-name string] [-proc t/f]\n");
    198249    fprintf (stderr, "  [-treg] [-seq] [-pt] [-table] [-cadctable] [-bintable]\n");
    199     fprintf (stderr, "  [-del] [-delete] [-newpath (oldpath) (newpath)] [-mef2split] [-split2mef]\n");
     250    fprintf (stderr, "  [-delete] [-modify (options)]\n");
    200251    exit (1);
    201252  }
  • /trunk/Ohana/src/imregister/imreg/match.c

    r20 r30  
    3131    if (criteria.ExptimeSelect && (fabs (image[i].exptime - criteria.Exptime) > 5.0)) continue;
    3232    if (criteria.NameSelect    && (strncasecmp (image[i].filename, criteria.Name, Nname))) continue;
    33     if (criteria.ProcSelect    && (criteria.Proc ^ (image[i].bias == 0.0))) continue;
     33    if (criteria.ProcSelect    && (criteria.Proc ^ (image[i].bias != 0.0))) continue;
     34    if (criteria.DistSelect    && (criteria.Dist ^ (image[i].flag && IMREG_DIST))) continue;
    3435
    3536    match[N] = i;
  • /trunk/Ohana/src/imregister/imreg/modify.c

    r20 r30  
    66  int i, j, Nold;
    77  char *tmppath;
    8   char *ext, *root, *path;
     8  char *ext, *root, *path, dist;
    99  int Nimage;
    1010  RegImage *image;
     
    1313
    1414  /* create some necessary variables */
    15   if (output.newpath) {
     15  if (output.modify_path) {
    1616    Nold = strlen (output.oldpath);
    1717    ALLOCATE (tmppath, char, 128);
     18  }
     19  if (output.modify_dist) {
     20    dist = (output.dist) ? 0xff : ~IMREG_DIST;
    1821  }
    1922
     
    2326    i = match[j];
    2427
    25     if (output.newpath) {
     28    if (output.modify_path) {
    2629      if (!strncmp (image[i].pathname, output.oldpath, Nold)) {
    2730        strcpy (tmppath, &image[i].pathname[Nold]);
     
    5962      }
    6063    }
     64
     65    if (output.modify_dist) {
     66      if (output.dist)  image[i].flag |=  IMREG_DIST;
     67      if (!output.dist) image[i].flag &= ~IMREG_DIST;
     68    }
     69
    6170  }
    6271
  • /trunk/Ohana/src/imregister/imreg/output.c

    r20 r30  
    175175void DumpCADCTable (char *filename, RegImage *image, int *match, int Nmatch) {
    176176 
    177   int i;
    178   char *obsstr, *regstr, *line, dummy[64];
    179   char *modestr, *typestr, *ccdstr, *datestr;
     177  int i, obsid;
     178  char *datestr, *line, hdrname[99];
    180179  unsigned long tsecond;
    181180  Header header, theader;
     
    183182  FTable table;
    184183  RegImage *subset;
    185 
    186   bzero (dummy, 64);
    187   memset (dummy, ' ', 63);
    188184
    189185  /* create primary header */
     
    204200
    205201  /* define table layout */
    206   fits_define_table_column (&theader, "A64",   "FILE",       "filename in db",        "",                              1.0, 0.0);
    207   fits_define_table_column (&theader, "F7.1",  "SKY",        "background level",     "counts / pixel",                 1.0, 0.0);
    208   fits_define_table_column (&theader, "F6.1",  "BIAS",       "bias level",           "counts / pixel",                 1.0, 0.0);
    209   fits_define_table_column (&theader, "F5.2",  "FWHM",       "image quality",        "pixels",                         1.0, 0.0);
     202  fits_define_table_column (&theader, "A99",   "FILENAME",     "filename in db",        "",                              1.0, 0.0);
     203  fits_define_table_column (&theader, "A99",   "HDR_FILENAME", "filename in db",        "",                              1.0, 0.0);
     204  fits_define_table_column (&theader, "I10",   "OBSID",        "image ID number",        "pixels",                         1.0, 0.0);
     205  fits_define_table_column (&theader, "F5.2",  "OBS_IQ",       "image quality",        "pixels",                         1.0, 0.0);
     206  fits_define_table_column (&theader, "F9.3",  "OBS_BG_VAL",   "background level",     "counts / pixel",                 1.0, 0.0);
    210207
    211208  /* define TNULL, TNVAL values */
    212   fits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* FILE  */
    213   fits_modify (&theader, "TNULL2",  "%s", 1, "NaN");   /* SKY   */
    214   fits_modify (&theader, "TNULL3",  "%s", 1, "NaN");   /* BIAS  */
    215   fits_modify (&theader, "TNULL4",  "%s", 1, "NaN");   /* FWHM  */
    216 
    217   fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* FILE  */
    218   fits_modify (&theader, "TNVAL2",  "%s", 1, "Inf");   /* SKY   */
    219   fits_modify (&theader, "TNVAL3",  "%s", 1, "Inf");   /* BIAS  */
    220   fits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");   /* FWHM  */
     209  fits_modify (&theader, "TNULL1",  "%s", 1, "NULL");  /* FILENAME     */
     210  fits_modify (&theader, "TNULL2",  "%s", 1, "NULL");  /* HDR_FILENAME */
     211  fits_modify (&theader, "TNULL3",  "%s", 1, "0");     /* OBSID        */
     212  fits_modify (&theader, "TNULL4",  "%s", 1, "NaN");   /* OBS_IQ       */
     213  fits_modify (&theader, "TNULL5",  "%s", 1, "NaN");   /* OBS_BG_VAL   */
     214
     215  fits_modify (&theader, "TNVAL1",  "%s", 1, "NA");    /* FILENAME     */
     216  fits_modify (&theader, "TNVAL2",  "%s", 1, "NA");    /* HDR_FILENAME */
     217  fits_modify (&theader, "TNVAL3",  "%s", 1, "-1");    /* OBSID        */
     218  fits_modify (&theader, "TNVAL4",  "%s", 1, "Inf");   /* OBS_IQ       */
     219  fits_modify (&theader, "TNVAL5",  "%s", 1, "Inf");   /* OBS_BG_VAL   */
    221220
    222221  /* create table, add data values */
     
    226225  for (i = 0; i < Nmatch; i++) {
    227226    subset = &image[match[i]];
    228     line = fits_table_print (&table, subset[0].pathname, subset[0].sky, subset[0].bias, subset[0].fwhm);
     227
     228    /* filename: NNNNNNx.fits or NNNNNNxNN.fits */
     229    /* OBSID & HDR_FILENAME are derived from FILENAME */
     230    obsid = atoi (subset[0].filename);
     231    if (obsid < 400000) fprintf (stderr, "warning: derived obsid < 400000\n");
     232    sprintf (hdrname, "%s.hdr", subset[0].filename);
     233
     234    line = fits_table_print (&table, subset[0].filename, hdrname, obsid, (subset[0].fwhm*ARCSEC_PIXEL), subset[0].sky);
    229235
    230236    fits_add_rows (&table, line, 1, strlen(line));
  • /trunk/Ohana/src/imregister/include/detrend.h

    r20 r30  
    1212  int order;
    1313  int type;
     14  char mode;
    1415  int CCDSelect;     int CCD;
    1516  int ExptimeSelect; float Exptime;
     
    1920/* MosaicSelect & ImageSelect define these values */
    2021typedef struct {
     22  int ModeSelect;    int Mode;
    2123  int TypeSelect;    int Type;
    2224  int CCDSelect;     int CCD;
     
    5759# define DEBUG 0
    5860
    59 # define NTYPE 10
    60 enum {T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES, T_ANY};
    61 static char typename[NTYPE][32] = {"none", "object", "dark", "bias", "flat", "mask", "fringe", "scatter", "modes", "any"};
    62 static char typecode[NTYPE] = {'x', 'o', 'd', 'b', 'f', 'm', 'r', 's'};
     61# define NTYPE 11
     62enum {T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES, T_FRINGEPTS, T_ANY};
     63static char typename[NTYPE][32] = {"none", "object", "dark", "bias", "flat", "mask", "fringe", "scatter", "modes", "frpts", "any"};
     64static char typecode[NTYPE]     = {'x',    'o',      'd',    'b',    'f',    'm',    'r',      's',       'M',     'F'};
    6365
    64 # define NMODE 6
    65 enum {M_NONE, M_MEG, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE};
    66 static char modename[6][32] = {"none", "MEF", "SPLIT", "SINGLE", "CUBE", "SLICE"};
     66# define NMODE 7
     67enum {M_NONE, M_MEF, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE, M_MODES};
     68static char modename[NMODE][32] = {"none", "MEF", "SPLIT", "SINGLE", "CUBE", "SLICE", "MODES"};
    6769
    6870char **RecipeType;
  • /trunk/Ohana/src/imregister/include/imreg.h

    r20 r30  
    1010  int NameSelect;    char *Name;
    1111  int ProcSelect;    int Proc;
     12  int DistSelect;    int Dist;
    1213  int Ntimes;        unsigned long *tstart, *tstop;
    1314  int MatchNumber;
     
    1920  int modify;
    2021
    21   int Newpath, mef2split, split2mef;
     22  int modify_path;
    2223  char *oldpath, *newpath;
     24
     25  int mef2split, split2mef;
     26  int modify_dist, dist;
    2327
    2428  int HST;
  • /trunk/Ohana/src/imregister/include/imregister.h

    r20 r30  
    4646char DECSexigKeyword[16];
    4747char CameraKeyword[16];
     48double ARCSEC_PIXEL;
    4849
    4950/* global vars used by camera info */
  • /trunk/Ohana/src/perl/src/fr.getfringe

    r20 r30  
    77
    88# define the path to include FLIPS:
    9 $flipsconf=`gconfig -q FLIPSCONF`; chop ($flipsconf);
    10 $flipspath=`gconfig -q FLIPSPATH`; chop ($flipspath);
     9$flipsconf=`gconfig -q FLIPSCONF`; chop $flipsconf;
     10$flipspath=`gconfig -q FLIPSPATH`; chop $flipspath;
    1111$ENV{'PATH'} = "$ENV{'PATH'}:$flipspath";
    1212$ENV{'FLIPSDIR'} = $flipsconf;
     
    2323foreach $line (@inlist) { chop $line; }
    2424
    25 # gtfringe is appending to the output file:
     25# getfringe appends to the output file:
    2626unlink ($output);
    2727
    28 # we construct the Fringe Coord File from: FRINGE_COORD_PATH/CAMERA-FILTER-CCDNN-FringeCoord.reg
    29 $fkey      = `gconfig -q FILTER-KEYWORD`;    chop ($fkey);
    30 $ckey      = `gconfig -q CAMERA-KEYWORD`;    chop ($ckey);
    31 $coordpath = `gconfig -q FRINGE_COORD_PATH`; chop ($coordpath);
    32 $Nccd      = `cameraconfig -Nccd`;           chop ($Nccd);
    33 $answer = `cameraconfig -ccds`;
    34 @ccds = split (" ", $answer);
    35 
    36 # double check lists size:
     28# basic camera data
     29$Nccd      = `cameraconfig -Nccd`;  chop $Nccd;
     30$answer    = `cameraconfig -ccds`;  @ccds = split (" ", $answer);
    3731if ($Nccd != @inlist) { die "ERROR: mis-matched image list sizes\n"; }
    3832
    39 # find filter and camera from image
    40 $answer = `echo $inlist[0] | fields $fkey $ckey`;
    41 ($name, $filtvalue, $camera) = split (" ", $answer);
    42 $filter = `filtnames $filtvalue`; chop $filter;
    43 if ($?) { die "can't find filter for $filtvalue\n"; }
    44 print STDERR "camera: $camera\n";
    45 if ($camera eq "") { $camera = "WFI"; }
    46 #### a temporary hack to for this to work...
     33# find fringe coordinate file
     34$coordfile = `detsearch -image $inlist[0] $ccds[0] split -type frpts`; chop $coordfile;
     35if ($?) { die "ERROR: can't find fringe point file for this image\n"; }
    4736
     37# each call to getfringe adds a line to $output
    4838for ($ccd = 0; $ccd < $Nccd; $ccd++) {
    49    
    50     $infile    = $inlist[$ccd];
    51     $coordfile = sprintf "%s/%s-%s-CCD%s-FringeCoord.reg", $coordpath, $camera, $filter, $ccds[$ccd];
    52 
    53     # each call to gtfringe adds a line to $output
    54     vsystem ("getfringe $infile $coordfile $bin $output");
    55     if ($?) {
    56         print STDERR "ERROR running getfringe\n";
    57         exit 1;
    58     }
     39    vsystem ("getfringe $inlist[$ccd] $ccds[$ccd] $coordfile $bin $output");
     40    if ($?) { die "ERROR running getfringe\n"; }
    5941}
    6042
Note: See TracChangeset for help on using the changeset viewer.