IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 11, 2015, 2:14:39 PM (12 years ago)
Author:
eugene
Message:

merge changes from eam branch ipp-20140904

Location:
trunk/Ohana
Files:
29 edited
25 copied

Legend:

Unmodified
Added
Removed
  • trunk/Ohana

  • trunk/Ohana/src/addstar/Makefile

    r37357 r37807  
    2424sedstar      : $(BIN)/sedstar.$(ARCH)
    2525load2mass    : $(BIN)/load2mass.$(ARCH)
     26loadstarpar  : $(BIN)/loadstarpar.$(ARCH)
     27loadstarpar_client : $(BIN)/loadstarpar_client.$(ARCH)
     28loadICRF  : $(BIN)/loadICRF.$(ARCH)
     29loadICRF_client : $(BIN)/loadICRF_client.$(ARCH)
    2630loadwise     : $(BIN)/loadwise.$(ARCH)
    2731dumpskycells : $(BIN)/dumpskycells.$(ARCH)
     
    3135mkcmf        : $(BIN)/mkcmf.$(ARCH)
    3236
    33 all: addstar addstar_client sedstar load2mass skycells mkcmf loadwise loadsupercos dumpskycells findskycell
    34 
    35 INSTALL = addstar addstar_client sedstar load2mass skycells mkcmf loadwise loadsupercos dumpskycells findskycell
     37all: addstar addstar_client sedstar load2mass loadstarpar loadstarpar_client loadICRF loadICRF_client skycells mkcmf loadwise loadsupercos dumpskycells findskycell
     38
     39INSTALL = addstar addstar_client sedstar load2mass loadstarpar loadstarpar_client loadICRF loadICRF_client skycells mkcmf loadwise loadsupercos dumpskycells findskycell
    3640
    3741# I need to fix the client/server version of addstar now that I have dropped Stars
     
    241245$(SRC)/psps_ids.$(ARCH).o
    242246
     247LOAD-STARPAR = \
     248$(SRC)/loadstarpar.$(ARCH).o \
     249$(SRC)/ConfigInit.$(ARCH).o \
     250$(SRC)/SetSignals.$(ARCH).o \
     251$(SRC)/Shutdown.$(ARCH).o \
     252$(SRC)/SkyRegionUtils.$(ARCH).o \
     253$(SRC)/args_loadstarpar.$(ARCH).o \
     254$(SRC)/find_matches_starpar.$(ARCH).o \
     255$(SRC)/loadstarpar_catalog.$(ARCH).o \
     256$(SRC)/loadstarpar_io.$(ARCH).o \
     257$(SRC)/loadstarpar_make_subset.$(ARCH).o \
     258$(SRC)/loadstarpar_readstars.$(ARCH).o \
     259$(SRC)/loadstarpar_remote_hosts.$(ARCH).o \
     260$(SRC)/loadstarpar_save_remote.$(ARCH).o \
     261$(SRC)/loadstarpar_table.$(ARCH).o \
     262$(SRC)/psps_ids.$(ARCH).o
     263
     264LOAD-STARPAR-CLIENT = \
     265$(SRC)/loadstarpar_client.$(ARCH).o \
     266$(SRC)/ConfigInit.$(ARCH).o \
     267$(SRC)/SetSignals.$(ARCH).o \
     268$(SRC)/Shutdown.$(ARCH).o \
     269$(SRC)/SkyRegionUtils.$(ARCH).o \
     270$(SRC)/args_loadstarpar.$(ARCH).o \
     271$(SRC)/find_matches_starpar.$(ARCH).o \
     272$(SRC)/loadstarpar_catalog.$(ARCH).o \
     273$(SRC)/loadstarpar_io.$(ARCH).o \
     274$(SRC)/loadstarpar_make_subset.$(ARCH).o \
     275$(SRC)/loadstarpar_readstars.$(ARCH).o \
     276$(SRC)/loadstarpar_remote_hosts.$(ARCH).o \
     277$(SRC)/loadstarpar_save_remote.$(ARCH).o \
     278$(SRC)/loadstarpar_table.$(ARCH).o \
     279$(SRC)/psps_ids.$(ARCH).o
     280
     281LOAD-ICRF = \
     282$(SRC)/loadICRF.$(ARCH).o \
     283$(SRC)/ConfigInit.$(ARCH).o \
     284$(SRC)/SetSignals.$(ARCH).o \
     285$(SRC)/Shutdown.$(ARCH).o \
     286$(SRC)/SkyRegionUtils.$(ARCH).o \
     287$(SRC)/args_loadICRF.$(ARCH).o \
     288$(SRC)/find_matches_ICRF.$(ARCH).o \
     289$(SRC)/loadICRF_catalog.$(ARCH).o \
     290$(SRC)/loadICRF_io.$(ARCH).o \
     291$(SRC)/loadICRF_make_subset.$(ARCH).o \
     292$(SRC)/loadICRF_readstars.$(ARCH).o \
     293$(SRC)/loadICRF_remote_hosts.$(ARCH).o \
     294$(SRC)/loadICRF_save_remote.$(ARCH).o \
     295$(SRC)/loadICRF_table.$(ARCH).o \
     296$(SRC)/psps_ids.$(ARCH).o
     297
     298LOAD-ICRF-CLIENT = \
     299$(SRC)/loadICRF_client.$(ARCH).o \
     300$(SRC)/ConfigInit.$(ARCH).o \
     301$(SRC)/SetSignals.$(ARCH).o \
     302$(SRC)/Shutdown.$(ARCH).o \
     303$(SRC)/SkyRegionUtils.$(ARCH).o \
     304$(SRC)/args_loadICRF.$(ARCH).o \
     305$(SRC)/find_matches_ICRF.$(ARCH).o \
     306$(SRC)/loadICRF_catalog.$(ARCH).o \
     307$(SRC)/loadICRF_io.$(ARCH).o \
     308$(SRC)/loadICRF_make_subset.$(ARCH).o \
     309$(SRC)/loadICRF_readstars.$(ARCH).o \
     310$(SRC)/loadICRF_remote_hosts.$(ARCH).o \
     311$(SRC)/loadICRF_save_remote.$(ARCH).o \
     312$(SRC)/loadICRF_table.$(ARCH).o \
     313$(SRC)/psps_ids.$(ARCH).o
     314
    243315LOAD-WISE = \
    244316$(SRC)/loadwise.$(ARCH).o \
     
    309381$(SRC)/Shutdown.$(ARCH).o
    310382
    311 $(ADDSTARC)       : $(INC)/addstar.h
    312 $(ADDSTARD)       : $(INC)/addstar.h
    313 $(ADDSTART)       : $(INC)/addstar.h
    314 $(ADDSTAR)        : $(INC)/addstar.h
    315 $(ADDSTAR_CLIENT) : $(INC)/addstar.h
    316 $(SKYCELLS)       : $(INC)/addstar.h
    317 $(DUMPSKYCELLS)   : $(INC)/addstar.h
    318 $(FINDSKYCELL)    : $(INC)/addstar.h
    319 $(LOAD-2MASS)     : $(INC)/addstar.h $(INC)/2mass.h
    320 $(LOAD-WISE)      : $(INC)/addstar.h $(INC)/WISE.h
    321 $(MKCMF)          : $(INC)/mkcmf.h
     383$(ADDSTARC)            : $(INC)/addstar.h
     384$(ADDSTARD)            : $(INC)/addstar.h
     385$(ADDSTART)            : $(INC)/addstar.h
     386$(ADDSTAR)             : $(INC)/addstar.h
     387$(ADDSTAR_CLIENT)      : $(INC)/addstar.h
     388$(SKYCELLS)            : $(INC)/addstar.h
     389$(DUMPSKYCELLS)        : $(INC)/addstar.h
     390$(FINDSKYCELL)         : $(INC)/addstar.h
     391$(LOAD-2MASS)          : $(INC)/addstar.h $(INC)/2mass.h
     392$(LOAD-STARPAR)        : $(INC)/addstar.h $(INC)/loadstarpar.h
     393$(LOAD-STARPAR-CLIENT) : $(INC)/addstar.h $(INC)/loadstarpar.h
     394$(LOAD-ICRF)           : $(INC)/addstar.h $(INC)/loadICRF.h
     395$(LOAD-ICRF-CLIENT)    : $(INC)/addstar.h $(INC)/loadICRF.h
     396$(LOAD-WISE)           : $(INC)/addstar.h $(INC)/WISE.h
     397$(MKCMF)               : $(INC)/mkcmf.h
    322398
    323399$(BIN)/addstar.$(ARCH)        : $(ADDSTAR)
     
    330406$(BIN)/load2mass.$(ARCH)      : $(LOAD-2MASS)
    331407$(BIN)/loadwise.$(ARCH)       : $(LOAD-WISE)
     408$(BIN)/loadstarpar.$(ARCH)    : $(LOAD-STARPAR)
     409$(BIN)/loadstarpar_client.$(ARCH) : $(LOAD-STARPAR-CLIENT)
     410$(BIN)/loadICRF.$(ARCH)       : $(LOAD-ICRF)
     411$(BIN)/loadICRF_client.$(ARCH): $(LOAD-ICRF-CLIENT)
    332412$(BIN)/loadsupercos.$(ARCH)   : $(LOAD-SUPERCOS)
    333413$(BIN)/skycells.$(ARCH)       : $(SKYCELLS)
  • trunk/Ohana/src/addstar/include/WISE.h

    r33963 r37807  
    2121short WISE_W1, WISE_W2, WISE_W3, WISE_W4;
    2222
    23 int ALLSKY;
     23enum {MODE_NONE, MODE_ALLWISE, MODE_ALLSKY, MODE_PRELIM};
     24int MODE;
    2425
    2526AddstarClientOptions args_loadwise (int argc, char **argv, AddstarClientOptions options);
    2627
    27 int loadwise_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options, int ALLSKY);
     28int loadwise_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options);
    2829
    2930int getWISE_setup ();
  • trunk/Ohana/src/addstar/include/addstar.h

    r37357 r37807  
    2020# define IN_REGION(R,D) ( \
    2121((D) >= region[0].Dmin) && ((D) < region[0].Dmax) && \
    22 ((R) >= region[0].Rmin)  && ((R) < region[0].Rmax))
     22((R) >= region[0].Rmin) && ((R) < region[0].Rmax))
    2323
    2424/* grab named photcode */
     
    3131# define dCOS(A)   ((double) cos ((double)RAD_DEG*A))
    3232# define dSIN(A)   ((double) sin ((double)RAD_DEG*A))
     33
     34# define myAbortF(FORMAT,...) { fprintf (stderr, FORMAT, __VA_ARGS__); abort(); }
    3335
    3436typedef struct {
     
    326328int strextend (char *input, char *format,...);
    327329
     330void initMosaicCoords ();
     331void saveMosaicCoords (Coords *input);
     332
     333
    328334/**
    329335    there is an inconsistency to be resolved: fixed structures (like Image)
  • trunk/Ohana/src/addstar/src/LoadData.c

    r37357 r37807  
    3333  // we need to perform that analysis here
    3434  GetZeroPointExposure (headers, headerSets, Nimages);
     35
     36  if (!options[0].mosaic) {
     37    // we are requiring a single set of N x WRPs + 1 DIS per file set.
     38    // NOTE: if the -mosaic was supplied, do not reset the mosaic coords here
     39    initMosaicCoords ();
     40  }
    3541
    3642  // now run through the images, interpret the headers and read the stars
  • trunk/Ohana/src/addstar/src/LoadDataPMM.c

    r36485 r37807  
    193193
    194194    // XXX for now, we define a totally fake coordinate system centered on the plate center
    195     strcpy (image[0].coords.ctype, "DEC--TAN");
     195    InitCoords (&image[0].coords, "DEC--TAN");
    196196   
    197197    image[0].coords.crval1  = pmm_get_ra (RA);
     
    203203    image[0].coords.crpix2 = 0.5*PLATE_NY;
    204204    image[0].coords.cdelt1 = image[0].coords.cdelt2 = 0.9 / 3600.0;
    205 
    206     image[0].coords.pc1_1 = 0.0;
    207     image[0].coords.pc1_2 = 1.0;
    208     image[0].coords.pc2_1 = 1.0;
    209     image[0].coords.pc2_2 = 0.0;
    210 
    211     image[0].coords.Npolyterms = 0;
    212     memset (image[0].coords.polyterms, 0, 2*7*sizeof(float));
    213205
    214206    image[0].NX = PLATE_NX;
  • trunk/Ohana/src/addstar/src/LoadStars.c

    r28241 r37807  
    8888      exit (1);
    8989    }
     90    /* supplied photcode is incompatible with multi-chip images */
     91    if ((NheaderSets > 1) && options[0].mosaic) {
     92      fprintf (stderr, "ERROR: -mosaic cannot be supplied to multiple images\n");
     93      exit (1);
     94    }
    9095
    9196    // if these are SDSS data, load with SDSS-specific wrapper
  • trunk/Ohana/src/addstar/src/NewImage.c

    r10939 r37807  
    3333      goto reject;
    3434    }
     35    saveMosaicCoords (mosaic);
    3536  }   
    3637
  • trunk/Ohana/src/addstar/src/ReadImageHeader.c

    r37036 r37807  
    11# include "addstar.h"
     2
     3// for DIS/WRP sets, we need to save the DIS set and supply it to the WRP entries
     4static Coords *mosaic = NULL;
     5
     6void initMosaicCoords () {
     7  mosaic = NULL;
     8}
     9
     10void saveMosaicCoords (Coords *input) {
     11  ALLOCATE (mosaic, Coords, 1);
     12  memcpy (mosaic, input, sizeof(Coords));
     13}
    214
    315/* read an image header corresponding to a CMF / CMP data block */
     
    5466  /* only load astrometry, NAXIS1,2, and time if this is a MOSAIC_PHU (ctype is ....-DIS) */
    5567  if (!strcmp (&image[0].coords.ctype[4], "-DIS")) {
    56     RegisterMosaic (&image[0].coords);
     68    saveMosaicCoords (&image[0].coords);
    5769    return (TRUE);
    5870  }
     
    7991  }
    8092  if (!strcmp (&image[0].coords.ctype[4], "-WRP")) {
    81     if (!isRegisteredMosaic()) {
     93    if (!mosaic) {
    8294      fprintf (stderr, "no mosaic for WRP image (use -mosaic)\n");
    8395      return (FALSE);
    8496    }
     97    image[0].coords.mosaic = mosaic;
    8598  } else {
    8699    /* force image to lie in 0-360 range */
  • trunk/Ohana/src/addstar/src/ReadStarsSDSS.c

    r36485 r37807  
    201201   
    202202    // XXX for now, we define a totally fake coordinate system centered on the first listed star
    203     strcpy (images[N].coords.ctype, "DEC--TAN");
    204    
     203    InitCoords (&images[N].coords, "DEC--TAN");
    205204    images[N].coords.crval1 = stars[0].average.R;
    206205    images[N].coords.crval2 = stars[0].average.D;
    207    
    208206    images[N].coords.crpix1 = stars[0].measure.Xccd;
    209207    images[N].coords.crpix2 = stars[0].measure.Yccd;
    210208    images[N].coords.cdelt1 = images[N].coords.cdelt2 = 0.4 / 3600.0;
    211 
    212     images[N].coords.pc1_1 = 0.0;
    213     images[N].coords.pc1_2 = 1.0;
    214     images[N].coords.pc2_1 = 1.0;
    215     images[N].coords.pc2_2 = 0.0;
    216 
    217     images[N].coords.Npolyterms = 0;
    218     memset (images[N].coords.polyterms, 0, 2*7*sizeof(float));
    219209
    220210    images[N].NX = 2048;
  • trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c

    r27435 r37807  
    2121
    2222  /* find correpsonding regions for image */
    23   RegisterMosaic (mosaic);
    2423  skylist = NULL;
    2524  newlist = NULL;
  • trunk/Ohana/src/addstar/src/addstar.c

    r37357 r37807  
    132132      }
    133133    }
    134     MARKTIME ("load cpt: %f sec\n", dtime); RESETTIME;
     134    if (VERBOSE) MARKTIME ("load cpt: %f sec\n", dtime); RESETTIME;
    135135
    136136    // Naves_disk == 0 implies an empty catalog file
     
    163163        break;
    164164    }
    165     MARKTIME ("match stars: %f sec\n", dtime); RESETTIME;
     165    if (VERBOSE) MARKTIME ("match stars: %f sec\n", dtime); RESETTIME;
    166166
    167167    /* report total updated values */
     
    183183    dvo_catalog_unlock (&catalog);
    184184    dvo_catalog_free (&catalog);
    185     MARKTIME ("save cpt: %f sec\n", dtime); RESETTIME;
     185    if (VERBOSE) MARKTIME ("save cpt: %f sec\n", dtime); RESETTIME;
    186186
    187187    if (options.mode == ADDSTAR_MODE_REFCAT) free (stars);
  • trunk/Ohana/src/addstar/src/args.c

    r37357 r37807  
    175175      exit (1);
    176176    }
    177     RegisterMosaic (&MOSAIC);
     177    saveMosaicCoords (&MOSAIC);
    178178    remove_argument (N, &argc, argv);
    179179    gfits_free_header (&header);
  • trunk/Ohana/src/addstar/src/args_client.c

    r33963 r37807  
    8383      exit (1);
    8484    }
    85     RegisterMosaic (&MOSAIC);
     85    saveMosaicCoords (&MOSAIC);
    8686    remove_argument (N, &argc, argv);
    8787    gfits_free_header (&header);
  • trunk/Ohana/src/addstar/src/args_loadwise.c

    r33963 r37807  
    5353  }
    5454
     55enum {MODE_NONE, MODE_ALLWISE, MODE_ALLSKY, MODE_PRELIM};
     56int MODE;
     57
    5558  /* load the prelim data dump */
    56   ALLSKY = TRUE;
    57   if ((N = get_argument (argc, argv, "-prelim"))) {
    58     ALLSKY = FALSE;
     59  MODE = MODE_ALLWISE;
     60  if ((N = get_argument (argc, argv, "-mode"))) {
     61    MODE = MODE_NONE;
     62    remove_argument (N, &argc, argv);
     63    if (!strcasecmp(argv[N], "allwise")) MODE = MODE_ALLWISE;
     64    if (!strcasecmp(argv[N], "allsky"))  MODE = MODE_ALLSKY;
     65    if (!strcasecmp(argv[N], "prelim"))  MODE = MODE_PRELIM;
     66    if (MODE == MODE_NONE) {
     67      fprintf (stderr, "invalid mode: %s\n", argv[N]);
     68      exit (2);
     69    }
    5970    remove_argument (N, &argc, argv);
    6071  }
  • trunk/Ohana/src/addstar/src/build_links.c

    r37334 r37807  
    11# include "addstar.h"
    2 
    3 # define myAbortF(FORMAT,...) { fprintf (stderr, FORMAT, __VA_ARGS__); abort(); }
    42
    53/*
  • trunk/Ohana/src/addstar/src/fakeimage.c

    r37036 r37807  
    33Image *fakeimage (char *rootname, off_t *Nimage, int photcode) {
    44
    5   int i, j, Nx, Ny, Nchips;
     5  int i, Nx, Ny, Nchips;
    66  double pltscale, pixscale;
    77  double Rmin, Rmax, Dmin, Dmax;
     
    3333
    3434  /* create a mosaic distortion structure */
    35   strcpy (MOSAIC.ctype, "DEC--DIS");
     35  InitCoords (&MOSAIC, "DEC--DIS");
    3636  MOSAIC.crval1 = FAKE_RA;
    3737  MOSAIC.crval2 = FAKE_DEC;
    38  
    39   MOSAIC.crpix1 = MOSAIC.crpix2 = 0.0;
    4038 
    4139  /* mosaic 'pixels' are millimeters */
     
    4947
    5048  MOSAIC.Npolyterms = 3;
    51   for (i = 0; i < 7; i++) {
    52     MOSAIC.polyterms[i][0] = 0;
    53     MOSAIC.polyterms[i][1] = 0;
    54   }
    5549  ScanConfig (config, "DPLATE_X",   "%lf", 0, &pltscale);
    5650  MOSAIC.polyterms[3][0] = pltscale;  // L : X^3 Y^0
     
    5953  MOSAIC.polyterms[4][1] = pltscale;  // M : X^0 Y^0
    6054  MOSAIC.polyterms[6][1] = pltscale;  // M : X^2 Y^0
    61 
    62   RegisterMosaic (&MOSAIC);
    6355
    6456  /* some basic data about the chisp */
     
    8577    strcpy (image[i+1].name, name);
    8678
    87     strcpy (image[i+1].coords.ctype, "DEC--WRP");
     79    InitCoords (&image[i+1].coords, "DEC--WRP");
    8880   
    8981    image[i+1].coords.crval1 = dX*pixscale;
    9082    image[i+1].coords.crval2 = dY*pixscale;
    91    
    92     image[i+1].coords.crpix1 = image[i+1].coords.crpix2 = 0.0;
     83
    9384    image[i+1].coords.cdelt1 = image[i+1].coords.cdelt2 = pixscale;
    9485
    95     image[i+1].coords.pc1_1 = 1.0;
    96     image[i+1].coords.pc1_2 = 0.0;
    97     image[i+1].coords.pc2_1 = 0.0;
    98     image[i+1].coords.pc2_2 = 1.0;
    99 
    100     image[i+1].coords.Npolyterms = 0;
    101     for (j = 0; j < 7; j++) {
    102       image[i+1].coords.polyterms[j][0] = 0;
    103       image[i+1].coords.polyterms[j][1] = 0;
    104     }
     86    image[i+1].coords.mosaic = &MOSAIC;
    10587
    10688    image[i+1].sidtime  = 0.0;
  • trunk/Ohana/src/addstar/src/find_matches.c

    r37036 r37807  
    5353   * coordops.update.c).  We use the center of the region (catalog) for crval1,2.
    5454   */
     55  InitCoords (&tcoords, "DEC--ARC");
    5556  tcoords.crval1 = 0.5*(region[0].Rmin + region[0].Rmax);
    5657  if (region[0].Dmax < 90) {
     
    5960    tcoords.crval2 = 90.0;
    6061  }
    61   tcoords.crpix1 = 0;
    62   tcoords.crpix2 = 0;
    6362  tcoords.cdelt1 = tcoords.cdelt2 = 1.0 / 3600.0;
    64   tcoords.pc1_1 = tcoords.pc2_2 = 1.0;
    65   tcoords.pc1_2 = tcoords.pc2_1 = 0.0;
    66   tcoords.Npolyterms = 1;
    67   strcpy (tcoords.ctype, "DEC--ARC");
    6863
    6964  /* build spatial index (RA sort) referencing input array sequence */
  • trunk/Ohana/src/addstar/src/find_matches_closest.c

    r37036 r37807  
    5353   * far from the projection pole. We use the center of the region (catalog) for crval1,2.
    5454   */
     55  InitCoords (&tcoords, "DEC--ARC");
    5556  tcoords.crval1 = 0.5*(region[0].Rmin + region[0].Rmax);
    5657  if (region[0].Dmax < 90) {
     
    5960    tcoords.crval2 = 90.0;
    6061  }
    61   tcoords.crpix1 = 0;
    62   tcoords.crpix2 = 0;
    6362  tcoords.cdelt1 = tcoords.cdelt2 = 1.0 / 3600.0;
    64   tcoords.pc1_1 = tcoords.pc2_2 = 1.0;
    65   tcoords.pc1_2 = tcoords.pc2_1 = 0.0;
    66   tcoords.Npolyterms = 1;
    67   strcpy (tcoords.ctype, "DEC--ARC");
    6863
    6964  /* build spatial index (RA sort) referencing input array sequence */
  • trunk/Ohana/src/addstar/src/find_matches_closest_refstars.c

    r37036 r37807  
    4747   * far from the projection pole. We use the center of the region (catalog) for crval1,2.
    4848   */
     49  InitCoords (&tcoords, "DEC--ARC");
    4950  tcoords.crval1 = 0.5*(region[0].Rmin + region[0].Rmax);
    5051  if (region[0].Dmax < 90) {
     
    5354    tcoords.crval2 = 90.0;
    5455  }
    55   tcoords.crpix1 = 0.0;
    56   tcoords.crpix2 = 0.0;
    5756  tcoords.cdelt1 = tcoords.cdelt2 = 1.0 / 3600.0;
    58   tcoords.pc1_1 = tcoords.pc2_2 = 1.0;
    59   tcoords.pc1_2 = tcoords.pc2_1 = 0.0;
    60   tcoords.Npolyterms = 0;
    61   strcpy (tcoords.ctype, "DEC--ARC");
    6257 
    6358  /* build spatial index (RA sort) referencing input array sequence */
  • trunk/Ohana/src/addstar/src/find_matches_refstars.c

    r37036 r37807  
    5151  /* project onto rectilinear grid with 1 arcsec pixels, sort by X */
    5252  /* reference for coords is catalog center */
     53  InitCoords (&tcoords, "DEC--ZEA");
    5354  tcoords.crval1 = 0.5*(region[0].Rmin + region[0].Rmax);
    5455  tcoords.crval2 = 0.5*(region[0].Dmin + region[0].Dmax);
    55   tcoords.crpix1 = tcoords.crpix2 = 0.0;
    5656  tcoords.cdelt1 = tcoords.cdelt2 = 1.0 / 3600.0;
    57   tcoords.pc1_1 = tcoords.pc2_2 = 1.0;
    58   tcoords.pc1_2 = tcoords.pc2_1 = 0.0;
    59   strcpy (tcoords.ctype, "DEC--ZEA");
    60   tcoords.Npolyterms = 0;
    6157 
    6258  for (i = 0; i < Nstars; i++) {
  • trunk/Ohana/src/addstar/src/find_missing.c

    r10937 r37807  
    1414    REALLOCATE (catalog[0].missing, Missing, NMISS);
    1515  }
    16   if (!FindMosaicForImage (overlap, Noverlap, j)) continue;
    1716  if (!in_image (catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j])) continue;
    1817  add_miss_link (&catalog[0].average[Nave], next_miss, Nmiss);
     
    2726/* add reference for undetected catalog stars */
    2827/* XXX allow this option only for single images? */
    29 if (!strcmp (&image[0].coords.ctype[4], "-WRP")) RegisterMosaic (mosaic);
     28if (!strcmp (&image[0].coords.ctype[4], "-WRP")) image[0].coords = mosaic;
    3029for (j = 0; (j < Nave) && !options.skip_missed; j++) {
    3130  n = N2[j];
  • trunk/Ohana/src/addstar/src/loadsupercos_plates.c

    r37472 r37807  
    118118
    119119    // for now, we define a fake coordinate system based on the boresite center
    120     strcpy (image[Nimage].coords.ctype, "DEC--TAN");
     120    InitCoords (&image[Nimage].coords, "DEC--TAN");
    121121   
    122122    image[Nimage].coords.crval1 = RAo;
     
    126126    image[Nimage].coords.crpix2 = 0.5*image[Nimage].NY;
    127127    image[Nimage].coords.cdelt1 = image[Nimage].coords.cdelt2 = scale;
    128 
    129     image[Nimage].coords.pc1_1 = 0.0;
    130     image[Nimage].coords.pc1_2 = 1.0;
    131     image[Nimage].coords.pc2_1 = 1.0;
    132     image[Nimage].coords.pc2_2 = 0.0;
    133 
    134     image[Nimage].coords.Npolyterms = 0;
    135     memset (image[Nimage].coords.polyterms, 0, 2*7*sizeof(float));
    136128
    137129    Nimage ++;
  • trunk/Ohana/src/addstar/src/loadwise.c

    r33963 r37807  
    4040  for (i = 1; i < argc; i++) {
    4141      fprintf (stderr, "loading %s\n", argv[i]);
    42       loadwise_rawdata (skylist, argv[i], options, ALLSKY);
     42      loadwise_rawdata (skylist, argv[i], options);
    4343  }
    4444  exit (0);
  • trunk/Ohana/src/addstar/src/loadwise_rawdata.c

    r34088 r37807  
    1010# define DEBUG 0
    1111
    12 int loadwise_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options, int ALLSKY) {
     12int loadwise_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options) {
    1313 
    1414  int i, j, verbose;
     
    159159        stars[Nstars+3][0].average.D = tstars[j].D;
    160160       
    161         if (ALLSKY) {
    162           loadwise_star_allsky (&stars[Nstars], &buffer[offset], Nbyte - offset);
    163         } else {
    164           loadwise_star_prelim (&stars[Nstars], &buffer[offset], Nbyte - offset);
     161        switch (MODE) {
     162          case MODE_PRELIM:
     163            loadwise_star_prelim (&stars[Nstars], &buffer[offset], Nbyte - offset);
     164            break;
     165          case MODE_ALLSKY:
     166            loadwise_star_allsky (&stars[Nstars], &buffer[offset], Nbyte - offset);
     167            break;
     168          case MODE_ALLWISE:
     169          default:
     170            // loadwise_star_allwise (&stars[Nstars], &buffer[offset], Nbyte - offset);
     171            break;
    165172        }
    166173
  • trunk/Ohana/src/addstar/src/mkcmf.c

    r37246 r37807  
    200200   
    201201  /* bore site center guess */
    202   strcpy (coords.ctype, "DEC--TAN");
     202  InitCoords (&coords, "DEC--TAN");
    203203  coords.crval1 = RA;
    204204  coords.crval2 = DEC;
     
    208208  coords.cdelt1 = 0.25/3600.0;
    209209  coords.cdelt2 = 0.25/3600.0;
    210 
    211   coords.pc1_1  = 1;
    212   coords.pc2_2  = 1;
    213   coords.pc1_2  = 0;
    214   coords.pc2_1  = 0;
    215   coords.Npolyterms = 1;
    216210
    217211  // load stars and generate complete output fields
     
    300294  gfits_modify (&header, "NASTRO",   "%d", 1, 100);
    301295
    302   if (imageID == -1) imageID = 1000.0*drand48();
    303   if (sourceID == -1) sourceID = 100.0*drand48();
     296  if (imageID == -1) imageID = 100000.0*drand48();
     297  if (sourceID == -1) sourceID = 1000.0*drand48();
    304298  gfits_modify (&header, "IMAGEID",  "%d", 1, imageID);
    305299  gfits_modify (&header, "SOURCEID", "%d", 1, sourceID);
  • trunk/Ohana/src/addstar/src/resort_catalog.c

    r37334 r37807  
    44void resort_catalog_measure (Catalog *catalog);
    55void resort_catalog_lensing (Catalog *catalog);
     6void resort_catalog_starpar (Catalog *catalog);
    67
    78void resort_catalog_old (Catalog *catalog) {
     
    3839  resort_catalog_measure (catalog);
    3940  resort_catalog_lensing (catalog);
     41  resort_catalog_starpar (catalog);
    4042}
    4143
     
    335337}
    336338
     339void resort_catalog_starpar (Catalog *catalog) {
     340
     341  off_t Naverage, Nstarpar;
     342  StarPar *starpar;
     343  Average *average;
     344  off_t i, j, N, currentAve;
     345
     346  off_t *starparSeq = NULL;
     347  off_t *averageSeq = NULL;
     348  StarPar *starparTMP = NULL;
     349
     350  // struct timeval start, stop;
     351  // gettimeofday (&start, NULL);
     352
     353  /* internal counters */
     354  Nstarpar = catalog[0].Nstarpar;
     355  Naverage = catalog[0].Naverage;
     356
     357  if (!Nstarpar) return;
     358
     359  starpar = catalog[0].starpar;
     360  average = catalog[0].average;
     361 
     362  // we have a table of average objects and an unsorted table of measurements.  each measurement
     363  // has a reference to the average object sequence (as well as an ID)
     364  // starpar[i].averef -> average[averef]
     365  // starpar[i].objID = average[averef].objID
     366  // starpar[i].catID = average[averef].catID
     367
     368  // we want a sorted starpar array with all averef entries in sequence
     369
     370  ALLOCATE (starparSeq, off_t,   Nstarpar);
     371  ALLOCATE (averageSeq, off_t,   Nstarpar);
     372
     373  for (i = 0; i < Nstarpar; i++) {
     374    starparSeq[i] = i;
     375    averageSeq[i] = starpar[i].averef;
     376   
     377    if (catalog[0].catformat >= DVO_FORMAT_PS1_V1) {
     378      // earlier formats did not carry the objID or catID, so they are not available (we could assign on load, but we don't)
     379      myAssert(average[averageSeq[i]].catID == starpar[starparSeq[i]].catID, "object / detection mismatch");
     380# if (1)
     381      myAssert(average[averageSeq[i]].objID == starpar[starparSeq[i]].objID, "object / detection mismatch");
     382# else
     383      // for reasons I do not understand, the mini dvodbs generated on stsci1X had a handful of detections with an inconsistency between averef and objID. 
     384      // this happened for 28 detections in the dbs on /data/stsci1?.0/eugene/dvo3pi.20130616, but not at all (as far as I know) in the rest of LAP DVO
     385      if (average[averageSeq[i]].objID != starpar[starparSeq[i]].objID) {
     386        fprintf (stderr, "R");
     387        starpar[starparSeq[i]].objID = average[averageSeq[i]].objID; // XXX I don't really like this...
     388      }
     389# endif
     390    }
     391  }
     392 
     393  // check that averageSeq is now in order
     394  // for (i = 1; i < Nstarpar; i++) {
     395  //   if (averageSeq[i] < averageSeq[i-1]) {
     396  //     fprintf (stderr, "%d ", (int) i);
     397  //   }
     398  // }
     399  // fprintf (stderr, "\n");
     400
     401  SortAveMatch(starparSeq, averageSeq, Nstarpar);
     402  // MARKTIME("sort : %f sec\n", dtime);
     403
     404  // check that averageSeq is now in order
     405  // for (i = 1; i < Nstarpar; i++) {
     406  //   if (averageSeq[i] < averageSeq[i-1]) {
     407  //     fprintf (stderr, "%d ", (int) i);
     408  //   }
     409  // }
     410  // fprintf (stderr, "\n");
     411
     412  // copy the starpar entries in the sorted order
     413  ALLOCATE (starparTMP, StarPar, Nstarpar);
     414  for (i = 0; i < Nstarpar; i++) {
     415    j = starparSeq[i];
     416    starparTMP[i] = starpar[j];
     417  }
     418  // MARKTIME("assign starpar : %f sec\n", dtime);
     419
     420  // update the values of average.starparOffset and average.Nstarpar
     421  FREE(starpar);
     422  catalog[0].starpar = starparTMP;
     423
     424  N = 0;
     425  currentAve = averageSeq[0];
     426  average[currentAve].starparOffset = 0;
     427  for (i = 0; i < Nstarpar; i++) {
     428    if (averageSeq[i] != currentAve) {
     429      // we have hit the next entry in the list
     430      average[currentAve].Nstarpar = N;
     431      N = 0;
     432      currentAve = averageSeq[i];
     433      average[currentAve].starparOffset = i;
     434    }
     435    N++;
     436  }
     437  // N++;
     438  average[currentAve].Nstarpar = N;
     439  // MARKTIME("update Nstarpar : %f sec\n", dtime);
     440
     441  int NstarparTotal = 0;
     442  int starparOffsetOK = TRUE;
     443  for (i = 0; i < Naverage; i++) {
     444    NstarparTotal += catalog[0].average[i].Nstarpar;
     445    if (VERBOSE && !(NstarparTotal <= catalog[0].Nstarpar)) {
     446      fprintf (stderr, "too few starpar: %d %d %d\n", (int) i, NstarparTotal, (int) catalog[0].Nstarpar);
     447    }
     448    starparOffsetOK &= (catalog[0].average[i].starparOffset < catalog[0].Nstarpar);
     449    if (VERBOSE && !(catalog[0].average[i].starparOffset < catalog[0].Nstarpar)) {
     450      fprintf (stderr, "offset too large: %d %d %d\n", (int) i, catalog[0].average[i].Nstarpar, (int) catalog[0].Nstarpar);
     451    }
     452    starparOffsetOK &= (catalog[0].average[i].starparOffset + catalog[0].average[i].Nstarpar <= catalog[0].Nstarpar);
     453    if (VERBOSE && !(catalog[0].average[i].starparOffset + catalog[0].average[i].Nstarpar <= catalog[0].Nstarpar)) {
     454      fprintf (stderr, "orrset + Nstarpar too large: %d + %d > %d %d\n", (int) i, catalog[0].average[i].starparOffset, catalog[0].average[i].Nstarpar, (int) catalog[0].Nstarpar);
     455    }
     456  }
     457
     458  if (!starparOffsetOK) {
     459    fprintf (stderr, "ERROR: catalog %s has an invalid starparOffset\n", catalog[0].filename);
     460  }
     461
     462  if (NstarparTotal != catalog[0].Nstarpar) {
     463    fprintf (stderr, "ERROR: catalog %s has an invalid Nstarpar\n", catalog[0].filename);
     464  }
     465
     466  // MARKTIME("  match time %9.4f sec for %7lld starpars, %6lld average\n", dtime, (long long) Nstarpar, (long long) Naverage);
     467
     468  catalog[0].sorted = TRUE;
     469
     470  FREE (starparSeq);
     471  FREE (averageSeq);
     472
     473  return;
     474}
     475
    337476// sort the measure or lensing Sequence based on the average Sequence entries
    338477void SortAveMatch (off_t *MEAS, off_t *AVE, off_t N) {
  • trunk/Ohana/src/addstar/src/sky_tessalation.c

    r36485 r37807  
    581581
    582582  memset (rectangle, 0, sizeof(SkyRectangle));
     583
     584  InitCoords (&rectangle[0].coords, "DEC--TAN");
     585
    583586  rectangle[0].coords.crval1 = CENTER_RA;
    584587  rectangle[0].coords.crval2 = CENTER_DEC;
     
    609612  rectangle[0].coords.cdelt2 = SCALE / 3600.0;
    610613
    611   strcpy (rectangle[0].coords.ctype, "DEC--TAN");
    612 
    613614  rectangle[0].NX = NX;
    614615  rectangle[0].NY = NY;
     
    699700  for (i = 0; i < nRA; i++) {
    700701    memset (&ring[i], 0, sizeof(SkyRectangle));
    701     memset (&ring[i].coords, 0, sizeof(Coords));
     702
     703    InitCoords (&ring[i].coords, "DEC--TAN");
    702704    ring[i].coords.crval1 = i*dRA;
    703705    ring[i].coords.crval2 = dec;
    704706
    705707    ring[i].coords.pc1_1 = +1.0 * X_PARITY;
    706     ring[i].coords.pc1_2 = +0.0;
    707     ring[i].coords.pc2_1 = -0.0;
    708     ring[i].coords.pc2_2 = +1.0;
    709708 
    710709    // range values are in projected degrees
     
    718717    ring[i].coords.cdelt1 = SCALE / 3600.0;
    719718    ring[i].coords.cdelt2 = SCALE / 3600.0;
    720 
    721     strcpy (ring[i].coords.ctype, "DEC--TAN");
    722719
    723720    ring[i].NX = NX*(1.0 + PADDING);
     
    771768
    772769      memset (&ring[N], 0, sizeof(SkyRectangle));
    773       memset (&ring[N].coords, 0, sizeof(Coords));
     770      InitCoords (&ring[N].coords, "DEC--TAN");
    774771
    775772      ring[N].coords.crval1 = ra / d2r;
     
    779776
    780777      ring[N].coords.pc1_1 = +1.0 * X_PARITY;
    781       ring[N].coords.pc1_2 = +0.0;
    782       ring[N].coords.pc2_1 = -0.0;
    783       ring[N].coords.pc2_2 = +1.0;
    784778 
    785779      // range values are in projected degrees
     
    793787      ring[N].coords.cdelt1 = SCALE / 3600.0;
    794788      ring[N].coords.cdelt2 = SCALE / 3600.0;
    795 
    796       strcpy (ring[N].coords.ctype, "DEC--TAN");
    797789
    798790      ring[N].NX = NX*(1.0 + PADDING);
     
    10991091
    11001092  ALLOCATE (refcoords, Coords, 1);
    1101   refcoords[0].crval1 = refcoords[0].crval2 = 0.0;
    1102   refcoords[0].crpix1 = refcoords[0].crpix2 = 0.0;
     1093  InitCoords (refcoords, "DEC--TAN");
    11031094  refcoords[0].cdelt1 = refcoords[0].cdelt2 = scale / 3600;
    1104   refcoords[0].pc1_1 = refcoords[0].pc2_2 = 1.0;
    1105   refcoords[0].pc1_2 = refcoords[0].pc2_1 = 0.0;
    1106   refcoords[0].Npolyterms = 0;
    1107   memset (refcoords[0].polyterms, 0, 14*sizeof(float));
    1108   strcpy (refcoords[0].ctype, "DEC--TAN");
    11091095  return (TRUE);
    11101096}
  • trunk/Ohana/src/addstar/test/relphot.parallel.dvo

    r33653 r37807  
    2525  if (not($?VERBOSE)) set VERBOSE = 0
    2626
    27   # images are loaded into dvo with GPC1 photcodes, so we need to get the nominal zps for those filters
    28   $zpt_nominal:g = 24.58
    29   $zpt_nominal:r = 24.80
    30   $zpt_nominal:i = 24.74
    31   $zpt_nominal:z = 24.26
    32   $zpt_nominal:y = 23.41
    33 
    34   # klam is negative, so klam*(airmass - 1) increase the zero point
    35   $klam_nominal:g = -0.15
    36   $klam_nominal:r = -0.10
    37   $klam_nominal:i = -0.04
    38   $klam_nominal:z = -0.03
    39   $klam_nominal:y = -0.03
     27# images are loaded into dvo with GPC1 photcodes, so we need to get the nominal zps for those filters
     28# $zpt_nominal:g = 24.58
     29# $zpt_nominal:r = 24.80
     30# $zpt_nominal:i = 24.74
     31# $zpt_nominal:z = 24.26
     32# $zpt_nominal:y = 23.41
     33
     34# klam is negative, so klam*(airmass - 1) increase the zero point
     35# $klam_nominal:g = -0.15
     36# $klam_nominal:r = -0.10
     37# $klam_nominal:i = -0.04
     38# $klam_nominal:z = -0.03
     39# $klam_nominal:y = -0.03
     40
     41  $zpt_nominal:g = 24.563; $klam_nominal:g = -0.147
     42  $zpt_nominal:r = 24.750; $klam_nominal:r = -0.085
     43  $zpt_nominal:i = 24.611; $klam_nominal:i = -0.044
     44  $zpt_nominal:z = 24.250; $klam_nominal:z = -0.033
     45  $zpt_nominal:y = 23.320; $klam_nominal:y = -0.073
    4046
    4147  # we have two sets of images: ubercaled and not-ubercaled
     
    111117  mksequence $fileroot $catdir
    112118  for i 0 mjd_nc[]
    113     ckexposure $catdir mjd_nc[$i] zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] $filt_nc:$i raw
     119    ckexposure $catdir mjd_nc[$i] zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] $filt_nc:$i raw 0
    114120  end
    115121
     
    121127
    122128  # run relphot on the serial db and check that the images now match the expected values
    123   exec relphot g,r,i -v -region 9.5 10.5 19.5 20.5 -D CATDIR $catdir -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -keep-ubercal -D IMAGE_OFFSET 0.5 -update >& log.relphot.s0
     129  exec relphot -images g,r,i -v -region 9.5 10.5 19.5 20.5 -D CATDIR $catdir -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -D IMAGE_OFFSET 0.5 -update >& log.relphot.s0
    124130
    125131  for i 0 mjd_nc[]
     
    128134    # matching the mean zp of photometric data, which we calculate in
    129135    # 'init'
    130     ckexposure $catdir mjd_nc[$i] $zpt_nc_$filt_nc:$i exptime_nc[$i] airmass_nc[$i] $filt_nc:$i relphot_nc
     136    ckexposure $catdir mjd_nc[$i] $zpt_nc_$filt_nc:$i exptime_nc[$i] airmass_nc[$i] $filt_nc:$i relphot_nc 0
    131137  end
    132138
    133139  # run relphot on the parallel db and check that the images now match the expected values
    134   exec relphot -parallel g,r,i -v -region 9.5 10.5 19.5 20.5 -D CATDIR $catdir.p0 -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -keep-ubercal -D IMAGE_OFFSET 0.5 -update >& log.relphot.p0
    135 
    136   exec dvodist -in $catdir.p0 >& log.dvodist.in
     140  exec relphot -images -parallel g,r,i -v -region 9.5 10.5 19.5 20.5 -D CATDIR $catdir.p0 -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -D IMAGE_OFFSET 0.5 -update >& log.relphot.p0
    137141
    138142  for i 0 mjd_nc[]
     
    141145    # matching the mean zp of photometric data, which we calculate in
    142146    # 'init'
    143     ckexposure $catdir.p0 mjd_nc[$i] $zpt_nc_$filt_nc:$i exptime_nc[$i] airmass_nc[$i] $filt_nc:$i relphot_nc
     147    ckexposure $catdir.p0 mjd_nc[$i] $zpt_nc_$filt_nc:$i exptime_nc[$i] airmass_nc[$i] $filt_nc:$i relphot_nc 1
    144148  end
    145149
     
    148152
    149153macro ckexposure
    150   if ($0 != 8)
    151     echo "ckexposure (catdir) (mjd) (zpt) (exptime) (airmass) (filter) (mode)"
     154  if ($0 != 9)
     155    echo "ckexposure (catdir) (mjd) (zpt) (exptime) (airmass) (filter) (mode) (isParallel)"
    152156    echo "  mode == raw or corr"
    153157    break
     
    163167  $FILTER      = $6
    164168  $MODE        = $7
     169  $PARALLEL    =
     170  if ($8)
     171    $PARALLEL = "-parallel"
     172  end
    165173
    166174  # XXX need a function to extract the nominal zpt for a given filter / photcode from the db
     
    182190
    183191  skyregion {$RA_CENTER - 0.2/dcos($DEC_CENTER)} {$RA_CENTER + 0.2/dcos($DEC_CENTER)} {$DEC_CENTER - 0.2} {$DEC_CENTER + 0.2}
    184   mextract ra dec mag xccd yccd where (abs(time - $MJD_IMAGE) < 0.0001)
     192  mextract $PARALLEL ra dec mag xccd yccd where (abs(time - $MJD_IMAGE) < 0.0001)
    185193  if (not(ra[]))
    186194    echo "no matching data for MJD = $MJD_IMAGE"
     
    344352    # the fake images have inconsistent ra,dec and airmass,sidtime values
    345353    if ($VERBOSE) echo addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass
    346     exec addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass >& /dev/null
     354    exec addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass >& log.addstar
    347355    # costs 10/36 sec / chip
    348356  end
     
    432440  $catdir = $tmp1/$tmp2
    433441
     442  if ($VERBOSE) echo rsync -auv $catdir/ $catdir.p0/
    434443  exec rsync -auv $catdir/ $catdir.p0/ >& log.rsync
    435444  mkdir $catdir.d1
     
    442451  exec echo "3 $hostname $catdir.d3" >> $catdir.p0/HostTable.dat
    443452
     453  if ($VERBOSE) echo dvodist -out $catdir.p0
    444454  exec dvodist -out $catdir.p0 >& log.dvodist.out
    445455end
Note: See TracChangeset for help on using the changeset viewer.