Changeset 36516
- Timestamp:
- Feb 15, 2014, 1:15:44 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140206/Ohana/src
- Files:
-
- 5 added
- 15 edited
-
libdvo/include/dvo.h (modified) (1 diff)
-
libdvo/src/RegionHostTable.c (modified) (3 diffs)
-
relphot/doc/parallel.txt (modified) (1 diff)
-
relphot/include/relphot.h (modified) (1 diff)
-
relphot/src/ImageOps.c (modified) (3 diffs)
-
relphot/src/ImageTable.c (added)
-
relphot/src/MeanMagIO.c (added)
-
relphot/src/MosaicOps.c (modified) (2 diffs)
-
relphot/src/StarOps.c (modified) (1 diff)
-
relphot/src/args.c (modified) (2 diffs)
-
relphot/src/assign_images.c (modified) (5 diffs)
-
relphot/src/help.c (modified) (1 diff)
-
relphot/src/indexCatalog.c (added)
-
relphot/src/launch_region_hosts.c (added)
-
relphot/src/load_catalogs.c (modified) (2 diffs)
-
relphot/src/relphot_parallel_images.c (modified) (9 diffs)
-
relphot/src/relphot_parallel_regions.c (modified) (1 diff)
-
relphot/src/share_image_mags.c (added)
-
relphot/src/share_mean_mags.c (modified) (2 diffs)
-
uniphot/src/update_dvo_setphot.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/include/dvo.h
r36503 r36516 295 295 int pid; // remote process ID 296 296 char *hostname; 297 ImageSubset *image; 297 298 298 int line_numbers; 299 300 off_t Nimage; 301 off_t NIMAGE; 302 Image *image; 299 303 } RegionHostInfo; 300 304 -
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/src/RegionHostTable.c
r36503 r36516 7 7 int i; 8 8 for (i = Nhosts; i < NHOSTS; i++) { 9 hosts[i].Rmin = NAN; 10 hosts[i].Rmax = NAN; 11 hosts[i].Dmin = NAN; 12 hosts[i].Dmax = NAN; 13 9 14 hosts[i].hostname = NULL; 10 15 hosts[i].stdio[HOST_STDIN] = -1; … … 13 18 hosts[i].pid = 0; 14 19 15 hosts[i].Rmin = NAN; 16 hosts[i].Rmax = NAN; 17 hosts[i].Dmin = NAN; 18 hosts[i].Dmax = NAN; 20 hosts[i].image = NULL; 21 hosts[i].Nimage = 0; 22 hosts[i].NIMAGE = 0; 19 23 } 20 24 return; … … 143 147 return table; 144 148 } 145 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/doc/parallel.txt
r36503 r36516 1 2 2014.02.14 3 4 more relphot notes: 5 6 * I load the catalogs, with a 7 8 2014.02.12 9 10 I am making progess on the relphot -parallel-regions implementation. some things I need to deal with: 11 12 * assign_images: select mosaics for all images saved for a given host (need to supply them as well) 13 ** I need to decide on the Image / Mosaic split. If I am calibrating by image, then the image center defines ownership 14 ** if I am calibrating by exposure, then the mosaic center must define ownership 15 o determine SkyList covering the images for region host 16 o tag detections and objects which I own or do not own 17 o ImageOps.c / matchImage matches detections to images and needs to handle mine / not mine cases 18 o ditto for matchMosaics 19 o load_catalogs : I need to make my requested catalogs unique (just add uniquer to load_catalogs.c:130 20 o figure out what fields I'm saving in meanmags and how to construct it 21 -- mag, objID, catID, photcode, (dmag or other stats?) 22 * from which hosts do I slurp mean mags? 23 o function to merge a new meanmag array into the existing one 24 * how to go from (objID,catID) to a given catalog[i].average[j] 1 25 2 26 2014.02.06 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/include/relphot.h
r36504 r36516 110 110 StatType kronstats; 111 111 } SetMrelInfo; 112 113 typedef struct { 114 float M; 115 float dM; 116 float Xm; 117 int Nsec; 118 unsigned int objID; 119 unsigned int catID; 120 } MeanMag; 112 121 113 122 typedef struct { -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/ImageOps.c
r36491 r36516 244 244 245 245 int Nmatch = 0; 246 for (i = 0; i < Ncatalog; i++) {246 for (i = 0; i < Ncatalog; i++) { 247 247 for (j = 0; j < catalog[i].Nmeasure; j++) { 248 catalog[i].measureT[j].myDet = FALSE; // a detetion is not mine until proven otherwise 248 249 ecode = GetPhotcodeEquivCodebyCode (catalog[i].measureT[j].photcode); 250 251 // skip measurements which do not match one of the requested photcodes ( 252 // (do we not already exclude in bcatalog -- maybe needed for reload_objects? 249 253 found = FALSE; 250 254 for (Ns = 0; !found && (Ns < Nphotcodes); Ns++) { … … 252 256 } 253 257 if (!found) continue; 258 259 // if we match one of our images, myDet gets set to TRUE 254 260 matchImage (catalog, j, i, doImageList); 255 261 Nmatch ++; … … 322 328 return; 323 329 } 330 catalog[cat].measureT[meas].myDet = TRUE; 324 331 325 332 if (USE_GRID) { -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/MosaicOps.c
r36491 r36516 527 527 528 528 if (!MOSAIC_ZEROPT) return (FALSE); 529 // if we are calibrating by mosaic, redefine myDet == on one of my mosaics 529 530 530 531 int Nmatch = 0; 531 532 for (i = 0; i < Ncatalog; i++) { 532 533 for (j = 0; j < catalog[i].Nmeasure; j++) { 534 catalog[i].measureT[j].myDet = FALSE; // a detetion is not mine until proven otherwise 535 533 536 if (TimeSelect) { 534 537 if (catalog[i].measureT[j].t < TSTART) continue; … … 582 585 } 583 586 587 // this measurement is on one of my mosaics, mark it as mine. 588 catalog[cat].measureT[meas].myDet = TRUE; 584 589 MeasureToMosaic[cat][meas] = mosID; 585 590 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/StarOps.c
r36491 r36516 896 896 } 897 897 898 int markObjects (Catalog *catalog, int Ncatalog) { 899 900 // How strongly do I own this object? 901 for (i = 0; i < Ncatalog; i++) { 902 for (j = 0; j < catalog[i].Naverage; j++) { 903 int nOwn = 0; 904 int m = catalog[i].average[j].measureOffset; 905 for (n = 0; n < catalog[i].average[j].Nmeasure; n++) { 906 if (!catalog[i].measureT[m+n].myDet) continue; 907 nOwn ++; 908 } 909 catalog[i].averageT[j].nOwn = nOwn; 910 } 911 } 912 return TRUE; 913 } 914 898 915 void clean_stars (Catalog *catalog, int Ncatalog) { 899 916 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/args.c
r36506 r36516 343 343 } 344 344 345 if ((N = get_argument (argc, argv, "-region-hosts"))) { 346 remove_argument (N, &argc, argv); 347 REGION_FILE = strcreate (argv[N]) 348 remove_argument (N, &argc, argv); 349 } 350 351 REGION_HOST_ID = 0; 352 if ((N = get_argument (argc, argv, "-region-hostID"))) { 353 remove_argument (N, &argc, argv); 354 REGION_HOST_ID = atoi (argv[N]) 355 remove_argument (N, &argc, argv); 356 } 357 345 358 RelphotMode mode = MODE_ERROR; 346 359 if ((N = get_argument (argc, argv, "-averages"))) { … … 355 368 remove_argument (N, &argc, argv); 356 369 mode = PARALLEL_IMAGES; 370 if (N >= argc) relphot_usage(); 371 IMAGE_TABLE = strcreate (argv[N]) 372 remove_argument (N, &argc, argv); 373 if (!REGION_FILE) relphot_usage(); 357 374 } 358 375 if ((N = get_argument (argc, argv, "-parallel-regions"))) { 359 376 remove_argument (N, &argc, argv); 360 377 mode = PARALLEL_REGIONS; 361 if (N >= argc) relphot_usage(); 362 REGION_FILE = strcreate (argv[N]) 363 remove_argument (N, &argc, argv); 378 if (!REGION_FILE) relphot_usage(); 364 379 } 365 380 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/assign_images.c
r36506 r36516 25 25 26 26 // for each regionHost, select images which are contained by the region 27 // XXX this is probably too expensive : I need to loop over Nimage * Nregions28 // inverting the order would probably be faster (need to track NIMAGE for each host)29 27 // even faster would be to use a tree to get to the real regions... 30 28 select_images_hostregion (regionHosts, image, Nimage); … … 85 83 i = find_host_for_coords (regionHosts, Rc, Dc); 86 84 85 // this is a bit memory expensive : I am making a complete copy of the image table here 87 86 off_t Nsubset = regionHosts->host[i].Nimage; 88 regionHosts->host[i].image[Nsubset] = image[j]; 89 regionHosts->host[i].line_number[Nsubset] = j;87 regionHosts->host[i].image[Nsubset] = image[j]; 88 // regionHosts->host[i].line_number[Nsubset] = j; 90 89 91 90 regionHosts->host[i].Nimage ++; … … 93 92 regionHosts->host[i].NIMAGE += D_NIMAGE; 94 93 REALLOCATE (regionHosts->host[i].image, Image, regionHosts->host[i].NIMAGE); 95 REALLOCATE (regionHosts->host[i].line_number, off_t, regionHosts->host[i].NIMAGE);94 // REALLOCATE (regionHosts->host[i].line_number, off_t, regionHosts->host[i].NIMAGE); 96 95 } 97 96 } … … 99 98 } 100 99 100 // XXX add a search tree to speed this up? 101 101 int find_host_for_coords (RegionHostTable *regionHosts, double R, double d) { 102 102 … … 112 112 } 113 113 } 114 -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/help.c
r36506 r36516 6 6 fprintf (stderr, " or: relphot -averages -region RA RA DEC DEC\n"); 7 7 fprintf (stderr, " or: relphot -apply-offsets -region RA RA DEC DEC\n"); 8 fprintf (stderr, " or: relphot -parallel-regions (RegionFile)\n");9 fprintf (stderr, " or: relphot -parallel-images ( )\n");8 fprintf (stderr, " or: relphot -parallel-regions -region-hosts (RegionFile)\n"); 9 fprintf (stderr, " or: relphot -parallel-images (ImageTable) -region-hosts (RegionFile)\n"); 10 10 fprintf (stderr, " use -h for more usage information\n"); 11 11 exit (2); -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/load_catalogs.c
r35416 r36516 108 108 Catalog *load_catalogs_parallel (SkyList *sky, int *Ncatalog) { 109 109 110 char uniquer[12]; 111 int TIME = time(NULL); 112 int PID = getpid(); 113 snprintf (uniquer, 12, "%05d.%05d", PID, TIME % 100000); 114 110 115 int Nsecfilt = GetPhotcodeNsecfilt (); // set the desired number in case we need to create the catalog 111 116 … … 128 133 129 134 ALLOCATE (table->hosts[i].results, char, 1024); 130 snprintf (table->hosts[i].results, 1024, "%s/relphot.catalog. subset.dat", table->hosts[i].pathname);135 snprintf (table->hosts[i].results, 1024, "%s/relphot.catalog.%s.dat", table->hosts[i].pathname, uniquer); 131 136 132 137 // options / arguments that can affect relphot_client -load: -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/relphot_parallel_images.c
r36505 r36516 19 19 INITTIME; 20 20 21 // load the RegionTable (UserRegion should not be used at this level) 22 RegionHostTable *regionHosts = RegionHostTableLoad (CATDIR, REGION_FILE); 23 21 24 // load the subset images belonging to this host 22 // XXX need to determine the file name for each host (here or in master)23 25 off_t Nimage; 24 Image Subset *image = ImageSubsetLoad (IMAGES, &Nimage);26 Image *image = ImageTableLoad (IMAGE_TABLE, &Nimage); 25 27 if (!image) { 26 fprintf (stderr, "ERROR loading image subset %s\n", CATDIR);28 fprintf (stderr, "ERROR loading image %s\n", IMAGE_TABLE); 27 29 exit (2); 28 30 } 29 client_logger_message ("loaded image subset data\n");30 31 31 32 // load the flat correction table (if defined) … … 34 35 FlatCorrectionTable *flatcorr = FlatCorrectionLoad (flatcorrfile, VERBOSE); 35 36 36 // XXX need to define the skylist for this region 37 skylist = function(region); 37 SkyTable *sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, TRUE, SKY_DEPTH, VERBOSE); 38 SkyTableSetFilenames (sky, CATDIR, "cpt"); 39 SkyList *skylist = SkyListByBounds (sky, UserPatch.Rmin, UserPatch.Rmax, UserPatch.Dmin, UserPatch.Dmax); 38 40 39 41 /* load catalog data from region files (hostID is 0 since we are not a client */ … … 41 43 MARKTIME("-- load catalog data: %f sec\n", dtime); 42 44 45 // generate tables go from catID,objID -> catSeq,objSeq 46 indexCatalogs (catalog, Ncatalog); 47 43 48 /* match measurements with images, mosaics */ 44 49 initImageBins (catalog, Ncatalog, TRUE); … … 46 51 47 52 initMosaicBins (catalog, Ncatalog, TRUE); 48 initGridBins (catalog, Ncatalog);49 53 initMrel (catalog, Ncatalog); 50 54 … … 54 58 findMosaics (catalog, Ncatalog, TRUE); /* also sets Grid values */ 55 59 MARKTIME("-- set up mosaic indexes: %f sec\n", dtime); 60 61 markObjects (catalog, Ncatalog); 56 62 57 63 SAVEPLOT = FALSE; … … 76 82 77 83 // share mean mags for objects at the boundary (number of unowned meas > 0) 78 share_mean_mags (catalog, Ncatalog );84 share_mean_mags (catalog, Ncatalog, regionHosts, i); 79 85 80 86 // load mean mags from other region hosts 81 slurp_mean_mags (catalog, Ncatalog );87 slurp_mean_mags (catalog, Ncatalog, regionHosts, i); 82 88 83 89 // set the image (Mcal) and mosaic (Mmos) zero point offsets given the mean mags and measurements … … 87 93 88 94 // share image mags for images with non-zero unowned detections 89 share_image_mags ( );95 share_image_mags (regionHosts, i); 90 96 91 slurp_image_mags (); 92 93 if (PLOTSTUFF) { 94 plot_scatter (catalog, Ncatalog, flatcorr); 95 plot_mosaics (); 96 plot_images (); 97 plot_stars (catalog, Ncatalog); 98 plot_chisq (catalog, Ncatalog); 99 } 97 slurp_image_mags (regionHosts, i); 100 98 101 99 if ((i > 8) && (i % 8 == 2)) clean_measures (catalog, Ncatalog, FALSE, flatcorr); … … 108 106 } 109 107 110 if (PLOTSTUFF) {111 plot_scatter (catalog, Ncatalog, flatcorr);112 plot_grid (catalog, flatcorr);113 plot_mosaics ();114 plot_images ();115 plot_stars (catalog, Ncatalog);116 plot_chisq (catalog, Ncatalog);117 }118 119 108 /* set Mcal & Mmos for bad images */ 120 109 setMcal (catalog, TRUE, flatcorr); … … 122 111 MARKTIME("-- finalize Mcal values: %f sec\n", dtime); 123 112 124 s etMcalFinal (); // copy per-mosaic calibrations to the images113 share_image_mags (regionHosts, i); 125 114 126 /* at this point, we have correct cal coeffs in the image/mosaic structures */ 127 for (i = 0; i < Ncatalog; i++) { 128 // these tiny values are set by BrightCatalogSplit from load_catalogs 129 free_tiny_values (&catalog[i]); 130 dvo_catalog_free (&catalog[i]); 131 } 132 freeImageBins (Ncatalog, TRUE); 133 freeMosaicBins (Ncatalog, TRUE); 134 freeGridBins (Ncatalog); 135 136 save_image_subset (); 115 // save_image_subset (); 137 116 138 117 exit (0); 139 140 118 } -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/relphot_parallel_regions.c
r36506 r36516 42 42 43 43 /* launch processing on the parallel region hosts */ 44 launch_region_hosts (regionHosts , XXX);44 launch_region_hosts (regionHosts); 45 45 46 / * retrieve updated image parameters from the remote hosts */47 retrieve_images (regionHosts, XXX);46 // retrieve updated image parameters from the remote hosts (also set Image.mcal) 47 slurp_image_mags (regionHosts, XXX); 48 48 49 49 /* update catalogs (in parallel) */ -
branches/eam_branches/ipp-20140206/Ohana/src/relphot/src/share_mean_mags.c
r36506 r36516 3 3 // we are sharing mean mags for all objects which (a) I own and (b) which have unowned detections 4 4 5 int share_mean_mags () { 5 # define D_NMEANMAGS 10000 6 int share_mean_mags (Catalog *catalog, int Ncatalog, RegionHostTable *regionHosts, int nloop) { 6 7 7 SomeType *meanmags = NULL;8 ALLOCATE (meanmags, SomeType, NMEANMAGS);8 off_t Nmeanmags = 0; 9 off_t NMEANMAGS = D_NMEANMAGS; 9 10 10 // XXX skip some internal catalogs? 11 MeanMag *meanmags = NULL; 12 ALLOCATE (meanmags, MeanMag, NMEANMAGS); 13 14 int Ns; 15 int Nsecfilt = GetPhotcodeNsecfilt(); 16 17 // XXX skip some catalogs based on UserPatch? 11 18 for (i = 0; i < Ncatalog; i++) { 12 19 for (j = 0; j < catalog[i].Naverage; j++) { 13 20 14 21 // do I own this object? (in region range?) 15 if (catalog[i].average[j].R < Rmin) continue;16 if (catalog[i].average[j].R >= Rmax) continue;17 if (catalog[i].average[j].D < Dmin) continue;18 if (catalog[i].average[j].D >= Dmax) continue;22 if (catalog[i].average[j].R < UserPatch.Rmin) continue; 23 if (catalog[i].average[j].R >= UserPatch.Rmax) continue; 24 if (catalog[i].average[j].D < UserPatch.Dmin) continue; 25 if (catalog[i].average[j].D >= UserPatch.Dmax) continue; 19 26 20 27 // does this object have missing detections (does someone else need it?) 21 if (catalog[i].averageExtra[j].Nmiss == 0) continue; 28 // XXX : sky objects without missing detections 29 // XXX watch out for detections which are not associated with an image (REF) 30 if (catalog[i].averageT[j].nOwn != catalog[i].averageT[j].Nmeasure) continue; 22 31 23 meanmags[Nmeanmags] = something(catalog[i].average[j]); 24 Nmeanmags ++; 25 26 // check realloc.. 32 for (Ns = 0; Ns < Nphotcodes; Ns++) { 33 int thisCode = photcodes[Ns][0].code; 34 int Nsec = GetPhotcodeNsec(thisCode); 35 set_mean_mags (&meanmags[Nmeanmags], &catalog[i].average[j], &catalog[i].secfilt[Nsecfilt*j + Nsec], Nsec); 36 Nmeanmags ++; 37 CHECK_REALLOCATE (meanmags, MeanMag, NMEANMAGS, Nmeanmags, D_NMEANMAGS); 38 } 27 39 } 28 40 } 29 41 30 42 // write out the meanmag fits table AND write state in some file 31 SaveMeanMags (meanmags, Nmeanmags, where); 43 int myHost = regionHosts->index[REGION_HOST_ID]; 44 char *hostname = regionHosts->hosts[myHost].hostname; 45 46 char filename[1024]; 47 snprintf (filename, 1024, "%s/%s.meanmags.fits", CATDIR, hostname); 48 MeanMagSave (filename, meanmags, Nmeanmags); 49 50 update_sync_file (hostname, nloop); 51 52 return TRUE; 32 53 } 33 54 34 int slurp_mean_mags ( ) {55 int slurp_mean_mags (Catalog *catalog, int Ncatalog, RegionHostTable *regionHosts, int nloop) { 35 56 36 SomeType *meanmags = NULL; 37 ALLOCATE (meanmags, SomeType, NMEANMAGS); 57 int Nmeanmags = 0; 58 MeanMag *meanmags = NULL; 59 ALLOCATE (meanmags, MeanMag, 1); 38 60 39 61 for (i = 0; i < Nhost; i++) { 40 62 if (not_neighbor(host[i])) continue; 63 // XXX skip regions->hosts[i].hostID == REGION_HOST_ID 41 64 42 check_sync_file ( host[i]);65 check_sync_file (regionHosts->hosts[i].hostname, nloop); 43 66 44 meanmagsSubset = LoadMeanMags (host[i], &Nsubset); 67 char filename[1024]; 68 snprintf (filename, 1024, "%s/%s.meanmags.fits", CATDIR, regionHosts->hosts[i].hostname); 45 69 46 merge_mean_mags (); 70 int Nsubset = 0; 71 MeanMag *meanmagsSubset = MeanMagLoad (host[i], &Nsubset); 72 73 // merge_mean_mags reallocs meanmags and frees the input meanmagsSubset 74 meanmags = merge_mean_mags (meanmags, &Nmeanmags, meanmagsSubset, Nsubset); 47 75 } 48 76 … … 51 79 catID = meanmags[i].catID; 52 80 81 // set the mean mag 82 // XXX I need to figure out how to go from catID,objID to catSeq,objSeq 53 83 catSeq = catalog_ID_to_seq (catID); 54 objSeq = object_ID_to_seq ( objID);84 objSeq = object_ID_to_seq (catID, objID); 55 85 56 // set the mean mag57 86 Nsecfit = photcode_to_secfilt (meanmags[i].photcode); 58 87 catalog[catSeq].secfilt[objSeq*Nsec + Nsecfilt].mag = meanmags[i].mag; 59 88 } 60 89 } 90 91 # define MSG_LENGTH 11 92 93 int check_sync_file (char *hostname, int nloop) { 94 95 char filename[1024]; 96 sprintf (filename, "%s/%s.meanmags.sync", CATDIR, hostname); 97 98 // XXX I need a rule to generate the filename for each host 99 FILE *f = NULL; 100 101 while (retry) { 102 103 f = fopen (filename); 104 if (!f) { 105 usleep (2000000); 106 continue; 107 } 108 109 int Nread = fread (message, MSG_LENGTH, 1, f); 110 if (Nread < MSG_LENGTH) { 111 fclose (f); 112 usleep (2000000); 113 continue; 114 } 115 fclose (f); 116 117 // message is of the form: NLOOP: %03d 118 sscanf (message, "%s %d", &loop); 119 if (loop != nloop) { 120 usleep (2000000); 121 continue; 122 } 123 return TRUE; 124 } 125 } 126 127 int update_sync_file (char *hostname, int nloop) { 128 129 char filename[1024]; 130 sprintf (filename, "%s/%s.meanmags.sync", CATDIR, hostname); 131 132 FILE *f = fopen (filename, "w"); 133 snprintf (message, 11, "NLOOP: %03d\n", nloop); 134 135 int Nwrite = fwrite (message, MSG_LENGTH, 1, f); 136 if (Nwrite != MSG_LENGTH) { 137 fprintf (stderr, "failure to write sync message\n"); 138 exit (3); 139 } 140 141 fclose (f); 142 return TRUE; 143 } 144 145 int set_mean_mags (MeanMag *meanmags, Average *average, SecFilt *secfilt, int Nsec) { 146 147 meanmags->M = secfilt->M; 148 meanmags->dM = secfilt->dM; 149 meanmags->Xm = secfilt->Xm; 150 meanmags->Nsec = Nsec; // key to secfilt entry 151 152 meanmags->objID = average->objID; 153 meanmags->catID = average->catID; 154 155 return TRUE; 156 } 157 158 MeanMag *merge_mean_mags (MeanMag *target, int *ntarget, MeanMag *source, int Nsource) { 159 160 REALLOCATE (target, MeanMag, *ntarget + Nsource); 161 for (i = 0; i < Nsource; i++) { 162 int n = i + *ntarget; 163 target[n] = source[i]; 164 } 165 166 free (source); 167 168 *ntarget += Nsource; 169 return (target); 170 } 171 -
branches/eam_branches/ipp-20140206/Ohana/src/uniphot/src/update_dvo_setphot.c
r35103 r36516 2 2 int update_dvo_setphot_parallel (SkyTable *sky, Image *image, off_t Nimage); 3 3 4 // XXX convert this to use the ImageSubset to save space 4 5 int update_dvo_setphot (Image *image, off_t Nimage, FlatCorrectionTable *flatcorr) { 5 6
Note:
See TracChangeset
for help on using the changeset viewer.
