IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2768


Ignore:
Timestamp:
Dec 20, 2004, 7:25:00 PM (22 years ago)
Author:
eugene
Message:

finished basic work on spreg

Location:
trunk/Ohana/src/imregister/spreg
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/imregister/spreg/args.spregister.c

    r2488 r2768  
    1212    remove_argument (N, &argc, argv);
    1313    NoReg = TRUE;
     14  }
     15
     16  DUMP = FALSE;
     17  if (N = get_argument (argc, argv, "-dump")) {
     18    remove_argument (N, &argc, argv);
     19    DUMP = TRUE;
    1420  }
    1521
     
    3036  IMSORT = FALSE;
    3137
    32   if (strstr (argv[0], "spregister") != (char *) NULL) {
    33     if (argc != 2) {
    34       fprintf (stderr, "ERROR: Usage: spregister (filename) [-noreg]\n");
    35       exit (1);
    36     }
    37     return (TRUE);
     38  if (argc != 2) {
     39    fprintf (stderr, "ERROR: Usage: spregister (filename) [-noreg]\n");
     40    exit (1);
    3841  }
    39   if (strstr (argv[0], "showspinfo") != (char *) NULL) {
    40     if (argc != 2) {
    41       fprintf (stderr, "ERROR: Usage: showspinfo (filename)\n");
    42       exit (1);
    43     }
    44     return (TRUE);
    45   }
    46   return (FALSE);
     42  return (TRUE);
    4743}
  • trunk/Ohana/src/imregister/spreg/db.c

    r2488 r2768  
    139139
    140140  ConvertStruct ((char *) new, sizeof (Spectrum), Nnew, "spectrum");
    141   fits_vadd_rows (&vtable, new, Nnew, sizeof(Spectrum));
     141  fits_vadd_rows (&vtable, (char *) new, Nnew, sizeof(Spectrum));
    142142
    143143  /* write subset to file */
  • trunk/Ohana/src/imregister/spreg/define.c

    r2488 r2768  
    1313  /* define bintable header  layout */
    1414  fits_create_table_header (theader, "BINTABLE", "SPECTRUM_DATABASE");
    15 
    16   fits_define_bintable_column (theader, "32A",  "FILENAME",   "filename in db",        "",                              1.0, 0.0);
    17   fits_define_bintable_column (theader, "64A",  "PATHNAME",   "fullpath in db",        "",                              1.0, 0.0);
    18   fits_define_bintable_column (theader, "16A",  "INSTRUMENT", "instrument",            "",                              1.0, 0.0);
    19   fits_define_bintable_column (theader, "16A",  "TELESCOPE",  "telescope",             "",                              1.0, 0.0);
    20   fits_define_bintable_column (theader, "16A",  "OBJNAME",    "object name",           "",                              1.0, 0.0);
    21   fits_define_bintable_column (theader, "16A",  "EXTNAME",    "extname in file",       "",                              1.0, 0.0);
    2215
    2316  fits_define_bintable_column (theader, "E",    "RA",         "ra",                    "degrees",                       1.0, 0.0);
     
    3831  fits_define_bintable_column (theader, "13A",  "EXTRA",      "room for expansion",    "",                              1.0, 0.0);
    3932
     33  fits_define_bintable_column (theader, "64A",  "PATHNAME",   "fullpath in db",        "",                              1.0, 0.0);
     34  fits_define_bintable_column (theader, "32A",  "FILENAME",   "filename in db",        "",                              1.0, 0.0);
     35  fits_define_bintable_column (theader, "16A",  "EXTNAME",    "extname in file",       "",                              1.0, 0.0);
     36
     37  fits_define_bintable_column (theader, "16A",  "INSTRUMENT", "instrument",            "",                              1.0, 0.0);
     38  fits_define_bintable_column (theader, "16A",  "TELESCOPE",  "telescope",             "",                              1.0, 0.0);
     39  fits_define_bintable_column (theader, "16A",  "OBJNAME",    "object name",           "",                              1.0, 0.0);
     40
    4041  /* create table, add data values */
    4142  fits_create_table (theader, table);
  • trunk/Ohana/src/imregister/spreg/fits_scan_nchar.c

    r2488 r2768  
    55int fits_scan_nchar (Header *header, int size, char *field, int N,...) {
    66
    7   char *tmpstr, *outstr;
     7  char tmpstr[160], *outstr;
    88  va_list argp;
    99  int status;
     
    1313  va_end (argp);
    1414
    15   ALLOCATE (tmpstr, char, size);
    1615  status = fits_scan (header, field, "%s", N, tmpstr);
    1716  strncpy (outstr, tmpstr, size - 1);
    1817  outstr[size-1] = 0;
    1918
    20   free (tmpstr);
    2119  return (status);
    2220}
    2321     
     22void warn_scan_nchar (Header *header, int size, char *field, int N, void *var) {
     23  if (!fits_scan_nchar (header, size, field, N, var)) {
     24    fprintf (stderr, "missing %s not found in header\n", field);
     25  }
     26}
     27
  • trunk/Ohana/src/imregister/spreg/output.c

    r2488 r2768  
    9696
    9797  /* define table layout */
    98   fits_define_table_column (&theader, "A32",  "FILENAME",   "filename in db",        "",                              1.0, 0.0);
    99   fits_define_table_column (&theader, "A64",  "PATHNAME",   "fullpath in db",        "",                              1.0, 0.0);
    100   fits_define_table_column (&theader, "A16",  "INSTRUMENT", "instrument",            "",                              1.0, 0.0);
    101   fits_define_table_column (&theader, "A16",  "TELESCOPE",  "telescope",             "",                              1.0, 0.0);
    102   fits_define_table_column (&theader, "A16",  "OBJNAME",    "object name",           "",                              1.0, 0.0);
    103   fits_define_table_column (&theader, "A16",  "EXTNAME",    "extname in file",       "",                              1.0, 0.0);
     98  fits_define_table_column (&theader, "A32",  "FILENAME",   "filename in db",        "");
     99  fits_define_table_column (&theader, "A64",  "PATHNAME",   "fullpath in db",        "");
     100  fits_define_table_column (&theader, "A16",  "INSTRUMENT", "instrument",            "");
     101  fits_define_table_column (&theader, "A16",  "TELESCOPE",  "telescope",             "");
     102  fits_define_table_column (&theader, "A16",  "OBJNAME",    "object name",           "");
     103  fits_define_table_column (&theader, "A16",  "EXTNAME",    "extname in file",       "");
    104104
    105   fits_define_table_column (&theader, "F10.6","RA",         "ra",                    "degrees",                       1.0, 0.0);
    106   fits_define_table_column (&theader, "F10.6","DEC",        "dec",                   "degrees",                       1.0, 0.0);
    107   fits_define_table_column (&theader, "F6.1", "EXPTIME",    "exposure time",         "seconds",                       1.0, 0.0);
    108   fits_define_table_column (&theader, "F5.3", "AIRMASS",    "airmass",               "",                              1.0, 0.0);
    109   fits_define_table_column (&theader, "F7.2", "Ws",         "spectral range start",  "Angstrom",                      1.0, 0.0);
    110   fits_define_table_column (&theader, "F7.2", "We",         "spectral range end",    "Angstrom",                      1.0, 0.0);
    111   fits_define_table_column (&theader, "F7.2", "dW",         "spectral resolution",   "Angstrom / pix",                1.0, 0.0);
     105  fits_define_table_column (&theader, "F10.6","RA",         "ra",                    "degrees");
     106  fits_define_table_column (&theader, "F10.6","DEC",        "dec",                   "degrees");
     107  fits_define_table_column (&theader, "F6.1", "EXPTIME",    "exposure time",         "seconds");
     108  fits_define_table_column (&theader, "F5.3", "AIRMASS",    "airmass",               "");
     109  fits_define_table_column (&theader, "F7.2", "Ws",         "spectral range start",  "Angstrom");
     110  fits_define_table_column (&theader, "F7.2", "We",         "spectral range end",    "Angstrom");
     111  fits_define_table_column (&theader, "F7.2", "dW",         "spectral resolution",   "Angstrom / pix");
    112112
    113   fits_define_table_column (&theader, "I3",   "NSPECTRA",   "number of spectra",     "",                              1.0, 0.0);
     113  fits_define_table_column (&theader, "I3",   "NSPECTRA",   "number of spectra",     "");
    114114  fits_define_table_column (&theader, "A20",  "OBS_TIME",   "time of observation",   "yyyy/mm/dd,hh:mm:ss");
    115115  fits_define_table_column (&theader, "A20",  "REG_TIME",   "time of registration",  "yyyy/mm/dd,hh:mm:ss");
    116116
    117   fits_define_table_column (&theader, "I2",   "MODE",       "phu/mef/ext",           "",                              1.0, 0.0);
    118   fits_define_table_column (&theader, "I2",   "STATE",      "raw/wav/flx/etc",       "",                              1.0, 0.0);
    119   fits_define_table_column (&theader, "I3",   "FLAG",       "status flags",          "",                              1.0, 0.0);
     117  fits_define_table_column (&theader, "I2",   "MODE",       "phu/mef/ext",           "");
     118  fits_define_table_column (&theader, "I2",   "STATE",      "raw/wav/flx/etc",       "");
     119  fits_define_table_column (&theader, "I3",   "FLAG",       "status flags",          "");
    120120
    121121  /* create table, add data values */
  • trunk/Ohana/src/imregister/spreg/spinfo.c

    r2488 r2768  
    5555  spectrum[0].regtime = now.tv_sec;
    5656
    57   fits_scan_nchar (&header, 15, ObjectKeyword,    1, spectrum[0].objname);
    58   fits_scan_nchar (&header, 15, CameraKeyword,    1, spectrum[0].instrument);
    59   fits_scan_nchar (&header, 15, TelescopeKeyword, 1, spectrum[0].telescope);
     57  warn_scan_nchar (&header, 16, ObjectKeyword,    1, spectrum[0].objname);
     58  warn_scan_nchar (&header, 16, CameraKeyword,    1, spectrum[0].instrument);
     59  warn_scan_nchar (&header, 16, TelescopeKeyword, 1, spectrum[0].telescope);
    6060
    61   fits_scan (&header, ExptimeKeyword,    "%f", 1, &spectrum[0].exptime);
    62   fits_scan (&header, AirmassKeyword,    "%f", 1, &spectrum[0].airmass);
     61  clean_spaces (&spectrum[0].objname);
     62  clean_spaces (&spectrum[0].instrument);
     63  clean_spaces (&spectrum[0].telescope);
     64
     65  warn_scan (&header, ExptimeKeyword,    "%f", 1, &spectrum[0].exptime);
     66  warn_scan (&header, AirmassKeyword,    "%f", 1, &spectrum[0].airmass);
    6367
    6468  /* grab coordinates from header */
    6569  if (RADecDegKeyword[0] & DECDecDegKeyword[0]) {
    6670    /* expect RA & DEC in decimal degrees */
    67     fits_scan (&header, RADecDegKeyword,  "%f", 1, &spectrum[0].ra);
    68     fits_scan (&header, DECDecDegKeyword, "%f", 1, &spectrum[0].dec);
     71    warn_scan (&header, RADecDegKeyword,  "%f", 1, &spectrum[0].ra);
     72    warn_scan (&header, DECDecDegKeyword, "%f", 1, &spectrum[0].dec);
    6973  } else {
    7074    if (RASexigKeyword[0] & DECSexigKeyword[0]) {
    7175      /* expect RA & DEC in hh:mm:ss, dd:mm:ss */
    72       fits_scan (&header, RASexigKeyword,  "%s", 1, line);
     76      warn_scan (&header, RASexigKeyword,  "%s", 1, line);
    7377      dms_to_ddd (&tmp, line);
    7478      spectrum[0].ra = 15*tmp;
    75       fits_scan (&header, DECSexigKeyword, "%s", 1, &line);
     79      warn_scan (&header, DECSexigKeyword, "%s", 1, &line);
    7680      dms_to_ddd (&tmp, line);
    7781      spectrum[0].dec = tmp;
     
    8892  spectrum[0].flag  = 0;
    8993 
    90   spectrum[0].Ws = 0;
    91   spectrum[0].We = 0;
    92   spectrum[0].dW = 0;
     94  {
     95    int Nx;
     96    float crpix, crval, cd11;
     97
     98    warn_scan (&header, "CRPIX1", "%f", 1, &crpix);
     99    warn_scan (&header, "CRVAL1", "%f", 1, &crval);
     100    if (!fits_scan (&header, "CDELT1", "%f", 1, &cd11))
     101      warn_scan (&header, "CD1_1", "%f", 1, &cd11);
     102   
     103    fits_scan (&header, "NAXIS1", "%d", 1, &Nx);
     104
     105    spectrum[0].Ws = (1  - crpix)*cd11 + crval;
     106    spectrum[0].We = (Nx - crpix)*cd11 + crval;
     107    spectrum[0].dW = cd11;
     108  }
    93109 
    94110  strcpy (spectrum[0].extname, "PHU");
Note: See TracChangeset for help on using the changeset viewer.