Changeset 36504
- Timestamp:
- Feb 11, 2014, 8:34:47 AM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140206/Ohana/src/relphot
- Files:
-
- 5 edited
- 1 moved
-
include/relphot.h (modified) (1 diff)
-
src/args.c (modified) (4 diffs)
-
src/help.c (modified) (2 diffs)
-
src/initialize.c (modified) (2 diffs)
-
src/relphot.c (modified) (1 diff)
-
src/relphot_parallel_regions.c (moved) (moved from branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/relphot_parallel_images.c )
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140206/Ohana/src/relphot/include/relphot.h
r36491 r36504 23 23 // # define IDX_T off_t 24 24 # define IDX_T int 25 26 typedef enum { 27 MODE_ERROR = 0, 28 UPDATE_IMAGES, 29 UPDATE_AVERAGES, 30 PARALLEL_REGIONS, 31 PARALLEL_IMAGES, 32 APPLY_OFFSETS, 33 } RelphotMode; 25 34 26 35 typedef enum { -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/args.c
r36503 r36504 1 1 # include "relphot.h" 2 2 3 intargs (int argc, char **argv) {3 RelphotMode args (int argc, char **argv) { 4 4 5 5 int N; 6 6 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 374 int 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 } 7 495 8 496 /* define time */ … … 33 521 } 34 522 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 } 184 531 185 532 UPDATE = FALSE; … … 196 543 } 197 544 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; 202 582 } 203 583 … … 210 590 } 211 591 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 (); 364 594 365 595 return TRUE; 366 596 } 367 597 368 int args_client (int argc, char **argv) {369 370 int N;371 double trange;372 373 // by definition, the client is not parallel374 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 mode395 BCATALOG = NULL; // used in -load mode396 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 2 2 3 3 void relphot_usage (void) { 4 fprintf (stderr, "ERROR: USAGE: relphot (photcode s) -region RA RA DEC DEC\n");5 fprintf (stderr, " or: relphot (photcode s) -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"); 6 6 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"); 7 10 fprintf (stderr, " use -h for more usage information\n"); 8 11 exit (2); … … 18 21 19 22 show_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"); 22 25 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"); 23 29 fprintf (stderr, " options: \n"); 24 30 fprintf (stderr, " -time (start) (stop)\n"); -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/initialize.c
r34429 r36504 1 1 # include "relphot.h" 2 2 3 voidinitialize (int argc, char **argv) {3 RelphotMode initialize (int argc, char **argv) { 4 4 5 5 relphot_help (argc, argv); 6 6 ConfigInit (&argc, argv); 7 args (argc, argv); 7 RelphotMode mode = args (argc, argv); 8 if (!mode) exit (2); 8 9 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) { 15 12 char tmpline1[256]; 16 13 int Ns; … … 67 64 for (B = 0; A == time(NULL); B++); 68 65 srand48(B); 66 67 return mode; 69 68 } 70 69 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/relphot.c
r36503 r36504 3 3 int main (int argc, char **argv) { 4 4 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); 7 8 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); 12 41 } 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); 39 44 } 40
Note:
See TracChangeset
for help on using the changeset viewer.
