IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39479


Ignore:
Timestamp:
Mar 23, 2016, 2:25:16 PM (10 years ago)
Author:
eugene
Message:

push load of sky table and sky list up to top

Location:
trunk/Ohana/src/relphot
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relphot/include/relphot.h

    r39478 r39479  
    418418Catalog      *load_catalogs_parallel PROTO((SkyList *sky, int *Ncatalog, char *syncfile));
    419419
    420 SkyList      *load_images         PROTO((FITS_DB *db, SkyTable *sky, char *regionName, SkyRegion *region));
     420int           load_images         PROTO((FITS_DB *db, SkyList *skylist, SkyRegion *region));
    421421Image        *select_images       PROTO((SkyList *skylist, Image *timage, off_t Ntimage, char *inSubset, off_t **LineNumber, off_t *Nimage, SkyRegion *region));
    422422
     
    476476void          write_coords        PROTO((Header *header, Coords *coords));
    477477int relphot_objects (SkyTable *sky, SkyList *skylist, int hostID, char *hostpath);
    478 int relphot_images (void);
     478int relphot_images (SkyList *skylist);
    479479
    480480void relphot_usage (void);
  • trunk/Ohana/src/relphot/src/load_images.c

    r39478 r39479  
    55// This function generates a subset of the images based on selections.  Input db has already
    66// been loaded with the raw fits table data
    7 SkyList *load_images (FITS_DB *db, SkyTable *sky, char *regionName, SkyRegion *region) {
     7int load_images (FITS_DB *db, SkyList *skylist, SkyRegion *region) {
    88
    99  Image     *image, *subset;
    10   off_t      Nimage, Nsubset, Nchar;
     10  off_t      Nimage, Nsubset;
    1111  off_t     *LineNumber;
    12   char *inSubset;
    13 
    14   SkyList *skylist = NULL;
     12  char      *inSubset;
    1513
    1614  INITTIME;
     
    4341  memset (inSubset, 0, Nimage);
    4442
    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 (&regionName[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);
    10747
    10848  if (Nimage == 0) {
     
    12060  MARKTIME("init images: %f sec\n", dtime);
    12161
    122   return (skylist);
     62  return TRUE;
    12363}
    12464
     
    14686  free (table);
    14787}
     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  
    22
    33int main (int argc, char **argv) {
    4 
    5   SkyTable *sky = NULL;
    6   SkyList *skylist = NULL;
    74
    85  // get configuration info, args
     
    118  if (!mode) exit (2);
    129
     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 
    1330  switch (mode) {
    1431    case UPDATE_IMAGES:
    1532      // 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);
    1735      exit (0);
    1836
     
    2038      // take the current set of detections and set the mean magnitudes
    2139      // 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       }
    3440      relphot_objects (sky, skylist, 0, NULL);
    3541      relphot_free (sky, skylist);
     
    3945      // set the mean magnitudes ONLY for SYNPHOT objects
    4046      relphot_synthphot (0, NULL);
    41       relphot_free (NULL, NULL);
     47      relphot_free (sky, skylist);
    4248      exit (0);
    4349
     
    4551      // run image updates in parallel across multiple remote machines
    4652      relphot_parallel_regions ();
    47       relphot_free (NULL, NULL);
     53      relphot_free (sky, skylist);
    4854      exit (0);
    4955
     
    5157      // operation on the remote machines in the PARALLEL_REGION mode
    5258      relphot_parallel_images ();
    53       relphot_free (NULL, NULL);
     59      relphot_free (sky, skylist);
    5460      exit (0);
    5561
     
    6066        exit (2);
    6167      }
    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 
    7668      reload_catalogs (skylist, NULL, 0, NULL);
    7769      relphot_free (sky, skylist);
  • trunk/Ohana/src/relphot/src/relphot_images.c

    r39478 r39479  
    77// measure.M contains: -2.5*log(DN) + 2.5*log(exptime) + True Zero Point (but exptime and ZP are known)
    88
    9 int relphot_images () {
     9int relphot_images (SkyList *skylist) {
    1010
    1111  int i, status, Ncatalog;
     
    1414
    1515  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");
    2016
    2117  /* register database handle with shutdown procedure */
     
    4339
    4440  /* 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);
    4642  MARKTIME("-- load images: %f sec\n", dtime);
    4743
     
    267263  freeImages();
    268264
    269   relphot_free (sky, skylist);
    270   exit (0);
     265  return TRUE;
    271266}
    272267
Note: See TracChangeset for help on using the changeset viewer.