Changeset 39479
- Timestamp:
- Mar 23, 2016, 2:25:16 PM (10 years ago)
- Location:
- trunk/Ohana/src/relphot
- Files:
-
- 4 edited
-
include/relphot.h (modified) (2 diffs)
-
src/load_images.c (modified) (4 diffs)
-
src/relphot.c (modified) (7 diffs)
-
src/relphot_images.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/include/relphot.h
r39478 r39479 418 418 Catalog *load_catalogs_parallel PROTO((SkyList *sky, int *Ncatalog, char *syncfile)); 419 419 420 SkyList *load_images PROTO((FITS_DB *db, SkyTable *sky, char *regionName, SkyRegion *region));420 int load_images PROTO((FITS_DB *db, SkyList *skylist, SkyRegion *region)); 421 421 Image *select_images PROTO((SkyList *skylist, Image *timage, off_t Ntimage, char *inSubset, off_t **LineNumber, off_t *Nimage, SkyRegion *region)); 422 422 … … 476 476 void write_coords PROTO((Header *header, Coords *coords)); 477 477 int relphot_objects (SkyTable *sky, SkyList *skylist, int hostID, char *hostpath); 478 int relphot_images ( void);478 int relphot_images (SkyList *skylist); 479 479 480 480 void relphot_usage (void); -
trunk/Ohana/src/relphot/src/load_images.c
r39478 r39479 5 5 // This function generates a subset of the images based on selections. Input db has already 6 6 // been loaded with the raw fits table data 7 SkyList *load_images (FITS_DB *db, SkyTable *sky, char *regionName, SkyRegion *region) {7 int load_images (FITS_DB *db, SkyList *skylist, SkyRegion *region) { 8 8 9 9 Image *image, *subset; 10 off_t Nimage, Nsubset , Nchar;10 off_t Nimage, Nsubset; 11 11 off_t *LineNumber; 12 char *inSubset; 13 14 SkyList *skylist = NULL; 12 char *inSubset; 15 13 16 14 INITTIME; … … 43 41 memset (inSubset, 0, Nimage); 44 42 45 // determine the populated SkyRegions overlapping the requested area 46 47 // if the user selects a specific catalog, do that one; 48 // otherwise limit to the selection region 49 if (regionName) { 50 Nchar = strlen(regionName); 51 if (!strcmp (®ionName[Nchar-4], ".cpt")) regionName[Nchar-4] = 0; 52 skylist = SkyListByName (sky, regionName); 53 54 // select the images which overlap the selected sky regions 55 // 'subset' points to a new copy of the data (different from 'image') 56 subset = select_images (skylist, image, Nimage, inSubset, &LineNumber, &Nsubset, NULL); 57 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 58 } else { 59 if (region[0].Rmin > region[0].Rmax) { 60 SkyRegion subregion; 61 subregion = *region; 62 subregion.Rmin = 0.0; subregion.Rmax = region[0].Rmax; 63 skylist = SkyListByPatch (sky, -1, &subregion); 64 65 // select the images which overlap the selected sky regions 66 // 'subset' points to a new copy of the data (different from 'image') 67 subset = select_images (skylist, image, Nimage, inSubset, &LineNumber, &Nsubset, &subregion); 68 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 69 70 Image *subsetExtra; 71 off_t NsubsetExtra; 72 off_t *LineNumberExtra, i; 73 74 subregion.Rmin = region[0].Rmin; subregion.Rmax = 360.0; 75 SkyList *extraList = SkyListByPatch (sky, -1, &subregion); 76 77 subsetExtra = select_images (extraList, image, Nimage, inSubset, &LineNumberExtra, &NsubsetExtra, &subregion); 78 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 79 80 REALLOCATE (subset, Image, MAX (Nsubset + NsubsetExtra, 1)); 81 REALLOCATE (LineNumber, off_t, MAX (Nsubset + NsubsetExtra, 1)); 82 83 for (i = 0; i < NsubsetExtra; i++) { 84 subset[i+Nsubset] = subsetExtra[i]; 85 LineNumber[i+Nsubset] = LineNumberExtra[i]; 86 } 87 Nsubset += NsubsetExtra; 88 MARKTIME("selected %d overlapping images: %f sec\n", (int) NsubsetExtra, dtime); 89 } else { 90 skylist = SkyListByPatch (sky, -1, region); 91 92 // select the images which overlap the selected sky regions 93 // 'subset' points to a new copy of the data (different from 'image') 94 subset = select_images (skylist, image, Nimage, inSubset, &LineNumber, &Nsubset, region); 95 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 96 } 97 } 98 99 # if (0) 100 FILE *ftest = fopen ("skydump.dat", "w"); 101 int i; 102 for (i = 0; i < skylist[0].Nregions; i++) { 103 fprintf (ftest, "%s : %f %f : %f %f\n", skylist[0].regions[i][0].name, skylist[0].regions[i][0].Rmin, skylist[0].regions[i][0].Rmax, skylist[0].regions[i][0].Dmin, skylist[0].regions[i][0].Dmax); 104 } 105 fclose (ftest); 106 # endif 43 // select the images which overlap the selected sky regions 44 // 'subset' points to a new copy of the data (different from 'image') 45 subset = select_images (skylist, image, Nimage, inSubset, &LineNumber, &Nsubset, region); 46 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 107 47 108 48 if (Nimage == 0) { … … 120 60 MARKTIME("init images: %f sec\n", dtime); 121 61 122 return (skylist);62 return TRUE; 123 63 } 124 64 … … 146 86 free (table); 147 87 } 88 89 90 91 // *** old example code *** 92 // determine the populated SkyRegions overlapping the requested area 93 # if (0) 94 // XXX note : this chunk selects catalogs for a region across the 0,360 boundary (e.g., 350 10) 95 // it has largely been obviated, but I'm keeping the code in case I need to reinstate it. 96 if (region[0].Rmin > region[0].Rmax) { 97 SkyRegion subregion; 98 subregion = *region; 99 subregion.Rmin = 0.0; subregion.Rmax = region[0].Rmax; 100 skylist = SkyListByPatch (sky, -1, &subregion); 101 102 // select the images which overlap the selected sky regions 103 // 'subset' points to a new copy of the data (different from 'image') 104 subset = select_images (skylist, image, Nimage, inSubset, &LineNumber, &Nsubset, &subregion); 105 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 106 107 Image *subsetExtra; 108 off_t NsubsetExtra; 109 off_t *LineNumberExtra, i; 110 111 subregion.Rmin = region[0].Rmin; subregion.Rmax = 360.0; 112 SkyList *extraList = SkyListByPatch (sky, -1, &subregion); 113 114 subsetExtra = select_images (extraList, image, Nimage, inSubset, &LineNumberExtra, &NsubsetExtra, &subregion); 115 MARKTIME("selected %d overlapping images: %f sec\n", (int) Nsubset, dtime); 116 117 REALLOCATE (subset, Image, MAX (Nsubset + NsubsetExtra, 1)); 118 REALLOCATE (LineNumber, off_t, MAX (Nsubset + NsubsetExtra, 1)); 119 120 for (i = 0; i < NsubsetExtra; i++) { 121 subset[i+Nsubset] = subsetExtra[i]; 122 LineNumber[i+Nsubset] = LineNumberExtra[i]; 123 } 124 Nsubset += NsubsetExtra; 125 MARKTIME("selected %d overlapping images: %f sec\n", (int) NsubsetExtra, dtime); 126 } 127 # endif 128 -
trunk/Ohana/src/relphot/src/relphot.c
r39478 r39479 2 2 3 3 int main (int argc, char **argv) { 4 5 SkyTable *sky = NULL;6 SkyList *skylist = NULL;7 4 8 5 // get configuration info, args … … 11 8 if (!mode) exit (2); 12 9 10 SkyTable *sky = SkyTableLoadOptimal (CATDIR, NULL, NULL, TRUE, -1, VERBOSE); 11 if (!sky) { 12 fprintf (stderr, "ERROR running loading sky table from %s\n", CATDIR); 13 exit (2); 14 } 15 SkyTableSetFilenames (sky, CATDIR, "cpt"); 16 17 SkyList *skylist = NULL; 18 if (UserCatalog) { 19 int Nchar = strlen(UserCatalog); 20 if (!strcmp (&UserCatalog[Nchar-4], ".cpt")) UserCatalog[Nchar-4] = 0; 21 skylist = SkyListByName (sky, UserCatalog); 22 } else { 23 skylist = SkyListByPatch (sky, -1, &UserPatch); 24 } 25 if (!skylist) { 26 fprintf (stderr, "ERROR setting up skylist for %s\n", CATDIR); 27 exit (2); 28 } 29 13 30 switch (mode) { 14 31 case UPDATE_IMAGES: 15 32 // IF CALLED WITH NLOOP == 0, DOES NOT LOAD bcatalog, just loads image table and generates ImageSubset.dat 16 relphot_images (); 33 relphot_images (skylist); 34 relphot_free (sky, skylist); 17 35 exit (0); 18 36 … … 20 38 // take the current set of detections and set the mean magnitudes 21 39 // DOES NOT LOAD THE IMAGE TABLE 22 sky = SkyTableLoadOptimal (CATDIR, NULL, NULL, TRUE, -1, VERBOSE);23 if (!sky) {24 fprintf (stderr, "ERROR running loading sky table from %s\n", CATDIR);25 exit (2);26 }27 SkyTableSetFilenames (sky, CATDIR, "cpt");28 29 skylist = SkyListByPatch (sky, -1, &UserPatch);30 if (!skylist) {31 fprintf (stderr, "ERROR setting up skylist for %s\n", CATDIR);32 exit (2);33 }34 40 relphot_objects (sky, skylist, 0, NULL); 35 41 relphot_free (sky, skylist); … … 39 45 // set the mean magnitudes ONLY for SYNPHOT objects 40 46 relphot_synthphot (0, NULL); 41 relphot_free ( NULL, NULL);47 relphot_free (sky, skylist); 42 48 exit (0); 43 49 … … 45 51 // run image updates in parallel across multiple remote machines 46 52 relphot_parallel_regions (); 47 relphot_free ( NULL, NULL);53 relphot_free (sky, skylist); 48 54 exit (0); 49 55 … … 51 57 // operation on the remote machines in the PARALLEL_REGION mode 52 58 relphot_parallel_images (); 53 relphot_free ( NULL, NULL);59 relphot_free (sky, skylist); 54 60 exit (0); 55 61 … … 60 66 exit (2); 61 67 } 62 63 sky = SkyTableLoadOptimal (CATDIR, NULL, NULL, TRUE, -1, VERBOSE);64 if (!sky) {65 fprintf (stderr, "ERROR running loading sky table from %s\n", CATDIR);66 exit (2);67 }68 SkyTableSetFilenames (sky, CATDIR, "cpt");69 70 skylist = SkyListByPatch (sky, -1, &UserPatch);71 if (!skylist) {72 fprintf (stderr, "ERROR setting up skylist for %s\n", CATDIR);73 exit (2);74 }75 76 68 reload_catalogs (skylist, NULL, 0, NULL); 77 69 relphot_free (sky, skylist); -
trunk/Ohana/src/relphot/src/relphot_images.c
r39478 r39479 7 7 // measure.M contains: -2.5*log(DN) + 2.5*log(exptime) + True Zero Point (but exptime and ZP are known) 8 8 9 int relphot_images ( ) {9 int relphot_images (SkyList *skylist) { 10 10 11 11 int i, status, Ncatalog; … … 14 14 15 15 INITTIME; 16 17 // load the current sky table (layout of all SkyRegions)18 SkyTable *sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, TRUE, SKY_DEPTH, VERBOSE);19 SkyTableSetFilenames (sky, CATDIR, "cpt");20 16 21 17 /* register database handle with shutdown procedure */ … … 43 39 44 40 /* load regions and images based on specified sky patch and/or catalog */ 45 SkyList *skylist = load_images (&db, sky, UserCatalog, &UserPatch);41 load_images (&db, skylist, &UserPatch); 46 42 MARKTIME("-- load images: %f sec\n", dtime); 47 43 … … 267 263 freeImages(); 268 264 269 relphot_free (sky, skylist); 270 exit (0); 265 return TRUE; 271 266 } 272 267
Note:
See TracChangeset
for help on using the changeset viewer.
