IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3606


Ignore:
Timestamp:
Mar 31, 2005, 4:42:29 PM (21 years ago)
Author:
eugene
Message:

working towards autocode for imregister

Location:
trunk/Ohana/src/imregister
Files:
3 added
2 deleted
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/imregister/Makefile

    r3593 r3606  
    4343
    4444IMOBJ  = \
    45 $(IMREG)/db.$(ARCH).o     \
    4645$(IMREG)/delete.$(ARCH).o \
    47 $(IMREG)/define.$(ARCH).o \
    4846$(IMREG)/iminfo.$(ARCH).o \
    4947$(IMREG)/load_probes.$(ARCH).o  \
    5048$(IMREG)/match.$(ARCH).o  \
    5149$(IMREG)/modify.$(ARCH).o \
     50$(IMREG)/newimages.$(ARCH).o \
    5251$(IMREG)/output.$(ARCH).o \
    5352$(IMREG)/unique.$(ARCH).o \
     
    5655$(IMREG)/ConfigPID.$(ARCH).o   \
    5756$(IMREG)/SetSignals.$(ARCH).o   \
    58 $(IMREG)/imregclient.$(ARCH).o   \
    5957$(IMREG)/rconnect.$(ARCH).o   \
    6058$(IMREG)/FifoOps.$(ARCH).o   \
    6159$(IMREG)/SockScan.$(ARCH).o   \
    6260$(IMREG)/submit.$(ARCH).o
     61
     62# $(IMREG)/imregclient.$(ARCH).o   \
    6363
    6464SPOBJ  = \
     
    7575$(PHOTREG)/delete.$(ARCH).o  \
    7676$(PHOTREG)/match.$(ARCH).o   \
    77 $(PHOTREG)/define.$(ARCH).o  \
    7877$(PHOTREG)/convert.$(ARCH).o \
    7978$(PHOTREG)/output.$(ARCH).o  \
     
    8281DETOBJ  = \
    8382$(DETREND)/criteria.$(ARCH).o  \
    84 $(DETREND)/define.$(ARCH).o    \
    8583$(DETREND)/delete.$(ARCH).o    \
    8684$(DETREND)/entry.$(ARCH).o     \
     
    9593$(DETREND)/unique.$(ARCH).o    \
    9694$(DETREND)/altpath.$(ARCH).o   \
     95$(DETREND)/db_names.$(ARCH).o   \
    9796$(DETREND)/usage.$(ARCH).o
    9897
  • trunk/Ohana/src/imregister/detrend/altpath.c

    r3593 r3606  
    88  char *dBPath, infile[256], outfile[256], line[1024];
    99  struct stat statbuf;
     10  VTable vtable;
    1011
    1112  ALLOCATE (current, int, Nimage);
  • trunk/Ohana/src/imregister/detrend/db_names.c

    r3593 r3606  
    33
    44static char *dBFile  = NULL;
     5static char *dBPath  = NULL;
    56static char *dBTrash = NULL;
    67
    78/*** these are functions to handle the special detrend.db file/trash names ****/
    89
    9 int delete_image (DetReg *item) {
    10  
    11   int status;
    12   char line[256];
    13 
    14   if (output.verbose) fprintf (stderr, "deleting %s\n", item[0].filename);
    15   sprintf (line, "mv -f %s/%s %s", DetrendDB, item[0].filename, dBTrash);
    16   status = system (line);
    17   if (status) fprintf (stderr, "trouble moving %s to trash (%s)\n", item[0].filename, dBTrash);
    18 
    19   if (status)
    20     return (FALSE);
    21   else
    22     return (TRUE);
    23 }
    24 
    25 char *set_db_name () {
     10char *set_dBFile () {
    2611
    2712  struct stat statbuf;
    2813  int status;
    2914
     15  dBPath = DetrendDB;
     16
    3017  /* define dBFile based on config data */
    31   ALLOCATE (dBFile, char, strlen (DetrendDB) + 15);
    32   sprintf (dBFile, "%s/detrend.db", DetrendDB);;
    33   ALLOCATE (dBTrash, char, strlen (DetrendDB) + 15);
    34   sprintf (dBTrash, "%s/trash", DetrendDB);
     18  ALLOCATE (dBFile, char, strlen (dBPath) + 15);
     19  sprintf (dBFile, "%s/detrend.db", dBPath);;
     20  ALLOCATE (dBTrash, char, strlen (dBPath) + 15);
     21  sprintf (dBTrash, "%s/trash", dBPath);
    3522
    3623  /* check on directories */
    37   status = stat (DetrendDB, &statbuf);
     24  status = stat (dBPath, &statbuf);
    3825  if (output.Modify) {
    3926    if (status == -1) {
    40       if (mkdirhier (DetrendDB) == -1) {
    41         fprintf (stderr, "ERROR: can't find or create path %s\n", DetrendDB);
     27      if (mkdirhier (dBPath) == -1) {
     28        fprintf (stderr, "ERROR: can't find or create path %s\n", dBPath);
    4229        exit (1);
    4330      }
     
    5542  return (dBFile);
    5643}
     44
     45char *get_dBPath () {
     46
     47  return (dBPath);
     48
     49}
     50
     51int delete_image (DetReg *item) {
     52 
     53  int status;
     54  char line[256];
     55
     56  if (output.verbose) fprintf (stderr, "deleting %s\n", item[0].filename);
     57  sprintf (line, "mv -f %s/%s %s", dBPath, item[0].filename, dBTrash);
     58  status = system (line);
     59  if (status) fprintf (stderr, "trouble moving %s to trash (%s)\n", item[0].filename, dBTrash);
     60
     61  if (status)
     62    return (FALSE);
     63  else
     64    return (TRUE);
     65}
     66
  • trunk/Ohana/src/imregister/detrend/delete.c

    r3593 r3606  
    2323  if (Ndel == 0) {
    2424    fprintf (stderr, "SUCCESS\n");
    25     fits_close_db (&db);
     25    fits_db_close (db);
    2626    exit (0);
    2727  }
  • trunk/Ohana/src/imregister/detrend/modify.c

    r3593 r3606  
    66  int i, j, value;
    77  int *list;
     8  VTable vtable;
    89 
    910  value = M_UNDEF;
     
    4445
    4546  /** we may later want to pull this out and put it elsewhere **/
    46   fits_vtable_from_ftable (&db[0].ftable, &vtable, match, Nmatch);
     47  fits_vtable_from_ftable (&db[0].ftable, &vtable, list, Nmatch);
    4748  for (i = 0; i < Nmatch; i++) {
    4849    fits_convert_DetReg ((DetReg *) vtable.buffer[i], sizeof (DetReg), 1);
  • trunk/Ohana/src/imregister/detrend/output.c

    r3593 r3606  
    66
    77int OutputSubset (DetReg *image, int Nimage, Match *match, int Nmatch) {
    8 
    9   image = get_images (&Nimage);
    108
    119  if (output.table != (char *) NULL) {
     
    2523
    2624  int i, j;
    27   Header header, theader;
     25  FILE *f;
     26  Header header;
    2827  Matrix matrix;
    29   FTable table;
     28  Header theader;
     29  FTable ftable;
    3030  DetReg *subset;
    31   FILE *f;
    3231
    3332  ALLOCATE (subset, DetReg, MAX (1, Nmatch));
     
    5453  fits_table_set_DetReg (&ftable, subset, Nmatch);
    5554
    56   fits_write_header  (f, &header);
    57   fits_write_matrix  (f, &matrix);
    58   fits_write_Theader (f, &theader);
    59   fits_write_table   (f, &table);
     55  fits_fwrite_header  (f, &header);
     56  fits_fwrite_matrix  (f, &matrix);
     57  fits_fwrite_Theader (f, &theader);
     58  fits_fwrite_table   (f, &ftable);
     59  fclose (f);
    6060  exit (0);
    6161}
  • trunk/Ohana/src/imregister/detrend/select.c

    r3 r3606  
    22# include "detrend.h"
    33
    4 Match SelectEntry (Match *list, int Nlist, Criteria *crit) {
     4Match SelectEntry (DetReg *image, int Nimage, Match *list, int Nlist, Criteria *crit) {
    55
    66  /* force a single selection */
     
    1616
    1717  int i, j, entry, order, matchnum;
    18   int nmatch, Nmatch, Nimage;
     18  int nmatch, Nmatch;
    1919  unsigned int tstart;
    2020  Match *match, *tmatch, answer;
    21   DetReg *image;
    22 
    23   image = get_images (&Nimage);
    2421
    2522  Nmatch = Nlist;
  • trunk/Ohana/src/imregister/detrend/unique.c

    r3593 r3606  
    6161
    6262    /* subset, Nsubset has a unique list of matched images */
    63     unique[Nunique] = SelectEntry (subset, Nsubset, crit);
     63    unique[Nunique] = SelectEntry (image, Nimage, subset, Nsubset, crit);
    6464    Nunique ++;
    6565  }
  • trunk/Ohana/src/imregister/imreg/delete.c

    r2823 r3606  
    22# include "imreg.h"
    33
    4 void DeleteSubset (int *match, int Nmatch) {
     4void DeleteSubset (FITS_DB *db, RegImage *image, int Nimage, int *match, int Nmatch) {
    55
    66  int i, j;
    7   int *keep, Ndel, Nimage, Nsubset;
    8   RegImage *image, *subset;
    9 
    10   image = get_images (&Nimage);
     7  int *keep, Ndel, Nsubset;
     8  RegImage *subset;
    119
    1210  ALLOCATE (keep, int, MAX (Nimage, 1));
     
    2220  }
    2321  fprintf (stderr, "delete %d images\n", Ndel);
    24 
    2522  if (Ndel == 0) {
    2623    fprintf (stderr, "SUCCESS\n");
    27     close_db ();
     24    fits_db_close (db);
    2825    exit (0);
    2926  }
     
    4138  free (keep);
    4239  free (image);
    43   set_images (subset, Nsubset);
    4440
    45   save_db ();
     41  /** we may later want to pull this out and put it elsewhere **/
     42  /** free db[0].theader, db[0].table.buffer? **/
     43  fits_table_set_RegImage (&db[0].ftable, subset, Nsubset);
     44  fits_db_save (db);
     45  fits_db_close (db);
     46  fits_db_free (db);
     47
    4648  fprintf (stderr, "SUCCESS\n");
    4749  exit (0);
  • trunk/Ohana/src/imregister/imreg/iminfo.c

    r2803 r3606  
    99  Header header;
    1010  int extend;
    11   int Naxes, Nextend;
     11  int Naxes, Nextend, Nseq;
    1212  char Imagetype[80], line[80];
    1313  struct timeval now;
    1414  char *name, *cwd, *tempname;
    1515  double tmp;
    16   float *dtime;
    1716
    1817  ALLOCATE (image, RegImage, 1);
     
    3635  Naxes = 2;
    3736  extend = FALSE;
    38   image[0].mode = M_SINGLE;
    39   image[0].flag = 0;
    40   image[0].ccd  = 0;
     37  image[0].mode     = M_SINGLE;
     38  image[0].flag     = 0;
     39  image[0].ccd      = 0;
     40  image[0].seq      = 0;
     41  image[0].seqtime  = 0;
    4142
    4243  /* determine data layout (SINGLE, SPLIT, MEF, CUBE, SLICE) */
     
    4849    image[0].ccd  = Nextend;
    4950  }
     51  /* need to distinguish MEF, CUBE, and MEF-CUBE */
    5052  if (Naxes == 3) { /* data cube */
    51     fits_scan (&header, "NAXIS3",  "%d", 1, &Nextend);
     53    fits_scan (&header, "NAXIS3",  "%d", 1, &Nseq);
     54    if (image[0].mode == M_MEF) {
     55      fprintf (stderr, "MEF-CUBE not ready\n");
     56      exit (1);
     57    }
    5258    image[0].mode = M_CUBE;
    53     image[0].ccd  = Nextend;
    54     dtime = (float *)&image[0].junk[0];
    55     fits_scan (&header, "SEQTIME", "%f", 1, dtime);
     59    image[0].seq  = Nseq;
     60    /* abstract this name somewhere ? */
     61    fits_scan (&header, "SEQTIME", "%f", 1, &image[0].seqtime);
    5662  }
    5763  if (SingleIsSplit && (image[0].mode == M_SINGLE)) {
     
    119125  /* the probes have to agree with the entries in the program 'gettemps' */
    120126  {
    121     int i;
    122127    double pvalues[4];
    123128    static int probes[] = {2, 36, 43, 45};
    124129    if (load_probes (TempLogFile, image[0].obstime, probes, pvalues, 4)) {
    125       for (i = 0; i < 4; i++) {
    126         image[0].teltemp[i] = pvalues[i];
    127       }
     130        image[0].teltemp_0 = pvalues[0];
     131        image[0].teltemp_1 = pvalues[1];
     132        image[0].teltemp_2 = pvalues[2];
     133        image[0].teltemp_3 = pvalues[3];
    128134    } else {
    129135      fprintf (stderr, "failure to get probe data\n");
    130       image[0].teltemp[0] = 200.0;
    131       image[0].teltemp[1] = 200.0;
    132       image[0].teltemp[2] = 200.0;
    133       image[0].teltemp[3] = 200.0;
     136      image[0].teltemp_0 = 200.0;
     137      image[0].teltemp_1 = 200.0;
     138      image[0].teltemp_2 = 200.0;
     139      image[0].teltemp_3 = 200.0;
    134140    }
    135141  }
  • trunk/Ohana/src/imregister/imreg/match.c

    r2803 r3606  
    22# include "imreg.h"
    33
    4 int *match_criteria (int *Nmatch) {
     4int *match_criteria (RegImage *image, int Nimage, int *Nmatch) {
    55
    6   int i, j, Nname, Nimage;
     6  int i, j, Nname;
    77  int N, NMATCH;
    88  int *match;
    99  int reject;
    10   RegImage *image;
    1110
    1211  /* create selection index */
     
    1817  if (criteria.NameSelect) Nname = strlen (criteria.Name);
    1918 
    20   image = get_images (&Nimage);
    21 
    2219  /* find entries that matches criteria */
    2320  for (i = 0; i < Nimage; i++) {
     
    4643}
    4744
    48 int *match_images (RegImage *subset, int Nsubset, int *Nmatch) {
     45int *match_images (RegImage *image, int Nimage, RegImage *subset, int Nsubset, int *Nmatch) {
    4946 
    50   int i, j, N, Nimage, Nfound;
     47  int i, j, N, Nfound;
    5148  int *match;
    52   RegImage *image;
    53 
    54   image = get_images (&Nimage);
    5549
    5650  /* find matching images - very inefficient : sort by obstime, find those first? */
  • trunk/Ohana/src/imregister/imreg/modify.c

    r2803 r3606  
    22# include "imreg.h"
    33
    4 void ModifySubset (int *match, int Nmatch) {
     4void ModifySubset (FITS_DB *db, RegImage *image, int Nimage, int *match, int Nmatch) {
    55
    66  int i, j, Nold;
    77  char *tmppath;
    88  char *ext, *root, *path, dist;
    9   int Nimage;
    10   RegImage *image;
     9  VTable vtable;
    1110
    1211  Nold = 0;
    1312  tmppath = NULL;
    14 
    15   image = get_images (&Nimage);
    1613
    1714  /* create some necessary variables */
     
    8178  }
    8279
    83   update_db (match, Nmatch);
     80  /** we may later want to pull this out and put it elsewhere **/
     81  fits_vtable_from_ftable (&db[0].ftable, &vtable, match, Nmatch);
     82  for (i = 0; i < Nmatch; i++) {
     83    fits_convert_RegImage ((RegImage *) vtable.buffer[i], sizeof (RegImage), 1);
     84  }
     85  fits_db_update (db, &vtable);
     86  fits_db_close (db);
     87  fits_db_free (db);
     88
    8489  fprintf (stderr, "SUCCESS\n");
    8590  exit (0);
  • trunk/Ohana/src/imregister/imreg/output.c

    r2803 r3606  
    2424
    2525/* given a subset list, write out the selected images, if desired */
    26 void OutputSubset (int *match, int Nmatch) {
    27 
    28   int Nimage;
    29   RegImage *image;
    30 
    31   image = get_images (&Nimage);
     26void OutputSubset (RegImage *image, int Nimage, int *match, int Nmatch) {
    3227
    3328  if (output.table != (char *) NULL) {
     
    5348
    5449  int i, j;
    55   Header header, theader;
     50  FILE *f;
     51  Header header;
    5652  Matrix matrix;
    57   FTable table;
     53  Header theader;
     54  FTable ftable;
    5855  RegImage *subset;
    5956
    60   /* define table layout */
    61   define_table (&header, &matrix, &theader, &table);
    62 
     57  /* extract subset list to single array */
    6358  ALLOCATE (subset, RegImage, MAX (1, Nmatch));
    6459  for (i = 0; i < Nmatch; i++){
     
    6661    memcpy (&subset[i], &image[j], sizeof (RegImage));
    6762  }
    68   ConvertStruct ((char *) subset, sizeof (RegImage), Nmatch, "regimage");
    69   fits_add_rows (&table, (char *) subset, Nmatch, sizeof (RegImage));
    70 
    71   fits_write_header  (filename, &header);
    72   fits_write_matrix  (filename, &matrix);
    73   fits_write_Theader (filename, &theader);
    74   fits_write_table   (filename, &table);
     63
     64  /* open file for output */
     65  f = fopen (filename, "w");
     66  if (f == NULL) {
     67    fprintf (stderr, "ERROR: can't open output file %s\n", filename);
     68    exit (1);
     69  }
     70
     71  /* create primary header */
     72  fits_init_header (&header);   
     73  header.extend = TRUE;
     74  fits_create_header (&header);
     75  fits_create_matrix (&header, &matrix);
     76  fits_print (&header, "NEXTEND", "%d", 1, 1);
     77
     78  ftable.header = &theader;
     79  fits_table_set_RegImage (&ftable, subset, Nmatch);
     80
     81  fits_fwrite_header  (f, &header);
     82  fits_fwrite_matrix  (f, &matrix);
     83  fits_fwrite_Theader (f, &theader);
     84  fits_fwrite_table   (f, &ftable);
     85  fclose (f);
    7586  exit (0);
    7687}
     
    154165                             subset[0].telfocus, subset[0].xprobe, subset[0].yprobe, subset[0].zprobe,
    155166                             subset[0].dettemp,
    156                              subset[0].teltemp[0], subset[0].teltemp[1],
    157                              subset[0].teltemp[2], subset[0].teltemp[3],
     167                             subset[0].teltemp_0, subset[0].teltemp_1, subset[0].teltemp_2, subset[0].teltemp_3,
    158168                             subset[0].rotangle,
    159169                             subset[0].ra, subset[0].dec,
  • trunk/Ohana/src/imregister/imreg/submit.c

    r85 r3606  
    88
    99  /* send these images to FIFOs for imstat and ptolemy */
    10 
    11   /* image[0].ccd contains:
    12      MEF    : Nccd
    13      SPLIT  : ccd number
    14      CUBE   : Nslice
    15      SLICE  : slice number
    16      SINGLE : 0
    17   */
    1810
    1911  if (image[0].mode == M_MEF) {
  • trunk/Ohana/src/imregister/imreg/unique.c

    r2803 r3606  
    33
    44/* input is a subset index of image list, output is a new subset */
    5 int *unique_entries (int *subset, int *Nmatch) {
     5int *unique_entries (RegImage *image, int Nimage, int *subset, int *Nmatch) {
    66
    7   int i, j, k, m, Nimage, Nsubset;
     7  int i, j, k, m, Nsubset;
    88  int N, NMATCH;
    99  int *match, *entry;
    10   RegImage *image;
    1110  char idxline[128];
    1211  char **index;
     
    2019
    2120  Nsubset = *Nmatch;
    22   image = get_images (&Nimage);
    2321
    2422  /* index = filename.ccd */
     
    6563  return (match);
    6664}
    67 
  • trunk/Ohana/src/imregister/include/detrend.h

    r3593 r3606  
    7474DetReg DefineEntry (Descriptor descriptor);
    7575
     76char *set_dBFile ();
    7677char *get_dBPath ();
     78int delete_image (DetReg *image);
     79
    7780int SaveEntry (char *input, DetReg *newdata, char *ID);
    7881
     
    8689Match CheckCriteria (DetReg *image);
    8790
    88 int delete_image (DetReg *image);
    8991int OutputSubset (DetReg *image, int Nimage, Match *match, int Nmatch);
    9092int DumpFitsTable (char *filename, DetReg *detdata, Match *match, int Nmatch);
    9193int PrintSubset (DetReg *detdata, Match *match, int Nmatch);
    92 Match SelectEntry (Match *list, int Nlist, Criteria *crit);
    93 
    94 int ModifySubset (DetReg *image, int Nimage, Match *match, int Nmatch);
    95 void DeleteSubset (DetReg *image, int Nimage, Match *match, int Nmatch);
     94Match SelectEntry (DetReg *image, int Nimage, Match *list, int Nlist, Criteria *crit);
    9695
    9796int usage ();
     
    107106int ckpathname (char *newpath);
    108107int PrintCriteria ();
    109 int SetAltpath (Match *match, int Nmatch);
    110108
     109int SetAltpath (FITS_DB *db, DetReg *image, int Nimage, Match *match, int Nmatch);
     110int ModifySubset (FITS_DB *db, DetReg *image, int Nimage, Match *match, int Nmatch);
     111void DeleteSubset (FITS_DB *db, DetReg *image, int Nimage, Match *match, int Nmatch);
  • trunk/Ohana/src/imregister/include/imreg.h

    r3466 r3606  
    7373
    7474int args (int argc, char **argv);
    75 RegImage *get_images (int *N);
    76 int set_images (RegImage *new, int Nnew);
    77 void init_db ();
    78 int load_db ();
    79 int save_db ();
    80 int update_db (int *match, int Nmatch);
    81 int append_db (RegImage *new, int Nnew);
    82 int create_db ();
    83 int close_db ();
    84 void DeleteSubset (int *match, int Nmatch);
     75
     76void DeleteSubset (FITS_DB *db, RegImage *image, int Nimage, int *match, int Nmatch);
    8577RegImage *iminfo (char *filename);
    86 int *match_criteria (int *Nmatch);
    87 int *match_images (RegImage *subset, int Nsubset, int *Nmatch);
    88 void ModifySubset (int *match, int Nmatch);
     78
     79int *match_criteria (RegImage *image, int Nimage, int *Nmatch);
     80int *match_images (RegImage *image, int Nimage, RegImage *subset, int Nsubset, int *Nmatch);
     81
     82RegImage *newimages (RegImage *image, int *Nimage);
     83
     84void ModifySubset (FITS_DB *db, RegImage *image, int Nimage, int *match, int Nmatch);
    8985void SetOutputMode (char *mode);
    90 void OutputSubset (int *match, int Nmatch);
     86void OutputSubset (RegImage *image, int Nimage, int *match, int Nmatch);
    9187void DumpFitsBintable (char *filename, RegImage *image, int *match, int Nmatch);
    9288void DumpFitsTable (char *filename, RegImage *image, int *match, int Nmatch);
     
    132128int memstr (char *m1, char *m2, int n);
    133129
    134 int *unique_entries (int *subset, int *Nmatch);
     130int *unique_entries (RegImage *image, int Nimage, int *subset, int *Nmatch);
  • trunk/Ohana/src/imregister/include/photreg.h

    r3536 r3606  
    2121  int offset;
    2222  char *db;
     23  int photcodenames;
    2324} output;
    2425
  • trunk/Ohana/src/imregister/photreg/args.photreg.c

    r3538 r3606  
    119119  fprintf (stderr, "missing required fields\n");
    120120  usage ();
     121  return (FALSE);
    121122}
    122123
  • trunk/Ohana/src/imregister/photreg/args.photsearch.c

    r3536 r3606  
    7979  }
    8080
     81  output.photcodenames = TRUE;
     82  if ((N = get_argument (argc, argv, "-photcodes"))) {
     83    remove_argument (N, &argc, argv);
     84    output.photcodenames = FALSE;
     85  }
     86
    8187  output.convert = FALSE;
    8288  if ((N = get_argument (argc, argv, "-convert"))) {
  • trunk/Ohana/src/imregister/photreg/output.c

    r3536 r3606  
    44static char PhotError[] = "unknown";
    55static char PhotNA[] = "unknown";
    6 static char *ASCIIName = (char *) NULL;
    76
    87/* given a subset list, write out the selected images, if desired */
     
    210209    timestr = sec_to_date (photdata[i].tstart);
    211210   
    212     /* convert photcode to filter name */
    213     photstr = GetPhotcodeNamebyCode (photdata[i].photcode);
    214     refcode = GetPhotcodeNamebyCode (photdata[i].refcode);
    215     c1      = GetPhotcodeNamebyCode (photdata[i].c1);
    216     c2      = GetPhotcodeNamebyCode (photdata[i].c2);
    217     if (photstr == (char *) NULL) photstr = PhotError;
    218     if (refcode == (char *) NULL) refcode = PhotError;
    219     if (c1      == (char *) NULL) c1      = PhotError;
    220     if (c2      == (char *) NULL) c2      = PhotError;
     211    if (output.photcodenames) {
     212      /* convert photcode to filter name */
     213      photstr = GetPhotcodeNamebyCode (photdata[i].photcode);
     214      refcode = GetPhotcodeNamebyCode (photdata[i].refcode);
     215      c1      = GetPhotcodeNamebyCode (photdata[i].c1);
     216      c2      = GetPhotcodeNamebyCode (photdata[i].c2);
     217
     218      if (photstr == NULL) photstr = PhotError;
     219      if (refcode == NULL) refcode = PhotError;
     220      if (c1      == NULL) c1      = PhotError;
     221      if (c2      == NULL) c2      = PhotError;
    221222     
    222     fprintf (stdout, "%s %s  %7.4f %7.4f %7.4f  %3d %3d  %7.4f %7.4f  %s  %s %s %s\n",
    223              photstr, timestr, photdata[i].ZP, photdata[i].ZPo, photdata[i].dZP, photdata[i].Nmeas, photdata[i].Ntime,
    224              photdata[i].X, photdata[i].K, refcode, c1, c2, photdata[i].label);
     223      fprintf (stdout, "%s %s  %7.4f %7.4f %7.4f  %3d %3d  %7.4f %7.4f  %s  %s %s %s\n",
     224               photstr, timestr, photdata[i].ZP, photdata[i].ZPo, photdata[i].dZP, photdata[i].Nmeas, photdata[i].Ntime,
     225               photdata[i].X, photdata[i].K, refcode, c1, c2, photdata[i].label);
     226    } else {
     227      fprintf (stdout, "%4d %s  %7.4f %7.4f %7.4f  %3d %3d  %7.4f %7.4f  %4d %4d %4d  %s\n",
     228               photdata[i].photcode, timestr, photdata[i].ZP, photdata[i].ZPo, photdata[i].dZP, photdata[i].Nmeas,
     229               photdata[i].Ntime, photdata[i].X, photdata[i].K,
     230               photdata[i].refcode, photdata[i].c1, photdata[i].c2, photdata[i].label);
     231    }
     232     
    225233    free (timestr);
    226234  }
    227235  return (TRUE);
    228236}
     237
     238/**** the pre-autocode implementation of this program failed to byte-swap refcode!
     239      any tables from before the new implementation have to be treated carefully
     240****/
  • trunk/Ohana/src/imregister/src/detregister.c

    r2823 r3606  
    11# include "imregister.h"
    22# include "detrend.h"
    3 static char *version = "detregister $Revision: 3.1 $";
     3static char *version = "detregister $Revision: 3.2 $";
    44
    55int main (int argc, char **argv) {
    66 
    7   int status;
     7  char *dBFile;
    88  DetReg newdata;
    99  Descriptor descriptor;
     10  VTable vtable;
     11  FITS_DB db;
    1012 
    1113  get_version (argc, argv, version);
     
    1618  SaveEntry (argv[1], &newdata, descriptor.imageID);
    1719
    18   init_db ();
    19   status = load_db ();
    20   if (!status) {
    21     create_db ();
     20  db.lockstate = LCK_HARD;
     21  db.timeout   = 300.0;
     22  fits_db_init (&db);
     23
     24  dBFile = set_dBFile ();
     25  if (!fits_db_lock (&db, dBFile)) {
     26    fits_db_close (&db);
     27    exit (1);
    2228  }
    23   append_db (&newdata, 1);
     29  if (db.dbstate == LCK_EMPTY) {
     30    fits_db_create (&db);   
     31    fits_table_set_DetReg (&db.ftable, NULL, 0);
     32  } else { 
     33    if (!fits_db_load (&db)) {
     34      fits_db_close (&db);
     35      exit (1);
     36    }
     37  }
     38
     39  /** we may later want to pull this out and put it elsewhere **/
     40  fits_convert_DetReg (&newdata, sizeof (DetReg), 1);
     41  fits_table_to_vtable (&db.ftable, &vtable, 0, 0);
     42  fits_vadd_rows (&vtable, (char *) &newdata, 1, sizeof(DetReg));
     43
     44  fits_db_update (&db, &vtable);
     45  fits_db_close (&db);
     46  fits_db_free (&db);
    2447
    2548  fprintf (stderr, "SUCCESS\n");
    2649  exit (0);
    27 
    2850}
    2951
  • trunk/Ohana/src/imregister/src/detsearch.c

    r3593 r3606  
    11# include "imregister.h"
    22# include "detrend.h"
    3 static char *version = "detsearch $Revision: 3.4 $";
     3static char *version = "detsearch $Revision: 3.5 $";
    44
    55int main (int argc, char **argv) {
    66 
    7   int status;
     7  int Nmatch, Ndetrend;
     8  char *dBFile;
     9  FITS_DB db;
    810  Match *match;
    9   int Nmatch;
     11  DetReg *detrend;
    1012
    1113  /* args searches the argument list and generates an array of criteria */
     
    1517  if (output.Criteria) PrintCriteria ();
    1618       
    17   db.lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT;
     19  db.lockstate = (output.Modify || output.Delete) ? LCK_HARD : LCK_SOFT;
    1820  db.timeout   = 300.0;
    1921  fits_db_init (&db);
    2022
    21   dBFile = set_db_name ();
     23  dBFile = set_dBFile ();
    2224  if (!fits_db_lock (&db, dBFile)) {
    2325    fits_db_close (&db);
     
    3032  }
    3133
    32   if (!output.Modify && !output.Delete && !output.Altpath) fits_close_db (&db);
     34  if (!output.Modify && !output.Delete && !output.Altpath) fits_db_close (&db);
    3335  detrend = fits_table_get_DetReg (&db.ftable, &Ndetrend);
    3436 
     
    4143    if (Nmatch == 0) {
    4244      if (output.verbose) fprintf (stderr, "ERROR: can't find any valid detrend files (%s %s %d)\n", get_type_name(criteria[0].Type), filtername[criteria[0].Filter], criteria[0].CCD);
    43       fits_close_db (&db);
     45      fits_db_close (&db);
    4446      exit (1);
    4547    }
  • trunk/Ohana/src/imregister/src/imregister.c

    r2823 r3606  
    11# include "imregister.h"
    22# include "imreg.h"
    3 static char *version = "imregister $Revision: 3.4 $";
     3static char *version = "imregister $Revision: 3.5 $";
    44
    55int main (int argc, char **argv) {
    66 
    7   RegImage *image, *pimage;
    8   int i, status, Nnew;
    9   float *dtime;
     7  int Nregimage;
     8  RegImage *image, *regimage;
     9  VTable vtable;
     10  FITS_DB db;
    1011
    1112  get_version (argc, argv, version);
    1213  args (argc, argv);
     14
    1315  image = iminfo (argv[1]);
    14   init_db ();
     16  regimage = newimages (image, &Nregimage);
    1517
    16   Nnew = 0;
    17   pimage = NULL;
     18  if (NoReg) goto skip_reg;
    1819
    19   /* define new entries (pimage, Nnew) */
    20   switch (image[0].mode) {
    21   case M_CUBE:
    22     Nnew = image[0].ccd + 1;
    23     ALLOCATE (pimage, RegImage, Nnew);
    24     pimage[0] = image[0];
    25     dtime = (float *)&image[0].junk[0];
    26     for (i = 1; i < Nnew; i++) {
    27       pimage[i] = image[0];
    28       pimage[i].ccd = i - 1;
    29       pimage[i].mode = M_SLICE;
    30       pimage[i].obstime += *dtime*pimage[i].ccd;
     20  db.lockstate = LCK_HARD;
     21  db.timeout   = 300.0;
     22  fits_db_init (&db);
     23
     24  if (!fits_db_lock (&db, ImageDB)) {
     25    fits_db_close (&db);
     26    exit (1);
     27  }
     28  if (db.dbstate == LCK_EMPTY) {
     29    fits_db_create (&db);
     30    fits_table_set_RegImage (&db.ftable, NULL, 0);
     31  } else { 
     32    if (!fits_db_load (&db)) {
     33      fits_db_close (&db);
     34      exit (1);
    3135    }
    32     break;
    33   case M_MEF:
    34     Nnew = image[0].ccd;
    35     ALLOCATE (pimage, RegImage, Nnew);
    36     for (i = 0; i < Nnew; i++) {
    37       pimage[i] = image[0];
    38       pimage[i].ccd = i;
    39     }
    40     break;
    41   case M_SPLIT:
    42   case M_SINGLE:
    43     Nnew = 1;
    44     pimage = &image[0];
    45     break;
    4636  }
    4737
    48   set_db (ImageDB);
     38  fits_convert_RegImage (regimage, sizeof (RegImage), Nregimage);
     39  fits_table_to_vtable (&db.ftable, &vtable, 0, 0);
     40  fits_vadd_rows (&vtable, (char *) regimage, Nregimage, sizeof(RegImage));
    4941
    50   if (!NoReg) {
    51     status = load_db ();
    52     if (!status) {
    53       create_db ();
    54     }
    55     append_db (pimage, Nnew);
    56   }
     42  fits_db_update (&db, &vtable);
     43  fits_db_close (&db);
     44  fits_db_free (&db);
    5745
     46skip_reg:
    5847  if (IMSORT) SubmitImages (image);
    5948  fprintf (stderr, "SUCCESS: registered %s\n", argv[1]);
  • trunk/Ohana/src/imregister/src/imregtable.c

    r2823 r3606  
    11# include "imregister.h"
    22# include "imreg.h"
    3 static char *version = "imregtable $Revision: 3.4 $";
     3static char *version = "imregtable $Revision: 3.5 $";
    44
    55int main (int argc, char **argv) {
    66 
    7   int status, Nimage, Nx, Ny;
     7  int Nimage;
    88  char *infile;
    99  RegImage *image;
    10   Header header, theader;
     10  Header header;
     11  Header theader;
    1112  Matrix matrix;
    12   FTable table;
     13  FTable ftable;
     14  VTable vtable;
     15  FITS_DB db;
    1316
    1417  get_version (argc, argv, version);
     
    1619  ConfigCamera ();
    1720  ConfigFilter ();
    18   init_db ();
    19  
     21
    2022  if (argc != 2) {
    2123    fprintf (stderr, "USAGE: imregtable (table)\n");
    2224    exit (1);
    2325  }
    24   infile = argv[1];
    25   output.modify = TRUE;
    2626
    2727  /* load in table data */
    28   table.header = &theader;
    29   if (!fits_read_header (infile, &header))                   escape (UNLOCK, "can't open file header");
    30   if (!fits_read_matrix (infile, &matrix))                   escape (UNLOCK, "can't open file matrix");
    31   if (!fits_read_ftable  (infile, &table, "IMAGE_DATABASE")) escape (UNLOCK, "can't open file table");
     28  infile = argv[1];
    3229
    33   /* convert to internal format */
    34   image = (RegImage *) table.buffer;
    35   fits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
    36   fits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
    37   Nimage = Ny;
     30  /* need to error check these */
     31  ftable.header = &theader;
     32  fits_read_header  (infile, &header);
     33  fits_read_matrix  (infile, &matrix);
     34  fits_read_ftable  (infile, &ftable, "IMAGE_DATABASE");
    3835
    39   ConvertStruct ((char *) image, sizeof (RegImage), Nimage, "regimage");
     36  image = fits_table_get_RegImage (&ftable, &Nimage);
    4037
    41   set_db (ImageDB);
     38  /* load database table */
     39  db.lockstate = LCK_HARD;
     40  db.timeout   = 300.0;
     41  fits_db_init (&db);
    4242
    43   status = load_db ();
    44   if (!status) {
    45     create_db ();
     43  if (!fits_db_lock (&db, ImageDB)) {
     44    fits_db_close (&db);
     45    exit (1);
    4646  }
    47   append_db (image, Nimage);
     47  if (db.dbstate == LCK_EMPTY) {
     48    fits_db_create (&db);
     49    fits_table_set_RegImage (&db.ftable, NULL, 0);
     50  } else { 
     51    if (!fits_db_load (&db)) {
     52      fits_db_close (&db);
     53      exit (1);
     54    }
     55  }
     56
     57  fits_convert_RegImage (image, sizeof (RegImage), Nimage);
     58  fits_table_to_vtable (&db.ftable, &vtable, 0, 0);
     59  fits_vadd_rows (&vtable, (char *) image, Nimage, sizeof(RegImage));
     60
     61  fits_db_update (&db, &vtable);
     62  fits_db_close (&db);
     63  fits_db_free (&db);
    4864
    4965  fprintf (stderr, "SUCCESS: registered %s\n", argv[1]);
  • trunk/Ohana/src/imregister/src/imsearch.c

    r2823 r3606  
    11# include "imregister.h"
    22# include "imreg.h"
    3 static char *version = "imsearch $Revision: 3.3 $";
     3static char *version = "imsearch $Revision: 3.4 $";
    44
    55int main (int argc, char **argv) {
    66 
    7   int status, Nmatch;
    8   int *match;
     7  int Nmatch, Nimage, *match;
     8  RegImage *image;
     9  FITS_DB db;
    910
    1011  get_version (argc, argv, version);
    1112  args (argc, argv);
    12   init_db ();
    1313
    14   set_db (ImageDB);
     14  db.lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT;
     15  db.timeout   = 300.0;
     16  fits_db_init (&db);
    1517
    16   status = load_db ();
    17   if (!status) {
    18     close_db ();
    19     fprintf (stderr, "database missing or empty\n");
    20     exit (0);
     18  if (!fits_db_lock (&db, ImageDB)) {
     19    fits_db_close (&db);
     20    exit (1);
    2121  }
    22   if (!output.modify && !output.delete) close_db ();
     22  if (!fits_db_load (&db)) {
     23    fits_db_close (&db);
     24    exit (1);
     25  }
     26
     27  if (!output.modify && !output.delete) fits_db_close (&db);
     28
     29  image = fits_table_get_RegImage (&db.ftable, &Nimage);
    2330 
    24   match = match_criteria (&Nmatch);
    25   match = unique_entries (match, &Nmatch);
     31  match = match_criteria (image, Nimage, &Nmatch);
     32  match = unique_entries (image, Nimage, match, &Nmatch);
    2633
    27   if (output.modify) ModifySubset (match, Nmatch);
    28   if (output.delete) DeleteSubset (match, Nmatch);
     34  if (output.modify) ModifySubset (&db, image, Nimage, match, Nmatch);
     35  if (output.delete) DeleteSubset (&db, image, Nimage, match, Nmatch);
    2936
    30   OutputSubset (match, Nmatch);
     37  OutputSubset (image, Nimage, match, Nmatch);
    3138
    3239  exit (0);
  • trunk/Ohana/src/imregister/src/imstatreg.c

    r2823 r3606  
    11# include "imregister.h"
    22# include "imreg.h"
    3 static char *version = "imstatreg $Revision: 3.8 $";
    4 # define DEBUG 0
     3static char *version = "imstatreg $Revision: 3.9 $";
    54
    65int main (int argc, char **argv) {
    76 
    87  RegImage *image;
    9   int *match, Nmatch, status, child, Nentry;
     8  int *match, Nmatch, status, Nentry;
    109  FILE *f;
     10  FITS_DB db;
    1111
    1212  get_version (argc, argv, version);
     
    1818  SetSignals ();
    1919
    20 # if (!DEBUG)
    2120  /* fork in background */
    22   if ((child = fork ())) {
    23     if (child == -1) {
     21  if (fork () == -1) {
    2422      fprintf (stderr, "error forking imstatreg -daemon \n");
    2523      exit (1);
     
    2826    exit (0);
    2927  }
    30 # endif
    3128
    3229  /* child process, check for process */
    3330  ConfigPID (PIDFILE);
    3431
    35 # if (!DEBUG)
    3632  /* redirect stderr, stdout to logfile */
    3733  f = freopen (LogFile, "a", stdout);
     
    4238    f = freopen (LogFile, "a", stderr);
    4339  }
    44 # else
    45   f = stderr;
    46 # endif
     40
     41  db.lockstate = LCK_HARD;
     42  db.timeout   = 300.0;
     43  fits_db_init (&db);
    4744
    4845  /* start loop */
     
    5047
    5148    /* check / load / delete temporary database */
    52     set_db (TempDB);
    53     status = load_db ();
    54     if (!status) {
    55       print_db_status ("temporary database empty");
    56       close_db ();
     49    if (!fits_db_lock (&db, TempDB)) {
     50      fits_db_close (&db);
     51      fprintf (stderr, "error locking db (path missing? access permission?)\n");
     52      exit (1);
     53    }
     54    if (db.dbstate == LCK_EMPTY) {
     55      fprintf (stderr, "temporary database empty\n");
     56      goto next;
     57    }
     58    if (!fits_db_load (&db)) {
     59      fprintf (stderr, "error reading temp db\n");
    5760      goto next;
    5861    }
    59     image = get_images (&Nentry);
    60     print_db_status ("temporary database read");
    61     status = set_images (NULL, 0);
    62     close_db ();
    63     print_db_status ("temporary database closed");
     62    image = fits_table_get_RegImage (&db.ftable, &Nimage);
     63    fprintf (stderr, "temporary database read\n");
     64
     65    /* need to zero out this file */
     66    fprintf (stderr, "temporary database closed\n");
    6467 
     68    /******* need to finish this section up *****/
    6569    /* check / load main database */
    6670    set_db (ImageDB);
  • trunk/Ohana/src/imregister/src/photreg.c

    r3538 r3606  
    11# include "imregister.h"
    22# include "photreg.h"
    3 static char *version = "photreg $Revision: 1.5 $";
     3static char *version = "photreg $Revision: 1.6 $";
    44
    55int main (int argc, char **argv) {
    66 
    77  char *filename;
    8   PhotPars newdata, *photdata;
     8  PhotPars newdata;
    99  VTable vtable;
    1010  FITS_DB db;
     
    2323
    2424  if (db.dbstate == LCK_EMPTY) {
    25     fits_init_header (&db.header);   
    26     db.header.extend = TRUE;
    27     fits_create_header (&db.header);
    28     fits_create_matrix (&db.header, &db.matrix);
    29     fits_print (&db.header, "NEXTEND", "%d", 1, 1);
    30     db.ftable.header = &db.theader;
     25    fits_db_create (&db);
    3126    fits_table_set_PhotPars (&db.ftable, NULL, 0);
    3227    /* EXTNAME is set to ZERO_POINTS_3.0 by default */
     
    4338  /** we may later want to pull this out and put it elsewhere **/
    4439  fits_convert_PhotPars (&newdata, sizeof (PhotPars), 1);
    45   fits_table_to_vtable (&db.ftable, &vtable, 0, 1);
     40  fits_table_to_vtable (&db.ftable, &vtable, 0, 0);
     41  fits_vadd_rows (&vtable, (char *) &newdata, 1, sizeof(PhotPars));
     42
    4643  fits_db_update (&db, &vtable);
    4744  fits_db_close (&db);
  • trunk/Ohana/src/imregister/src/photsearch.c

    r3538 r3606  
    11# include "imregister.h"
    22# include "photreg.h"
    3 static char *version = "photsearch $Revision: 1.5 $";
     3static char *version = "photsearch $Revision: 1.6 $";
    44
    55int main (int argc, char **argv) {
    66
    77  char *filename;
    8   int status, Nmatch, Nphotpars;
     8  int Nmatch, Nphotpars;
    99  int *match;
    1010  FITS_DB db;
  • trunk/Ohana/src/imregister/src/showiminfo.c

    r3 r3606  
    11# include "imregister.h"
    22# include "imreg.h"
    3 static char *version = "showiminfo $Revision: 3.0 $";
     3static char *version = "showiminfo $Revision: 3.1 $";
    44
    55int main (int argc, char **argv) {
     
    2424  fprintf (stderr, "xprobe: %f, yprobe: %f, zprobe: %f\n", im.xprobe, im.yprobe, im.zprobe);
    2525  fprintf (stderr, "dettemp: %f, temp0: %f temp1: %f, temp2: %f, temp3: %f\n\n",
    26            im.dettemp, im.teltemp[0], im.teltemp[1], im.teltemp[2], im.teltemp[3]);
     26           im.dettemp, im.teltemp_0, im.teltemp_1, im.teltemp_2, im.teltemp_3);
    2727
    2828  fprintf (stderr, "ra: %f, dec: %f, rotangle: %f\n", im.ra, im.dec, im.rotangle);
  • trunk/Ohana/src/imregister/src/spregister.c

    r3536 r3606  
    11# include "imregister.h"
    22# include "spreg.h"
    3 static char *version = "spregister $Revision: 1.5 $";
     3static char *version = "spregister $Revision: 1.6 $";
    44
    55int main (int argc, char **argv) {
     
    2020  db.lockstate = LCK_HARD;
    2121  db.timeout   = 300.0;
    22 
    2322  fits_db_init (&db);
    2423
     
    2827  }
    2928  if (db.dbstate == LCK_EMPTY) {
    30     fits_init_header (&db.header);   
    31     db.header.extend = TRUE;
    32     fits_create_header (&db.header);
    33     fits_create_matrix (&db.header, &db.matrix);
    34     fits_print (&db.header, "NEXTEND", "%d", 1, 1);
    35     db.ftable.header = &db.theader;
     29    fits_db_create (&db);
    3630    fits_table_set_Spectrum (&db.ftable, NULL, 0);
    3731  } else { 
     
    4236  }
    4337
    44   /** we may later want to pull this out and put it elsewhere **/
    4538  fits_convert_Spectrum (spectrum, sizeof (Spectrum), 1);
    46   fits_table_to_vtable (&db.ftable, &vtable, 0, 1);
     39  fits_table_to_vtable (&db.ftable, &vtable, 0, 0);
     40  fits_vadd_rows (&vtable, (char *) spectrum, 1, sizeof(Spectrum));
     41
    4742  fits_db_update (&db, &vtable);
    4843  fits_db_close (&db);
  • trunk/Ohana/src/imregister/src/spsearch.c

    r3536 r3606  
    11# include "imregister.h"
    22# include "spreg.h"
    3 static char *version = "spsearch $Revision: 1.4 $";
     3static char *version = "spsearch $Revision: 1.5 $";
    44
    55int main (int argc, char **argv) {
     
    2020    exit (1);
    2121  }
    22  
    2322  if (!fits_db_load (&db)) {
    2423    fits_db_close (&db);
Note: See TracChangeset for help on using the changeset viewer.