IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 35758


Ignore:
Timestamp:
Jul 3, 2013, 2:11:56 PM (13 years ago)
Author:
eugene
Message:

add -image-only-force, -cpt, -dup-measures, -fix-Lap, -fix-LAP-imstats, -fix-LAP-edges, -fix-LAP-edges-delete modes

Location:
trunk/Ohana/src/delstar
Files:
8 edited
7 copied

Legend:

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

    r35416 r35758  
    3030$(SRC)/delete_imagefile.$(ARCH).o \
    3131$(SRC)/delete_duplicate_images.$(ARCH).o \
     32$(SRC)/delete_duplicate_measures.$(ARCH).o \
     33$(SRC)/delete_fix_LAP.$(ARCH).o \
     34$(SRC)/delete_fix_LAP_edges.$(ARCH).o \
     35$(SRC)/delete_fix_LAP_edges_delete.$(ARCH).o \
    3236$(SRC)/delete_image_photcodes.$(ARCH).o \
    3337$(SRC)/delete_photcodes.$(ARCH).o \
     
    3943$(SRC)/parse_time.$(ARCH).o       \
    4044$(SRC)/ImageIDsOps.$(ARCH).o       \
     45$(SRC)/ImageOpsFixLAP.$(ARCH).o       \
     46$(SRC)/ImageSubsetFixLAP.$(ARCH).o       \
     47$(SRC)/MeasureEdgeOps.$(ARCH).o       \
    4148$(SRC)/check_permissions.$(ARCH).o \
    4249$(SRC)/Shutdown.$(ARCH).o         
     
    4855$(SRC)/args.$(ARCH).o             \
    4956$(SRC)/delete_duplicate_images.$(ARCH).o \
     57$(SRC)/delete_duplicate_measures.$(ARCH).o \
     58$(SRC)/delete_fix_LAP.$(ARCH).o \
     59$(SRC)/delete_fix_LAP_edges.$(ARCH).o \
     60$(SRC)/delete_fix_LAP_edges_delete.$(ARCH).o \
    5061$(SRC)/delete_photcodes.$(ARCH).o \
    5162$(SRC)/delete_photcodes_single.$(ARCH).o \
    5263$(SRC)/ImageIDsOps.$(ARCH).o       \
     64$(SRC)/ImageOpsFixLAP.$(ARCH).o       \
     65$(SRC)/ImageSubsetFixLAP.$(ARCH).o       \
     66$(SRC)/MeasureEdgeOps.$(ARCH).o       \
    5367$(SRC)/Shutdown.$(ARCH).o         
    5468
  • trunk/Ohana/src/delstar/include/delstar.h

    r35416 r35758  
    2121} IndexArray;
    2222
     23// to determine the image ID, we need time (tzero + trate) and photcode
     24typedef struct {
     25  unsigned int     imageID;
     26  unsigned int     externID;
     27  unsigned short   NX;                   // image width
     28  unsigned short   NY;                   // image height
     29  unsigned int     nstar;                // number of stars on the image
     30  e_time           tzero;                // readout time (row 0)
     31  e_time           tmin;                 // start exp - 1
     32  e_time           tmax;                 // stop exp + 1
     33  unsigned char    trate;                // scan rate (100 usec/pixel)
     34  short            photcode;
     35} ImageSubset;
     36
     37typedef struct {
     38  double R;
     39  double D;
     40  int objID;
     41  int catID;
     42  int detID;
     43  int imageID;
     44} MeasureEdge;
     45
    2346/* global variables set in parameter file */
    2447char   ImageCat[DVO_MAX_PATH];
     
    3356
    3457char  *IMAGENAME;
     58char  *IMAGES;
     59char  *IMSTATS_FILE;
     60char  *MEASURE_EDGE_FILE;
     61char  *EDGE_DELETIONS;
    3562
    3663double NSIGMA;
     
    5279int          HOST_ID;
    5380char        *HOSTDIR;
     81char        *SINGLE_CPT;
    5482
    5583int SKIP_IMAGES;
     
    6088
    6189char *PHOTCODE_LIST;
     90char *UNIQUER;
    6291
    6392int    MODE;
    64 enum {MODE_NONE, MODE_IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED, MODE_PHOTCODES, MODE_DUP_IMAGES};
     93enum {MODE_NONE, MODE_IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED, MODE_PHOTCODES, MODE_DUP_IMAGES, MODE_DUP_MEASURES, MODE_FIX_LAP, MODE_FIX_LAP_STATS, MODE_FIX_LAP_EDGES, MODE_FIX_LAP_EDGES_DELETE};
    6594
    6695char DateKeyword[64], DateMode[64], UTKeyword[64], MJDKeyword[64], JDKeyword[64];
     
    109138void SortAveMeasMatch (off_t *MEAS, off_t *AVE, off_t N);
    110139
    111 int delete_photcodes (int hostID, char *hostpath);
     140int delete_photcodes ();
    112141int delete_photcodes_parallel (SkyList *sky);
    113142int delete_photcodes_catalog (Catalog *catalog, PhotCode **photcodes, int Nphotcodes);
     
    115144int delete_photcodes_single (char *cptname);
    116145
    117 int delete_duplicate_images (int hostID, char *hostpath, FITS_DB *db);
    118 int delete_duplicate_image_measures (int hostID, char *hostpath, IndexArray *imageID);
     146int delete_duplicate_images (FITS_DB *db);
     147int delete_duplicate_image_measures (IndexArray *imageID);
    119148int delete_duplicate_image_measures_parallel (SkyList *sky, IndexArray *imageID);
    120149int delete_duplicate_image_measures_catalog (Catalog *catalog, IndexArray *imageID);
     
    125154IndexArray *ImageIDLoad(char *filename);
    126155int ImageIDSave(char *filename, IndexArray *imageID);
     156
     157int delete_duplicate_measures ();
     158int delete_duplicate_measures_parallel (SkyList *sky);
     159int delete_duplicate_measures_catalog (Catalog *catalog);
     160
     161int delete_fix_LAP (ImageSubset *image, off_t Nimage);
     162int delete_fix_LAP_catalog (Catalog *catalog, ImageSubset *image, off_t Nimage);
     163int delete_fix_LAP_measures (off_t *measureDrop, Catalog *catalog, ImageSubset *image, off_t Nimage);
     164int delete_fix_LAP_parallel (SkyList *sky, ImageSubset *image, off_t Nimage);
     165int delete_fix_LAP_setstats (ImageSubset *image, off_t Nimage);
     166
     167void initImageIndex (ImageSubset *image, off_t Nimage_init);
     168int *getImageIndex (int *maxIndex);
     169int FindIDexp (off_t *ID, off_t *Seq, e_time time, short photcode);
     170int FindIDstk (off_t *ID, off_t *Seq, short *photcode, off_t extID);
     171
     172ImageSubset *ImageSubsetLoad(char *filename, off_t *nimage);
     173int ImageSubsetSave(char *filename, ImageSubset *image, off_t Nimage);
     174ImageSubset *ImagesToSubset (Image *image, off_t N);
     175
     176void sort_fullIDs (uint64_t *I, int *S, off_t N);
     177
     178int ImageValidSave(char *filename);
     179int ImageValidLoad(char *filename);
     180void SummaryImageStats (ImageSubset *image, off_t Nimage_comp);
     181void SummaryImageStats_Full (Image *image, off_t Nimage_comp);
     182void BumpInvalidImage (int Seq);
     183void BumpValidImage (int Seq);
     184
     185MeasureEdge *delete_fix_LAP_edges (off_t *nmeasure_edge);
     186MeasureEdge *delete_fix_LAP_edges_parallel (SkyList *sky, off_t *nmeasure_edge);
     187MeasureEdge *delete_fix_LAP_edges_get_measures (Catalog *catalog, MeasureEdge *measure_edge, off_t *Nmeasure_edge_in, off_t *NMEASURE_EDGE_IN);
     188int          delete_fix_LAP_edges_find_dups (MeasureEdge *measure_edge, off_t Nmeasure_edge);
     189
     190MeasureEdge *MeasureEdgeMerge (MeasureEdge *measure_edge_all, off_t *Nmeasure_edge_in, off_t *NMEASURE_EDGE_IN, MeasureEdge *measure_edge, off_t Nmeasure_edge);
     191int MeasureEdgeSave(char *filename, MeasureEdge *measure_edge, off_t Nmeasure_edge);
     192MeasureEdge *MeasureEdgeLoad(char *filename, off_t *Nmeasure_edge);
     193
     194int delete_fix_LAP_edges_delete ();
     195int delete_fix_LAP_edges_drop_measures (Catalog *catalog, MeasureEdge *measure_edge, off_t Nmeasure_edge, int catIDcount);
     196int delete_fix_LAP_edges_delete_parallel (SkyList *sky);
  • trunk/Ohana/src/delstar/src/Shutdown.c

    r7080 r35758  
    2222
    2323  SetProtect (TRUE);
    24   gfits_db_close (db);
     24  if (db) gfits_db_close (db);
    2525  fprintf (stderr, "ERROR: delstar halted\n");
    2626  exit (1);
  • trunk/Ohana/src/delstar/src/args.c

    r35416 r35758  
    1111  fprintf (stderr, "  delstar -photcodes (list) : delete by photcode\n\n");
    1212  fprintf (stderr, "  delstar -dup-images : delete duplicate images (by externID)\n\n");
     13  fprintf (stderr, "  delstar -dup-measures : delete duplicate measures (by imageID + detID)\n\n");
    1314  fprintf (stderr, "  optional flags:\n");
    1415  fprintf (stderr, "  -v               : verbose mode\n");
    1516  fprintf (stderr, "  -photcode (code) : restrict by photcode\n");
    16   fprintf (stderr, "  -update : apply changes (-dup-images only)\n");
     17  fprintf (stderr, "  -update : apply changes (-dup-images or -dup-measures only)\n");
    1718  fprintf (stderr, "  -image-details : list info about the deleted images (-dup-images only)\n");
    1819  fprintf (stderr, "  -image-only : only examine the image table (changes are NOT saved; -dup-images only)\n");
     
    7071  }
    7172
    72   // we should never delete the images before the measures (or we won't know what to delete)
    73   // -image-only is for testing
     73  // We should generally not delete the images before the measures (or we won't know what
     74  // to delete). -image-only is for testing, -image-only-force -update WILL delete the images
    7475  IMAGE_ONLY = FALSE;
    7576  if ((N = get_argument (argc, argv, "-image-only"))) {
    7677    IMAGE_ONLY = TRUE;
    7778    UPDATE = FALSE;
     79    remove_argument (N, &argc, argv);
     80  }
     81  if ((N = get_argument (argc, argv, "-image-only-force"))) {
     82    IMAGE_ONLY = TRUE;
     83    remove_argument (N, &argc, argv);
     84  }
     85
     86  SINGLE_CPT = NULL;
     87  if ((N = get_argument (argc, argv, "-cpt"))) {
     88    remove_argument (N, &argc, argv);
     89    SINGLE_CPT = strcreate (argv[N]);
    7890    remove_argument (N, &argc, argv);
    7991  }
     
    104116  // XXX for the moment, make this selection manual.  it needs to be automatic
    105117  // based on the state of the SkyTable
     118  HOST_ID = 0;
    106119  PARALLEL = FALSE;
    107120  if ((N = get_argument (argc, argv, "-parallel"))) {
     
    160173    MODE = MODE_DUP_IMAGES;
    161174    remove_argument (N, &argc, argv);
     175  }
     176  if ((N = get_argument (argc, argv, "-dup-measures"))) {
     177    if (MODE != MODE_NONE) usage();
     178    MODE = MODE_DUP_MEASURES;
     179    remove_argument (N, &argc, argv);
     180    SKIP_IMAGES = TRUE; // we do not need to load the images for -dup-measures
     181  }
     182  if ((N = get_argument (argc, argv, "-fix-LAP"))) {
     183    if (MODE != MODE_NONE) usage();
     184    MODE = MODE_FIX_LAP;
     185    remove_argument (N, &argc, argv);
     186  }
     187  UNIQUER = NULL;
     188  if ((N = get_argument (argc, argv, "-fix-LAP-imstats"))) {
     189    if (MODE != MODE_NONE) usage();
     190    MODE = MODE_FIX_LAP_STATS;
     191    remove_argument (N, &argc, argv);
     192    if (N == argc) {
     193      fprintf (stderr, "USAGE: delstar -fix-LAP-imstats (uniquer)\n");
     194      exit (2);
     195    }
     196    UNIQUER = strcreate (argv[N]);
     197    remove_argument (N, &argc, argv);
     198  }
     199  if ((N = get_argument (argc, argv, "-fix-LAP-edges"))) {
     200    if (MODE != MODE_NONE) usage();
     201    MODE = MODE_FIX_LAP_EDGES;
     202    remove_argument (N, &argc, argv);
     203    SKIP_IMAGES = TRUE;
     204  }
     205  EDGE_DELETIONS = NULL;
     206  if ((N = get_argument (argc, argv, "-fix-LAP-edges-delete"))) {
     207    if (MODE != MODE_NONE) usage();
     208    MODE = MODE_FIX_LAP_EDGES_DELETE;
     209    remove_argument (N, &argc, argv);
     210    if (N == argc) {
     211      fprintf (stderr, "USAGE: delstar -fix-LAP-edges-delete (deletions)\n");
     212      exit (2);
     213    }
     214    EDGE_DELETIONS = strcreate (argv[N]);
     215    remove_argument (N, &argc, argv);
     216    SKIP_IMAGES = TRUE;
    162217  }
    163218  if ((N = get_argument (argc, argv, "-photcodes"))) {
     
    198253    }
    199254    usage ();
     255  }
     256
     257  IMSTATS_FILE = NULL;
     258  if ((MODE == MODE_FIX_LAP) && (!PARALLEL)) {
     259    IMSTATS_FILE = strcreate ("delstar.fixLAP.stats.fits");
    200260  }
    201261
     
    236296     }*/
    237297
     298  if (MODE == MODE_NONE) usage ();
     299
    238300  if (argc != 1) usage ();
    239301  return (TRUE);
     
    300362    IMAGE_ONLY = TRUE;
    301363    UPDATE = FALSE;
     364    remove_argument (N, &argc, argv);
     365  }
     366
     367  SINGLE_CPT = NULL;
     368  if ((N = get_argument (argc, argv, "-cpt"))) {
     369    remove_argument (N, &argc, argv);
     370    SINGLE_CPT = strcreate (argv[N]);
    302371    remove_argument (N, &argc, argv);
    303372  }
     
    320389  }
    321390
     391  IMAGES = NULL;
     392  if ((N = get_argument (argc, argv, "-images"))) {
     393    remove_argument (N, &argc, argv);
     394    IMAGES = strcreate (argv[N]);
     395    remove_argument (N, &argc, argv);
     396  }
     397
    322398  MODE = MODE_NONE;
    323399  if ((N = get_argument (argc, argv, "-photcodes"))) {
     
    333409    remove_argument (N, &argc, argv);
    334410  }
     411  if ((N = get_argument (argc, argv, "-dup-measures"))) {
     412    if (MODE != MODE_NONE) usage();
     413    MODE = MODE_DUP_MEASURES;
     414    remove_argument (N, &argc, argv);
     415  }
     416  if ((N = get_argument (argc, argv, "-fix-LAP"))) {
     417    if (MODE != MODE_NONE) usage();
     418    MODE = MODE_FIX_LAP;
     419    remove_argument (N, &argc, argv);
     420    if (!IMAGES) delstar_client_usage();
     421  }
     422  if ((N = get_argument (argc, argv, "-fix-LAP-edges"))) {
     423    if (MODE != MODE_NONE) usage();
     424    MODE = MODE_FIX_LAP_EDGES;
     425    remove_argument (N, &argc, argv);
     426  }
     427  EDGE_DELETIONS = NULL;
     428  if ((N = get_argument (argc, argv, "-fix-LAP-edges-delete"))) {
     429    if (MODE != MODE_NONE) usage();
     430    MODE = MODE_FIX_LAP_EDGES_DELETE;
     431    remove_argument (N, &argc, argv);
     432    if (N == argc) {
     433      fprintf (stderr, "USAGE: delstar -fix-LAP-edges-delete (deletions)\n");
     434      exit (2);
     435    }
     436    EDGE_DELETIONS = strcreate (argv[N]);
     437    remove_argument (N, &argc, argv);
     438    SKIP_IMAGES = TRUE;
     439  }
     440
     441  MEASURE_EDGE_FILE = NULL;
     442  if (MODE == MODE_FIX_LAP_EDGES) {
     443    N = get_argument (argc, argv, "-measures");
     444    if (N == 0) {
     445      fprintf (stderr, "delstar_client -fix-LAP-edge needs -measures (FILE)\n");
     446      exit (2);
     447    }
     448    remove_argument (N, &argc, argv);
     449    if (N == argc) {
     450      fprintf (stderr, "USAGE: delstar -fix-LAP-edges -measures (FILE) [FILE missing]\n");
     451      exit (2);
     452    }
     453    MEASURE_EDGE_FILE = strcreate (argv[N]);
     454    remove_argument (N, &argc, argv);
     455  }
     456
     457  IMSTATS_FILE = NULL;
     458  if (MODE == MODE_FIX_LAP) {
     459    N = get_argument (argc, argv, "-imstats");
     460    if (N == 0) {
     461      fprintf (stderr, "delstar_client -fix-LAP needs -imstats (FILE)\n");
     462      exit (2);
     463    }
     464    remove_argument (N, &argc, argv);
     465    IMSTATS_FILE = strcreate (argv[N]);
     466    remove_argument (N, &argc, argv);
     467  }
    335468
    336469  if (MODE == MODE_NONE) delstar_client_usage ();
  • trunk/Ohana/src/delstar/src/delete_duplicate_images.c

    r35416 r35758  
    66// find & delete duplicate images
    77// duplicates based on externID (skip 0s)
    8 int delete_duplicate_images (int hostID, char *hostpath, FITS_DB *db) {
     8int delete_duplicate_images (FITS_DB *db) {
    99
    1010  off_t i, Nimage;
     
    2828
    2929  if (!IMAGE_ONLY) {
    30     delete_duplicate_image_measures (hostID, hostpath, imageID);
     30    delete_duplicate_image_measures (imageID);
    3131  }
    3232
     
    6363}
    6464
    65 int delete_duplicate_image_measures (int hostID, char *hostpath, IndexArray *imageID) {
     65int delete_duplicate_image_measures (IndexArray *imageID) {
    6666
    6767  int i;
     
    8383
    8484  // launch the remote jobs
    85   if (PARALLEL && !hostID) {
     85  if (PARALLEL && !HOST_ID) {
    8686    int status = delete_duplicate_image_measures_parallel (skylist, imageID);
    8787    return status;
     
    9292
    9393    // does this host ID match the desired location for the table?
    94     if (!HostTableTestHost(skylist[0].regions[i], hostID)) continue;
     94    if (!HostTableTestHost(skylist[0].regions[i], HOST_ID)) continue;
    9595
    9696    // set up the basic catalog info
    9797    char hostfile[1024];
    98     snprintf (hostfile, 1024, "%s/%s.cpt", hostpath, skylist[0].regions[i]->name);
    99     catalog.filename  = hostID ? hostfile : skylist[0].filename[i];
     98    snprintf (hostfile, 1024, "%s/%s.cpt", HOSTDIR, skylist[0].regions[i]->name);
     99    catalog.filename  = HOST_ID ? hostfile : skylist[0].filename[i];
    100100    catalog.Nsecfilt  = GetPhotcodeNsecfilt ();
    101101    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
     
    241241  // mark the measures to be dropped
    242242  for (i = 0; i < Nmeasure; i++) {
     243    measureDrop[i] = 0;
    243244    if (measure[i].imageID == 0) continue;
    244245    off_t Ni = measure[i].imageID - imageID->minID;
  • trunk/Ohana/src/delstar/src/delete_photcodes.c

    r34844 r35758  
    11# include "delstar.h"
    22
    3 int delete_photcodes (int hostID, char *hostpath) {
     3int delete_photcodes () {
    44
    55  int i;
     
    2121
    2222  // launch the remote jobs
    23   if (PARALLEL && !hostID) {
     23  if (PARALLEL && !HOST_ID) {
    2424    int status = delete_photcodes_parallel (skylist);
    2525    return status;
     
    3434
    3535    // does this host ID match the desired location for the table?
    36     if (!HostTableTestHost(skylist[0].regions[i], hostID)) continue;
     36    if (!HostTableTestHost(skylist[0].regions[i], HOST_ID)) continue;
    3737
    3838    // set up the basic catalog info
    3939    char hostfile[1024];
    40     snprintf (hostfile, 1024, "%s/%s.cpt", hostpath, skylist[0].regions[i]->name);
    41     catalog.filename  = hostID ? hostfile : skylist[0].filename[i];
     40    snprintf (hostfile, 1024, "%s/%s.cpt", HOSTDIR, skylist[0].regions[i]->name);
     41    catalog.filename  = HOST_ID ? hostfile : skylist[0].filename[i];
    4242    catalog.Nsecfilt  = GetPhotcodeNsecfilt ();
    4343    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
  • trunk/Ohana/src/delstar/src/delstar.c

    r35301 r35758  
    2121  switch (MODE) {
    2222    case MODE_DUP_IMAGES:
    23       if (!delete_duplicate_images (0, NULL, &db)) exit (1);
     23      if (!delete_duplicate_images (&db)) exit (1);
    2424      exit (0);
    2525      break;
     26    case MODE_DUP_MEASURES:
     27      if (!delete_duplicate_measures ()) exit (1);
     28      exit (0);
     29      break;
     30    case MODE_FIX_LAP: {
     31        off_t Nimage;
     32        Image *image = gfits_table_get_Image (&db.ftable, &Nimage, &db.swapped);
     33        if (!image) {
     34          fprintf (stderr, "ERROR: failed to read images\n");
     35          exit (2);
     36        }
     37        dvo_image_unlock (&db);
     38
     39        // the imageSubset here is a reduced set of fields, not a reduced set of images
     40        ImageSubset *subset = ImagesToSubset (image, Nimage);
     41
     42        if (!delete_fix_LAP (subset, Nimage)) exit (1);
     43        SummaryImageStats (subset, Nimage);
     44
     45        exit (0);
     46        break;
     47      }
     48    case MODE_FIX_LAP_EDGES: {
     49      off_t Nmeasure_edge = 0;
     50      MeasureEdge *measure_edge = delete_fix_LAP_edges(&Nmeasure_edge);
     51      if (!measure_edge) {
     52        fprintf (stderr, "problem loading edge measures\n");
     53        exit (1);
     54      }
     55      delete_fix_LAP_edges_find_dups (measure_edge, Nmeasure_edge);
     56      exit (0);
     57      break;
     58    }
     59    case MODE_FIX_LAP_EDGES_DELETE: {
     60      if (!delete_fix_LAP_edges_delete()) {
     61        fprintf (stderr, "problem loading edge measures\n");
     62        exit (1);
     63      }
     64      exit (0);
     65      break;
     66    }
     67    case MODE_FIX_LAP_STATS: {
     68        off_t Nimage;
     69        Image *image = gfits_table_get_Image (&db.ftable, &Nimage, &db.swapped);
     70        if (!image) {
     71          fprintf (stderr, "ERROR: failed to read images\n");
     72          exit (2);
     73        }
     74        // dvo_image_unlock (&db);
     75        fprintf (stderr, "read images\n");
     76
     77        // the imageSubset here is a reduced set of fields, not a reduced set of images
     78        ImageSubset *subset = ImagesToSubset (image, Nimage);
     79        fprintf (stderr, "make subset\n");
     80
     81        if (!delete_fix_LAP_setstats (subset, Nimage)) exit (1);
     82        SummaryImageStats_Full (image, Nimage);
     83
     84        exit (0);
     85        break;
     86      }
    2687    case MODE_IMAGEFILE:
    2788      delete_imagefile (&db);
  • trunk/Ohana/src/delstar/src/delstar_client.c

    r35416 r35758  
    2222        exit (1);
    2323      }
    24       if (!delete_duplicate_image_measures (HOST_ID, HOSTDIR, imageID)) exit (1);
     24      if (!delete_duplicate_image_measures (imageID)) exit (1);
    2525      exit (0);
    2626      break;
     27    case MODE_DUP_MEASURES:
     28      if (!delete_duplicate_measures ()) exit (1);
     29      exit (0);
     30      break;
     31
     32    case MODE_FIX_LAP: {
     33      off_t Nimage;
     34      ImageSubset *image = ImageSubsetLoad (IMAGES, &Nimage);
     35      if (!image) {
     36        fprintf (stderr, "failed to read image table\n");
     37        exit (1);
     38      }
     39
     40      if (!delete_fix_LAP (image, Nimage)) exit (1);
     41      exit (0);
     42      break;
     43    }
     44
     45    case MODE_FIX_LAP_EDGES: {
     46      off_t Nmeasure_edge = 0;
     47      MeasureEdge *measure_edge = delete_fix_LAP_edges(&Nmeasure_edge);
     48      if (!measure_edge) {
     49        fprintf (stderr, "problem loading edge measures\n");
     50        exit (1);
     51      }
     52      if (!MeasureEdgeSave (MEASURE_EDGE_FILE, measure_edge, Nmeasure_edge)) {
     53        fprintf (stderr, "problem saving edge measures\n");
     54        exit (1);
     55      }
     56      exit (0);
     57      break;
     58    }
     59
     60    case MODE_FIX_LAP_EDGES_DELETE: {
     61      if (!delete_fix_LAP_edges_delete()) {
     62        fprintf (stderr, "problem loading edge measures\n");
     63        exit (1);
     64      }
     65      exit (0);
     66      break;
     67    }
     68
    2769    case MODE_IMAGEFILE:
    2870      break;
     
    3274      break;
    3375    case MODE_PHOTCODES:
    34       if (!delete_photcodes (HOST_ID, HOSTDIR)) {
     76      if (!delete_photcodes ()) {
    3577        fprintf (stderr, "failure deleting measurements from %s\n", HOSTDIR);
    3678        exit (1);
Note: See TracChangeset for help on using the changeset viewer.