IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36504


Ignore:
Timestamp:
Feb 11, 2014, 8:34:47 AM (12 years ago)
Author:
eugene
Message:

rename parallel_images to parallel_regions; clean up args/init

Location:
branches/eam_branches/ipp-20140206/Ohana/src/relphot
Files:
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140206/Ohana/src/relphot/include/relphot.h

    r36491 r36504  
    2323// # define IDX_T off_t
    2424# define IDX_T int
     25
     26typedef enum {
     27  MODE_ERROR = 0,
     28  UPDATE_IMAGES,
     29  UPDATE_AVERAGES,
     30  PARALLEL_REGIONS,
     31  PARALLEL_IMAGES,
     32  APPLY_OFFSETS,
     33} RelphotMode;
    2534
    2635typedef enum {
  • branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/args.c

    r36503 r36504  
    11# include "relphot.h"
    22
    3 int args (int argc, char **argv) {
     3RelphotMode args (int argc, char **argv) {
    44
    55  int N;
    66  double trange;
     7
     8  /* define time */
     9  TimeSelect = FALSE;
     10  if ((N = get_argument (argc, argv, "-time"))) {
     11    remove_argument (N, &argc, argv);
     12    if (!ohana_str_to_time (argv[N], &TSTART)) {
     13      fprintf (stderr, "ERROR: syntax error\n");
     14      return (MODE_ERROR);
     15    }
     16    remove_argument (N, &argc, argv);
     17    if (!ohana_str_to_dtime (argv[N], &trange)) {
     18      if (!ohana_str_to_time (argv[N], &TSTOP)) {
     19        fprintf (stderr, "ERROR: syntax error\n");
     20        return (MODE_ERROR);
     21      }
     22    } else {
     23      if (trange < 0) {
     24        trange = fabs (trange);
     25        TSTOP = TSTART;
     26        TSTART -= trange;
     27      } else {
     28        TSTOP = TSTART + trange;
     29      }
     30    }
     31    remove_argument (N, &argc, argv);
     32    TimeSelect = TRUE;
     33  }
     34
     35  /* specify portion of the sky */
     36  UserPatch.Rmin = 0;
     37  UserPatch.Rmax = 360;
     38  UserPatch.Dmin = -90;
     39  UserPatch.Dmax = +90;
     40  if ((N = get_argument (argc, argv, "-region"))) {
     41    remove_argument (N, &argc, argv);
     42    UserPatch.Rmin = atof (argv[N]);
     43    remove_argument (N, &argc, argv);
     44    UserPatch.Rmax = atof (argv[N]);
     45    remove_argument (N, &argc, argv);
     46    UserPatch.Dmin = atof (argv[N]);
     47    remove_argument (N, &argc, argv);
     48    UserPatch.Dmax = atof (argv[N]);
     49    remove_argument (N, &argc, argv);
     50  }
     51
     52  /* specify region file by name (eg n0000/0000.00) */
     53  UserCatalog = NULL;
     54  if ((N = get_argument (argc, argv, "-catalog"))) {
     55    remove_argument (N, &argc, argv);
     56    UserCatalog = strcreate (argv[N]);
     57    remove_argument (N, &argc, argv);
     58  }
     59
     60  USE_BASIC_CHECK = FALSE;
     61  if ((N = get_argument (argc, argv, "-basic-image-search"))) {
     62    remove_argument (N, &argc, argv);
     63    USE_BASIC_CHECK = TRUE;
     64  }
     65
     66  USE_FULL_OVERLAP = TRUE;
     67  if ((N = get_argument (argc, argv, "-sloppy-image-overlap"))) {
     68    remove_argument (N, &argc, argv);
     69    USE_FULL_OVERLAP = FALSE;
     70  }
     71
     72  SET_MREL_VERSION = 1;
     73  if ((N = get_argument (argc, argv, "-set-mrel-version"))) {
     74    remove_argument (N, &argc, argv);
     75    SET_MREL_VERSION = atof(argv[N]);
     76    remove_argument (N, &argc, argv);
     77  }
     78
     79  VERBOSE = VERBOSE2 = FALSE;
     80  if ((N = get_argument (argc, argv, "-v"))) {
     81    VERBOSE = TRUE;
     82    remove_argument (N, &argc, argv);
     83  }
     84  if ((N = get_argument (argc, argv, "-vv"))) {
     85    VERBOSE2 = VERBOSE = TRUE;
     86    remove_argument (N, &argc, argv);
     87  }
     88
     89  NTHREADS = 0;
     90  if ((N = get_argument (argc, argv, "-threads"))) {
     91    remove_argument (N, &argc, argv);
     92    NTHREADS = atof (argv[N]);
     93    remove_argument (N, &argc, argv);
     94  }
     95
     96  // XXX for the moment, make this selection manual.  it needs to be automatic
     97  // based on the state of the SkyTable
     98  HOST_ID = 0;
     99  PARALLEL = FALSE;
     100  if ((N = get_argument (argc, argv, "-parallel"))) {
     101    PARALLEL = TRUE;
     102    remove_argument (N, &argc, argv);
     103  }
     104  // this is a test mode : rather than launching the remote jobs and waiting for completion,
     105  // relphot will simply list the remote command and wait for the user to signal completion
     106  PARALLEL_MANUAL = FALSE;
     107  if ((N = get_argument (argc, argv, "-parallel-manual"))) {
     108    PARALLEL = TRUE; // -parallel-manual implies -parallel
     109    PARALLEL_MANUAL = TRUE;
     110    remove_argument (N, &argc, argv);
     111  }
     112  // this is a test mode : rather than launching the relphot_client jobs remotely, they are
     113  // run in serial via 'system'
     114  PARALLEL_SERIAL = FALSE;
     115  if ((N = get_argument (argc, argv, "-parallel-serial"))) {
     116    if (PARALLEL_MANUAL) {
     117      fprintf (stderr, "ERROR: cannot mix -parallel-manual and -parallel-serial\n");
     118      exit (1);
     119    }
     120    PARALLEL = TRUE; // -parallel-serial implies -parallel
     121    PARALLEL_SERIAL = TRUE;
     122    remove_argument (N, &argc, argv);
     123  }
     124
     125  PLOTSTUFF = FALSE;
     126  if ((N = get_argument (argc, argv, "-plot"))) {
     127    PLOTSTUFF = TRUE;
     128    remove_argument (N, &argc, argv);
     129  }
     130
     131  PLOTDELAY = 500000;
     132  if ((N = get_argument (argc, argv, "-plotdelay"))) {
     133    remove_argument (N, &argc, argv);
     134    PLOTDELAY = 1e6*atof(argv[N]);
     135    PLOTSTUFF = TRUE; // always turn on plotting if i request a plot delay
     136    remove_argument (N, &argc, argv);
     137  }
     138
     139  if ((N = get_argument (argc, argv, "-outroot"))) {
     140    remove_argument (N, &argc, argv);
     141    OUTROOT = strcreate (argv[N]);
     142    remove_argument (N, &argc, argv);
     143  } else {
     144    OUTROOT = strcreate ("relphot");
     145  }     
     146
     147  strcpy (STATMODE, "WT_MEAN");
     148  if ((N = get_argument (argc, argv, "-statmode"))) {
     149    remove_argument (N, &argc, argv);
     150    strcpy (STATMODE, argv[N]);
     151    remove_argument (N, &argc, argv);
     152  }
     153
     154  NLOOP = 8;
     155  if ((N = get_argument (argc, argv, "-n"))) {
     156    remove_argument (N, &argc, argv);
     157    NLOOP = atof (argv[N]);
     158    remove_argument (N, &argc, argv);
     159  }
     160  if ((N = get_argument (argc, argv, "-nloop"))) {
     161    remove_argument (N, &argc, argv);
     162    NLOOP = atof (argv[N]);
     163    remove_argument (N, &argc, argv);
     164  }
     165
     166  NGRID = 8;
     167  if ((N = get_argument (argc, argv, "-ngrid"))) {
     168    remove_argument (N, &argc, argv);
     169    NGRID = atof (argv[N]);
     170    remove_argument (N, &argc, argv);
     171  }
     172
     173  RESET = FALSE;
     174  if ((N = get_argument (argc, argv, "-reset"))) {
     175    remove_argument (N, &argc, argv);
     176    RESET = TRUE;
     177  }
     178
     179  RESET_ZEROPTS = FALSE;
     180  if ((N = get_argument (argc, argv, "-reset-zpts"))) {
     181    remove_argument (N, &argc, argv);
     182    RESET_ZEROPTS = TRUE;
     183  }
     184
     185  UPDATE = FALSE;
     186  if ((N = get_argument (argc, argv, "-update"))) {
     187    remove_argument (N, &argc, argv);
     188    UPDATE = TRUE;
     189  }
     190
     191  UPDATE_CATFORMAT = NULL;
     192  if ((N = get_argument (argc, argv, "-update-catformat"))) {
     193    remove_argument (N, &argc, argv);
     194    UPDATE_CATFORMAT = strcreate (argv[N]);
     195    remove_argument (N, &argc, argv);
     196  }
     197
     198  SAVE_IMAGE_UPDATES = TRUE;
     199  if ((N = get_argument (argc, argv, "-skip-image-updates"))) {
     200    remove_argument (N, &argc, argv);
     201    SAVE_IMAGE_UPDATES = FALSE;
     202  }
     203
     204  MaxDensityUse = FALSE;
     205  if ((N = get_argument (argc, argv, "-max-density"))) {
     206    remove_argument (N, &argc, argv);
     207    MaxDensityValue = atof(argv[N]);
     208    remove_argument (N, &argc, argv);
     209    MaxDensityUse = TRUE;
     210  }
     211
     212  CLOUD_TOLERANCE = 0.02;
     213  if ((N = get_argument (argc, argv, "-cloud-limit"))) {
     214    remove_argument (N, &argc, argv);
     215    CLOUD_TOLERANCE = atof(argv[N]);
     216    remove_argument (N, &argc, argv);
     217  }
     218
     219  // XXX should we load a tree from CATDIR by default?
     220  // NOTE: a given catdir needs an appropriate boundary tree
     221  BOUNDARY_TREE = NULL;
     222  if ((N = get_argument (argc, argv, "-boundary-tree"))) {
     223    remove_argument (N, &argc, argv);
     224    BOUNDARY_TREE = strcreate(argv[N]);
     225    load_tess (BOUNDARY_TREE);
     226    remove_argument (N, &argc, argv);
     227  }
     228
     229  SHOW_PARAMS = FALSE;
     230  if ((N = get_argument (argc, argv, "-params"))) {
     231    remove_argument (N, &argc, argv);
     232    SHOW_PARAMS = TRUE;
     233  }
     234
     235  PlotMmin = 10.0; PlotMmax = 20.0; PlotdMmin = -1.0; PlotdMmax = 1.0;
     236  if ((N = get_argument (argc, argv, "-plrange"))) {
     237    remove_argument (N, &argc, argv);
     238    PlotMmin = atof (argv[N]);
     239    remove_argument (N, &argc, argv);
     240    PlotMmax = atof (argv[N]);
     241    remove_argument (N, &argc, argv);
     242    PlotdMmin = atof (argv[N]);
     243    remove_argument (N, &argc, argv);
     244    PlotdMmax = atof (argv[N]);
     245    remove_argument (N, &argc, argv);
     246  }
     247
     248  /* XXX this argument used to do two things: specify the camera name and tell the analysis to
     249     calculate a common zero point for a single mosaic.  I've moved the MOSAICNAME concept into the
     250     config system, but need to use this argument to specify that the mosaic zeropoints should be
     251     calculated. */
     252  MOSAIC_ZEROPT = FALSE;
     253  if ((N = get_argument (argc, argv, "-mosaic"))) {
     254    remove_argument (N, &argc, argv);
     255    MOSAIC_ZEROPT = TRUE;
     256    if (!strcasecmp (MOSAICNAME, "none")) {
     257      fprintf (stderr, "mosaic astrometry selected by MOSAICNAME not defined\n");
     258      exit (2);
     259    }
     260  }
     261
     262  FREEZE_IMAGES = FALSE;
     263  if ((N = get_argument (argc, argv, "-imfreeze"))) {
     264    remove_argument (N, &argc, argv);
     265    FREEZE_IMAGES = TRUE;
     266  }
     267
     268  FREEZE_MOSAICS = FALSE;
     269  if ((N = get_argument (argc, argv, "-mosfreeze"))) {
     270    remove_argument (N, &argc, argv);
     271    FREEZE_MOSAICS = TRUE;
     272  }
     273
     274  // USE_GRID is not valid for all cases, probably should be its own mode...
     275  USE_GRID = FALSE;
     276  if ((N = get_argument (argc, argv, "-grid"))) {
     277    remove_argument (N, &argc, argv);
     278    USE_GRID = TRUE;
     279  }
     280
     281  KEEP_UBERCAL = TRUE;
     282  if ((N = get_argument (argc, argv, "-reset-ubercal"))) {
     283    remove_argument (N, &argc, argv);
     284    KEEP_UBERCAL = FALSE;
     285  }
     286
     287  MIN_ERROR = 0.001;
     288  if ((N = get_argument (argc, argv, "-minerror"))) {
     289    remove_argument (N, &argc, argv);
     290    MIN_ERROR = atof (argv[N]);
     291    remove_argument (N, &argc, argv);
     292    /* require MIN_ERROR > 0 */
     293  } 
     294
     295  AreaSelect = FALSE;
     296  if ((N = get_argument (argc, argv, "-area"))) {
     297    remove_argument (N, &argc, argv);
     298    AreaXmin = atof (argv[N]);
     299    remove_argument (N, &argc, argv);
     300    AreaXmax = atof (argv[N]);
     301    remove_argument (N, &argc, argv);
     302    AreaYmin = atof (argv[N]);
     303    remove_argument (N, &argc, argv);
     304    AreaYmax = atof (argv[N]);
     305    remove_argument (N, &argc, argv);
     306    AreaSelect = TRUE;
     307  }
     308
     309  ImagSelect = FALSE;
     310  if ((N = get_argument (argc, argv, "-instmag"))) {
     311    remove_argument (N, &argc, argv);
     312    ImagMin = atof (argv[N]);
     313    remove_argument (N, &argc, argv);
     314    ImagMax = atof (argv[N]);
     315    remove_argument (N, &argc, argv);
     316    ImagSelect = TRUE;
     317  }
     318
     319  DophotSelect = FALSE;
     320  if ((N = get_argument (argc, argv, "-dophot"))) {
     321    remove_argument (N, &argc, argv);
     322    DophotValue = atof (argv[N]);
     323    remove_argument (N, &argc, argv);
     324    DophotSelect = TRUE;
     325  }
     326
     327  SyntheticPhotometry = FALSE;
     328  if ((N = get_argument (argc, argv, "-synthphot"))) {
     329    remove_argument (N, &argc, argv);
     330    SyntheticPhotometry = TRUE;
     331    init_synthetic_mags();
     332  }
     333
     334  refPhotcode = NULL;
     335  if ((N = get_argument (argc, argv, "-refcode"))) {
     336    remove_argument (N, &argc, argv);
     337    refPhotcode = GetPhotcodebyName (argv[N]);
     338    if (!refPhotcode) {
     339      fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
     340      exit (1);
     341    }
     342    remove_argument (N, &argc, argv);
     343  }
     344
     345  RelphotMode mode = MODE_ERROR;
     346  if ((N = get_argument (argc, argv, "-averages"))) {
     347    remove_argument (N, &argc, argv);
     348    mode = UPDATE_AVERAGES;
     349  }
     350  if ((N = get_argument (argc, argv, "-apply-offsets"))) {
     351    remove_argument (N, &argc, argv);
     352    mode = APPLY_OFFSETS;
     353  }
     354  if ((N = get_argument (argc, argv, "-parallel-images"))) {
     355    remove_argument (N, &argc, argv);
     356    mode = PARALLEL_IMAGES;
     357  }
     358  if ((N = get_argument (argc, argv, "-parallel-regions"))) {
     359    remove_argument (N, &argc, argv);
     360    mode = PARALLEL_REGIONS;
     361  }
     362
     363  if ((mode == UPDATE_AVERAGES) && (argc != 1)) relphot_usage ();
     364  if (mode == UPDATE_IMAGES) {
     365    PhotcodeList = strcreate (argv[1]);
     366    photcodes = ParsePhotcodeList (PhotcodeList, &Nphotcodes, TRUE); // require SEC photcodes
     367    remove_argument (1, &argc, argv);
     368  }
     369  if (argc != 1) relphot_usage ();
     370
     371  return mode;
     372}
     373
     374int args_client (int argc, char **argv) {
     375
     376  int N;
     377  double trange;
     378
     379  // by definition, the client is not parallel
     380  PARALLEL = FALSE;
     381  PARALLEL_MANUAL = FALSE;
     382  PARALLEL_SERIAL = FALSE;
     383
     384  HOST_ID = 0;
     385  if ((N = get_argument (argc, argv, "-hostID"))) {
     386    remove_argument (N, &argc, argv);
     387    HOST_ID = atoi (argv[N]);
     388    remove_argument (N, &argc, argv);
     389  }
     390  if (!HOST_ID) relphot_client_usage();
     391
     392  HOSTDIR = NULL;
     393  if ((N = get_argument (argc, argv, "-hostdir"))) {
     394    remove_argument (N, &argc, argv);
     395    HOSTDIR = strcreate (argv[N]);
     396    remove_argument (N, &argc, argv);
     397  }
     398  if (!HOSTDIR) relphot_client_usage();
     399
     400  IMAGES = NULL; // used in -update mode
     401  BCATALOG = NULL; // used in -load mode
     402  MODE = MODE_NONE;
     403  if ((N = get_argument (argc, argv, "-load"))) {
     404    MODE = MODE_LOAD;
     405    remove_argument (N, &argc, argv);
     406    BCATALOG = strcreate (argv[N]);
     407    remove_argument (N, &argc, argv);
     408  }
     409  if ((N = get_argument (argc, argv, "-update-catalogs"))) {
     410    if (MODE) {
     411      fprintf (stderr, "ERROR: cannot mix modes (-load, -update-catalogs, -update-objects)\n");
     412      relphot_client_usage();
     413    }
     414    MODE = MODE_UPDATE;
     415    remove_argument (N, &argc, argv);
     416    IMAGES = strcreate (argv[N]);
     417    remove_argument (N, &argc, argv);
     418  }
     419  if ((N = get_argument (argc, argv, "-update-objects"))) {
     420    if (MODE) {
     421      fprintf (stderr, "ERROR: cannot mix modes (-load, -update-catalogs, -update-objects)\n");
     422      relphot_client_usage();
     423    }
     424    MODE = MODE_UPDATE_OBJECTS;
     425    remove_argument (N, &argc, argv);
     426  }
     427  if (!MODE) relphot_client_usage();
     428
     429  strcpy (STATMODE, "WT_MEAN");
     430  if ((N = get_argument (argc, argv, "-statmode"))) {
     431    remove_argument (N, &argc, argv);
     432    strcpy (STATMODE, argv[N]);
     433    remove_argument (N, &argc, argv);
     434  }
     435
     436  BOUNDARY_TREE = NULL;
     437  if ((N = get_argument (argc, argv, "-boundary-tree"))) {
     438    remove_argument (N, &argc, argv);
     439    BOUNDARY_TREE = strcreate(argv[N]);
     440    load_tess (BOUNDARY_TREE);
     441    remove_argument (N, &argc, argv);
     442  }
     443
     444  /* specify portion of the sky */
     445  UserPatch.Rmin = 0;
     446  UserPatch.Rmax = 360;
     447  UserPatch.Dmin = -90;
     448  UserPatch.Dmax = +90;
     449  if ((N = get_argument (argc, argv, "-region"))) {
     450    remove_argument (N, &argc, argv);
     451    UserPatch.Rmin = atof (argv[N]);
     452    remove_argument (N, &argc, argv);
     453    UserPatch.Rmax = atof (argv[N]);
     454    remove_argument (N, &argc, argv);
     455    UserPatch.Dmin = atof (argv[N]);
     456    remove_argument (N, &argc, argv);
     457    UserPatch.Dmax = atof (argv[N]);
     458    remove_argument (N, &argc, argv);
     459  }
     460
     461  SET_MREL_VERSION = 1;
     462  if ((N = get_argument (argc, argv, "-set-mrel-version"))) {
     463    remove_argument (N, &argc, argv);
     464    SET_MREL_VERSION = atof(argv[N]);
     465    remove_argument (N, &argc, argv);
     466  }
     467
     468  VERBOSE = VERBOSE2 = FALSE;
     469  if ((N = get_argument (argc, argv, "-v"))) {
     470    VERBOSE = TRUE;
     471    remove_argument (N, &argc, argv);
     472  }
     473  if ((N = get_argument (argc, argv, "-vv"))) {
     474    VERBOSE2 = VERBOSE = TRUE;
     475    remove_argument (N, &argc, argv);
     476  }
     477
     478  RESET = FALSE;
     479  if ((N = get_argument (argc, argv, "-reset"))) {
     480    remove_argument (N, &argc, argv);
     481    RESET = TRUE;
     482  }
     483
     484  RESET_ZEROPTS = FALSE;
     485  if ((N = get_argument (argc, argv, "-reset-zpts"))) {
     486    remove_argument (N, &argc, argv);
     487    RESET_ZEROPTS = TRUE;
     488  }
     489
     490  KEEP_UBERCAL = TRUE;
     491  if ((N = get_argument (argc, argv, "-reset-ubercal"))) {
     492    remove_argument (N, &argc, argv);
     493    KEEP_UBERCAL = FALSE;
     494  }
    7495
    8496  /* define time */
     
    33521  }
    34522
    35   /* specify portion of the sky */
    36   UserPatch.Rmin = 0;
    37   UserPatch.Rmax = 360;
    38   UserPatch.Dmin = -90;
    39   UserPatch.Dmax = +90;
    40   if ((N = get_argument (argc, argv, "-region"))) {
    41     remove_argument (N, &argc, argv);
    42     UserPatch.Rmin = atof (argv[N]);
    43     remove_argument (N, &argc, argv);
    44     UserPatch.Rmax = atof (argv[N]);
    45     remove_argument (N, &argc, argv);
    46     UserPatch.Dmin = atof (argv[N]);
    47     remove_argument (N, &argc, argv);
    48     UserPatch.Dmax = atof (argv[N]);
    49     remove_argument (N, &argc, argv);
    50   }
    51 
    52   /* specify region file by name (eg n0000/0000.00) */
    53   UserCatalog = NULL;
    54   if ((N = get_argument (argc, argv, "-catalog"))) {
    55     remove_argument (N, &argc, argv);
    56     UserCatalog = strcreate (argv[N]);
    57     remove_argument (N, &argc, argv);
    58   }
    59 
    60   USE_BASIC_CHECK = FALSE;
    61   if ((N = get_argument (argc, argv, "-basic-image-search"))) {
    62     remove_argument (N, &argc, argv);
    63     USE_BASIC_CHECK = TRUE;
    64   }
    65 
    66   USE_FULL_OVERLAP = TRUE;
    67   if ((N = get_argument (argc, argv, "-sloppy-image-overlap"))) {
    68     remove_argument (N, &argc, argv);
    69     USE_FULL_OVERLAP = FALSE;
    70   }
    71 
    72   SET_MREL_VERSION = 1;
    73   if ((N = get_argument (argc, argv, "-set-mrel-version"))) {
    74     remove_argument (N, &argc, argv);
    75     SET_MREL_VERSION = atof(argv[N]);
    76     remove_argument (N, &argc, argv);
    77   }
    78 
    79   VERBOSE = VERBOSE2 = FALSE;
    80   if ((N = get_argument (argc, argv, "-v"))) {
    81     VERBOSE = TRUE;
    82     remove_argument (N, &argc, argv);
    83   }
    84   if ((N = get_argument (argc, argv, "-vv"))) {
    85     VERBOSE2 = VERBOSE = TRUE;
    86     remove_argument (N, &argc, argv);
    87   }
    88 
    89   NTHREADS = 0;
    90   if ((N = get_argument (argc, argv, "-threads"))) {
    91     remove_argument (N, &argc, argv);
    92     NTHREADS = atof (argv[N]);
    93     remove_argument (N, &argc, argv);
    94   }
    95 
    96   // XXX for the moment, make this selection manual.  it needs to be automatic
    97   // based on the state of the SkyTable
    98   HOST_ID = 0;
    99   PARALLEL = FALSE;
    100   if ((N = get_argument (argc, argv, "-parallel"))) {
    101     PARALLEL = TRUE;
    102     remove_argument (N, &argc, argv);
    103   }
    104   // this is a test mode : rather than launching the remote jobs and waiting for completion,
    105   // relphot will simply list the remote command and wait for the user to signal completion
    106   PARALLEL_MANUAL = FALSE;
    107   if ((N = get_argument (argc, argv, "-parallel-manual"))) {
    108     PARALLEL = TRUE; // -parallel-manual implies -parallel
    109     PARALLEL_MANUAL = TRUE;
    110     remove_argument (N, &argc, argv);
    111   }
    112   // this is a test mode : rather than launching the relphot_client jobs remotely, they are
    113   // run in serial via 'system'
    114   PARALLEL_SERIAL = FALSE;
    115   if ((N = get_argument (argc, argv, "-parallel-serial"))) {
    116     if (PARALLEL_MANUAL) {
    117       fprintf (stderr, "ERROR: cannot mix -parallel-manual and -parallel-serial\n");
    118       exit (1);
    119     }
    120     PARALLEL = TRUE; // -parallel-serial implies -parallel
    121     PARALLEL_SERIAL = TRUE;
    122     remove_argument (N, &argc, argv);
    123   }
    124 
    125   PLOTSTUFF = FALSE;
    126   if ((N = get_argument (argc, argv, "-plot"))) {
    127     PLOTSTUFF = TRUE;
    128     remove_argument (N, &argc, argv);
    129   }
    130 
    131   PLOTDELAY = 500000;
    132   if ((N = get_argument (argc, argv, "-plotdelay"))) {
    133     remove_argument (N, &argc, argv);
    134     PLOTDELAY = 1e6*atof(argv[N]);
    135     PLOTSTUFF = TRUE; // always turn on plotting if i request a plot delay
    136     remove_argument (N, &argc, argv);
    137   }
    138 
    139   if ((N = get_argument (argc, argv, "-outroot"))) {
    140     remove_argument (N, &argc, argv);
    141     OUTROOT = strcreate (argv[N]);
    142     remove_argument (N, &argc, argv);
    143   } else {
    144     OUTROOT = strcreate ("relphot");
    145   }     
    146 
    147   strcpy (STATMODE, "WT_MEAN");
    148   if ((N = get_argument (argc, argv, "-statmode"))) {
    149     remove_argument (N, &argc, argv);
    150     strcpy (STATMODE, argv[N]);
    151     remove_argument (N, &argc, argv);
    152   }
    153 
    154   NLOOP = 8;
    155   if ((N = get_argument (argc, argv, "-n"))) {
    156     remove_argument (N, &argc, argv);
    157     NLOOP = atof (argv[N]);
    158     remove_argument (N, &argc, argv);
    159   }
    160   if ((N = get_argument (argc, argv, "-nloop"))) {
    161     remove_argument (N, &argc, argv);
    162     NLOOP = atof (argv[N]);
    163     remove_argument (N, &argc, argv);
    164   }
    165 
    166   NGRID = 8;
    167   if ((N = get_argument (argc, argv, "-ngrid"))) {
    168     remove_argument (N, &argc, argv);
    169     NGRID = atof (argv[N]);
    170     remove_argument (N, &argc, argv);
    171   }
    172 
    173   RESET = FALSE;
    174   if ((N = get_argument (argc, argv, "-reset"))) {
    175     remove_argument (N, &argc, argv);
    176     RESET = TRUE;
    177   }
    178 
    179   RESET_ZEROPTS = FALSE;
    180   if ((N = get_argument (argc, argv, "-reset-zpts"))) {
    181     remove_argument (N, &argc, argv);
    182     RESET_ZEROPTS = TRUE;
    183   }
     523
     524  MIN_ERROR = 0.001;
     525  if ((N = get_argument (argc, argv, "-minerror"))) {
     526    remove_argument (N, &argc, argv);
     527    MIN_ERROR = atof (argv[N]);
     528    remove_argument (N, &argc, argv);
     529    /* require MIN_ERROR > 0 */
     530  } 
    184531
    185532  UPDATE = FALSE;
     
    196543  }
    197544
    198   SAVE_IMAGE_UPDATES = TRUE;
    199   if ((N = get_argument (argc, argv, "-skip-image-updates"))) {
    200     remove_argument (N, &argc, argv);
    201     SAVE_IMAGE_UPDATES = FALSE;
     545  AreaSelect = FALSE;
     546  if ((N = get_argument (argc, argv, "-area"))) {
     547    remove_argument (N, &argc, argv);
     548    AreaXmin = atof (argv[N]);
     549    remove_argument (N, &argc, argv);
     550    AreaXmax = atof (argv[N]);
     551    remove_argument (N, &argc, argv);
     552    AreaYmin = atof (argv[N]);
     553    remove_argument (N, &argc, argv);
     554    AreaYmax = atof (argv[N]);
     555    remove_argument (N, &argc, argv);
     556    AreaSelect = TRUE;
     557  }
     558
     559  SyntheticPhotometry = FALSE;
     560  if ((N = get_argument (argc, argv, "-synthphot"))) {
     561    remove_argument (N, &argc, argv);
     562    SyntheticPhotometry = FALSE;
     563    init_synthetic_mags();
     564  }
     565
     566  ImagSelect = FALSE;
     567  if ((N = get_argument (argc, argv, "-instmag"))) {
     568    remove_argument (N, &argc, argv);
     569    ImagMin = atof (argv[N]);
     570    remove_argument (N, &argc, argv);
     571    ImagMax = atof (argv[N]);
     572    remove_argument (N, &argc, argv);
     573    ImagSelect = TRUE;
     574  }
     575
     576  DophotSelect = FALSE;
     577  if ((N = get_argument (argc, argv, "-dophot"))) {
     578    remove_argument (N, &argc, argv);
     579    DophotValue = atof (argv[N]);
     580    remove_argument (N, &argc, argv);
     581    DophotSelect = TRUE;
    202582  }
    203583
     
    210590  }
    211591
    212   CLOUD_TOLERANCE = 0.02;
    213   if ((N = get_argument (argc, argv, "-cloud-limit"))) {
    214     remove_argument (N, &argc, argv);
    215     CLOUD_TOLERANCE = atof(argv[N]);
    216     remove_argument (N, &argc, argv);
    217   }
    218 
    219   // XXX should we load a tree from CATDIR by default?
    220   // NOTE: a given catdir needs an appropriate boundary tree
    221   BOUNDARY_TREE = NULL;
    222   if ((N = get_argument (argc, argv, "-boundary-tree"))) {
    223     remove_argument (N, &argc, argv);
    224     BOUNDARY_TREE = strcreate(argv[N]);
    225     load_tess (BOUNDARY_TREE);
    226     remove_argument (N, &argc, argv);
    227   }
    228 
    229   SHOW_PARAMS = FALSE;
    230   if ((N = get_argument (argc, argv, "-params"))) {
    231     remove_argument (N, &argc, argv);
    232     SHOW_PARAMS = TRUE;
    233   }
    234 
    235   PlotMmin = 10.0; PlotMmax = 20.0; PlotdMmin = -1.0; PlotdMmax = 1.0;
    236   if ((N = get_argument (argc, argv, "-plrange"))) {
    237     remove_argument (N, &argc, argv);
    238     PlotMmin = atof (argv[N]);
    239     remove_argument (N, &argc, argv);
    240     PlotMmax = atof (argv[N]);
    241     remove_argument (N, &argc, argv);
    242     PlotdMmin = atof (argv[N]);
    243     remove_argument (N, &argc, argv);
    244     PlotdMmax = atof (argv[N]);
    245     remove_argument (N, &argc, argv);
    246   }
    247 
    248   /* XXX this argument used to do two things: specify the camera name and tell the analysis to
    249      calculate a common zero point for a single mosaic.  I've moved the MOSAICNAME concept into the
    250      config system, but need to use this argument to specify that the mosaic zeropoints should be
    251      calculated. */
    252   MOSAIC_ZEROPT = FALSE;
    253   if ((N = get_argument (argc, argv, "-mosaic"))) {
    254     remove_argument (N, &argc, argv);
    255     MOSAIC_ZEROPT = TRUE;
    256     if (!strcasecmp (MOSAICNAME, "none")) {
    257       fprintf (stderr, "mosaic astrometry selected by MOSAICNAME not defined\n");
    258       exit (2);
    259     }
    260   }
    261 
    262   FREEZE_IMAGES = FALSE;
    263   if ((N = get_argument (argc, argv, "-imfreeze"))) {
    264     remove_argument (N, &argc, argv);
    265     FREEZE_IMAGES = TRUE;
    266   }
    267 
    268   FREEZE_MOSAICS = FALSE;
    269   if ((N = get_argument (argc, argv, "-mosfreeze"))) {
    270     remove_argument (N, &argc, argv);
    271     FREEZE_MOSAICS = TRUE;
    272   }
    273 
    274   USE_GRID = FALSE;
    275   if ((N = get_argument (argc, argv, "-grid"))) {
    276     remove_argument (N, &argc, argv);
    277     USE_GRID = TRUE;
    278   }
    279 
    280   KEEP_UBERCAL = TRUE;
    281   if ((N = get_argument (argc, argv, "-reset-ubercal"))) {
    282     remove_argument (N, &argc, argv);
    283     KEEP_UBERCAL = FALSE;
    284   }
    285 
    286   MIN_ERROR = 0.001;
    287   if ((N = get_argument (argc, argv, "-minerror"))) {
    288     remove_argument (N, &argc, argv);
    289     MIN_ERROR = atof (argv[N]);
    290     remove_argument (N, &argc, argv);
    291     /* require MIN_ERROR > 0 */
    292   } 
    293 
    294   AreaSelect = FALSE;
    295   if ((N = get_argument (argc, argv, "-area"))) {
    296     remove_argument (N, &argc, argv);
    297     AreaXmin = atof (argv[N]);
    298     remove_argument (N, &argc, argv);
    299     AreaXmax = atof (argv[N]);
    300     remove_argument (N, &argc, argv);
    301     AreaYmin = atof (argv[N]);
    302     remove_argument (N, &argc, argv);
    303     AreaYmax = atof (argv[N]);
    304     remove_argument (N, &argc, argv);
    305     AreaSelect = TRUE;
    306   }
    307 
    308   ImagSelect = FALSE;
    309   if ((N = get_argument (argc, argv, "-instmag"))) {
    310     remove_argument (N, &argc, argv);
    311     ImagMin = atof (argv[N]);
    312     remove_argument (N, &argc, argv);
    313     ImagMax = atof (argv[N]);
    314     remove_argument (N, &argc, argv);
    315     ImagSelect = TRUE;
    316   }
    317 
    318   DophotSelect = FALSE;
    319   if ((N = get_argument (argc, argv, "-dophot"))) {
    320     remove_argument (N, &argc, argv);
    321     DophotValue = atof (argv[N]);
    322     remove_argument (N, &argc, argv);
    323     DophotSelect = TRUE;
    324   }
    325 
    326   SyntheticPhotometry = FALSE;
    327   if ((N = get_argument (argc, argv, "-synthphot"))) {
    328     remove_argument (N, &argc, argv);
    329     SyntheticPhotometry = TRUE;
    330     init_synthetic_mags();
    331   }
    332 
    333   refPhotcode = NULL;
    334   if ((N = get_argument (argc, argv, "-refcode"))) {
    335     remove_argument (N, &argc, argv);
    336     refPhotcode = GetPhotcodebyName (argv[N]);
    337     if (!refPhotcode) {
    338       fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
    339       exit (1);
    340     }
    341     remove_argument (N, &argc, argv);
    342   }
    343 
    344   UpdateAverages = FALSE;
    345   if ((N = get_argument (argc, argv, "-averages"))) {
    346     remove_argument (N, &argc, argv);
    347     UpdateAverages = TRUE;
    348   }
    349 
    350   ApplyOffsets = FALSE;
    351   if ((N = get_argument (argc, argv, "-apply-offsets"))) {
    352     remove_argument (N, &argc, argv);
    353     ApplyOffsets = TRUE;
    354   }
    355 
    356   ParallelImages = FALSE;
    357   if ((N = get_argument (argc, argv, "-parallel-images"))) {
    358     remove_argument (N, &argc, argv);
    359     ParallelImages = TRUE;
    360   }
    361 
    362   if (UpdateAverages && (argc == 1)) return TRUE;
    363   if (argc != 2) relphot_usage ();
     592  if ((MODE == MODE_UPDATE_OBJECTS)  && (argc == 1)) return TRUE;
     593  if (argc != 2) relphot_client_usage ();
    364594
    365595  return TRUE;
    366596}
    367597
    368 int args_client (int argc, char **argv) {
    369 
    370   int N;
    371   double trange;
    372 
    373   // by definition, the client is not parallel
    374   PARALLEL = FALSE;
    375   PARALLEL_MANUAL = FALSE;
    376   PARALLEL_SERIAL = FALSE;
    377 
    378   HOST_ID = 0;
    379   if ((N = get_argument (argc, argv, "-hostID"))) {
    380     remove_argument (N, &argc, argv);
    381     HOST_ID = atoi (argv[N]);
    382     remove_argument (N, &argc, argv);
    383   }
    384   if (!HOST_ID) relphot_client_usage();
    385 
    386   HOSTDIR = NULL;
    387   if ((N = get_argument (argc, argv, "-hostdir"))) {
    388     remove_argument (N, &argc, argv);
    389     HOSTDIR = strcreate (argv[N]);
    390     remove_argument (N, &argc, argv);
    391   }
    392   if (!HOSTDIR) relphot_client_usage();
    393 
    394   IMAGES = NULL; // used in -update mode
    395   BCATALOG = NULL; // used in -load mode
    396   MODE = MODE_NONE;
    397   if ((N = get_argument (argc, argv, "-load"))) {
    398     MODE = MODE_LOAD;
    399     remove_argument (N, &argc, argv);
    400     BCATALOG = strcreate (argv[N]);
    401     remove_argument (N, &argc, argv);
    402   }
    403   if ((N = get_argument (argc, argv, "-update-catalogs"))) {
    404     if (MODE) {
    405       fprintf (stderr, "ERROR: cannot mix modes (-load, -update-catalogs, -update-objects)\n");
    406       relphot_client_usage();
    407     }
    408     MODE = MODE_UPDATE;
    409     remove_argument (N, &argc, argv);
    410     IMAGES = strcreate (argv[N]);
    411     remove_argument (N, &argc, argv);
    412   }
    413   if ((N = get_argument (argc, argv, "-update-objects"))) {
    414     if (MODE) {
    415       fprintf (stderr, "ERROR: cannot mix modes (-load, -update-catalogs, -update-objects)\n");
    416       relphot_client_usage();
    417     }
    418     MODE = MODE_UPDATE_OBJECTS;
    419     remove_argument (N, &argc, argv);
    420   }
    421   if (!MODE) relphot_client_usage();
    422 
    423   strcpy (STATMODE, "WT_MEAN");
    424   if ((N = get_argument (argc, argv, "-statmode"))) {
    425     remove_argument (N, &argc, argv);
    426     strcpy (STATMODE, argv[N]);
    427     remove_argument (N, &argc, argv);
    428   }
    429 
    430   BOUNDARY_TREE = NULL;
    431   if ((N = get_argument (argc, argv, "-boundary-tree"))) {
    432     remove_argument (N, &argc, argv);
    433     BOUNDARY_TREE = strcreate(argv[N]);
    434     load_tess (BOUNDARY_TREE);
    435     remove_argument (N, &argc, argv);
    436   }
    437 
    438   /* specify portion of the sky */
    439   UserPatch.Rmin = 0;
    440   UserPatch.Rmax = 360;
    441   UserPatch.Dmin = -90;
    442   UserPatch.Dmax = +90;
    443   if ((N = get_argument (argc, argv, "-region"))) {
    444     remove_argument (N, &argc, argv);
    445     UserPatch.Rmin = atof (argv[N]);
    446     remove_argument (N, &argc, argv);
    447     UserPatch.Rmax = atof (argv[N]);
    448     remove_argument (N, &argc, argv);
    449     UserPatch.Dmin = atof (argv[N]);
    450     remove_argument (N, &argc, argv);
    451     UserPatch.Dmax = atof (argv[N]);
    452     remove_argument (N, &argc, argv);
    453   }
    454 
    455   SET_MREL_VERSION = 1;
    456   if ((N = get_argument (argc, argv, "-set-mrel-version"))) {
    457     remove_argument (N, &argc, argv);
    458     SET_MREL_VERSION = atof(argv[N]);
    459     remove_argument (N, &argc, argv);
    460   }
    461 
    462   VERBOSE = VERBOSE2 = FALSE;
    463   if ((N = get_argument (argc, argv, "-v"))) {
    464     VERBOSE = TRUE;
    465     remove_argument (N, &argc, argv);
    466   }
    467   if ((N = get_argument (argc, argv, "-vv"))) {
    468     VERBOSE2 = VERBOSE = TRUE;
    469     remove_argument (N, &argc, argv);
    470   }
    471 
    472   RESET = FALSE;
    473   if ((N = get_argument (argc, argv, "-reset"))) {
    474     remove_argument (N, &argc, argv);
    475     RESET = TRUE;
    476   }
    477 
    478   RESET_ZEROPTS = FALSE;
    479   if ((N = get_argument (argc, argv, "-reset-zpts"))) {
    480     remove_argument (N, &argc, argv);
    481     RESET_ZEROPTS = TRUE;
    482   }
    483 
    484   KEEP_UBERCAL = TRUE;
    485   if ((N = get_argument (argc, argv, "-reset-ubercal"))) {
    486     remove_argument (N, &argc, argv);
    487     KEEP_UBERCAL = FALSE;
    488   }
    489 
    490   /* define time */
    491   TimeSelect = FALSE;
    492   if ((N = get_argument (argc, argv, "-time"))) {
    493     remove_argument (N, &argc, argv);
    494     if (!ohana_str_to_time (argv[N], &TSTART)) {
    495       fprintf (stderr, "ERROR: syntax error\n");
    496       return (FALSE);
    497     }
    498     remove_argument (N, &argc, argv);
    499     if (!ohana_str_to_dtime (argv[N], &trange)) {
    500       if (!ohana_str_to_time (argv[N], &TSTOP)) {
    501         fprintf (stderr, "ERROR: syntax error\n");
    502         return (FALSE);
    503       }
    504     } else {
    505       if (trange < 0) {
    506         trange = fabs (trange);
    507         TSTOP = TSTART;
    508         TSTART -= trange;
    509       } else {
    510         TSTOP = TSTART + trange;
    511       }
    512     }
    513     remove_argument (N, &argc, argv);
    514     TimeSelect = TRUE;
    515   }
    516 
    517 
    518   MIN_ERROR = 0.001;
    519   if ((N = get_argument (argc, argv, "-minerror"))) {
    520     remove_argument (N, &argc, argv);
    521     MIN_ERROR = atof (argv[N]);
    522     remove_argument (N, &argc, argv);
    523     /* require MIN_ERROR > 0 */
    524   } 
    525 
    526   UPDATE = FALSE;
    527   if ((N = get_argument (argc, argv, "-update"))) {
    528     remove_argument (N, &argc, argv);
    529     UPDATE = TRUE;
    530   }
    531 
    532   UPDATE_CATFORMAT = NULL;
    533   if ((N = get_argument (argc, argv, "-update-catformat"))) {
    534     remove_argument (N, &argc, argv);
    535     UPDATE_CATFORMAT = strcreate (argv[N]);
    536     remove_argument (N, &argc, argv);
    537   }
    538 
    539   AreaSelect = FALSE;
    540   if ((N = get_argument (argc, argv, "-area"))) {
    541     remove_argument (N, &argc, argv);
    542     AreaXmin = atof (argv[N]);
    543     remove_argument (N, &argc, argv);
    544     AreaXmax = atof (argv[N]);
    545     remove_argument (N, &argc, argv);
    546     AreaYmin = atof (argv[N]);
    547     remove_argument (N, &argc, argv);
    548     AreaYmax = atof (argv[N]);
    549     remove_argument (N, &argc, argv);
    550     AreaSelect = TRUE;
    551   }
    552 
    553   SyntheticPhotometry = FALSE;
    554   if ((N = get_argument (argc, argv, "-synthphot"))) {
    555     remove_argument (N, &argc, argv);
    556     SyntheticPhotometry = FALSE;
    557     init_synthetic_mags();
    558   }
    559 
    560   ImagSelect = FALSE;
    561   if ((N = get_argument (argc, argv, "-instmag"))) {
    562     remove_argument (N, &argc, argv);
    563     ImagMin = atof (argv[N]);
    564     remove_argument (N, &argc, argv);
    565     ImagMax = atof (argv[N]);
    566     remove_argument (N, &argc, argv);
    567     ImagSelect = TRUE;
    568   }
    569 
    570   DophotSelect = FALSE;
    571   if ((N = get_argument (argc, argv, "-dophot"))) {
    572     remove_argument (N, &argc, argv);
    573     DophotValue = atof (argv[N]);
    574     remove_argument (N, &argc, argv);
    575     DophotSelect = TRUE;
    576   }
    577 
    578   MaxDensityUse = FALSE;
    579   if ((N = get_argument (argc, argv, "-max-density"))) {
    580     remove_argument (N, &argc, argv);
    581     MaxDensityValue = atof(argv[N]);
    582     remove_argument (N, &argc, argv);
    583     MaxDensityUse = TRUE;
    584   }
    585 
    586   if ((MODE == MODE_UPDATE_OBJECTS)  && (argc == 1)) return TRUE;
    587   if (argc != 2) relphot_client_usage ();
    588 
    589   return TRUE;
    590 }
    591 
  • branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/help.c

    r33651 r36504  
    22
    33void relphot_usage (void) {
    4   fprintf (stderr, "ERROR: USAGE: relphot (photcodes) -region RA RA DEC DEC\n");
    5   fprintf (stderr, "       or:    relphot (photcodes) -catalog (name)\n");
     4  fprintf (stderr, "ERROR: USAGE: relphot (photcode[s]) -region RA RA DEC DEC\n");
     5  fprintf (stderr, "       or:    relphot (photcode[s]) -catalog (name)\n");
    66  fprintf (stderr, "       or:    relphot -averages -region RA RA DEC DEC\n");
     7  fprintf (stderr, "       or:    relphot -apply-offsets -region RA RA DEC DEC\n");
     8  fprintf (stderr, "       or:    relphot -parallel-regions ()\n");
     9  fprintf (stderr, "       or:    relphot -parallel-images ()\n");
    710  fprintf (stderr, "  use -h for more usage information\n");
    811  exit (2);
     
    1821
    1922show_help:
    20   fprintf (stderr, "ERROR: USAGE: relphot (photcode) -region RA RA DEC DEC\n");
    21   fprintf (stderr, "       or:    relphot (photcode) -catalog (name)\n");
     23  fprintf (stderr, "ERROR: USAGE: relphot (photcode[s]) -region RA RA DEC DEC\n");
     24  fprintf (stderr, "       or:    relphot (photcode[s]) -catalog (name)\n");
    2225  fprintf (stderr, "       or:    relphot -averages -region RA RA DEC DEC\n");
     26  fprintf (stderr, "       or:    relphot -apply-offsets -region RA RA DEC DEC\n");
     27  fprintf (stderr, "       or:    relphot -parallel-regions ()\n");
     28  fprintf (stderr, "       or:    relphot -parallel-images ()\n");
    2329  fprintf (stderr, "  options: \n");
    2430  fprintf (stderr, "  -time (start) (stop)\n");
  • branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/initialize.c

    r34429 r36504  
    11# include "relphot.h"
    22
    3 void initialize (int argc, char **argv) {
     3RelphotMode initialize (int argc, char **argv) {
    44
    55  relphot_help (argc, argv);
    66  ConfigInit (&argc, argv);
    7   args (argc, argv);
     7  RelphotMode mode = args (argc, argv);
     8  if (!mode) exit (2);
    89
    9   if (!UpdateAverages) {
    10     // load the list of photcodes into the globals (photcodes, Nphotcodes)
    11     // only a single remaining argument in this mode (the list of photcodes, eg g,r,i)
    12     PhotcodeList = strcreate (argv[1]);
    13     photcodes = ParsePhotcodeList (PhotcodeList, &Nphotcodes, TRUE); // require SEC photcodes
    14   } else {
     10  // UPDATE_AVERAGES always operates on all photcodes?
     11  if (mode == UPDATE_AVERAGES) {
    1512    char tmpline1[256];
    1613    int Ns;
     
    6764  for (B = 0; A == time(NULL); B++);
    6865  srand48(B);
     66
     67  return mode;
    6968}
    7069
  • branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/relphot.c

    r36503 r36504  
    33int main (int argc, char **argv) {
    44
    5   /* get configuration info, args */
    6   initialize (argc, argv);
     5  // get configuration info, args
     6  RelphotMode mode = initialize (argc, argv);
     7  if (!mode) exit (2);
    78
    8   /* the object analysis is a separate process iterating over catalogs */
    9   if (UpdateAverages) {
    10     relphot_objects (0, NULL);
    11     exit (0);
     9  switch (mode) {
     10    case UPDATE_IMAGES:
     11      relphot_images ();
     12      exit (0);
     13
     14    case UPDATE_AVERAGES:
     15      // take the current set of detections and set the mean magnitudes
     16      relphot_objects (0, NULL);
     17      exit (0);
     18
     19    case PARALLEL_REGIONS:
     20      // run image updates in parallel across multiple remote machines
     21      relphot_parallel_regions ();
     22      exit (0);
     23
     24    case PARALLEL_IMAGES:
     25      // operation on the remote machines in the PARALLEL_REGION mode
     26      relphot_parallel_images ();
     27      exit (0);
     28
     29    case APPLY_OFFSETS:
     30      // re-run this step from a previous attempt (assumes an existing Images.subset.dat file)
     31      if (!PARALLEL) {
     32        fprintf (stderr, "-apply-offsets only makes sense in an parallel context\n");
     33        exit (2);
     34      }
     35      reload_catalogs (NULL, NULL, 0, NULL);
     36      exit (0);
     37
     38    default:
     39      fprintf (stderr, "ERROR: no valid relphot mode chosen\n");
     40      exit (2);
    1241  }
    13 
    14   if (ApplyOffsets) {
    15     // re-run this step from a previous attempt (assumes an existing Images.subset.dat file)
    16     if (!PARALLEL) {
    17       fprintf (stderr, "-apply-offsets only makes sense in an parallel context\n");
    18       exit (2);
    19     }
    20     reload_catalogs (NULL, NULL, 0, NULL);
    21     exit (0);
    22   }
    23 
    24   /* the object analysis is a separate process iterating over catalogs */
    25   if (ParallelImages) {
    26     relphot_parallel_images ();
    27     exit (0);
    28   }
    29 
    30   /* the object analysis is a separate process iterating over catalogs */
    31   if (ParallelRegion) {
    32     relphot_parallel_region ();
    33     exit (0);
    34   }
    35 
    36   relphot_images ();
    37 
    38   exit (0);
     42  fprintf (stderr, "IMPOSSIBLE: skipped out of switch?\n");
     43  exit (1);
    3944}
    40 
Note: See TracChangeset for help on using the changeset viewer.