Changeset 35231
- Timestamp:
- Mar 5, 2013, 12:48:55 PM (13 years ago)
- Location:
- branches/eam_branches/ipp-20130207/Ohana/src/delstar
- Files:
-
- 3 edited
-
include/delstar.h (modified) (1 diff)
-
src/args.c (modified) (3 diffs)
-
src/delete_duplicate_images.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130207/Ohana/src/delstar/include/delstar.h
r35229 r35231 38 38 int VERBOSE; 39 39 int VERBOSE2; 40 int UPDATE; 41 int IMAGE_DETAILS; 42 int IMAGE_ONLY; 40 43 int ORPHAN; 41 44 int MISSED; -
branches/eam_branches/ipp-20130207/Ohana/src/delstar/src/args.c
r35229 r35231 9 9 fprintf (stderr, " delstar -orphan (region)\n"); 10 10 fprintf (stderr, " delstar -missed (region)\n\n"); 11 fprintf (stderr, " delstar -photcodes (list) : delete by photcode\n\n"); 12 fprintf (stderr, " delstar -dup-images : delete duplicate images (by externID)\n\n"); 11 13 fprintf (stderr, " optional flags:\n"); 12 14 fprintf (stderr, " -v : verbose mode\n"); 13 15 fprintf (stderr, " -photcode (code) : restrict by photcode\n"); 16 fprintf (stderr, " -update : apply changes (-dup-images only)\n"); 17 fprintf (stderr, " -image-details : list info about the deleted images (-dup-images only)\n"); 18 fprintf (stderr, " -image-only : only examine the image table (changes are NOT saved; -dup-images only)\n"); 19 fprintf (stderr, " -region Rmin Rmax Dmin Dmax : apply changes to this part of the sky\n"); 20 14 21 fprintf (stderr, "\n"); 15 22 exit (2); … … 48 55 VERBOSE = TRUE; 49 56 VERBOSE2 = TRUE; 57 remove_argument (N, &argc, argv); 58 } 59 60 UPDATE = FALSE; 61 if ((N = get_argument (argc, argv, "-update"))) { 62 UPDATE = TRUE; 63 remove_argument (N, &argc, argv); 64 } 65 66 IMAGE_DETAILS = FALSE; 67 if ((N = get_argument (argc, argv, "-image-details"))) { 68 IMAGE_DETAILS = TRUE; 69 remove_argument (N, &argc, argv); 70 } 71 72 // we should never delete the images before the measures (or we won't know what to delete) 73 // -image-only is for testing 74 IMAGE_ONLY = FALSE; 75 if ((N = get_argument (argc, argv, "-image-only"))) { 76 IMAGE_ONLY = TRUE; 77 UPDATE = FALSE; 50 78 remove_argument (N, &argc, argv); 51 79 } … … 256 284 } 257 285 286 UPDATE = FALSE; 287 if ((N = get_argument (argc, argv, "-update"))) { 288 UPDATE = TRUE; 289 remove_argument (N, &argc, argv); 290 } 291 292 IMAGE_DETAILS = FALSE; 293 if ((N = get_argument (argc, argv, "-image-details"))) { 294 IMAGE_DETAILS = TRUE; 295 remove_argument (N, &argc, argv); 296 } 297 298 IMAGE_ONLY = FALSE; 299 if ((N = get_argument (argc, argv, "-image-only"))) { 300 IMAGE_ONLY = TRUE; 301 UPDATE = FALSE; 302 remove_argument (N, &argc, argv); 303 } 304 258 305 /* specify portion of the sky */ 259 306 UserPatch.Rmin = 0; -
branches/eam_branches/ipp-20130207/Ohana/src/delstar/src/delete_duplicate_images.c
r35229 r35231 8 8 int delete_duplicate_images (int hostID, char *hostpath, FITS_DB *db) { 9 9 10 off_t Nimage;11 Image *image ;10 off_t i, Nimage; 11 Image *image, *outimage; 12 12 13 13 image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped); … … 19 19 IndexArray *imageID = find_duplicates (image, Nimage); 20 20 21 delete_duplicate_image_measures (hostID, hostpath, imageID); 21 if (!IMAGE_ONLY) { 22 delete_duplicate_image_measures (hostID, hostpath, imageID); 23 } 24 25 if (!UPDATE) return TRUE; 26 27 /* delete the identified images */ 28 off_t Noutimage = 0; 29 ALLOCATE (outimage, Image, Nimage); 30 for (i = 0; i < Nimage; i++) { 31 if (image[i].imageID == 0) continue; 32 off_t Ni = image[i].imageID - imageID->minID; 33 myAssert (Ni >= 0, "oops"); 34 myAssert (Ni < imageID->range, "oops"); 35 36 // imageID->value[Ni] is TRUE if we want to delete the image 37 if (imageID->value[Ni]) continue; 38 outimage[Noutimage] = image[i]; 39 Noutimage ++; 40 } 41 free (image); 42 43 fprintf (stderr, "removing "OFF_T_FMT" images (leaving "OFF_T_FMT" of "OFF_T_FMT")\n", Nimage - Noutimage, Noutimage, Nimage); 44 // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage); 45 46 gfits_modify (&db[0].theader, "NAXIS2", OFF_T_FMT, 1, Noutimage); 47 gfits_modify (&db[0].header, "NIMAGES", OFF_T_FMT, 1, Noutimage); 48 db[0].theader.Naxis[1] = Noutimage; 49 db[0].ftable.buffer = (char *) outimage; 50 51 if (!dvo_image_save (db, VERBOSE)) return FALSE; 52 if (!dvo_image_unlock (db)) return FALSE; 22 53 23 54 return TRUE; … … 77 108 78 109 delete_duplicate_image_measures_catalog (&catalog, imageID); 79 dvo_catalog_save_complete (&catalog, VERBOSE2); 110 111 if (UPDATE) { 112 dvo_catalog_save_complete (&catalog, VERBOSE2); 113 } 114 80 115 dvo_catalog_unlock (&catalog); 81 116 dvo_catalog_free (&catalog); … … 342 377 if (VERBOSE) fprintf (stderr, "ending with Nave, Nmeas: "OFF_T_FMT" "OFF_T_FMT"\n", catalog[0].Naverage, catalog[0].Nmeasure); 343 378 379 off_t NdelAves = Naverage - catalog[0].Naverage; 380 off_t NdelMeas = Nmeasure - catalog[0].Nmeasure; 381 if (NdelAves || NdelMeas) { 382 fprintf (stderr, "deleting "OFF_T_FMT" measures and "OFF_T_FMT" averages : %s\n", NdelMeas, NdelAves, catalog[0].filename); 383 } 384 344 385 FREE (measureDrop); 345 386 FREE (measureSeqRaw); … … 406 447 imageID->value[Ni] = TRUE; 407 448 Ndelete[Nx] ++; 449 408 450 // mark the parentID for deletion as well.. 409 } 410 411 for (i = 0; i < Nimage; i++) { 451 // XXX this is probably bad : it assumes all chips 452 // should be deleted for a given exposure 453 off_t parentID = image[i].parentID; 454 if (parentID) { 455 off_t Np = parentID - imageID->minID; 456 myAssert (Np >= 0, "oops"); 457 myAssert (Np < imageID->range, "oops"); 458 imageID->value[Np] = TRUE; 459 } 460 } 461 462 for (i = 0; IMAGE_DETAILS && (i < Nimage); i++) { 412 463 off_t Ni = image[i].imageID - imageID->minID; 413 464 if (!imageID->value[Ni]) continue; 414 fprintf (stderr, "delete image (i) " OFF_T_FMT ", extID = %d \n", i, image[i].externID);465 fprintf (stderr, "delete image (i) " OFF_T_FMT ", extID = %d : %s\n", i, image[i].externID, image[i].name); 415 466 } 416 467
Note:
See TracChangeset
for help on using the changeset viewer.
