IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 12, 2014, 4:10:18 PM (12 years ago)
Author:
eugene
Message:

merge changes from branches/eam_branches/ipp-20140717

Location:
trunk/Ohana
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana

  • trunk/Ohana/src/libdvo/include/dvo.h

    r37116 r37246  
    464464} MeasureTiny;
    465465
    466 /** STRUCT DEFINITION **/
     466// alternate version of PS1_V4 (old dev version)
    467467typedef struct {
    468468  double           R;                    // RA (decimal degrees )
     
    500500Average *Average_PS1_V4alt_ToInternal (Average_PS1_V4alt *in, off_t Nvalues);
    501501
    502 /** STRUCT DEFINITION **/
     502// alternate version of PS1_V4 (old dev version)
    503503typedef struct {
    504504  float            dR;                   // RA offset (arcsec)
     
    556556Measure *Measure_PS1_V4alt_ToInternal (Average *ave, Measure_PS1_V4alt *in, off_t Nvalues);
    557557
     558// alternate version of PS1_V5 (old dev version)
     559typedef struct {
     560  float            M;                    // average mag in this band (mags)
     561  float            dM;                   // formal error on average mag (mags)
     562  float            Map;                  // ave aperture mag in this band (mags)
     563  float            dMap;                 // ave aperture mag in this band (mags)
     564  float            sMap;                 // standard deviation of ap mags (mags)
     565  float            Mkron;                // ave kron mag in this band (mags)
     566  float            dMkron;               // formal error on average kron mag (mags)
     567  float            sMkron;               // standard deviation of kron mags (mags)
     568  float            Mstdev;               // standard deviation of measurements (mags)
     569  float            Mmin;                 // min accepted mag (mags)
     570  float            Mmax;                 // max accepted mag (mags)
     571  float            Mchisq;               // chisq on average mag (value)
     572  short            Ncode;                // number of detections in band
     573  short            Nused;                // number of detections used in average
     574  short            NusedKron;            // number of detections used in average
     575  short            NusedAp;              // number of detections used in average
     576  uint32_t         flags;                // photometry flags
     577  float            MpsfStk;              // magnitude from stack (primary if available)
     578  float            FpsfStk;              // flux from stack (primary if available)
     579  float            dFpsfStk;             // mean flux psf error
     580  float            MkronStk;             // magnitude from stack (primary if available)
     581  float            FkronStk;             // flux from stack (primary if available)
     582  float            dFkronStk;            // mean flux kron error
     583  float            MapStk;               // magnitude from stack (primary if available)
     584  float            FapStk;               // flux from stack (primary if available)
     585  float            dFapStk;              // mean flux ap error
     586  int              stackPrmryOff;        // measure entry which is primary stack detection
     587  int              stackBestOff;         // measure entry which is best stack detection
     588  float            MpsfWrp;              // psf magnitude from stack (primary if available)
     589  float            FpsfWrp;              // psf flux from stack (primary if available)
     590  float            dFpsfWrp;             // mean flux psf error
     591  float            sFpsfWrp;             // mean flux psf stdev
     592  float            MkronWrp;             // kron magnitude from stack (primary if available)
     593  float            FkronWrp;             // kron flux from stack (primary if available)
     594  float            dFkronWrp;            // mean flux kron error
     595  float            sFkronWrp;            // mean flux kron stdev
     596  float            MapWrp;               // aper magnitude from stack (primary if available)
     597  float            FapWrp;               // aper flux from stack (primary if available)
     598  float            dFapWrp;              // mean flux ap error
     599  float            sFapWrp;              // mean flux ap stdev
     600  short            NusedWrp;             // number of detections used in average
     601  short            NusedKronWrp;         // number of detections used in average
     602  short            NusedApWrp;           // number of detections used in average
     603  short            ubercalDist;          // number of images from an ubercal-image
     604} SecFilt_PS1_V5alt;
     605
     606SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *table, off_t *Ndata, char *swapped);
     607int      gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems);
     608SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues);
     609
     610// alternate version of PS1_V5alt (old dev version)
     611typedef struct {
     612  double           R;                    // RA (decimal degrees )
     613  double           D;                    // DEC (decimal degrees )
     614  float            dR;                   // RA error (arcsec)
     615  float            dD;                   // DEC error (arcsec)
     616  float            uR;                   // RA*cos(D) proper-motion (arcsec/year)
     617  float            uD;                   // DEC proper-motion (arcsec/year)
     618  float            duR;                  // RA*cos(D) p-m error (arcsec/year)
     619  float            duD;                  // DEC p-m error (arcsec/year)
     620  float            P;                    // parallax (arcsec)
     621  float            dP;                   // parallax error (arcsec)
     622  double           Rstk;                 // RA on stack (decimal degrees )
     623  double           Dstk;                 // DEC on stack (decimal degrees )
     624  float            dRstk;                // RA error on stack (arcsec)
     625  float            dDstk;                // DEC error on stack (arcsec)
     626  float            ChiSqAve;             // astrometry analysis chisq
     627  float            ChiSqPM;              // astrometry analysis chisq
     628  float            ChiSqPar;             // astrometry analysis chisq
     629  int              Tmean;                // mean epoch (PM,PAR ref) (unix time seconds)
     630  int              Trange;               // mean epoch (PM,PAR ref) (unix time seconds)
     631  float            psfQF;                // psf coverage (bad masks)
     632  float            psfQFperf;            // psf coverage (all masks)
     633  float            stargal;              // star / galaxy separator (1/100 arcsec)
     634  unsigned short   Npos;                 // number of detections used for astrometry
     635  unsigned short   Nmeasure;             // number of psf measurements
     636  unsigned short   Nmissing;             // number of missings
     637  unsigned short   Nlensing;             // number of lensing measurements
     638  unsigned short   Nlensobj;             // number of lensing measurements
     639  unsigned short   Nextend;              // number of extended measurements
     640  int              measureOffset;        // offset to first psf measurement
     641  int              missingOffset;        // offset to first missing obs
     642  int              lensingOffset;        // offset to first lensing obs
     643  int              lensobjOffset;        // offset to mean lensing data
     644  int              extendOffset;         // offset to extended object entry
     645  int              paramsOffset;         // offset to stellar parameter data
     646  float            refColorBlue;         // color of astrometry ref stars
     647  float            refColorRed;          // color of astrometry ref stars
     648  uint32_t         flags;                // average object flags (star; ghost; etc)
     649  uint32_t         photFlagsUpper;       // upper bit of 2 bit summary of per-measure photflags
     650  uint32_t         photFlagsLower;       // lower bit of 2 bit summary of per-measure photflags
     651  unsigned int     objID;                // unique ID for object in table
     652  unsigned int     catID;                // unique ID for table in which object was first realized
     653  uint64_t         extID;                // external ID for object (eg PSPS objID)
     654  uint64_t         extIDgc;              // external ID for object in galactic coords
     655} Average_PS1_V5alt;
     656
     657Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *table, off_t *Ndata, char *swapped);
     658int      gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems);
     659Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues);
     660
    558661/* for some reason I have merged the set of tables and the file description,
    559662   so I need to have an internal structure to point to the separate files */
  • trunk/Ohana/src/libdvo/src/dbExtractMeasures.c

    r37116 r37246  
    646646    case MEAS_PSF_NPIX: /* OK */
    647647      value.Int = measure[0].psfNpix;
    648       break;
    649     case MEAS_CR_NSIGMA: /* OK */
    650       value.Flt = measure[0].crNsigma;
    651648      break;
    652649    case MEAS_EXT_NSIGMA: /* OK */
  • trunk/Ohana/src/libdvo/src/dvo_catalog.c

    r37116 r37246  
    141141  average->refColorRed     = NAN;
    142142
     143  average->tessID          = 0;
     144  average->skycellID       = 0;
     145  average->projectionID    = 0;
     146  average->dummy           = 0;
     147
    143148  average->flags           = 0;
    144149  average->photFlagsUpper  = 0;
     
    173178  secfilt->sMkron      = NAN;
    174179
     180  secfilt->psfQfMax     = NAN;
     181  secfilt->psfQfPerfMax = NAN;
     182
    175183  secfilt->Mstdev      = NAN;
    176184  secfilt->Mmin        = NAN;
     
    197205  secfilt->dFapStk     = NAN;
    198206
     207  secfilt->Nstack      = 0;
     208  secfilt->NstackDet   = 0;
     209
    199210  secfilt->stackPrmryOff = -1;
    200211  secfilt->stackBestOff  = -1;
     
    218229  secfilt->NusedKronWrp = 0;
    219230  secfilt->NusedApWrp   = 0;
     231
     232  secfilt->Nwarp        = 0;
     233  secfilt->NwarpGood    = 0;
    220234
    221235  secfilt->ubercalDist = 1000;
     
    279293 measure->psfNdof   = 0;
    280294 measure->psfNpix   = 0;
    281  measure->crNsigma  = NAN;
    282295 measure->extNsigma = NAN;
    283296
     
    302315 measure->dbFlags   = 0;
    303316 measure->photFlags = 0;
     317 measure->photFlags2= 0;
    304318}
    305319
  • trunk/Ohana/src/libdvo/src/dvo_convert.c

    r37116 r37246  
    8080  }
    8181
     82  // block to convert old tables (PS1_V5 versions made during development)
     83  if (!strcmp (extname, "DVO_AVERAGE_PS1_V5") && (ftable[0].header[0].Naxis[0] == 184)) {
     84    Average_PS1_V5alt *tmpAverage;
     85    tmpAverage = gfits_table_get_Average_PS1_V5alt (ftable, Naverage, NULL);
     86    if (!tmpAverage) {
     87      fprintf (stderr, "ERROR: failed to read averages\n");
     88      exit (2);
     89    }
     90    average = Average_PS1_V5alt_ToInternal (tmpAverage, *Naverage);
     91    free (tmpAverage);
     92    *format = DVO_FORMAT_PS1_V5;
     93    return (average);
     94  }
     95
    8296# define CONVERT_FORMAT(NAME, FORMAT, TYPE) \
    8397  if (!strcmp (extname, NAME)) { \
     
    285299    return (FALSE);
    286300  }
     301
     302  // block to convert old tables (PS1_V5 versions made during development)
     303  if (!strcmp (extname, "DVO_SECFILT_PS1_V5") && (ftable[0].header[0].Naxis[0] == 160)) {
     304    SecFilt_PS1_V5alt *tmpSecFilt;
     305    tmpSecFilt = gfits_table_get_SecFilt_PS1_V5alt (ftable, Nsecfilt, NULL);
     306    if (!tmpSecFilt) {
     307      fprintf (stderr, "ERROR: failed to read secfilts\n");
     308      exit (2);
     309    }
     310    secfilt = SecFilt_PS1_V5alt_ToInternal (tmpSecFilt, *Nsecfilt);
     311    free (tmpSecFilt);
     312    *format = DVO_FORMAT_PS1_V5;
     313    return (secfilt);
     314  }
     315
    287316
    288317# define CONVERT_FORMAT(NAME, FORMAT, TYPE) \
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c

    r37035 r37246  
    3232    out[i].psfQF      = in[i].psfQF;
    3333    out[i].psfChisq   = in[i].psfChisq;
    34     out[i].crNsigma   = in[i].crNsigma;
    3534    out[i].extNsigma  = in[i].extNsigma;
    3635    out[i].FWx        = in[i].FWx;
     
    8079    out[i].psfQF      = in[i].psfQF;
    8180    out[i].psfChisq   = in[i].psfChisq;
    82     out[i].crNsigma   = in[i].crNsigma;
    8381    out[i].extNsigma  = in[i].extNsigma;
    8482    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c

    r37035 r37246  
    3434    out[i].psfQF      = in[i].psfQF;
    3535    out[i].psfChisq   = in[i].psfChisq;
    36     out[i].crNsigma   = in[i].crNsigma;
    3736    out[i].extNsigma  = in[i].extNsigma;
    3837    out[i].FWx        = in[i].FWx;
     
    8079    out[i].psfQF      = in[i].psfQF;
    8180    out[i].psfChisq   = in[i].psfChisq;
    82     out[i].crNsigma   = in[i].crNsigma;
    8381    out[i].extNsigma  = in[i].extNsigma;
    8482    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c

    r37035 r37246  
    4040    out[i].psfNdof    = in[i].psfNdof;
    4141    out[i].psfNpix    = in[i].psfNpix;
    42     out[i].crNsigma   = in[i].crNsigma;
    4342    out[i].extNsigma  = in[i].extNsigma;
    4443    out[i].FWx        = in[i].FWx;
     
    9594    out[i].psfNdof    = in[i].psfNdof;
    9695    out[i].psfNpix    = in[i].psfNpix;
    97     out[i].crNsigma   = in[i].crNsigma;
    9896    out[i].extNsigma  = in[i].extNsigma;
    9997    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c

    r37035 r37246  
    4040    out[i].psfNdof    = in[i].psfNdof;
    4141    out[i].psfNpix    = in[i].psfNpix;
    42     out[i].crNsigma   = in[i].crNsigma;
    4342    out[i].extNsigma  = in[i].extNsigma;
    4443    out[i].FWx        = in[i].FWx;
     
    9695    out[i].psfNdof    = in[i].psfNdof;
    9796    out[i].psfNpix    = in[i].psfNpix;
    98     out[i].crNsigma   = in[i].crNsigma;
    9997    out[i].extNsigma  = in[i].extNsigma;
    10098    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c

    r37035 r37246  
    4040    out[i].psfNdof    = in[i].psfNdof;
    4141    out[i].psfNpix    = in[i].psfNpix;
    42     out[i].crNsigma   = in[i].crNsigma;
    4342    out[i].extNsigma  = in[i].extNsigma;
    4443    out[i].FWx        = in[i].FWx;
     
    9695    out[i].psfNdof    = in[i].psfNdof;
    9796    out[i].psfNpix    = in[i].psfNpix;
    98     out[i].crNsigma   = in[i].crNsigma;
    9997    out[i].extNsigma  = in[i].extNsigma;
    10098    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c

    r37116 r37246  
    4949    out[i].psfNdof    = in[i].psfNdof;
    5050    out[i].psfNpix    = in[i].psfNpix;
    51     out[i].crNsigma   = in[i].crNsigma;
    5251    out[i].extNsigma  = in[i].extNsigma;
    5352    out[i].FWx        = in[i].FWx;
     
    114113    out[i].psfNdof    = in[i].psfNdof;
    115114    out[i].psfNpix    = in[i].psfNpix;
    116     out[i].crNsigma   = in[i].crNsigma;
    117115    out[i].extNsigma  = in[i].extNsigma;
    118116    out[i].FWx        = in[i].FWx;
     
    541539    out[i].psfNdof    = in[i].psfNdof;
    542540    out[i].psfNpix    = in[i].psfNpix;
    543     out[i].crNsigma   = in[i].crNsigma;
    544541    out[i].extNsigma  = in[i].extNsigma;
    545542    out[i].FWx        = in[i].FWx;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c

    r37116 r37246  
    5656    out[i].psfNdof    = in[i].psfNdof;
    5757    out[i].psfNpix    = in[i].psfNpix;
    58     out[i].crNsigma   = in[i].crNsigma;
    5958    out[i].extNsigma  = in[i].extNsigma;
    6059    out[i].FWx        = in[i].FWx;
     
    7372    out[i].dbFlags    = in[i].dbFlags;
    7473    out[i].photFlags  = in[i].photFlags;
     74    out[i].photFlags2 = in[i].photFlags2;
    7575  }
    7676  return (out);
     
    128128    out[i].psfNdof    = in[i].psfNdof;
    129129    out[i].psfNpix    = in[i].psfNpix;
    130     out[i].crNsigma   = in[i].crNsigma;
    131130    out[i].extNsigma  = in[i].extNsigma;
    132131    out[i].FWx        = in[i].FWx;
     
    145144    out[i].dbFlags    = in[i].dbFlags;
    146145    out[i].photFlags  = in[i].photFlags;
     146    out[i].photFlags2 = in[i].photFlags2;
    147147  }
    148148  return (out);
     
    203203    out[i].refColorRed   = in[i].refColorRed;
    204204
     205    out[i].tessID        = in[i].tessID;
     206    out[i].skycellID     = in[i].skycellID;
     207    out[i].projectionID  = in[i].projectionID;
     208
    205209    out[i].flags         = in[i].flags;   
    206210    out[i].photFlagsUpper = in[i].photFlagsUpper;   
     
    223227
    224228  for (i = 0; i < Nvalues; i++) {
    225     out[i].R             = in[i].R;     
    226     out[i].D             = in[i].D;     
    227     out[i].dR            = in[i].dR;
    228     out[i].dD            = in[i].dD;
    229     out[i].uR            = in[i].uR;
    230     out[i].uD            = in[i].uD;
    231     out[i].duR           = in[i].duR;
    232     out[i].duD           = in[i].duD;
    233     out[i].P             = in[i].P;
    234     out[i].dP            = in[i].dP;
    235 
    236     out[i].Rstk          = in[i].Rstk;     
    237     out[i].Dstk          = in[i].Dstk;     
    238     out[i].dRstk         = in[i].dRstk;
    239     out[i].dDstk         = in[i].dDstk;
    240 
    241     out[i].ChiSqAve      = in[i].ChiSqAve;     
    242     out[i].ChiSqPM       = in[i].ChiSqPM;     
    243     out[i].ChiSqPar      = in[i].ChiSqPar;     
    244     out[i].Tmean         = in[i].Tmean;     
    245     out[i].Trange        = in[i].Trange;     
    246 
    247     out[i].psfQF         = in[i].psfQF;
    248     out[i].psfQFperf     = in[i].psfQFperf;
    249     out[i].stargal       = in[i].stargal;     
    250     out[i].Npos          = in[i].Npos;     
    251 
    252     out[i].Nmeasure      = in[i].Nmeasure;     
    253     out[i].Nmissing      = in[i].Nmissing;     
    254     out[i].Nlensing      = in[i].Nlensing;     
    255     out[i].Nlensobj      = in[i].Nlensobj;     
    256     out[i].Nextend       = in[i].Nextend;     
    257 
    258     out[i].measureOffset = in[i].measureOffset;
    259     out[i].missingOffset = in[i].missingOffset;
    260     out[i].lensingOffset = in[i].lensingOffset;
    261     out[i].lensobjOffset = in[i].lensobjOffset;
    262     out[i].extendOffset  = in[i].extendOffset;
    263     out[i].paramsOffset  = in[i].paramsOffset;
    264 
    265     out[i].refColorBlue  = in[i].refColorBlue;
    266     out[i].refColorRed   = in[i].refColorRed;
    267 
    268     out[i].flags         = in[i].flags;   
     229    out[i].R              = in[i].R;     
     230    out[i].D              = in[i].D;     
     231    out[i].dR             = in[i].dR;
     232    out[i].dD             = in[i].dD;
     233    out[i].uR             = in[i].uR;
     234    out[i].uD             = in[i].uD;
     235    out[i].duR            = in[i].duR;
     236    out[i].duD            = in[i].duD;
     237    out[i].P              = in[i].P;
     238    out[i].dP             = in[i].dP;
     239                         
     240    out[i].Rstk           = in[i].Rstk;     
     241    out[i].Dstk           = in[i].Dstk;     
     242    out[i].dRstk          = in[i].dRstk;
     243    out[i].dDstk          = in[i].dDstk;
     244                         
     245    out[i].ChiSqAve       = in[i].ChiSqAve;     
     246    out[i].ChiSqPM        = in[i].ChiSqPM;     
     247    out[i].ChiSqPar       = in[i].ChiSqPar;     
     248    out[i].Tmean          = in[i].Tmean;     
     249    out[i].Trange         = in[i].Trange;     
     250                         
     251    out[i].psfQF          = in[i].psfQF;
     252    out[i].psfQFperf      = in[i].psfQFperf;
     253    out[i].stargal        = in[i].stargal;     
     254    out[i].Npos           = in[i].Npos;     
     255                         
     256    out[i].Nmeasure       = in[i].Nmeasure;     
     257    out[i].Nmissing       = in[i].Nmissing;     
     258    out[i].Nlensing       = in[i].Nlensing;     
     259    out[i].Nlensobj       = in[i].Nlensobj;     
     260    out[i].Nextend        = in[i].Nextend;     
     261                         
     262    out[i].measureOffset  = in[i].measureOffset;
     263    out[i].missingOffset  = in[i].missingOffset;
     264    out[i].lensingOffset  = in[i].lensingOffset;
     265    out[i].lensobjOffset  = in[i].lensobjOffset;
     266    out[i].extendOffset   = in[i].extendOffset;
     267    out[i].paramsOffset   = in[i].paramsOffset;
     268                         
     269    out[i].refColorBlue   = in[i].refColorBlue;
     270    out[i].refColorRed    = in[i].refColorRed;
     271                         
     272    out[i].tessID         = in[i].tessID;
     273    out[i].skycellID      = in[i].skycellID;
     274    out[i].projectionID   = in[i].projectionID;
     275                         
     276    out[i].flags          = in[i].flags;   
    269277    out[i].photFlagsUpper = in[i].photFlagsUpper;   
    270278    out[i].photFlagsLower = in[i].photFlagsLower;   
    271     out[i].objID         = in[i].objID;
    272     out[i].catID         = in[i].catID;
    273     out[i].extID         = in[i].extID;
    274     out[i].extIDgc       = in[i].extIDgc;
     279    out[i].objID          = in[i].objID;
     280    out[i].catID          = in[i].catID;
     281    out[i].extID          = in[i].extID;
     282    out[i].extIDgc        = in[i].extIDgc;
    275283  }
    276284  return (out);
     
    286294  for (i = 0; i < Nvalues; i++) {
    287295    dvo_secfilt_init (&out[i]);
    288 
    289     out[i].M             = in[i].M;     
    290     out[i].dM            = in[i].dM;     
    291     out[i].Map           = in[i].Map;     
    292     out[i].dMap          = in[i].dMap;     
    293     out[i].sMap          = in[i].sMap;     
    294     out[i].Mkron         = in[i].Mkron;     
    295     out[i].dMkron        = in[i].dMkron;     
    296 
    297     out[i].Mstdev        = in[i].Mstdev;     
    298     out[i].Mmin          = in[i].Mmin;     
    299     out[i].Mmax          = in[i].Mmax;     
    300     out[i].Mchisq        = in[i].Mchisq;     
    301 
    302     out[i].Ncode         = in[i].Ncode;
    303     out[i].Nused         = in[i].Nused;
    304     out[i].NusedKron     = in[i].NusedKron;
    305     out[i].NusedAp       = in[i].NusedAp;
    306 
    307     out[i].flags         = in[i].flags;     
    308 
    309     out[i].MpsfStk       = in[i].MpsfStk;
    310     out[i].FpsfStk       = in[i].FpsfStk;
    311     out[i].dFpsfStk      = in[i].dFpsfStk;
    312 
    313     out[i].MkronStk      = in[i].MkronStk;
    314     out[i].FkronStk      = in[i].FkronStk;
    315     out[i].dFkronStk     = in[i].dFkronStk;
    316 
    317     out[i].MapStk        = in[i].MapStk;
    318     out[i].FapStk        = in[i].FapStk;
    319     out[i].dFapStk       = in[i].dFapStk;
    320 
    321     out[i].stackPrmryOff = in[i].stackPrmryOff;     
    322     out[i].stackBestOff  = in[i].stackBestOff;     
    323 
    324     out[i].MpsfWrp       = in[i].MpsfWrp;
    325     out[i].FpsfWrp       = in[i].FpsfWrp;
    326     out[i].dFpsfWrp      = in[i].dFpsfWrp;
    327     out[i].sFpsfWrp      = in[i].sFpsfWrp;
    328 
    329     out[i].MkronWrp      = in[i].MkronWrp;
    330     out[i].FkronWrp      = in[i].FkronWrp;
    331     out[i].dFkronWrp     = in[i].dFkronWrp;
    332     out[i].sFkronWrp     = in[i].sFkronWrp;
    333 
    334     out[i].MapWrp        = in[i].MapWrp;
    335     out[i].FapWrp        = in[i].FapWrp;
    336     out[i].dFapWrp       = in[i].dFapWrp;
    337     out[i].sFapWrp       = in[i].sFapWrp;
    338 
    339     out[i].NusedWrp      = in[i].NusedWrp;
    340     out[i].NusedKronWrp  = in[i].NusedKronWrp;
    341     out[i].NusedApWrp    = in[i].NusedApWrp;
    342 
    343     out[i].ubercalDist   = in[i].ubercalDist;     
    344   }
    345   return (out);
    346 }
    347 
    348 SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) {
    349 
    350   off_t i;
    351   SecFilt_PS1_V5 *out;
    352 
    353   ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues);
    354 
    355   for (i = 0; i < Nvalues; i++) {
    356296
    357297    out[i].M             = in[i].M;     
     
    364304    out[i].sMkron        = in[i].sMkron;     
    365305
     306    out[i].psfQfMax      = in[i].psfQfMax;     
     307    out[i].psfQfPerfMax  = in[i].psfQfPerfMax;     
     308
    366309    out[i].Mstdev        = in[i].Mstdev;     
    367310    out[i].Mmin          = in[i].Mmin;     
     
    388331    out[i].dFapStk       = in[i].dFapStk;
    389332
     333    out[i].Nstack        = in[i].Nstack;     
     334    out[i].NstackDet     = in[i].NstackDet;     
     335
    390336    out[i].stackPrmryOff = in[i].stackPrmryOff;     
    391337    out[i].stackBestOff  = in[i].stackBestOff;     
     
    409355    out[i].NusedKronWrp  = in[i].NusedKronWrp;
    410356    out[i].NusedApWrp    = in[i].NusedApWrp;
     357
     358    out[i].Nwarp         = in[i].Nwarp;     
     359    out[i].NwarpGood     = in[i].NwarpGood;     
     360
     361    out[i].ubercalDist   = in[i].ubercalDist;     
     362  }
     363  return (out);
     364}
     365
     366SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) {
     367
     368  off_t i;
     369  SecFilt_PS1_V5 *out;
     370
     371  ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues);
     372
     373  for (i = 0; i < Nvalues; i++) {
     374
     375    out[i].M             = in[i].M;     
     376    out[i].dM            = in[i].dM;     
     377    out[i].Map           = in[i].Map;     
     378    out[i].dMap          = in[i].dMap;     
     379    out[i].sMap          = in[i].sMap;     
     380    out[i].Mkron         = in[i].Mkron;     
     381    out[i].dMkron        = in[i].dMkron;     
     382    out[i].sMkron        = in[i].sMkron;     
     383
     384    out[i].psfQfMax      = in[i].psfQfMax;     
     385    out[i].psfQfPerfMax  = in[i].psfQfPerfMax;     
     386
     387    out[i].Mstdev        = in[i].Mstdev;     
     388    out[i].Mmin          = in[i].Mmin;     
     389    out[i].Mmax          = in[i].Mmax;     
     390    out[i].Mchisq        = in[i].Mchisq;     
     391
     392    out[i].Ncode         = in[i].Ncode;
     393    out[i].Nused         = in[i].Nused;
     394    out[i].NusedKron     = in[i].NusedKron;
     395    out[i].NusedAp       = in[i].NusedAp;
     396
     397    out[i].flags         = in[i].flags;     
     398
     399    out[i].MpsfStk       = in[i].MpsfStk;
     400    out[i].FpsfStk       = in[i].FpsfStk;
     401    out[i].dFpsfStk      = in[i].dFpsfStk;
     402
     403    out[i].MkronStk      = in[i].MkronStk;
     404    out[i].FkronStk      = in[i].FkronStk;
     405    out[i].dFkronStk     = in[i].dFkronStk;
     406
     407    out[i].MapStk        = in[i].MapStk;
     408    out[i].FapStk        = in[i].FapStk;
     409    out[i].dFapStk       = in[i].dFapStk;
     410
     411    out[i].Nstack        = in[i].Nstack;     
     412    out[i].NstackDet     = in[i].NstackDet;     
     413
     414    out[i].stackPrmryOff = in[i].stackPrmryOff;     
     415    out[i].stackBestOff  = in[i].stackBestOff;     
     416
     417    out[i].MpsfWrp       = in[i].MpsfWrp;
     418    out[i].FpsfWrp       = in[i].FpsfWrp;
     419    out[i].dFpsfWrp      = in[i].dFpsfWrp;
     420    out[i].sFpsfWrp      = in[i].sFpsfWrp;
     421
     422    out[i].MkronWrp      = in[i].MkronWrp;
     423    out[i].FkronWrp      = in[i].FkronWrp;
     424    out[i].dFkronWrp     = in[i].dFkronWrp;
     425    out[i].sFkronWrp     = in[i].sFkronWrp;
     426
     427    out[i].MapWrp        = in[i].MapWrp;
     428    out[i].FapWrp        = in[i].FapWrp;
     429    out[i].dFapWrp       = in[i].dFapWrp;
     430    out[i].sFapWrp       = in[i].sFapWrp;
     431
     432    out[i].NusedWrp      = in[i].NusedWrp;
     433    out[i].NusedKronWrp  = in[i].NusedKronWrp;
     434    out[i].NusedApWrp    = in[i].NusedApWrp;
     435
     436    out[i].Nwarp         = in[i].Nwarp;     
     437    out[i].NwarpGood     = in[i].NwarpGood;     
    411438
    412439    out[i].ubercalDist   = in[i].ubercalDist;     
     
    834861  return (out);
    835862}
     863
     864/*********************** old / alternate version **********************/
     865
     866// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
     867Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues) {
     868
     869  off_t i;
     870  Average *out;
     871
     872  ALLOCATE_ZERO (out, Average, Nvalues);
     873
     874  for (i = 0; i < Nvalues; i++) {
     875    dvo_average_init (&out[i]);
     876
     877    out[i].R              = in[i].R;     
     878    out[i].D              = in[i].D;     
     879    out[i].dR             = in[i].dR;
     880    out[i].dD             = in[i].dD;
     881    out[i].uR             = in[i].uR;
     882    out[i].uD             = in[i].uD;
     883    out[i].duR            = in[i].duR;
     884    out[i].duD            = in[i].duD;
     885    out[i].P              = in[i].P;
     886    out[i].dP             = in[i].dP;
     887                         
     888    out[i].Rstk           = in[i].Rstk;     
     889    out[i].Dstk           = in[i].Dstk;     
     890    out[i].dRstk          = in[i].dRstk;
     891    out[i].dDstk          = in[i].dDstk;
     892                         
     893    out[i].ChiSqAve       = in[i].ChiSqAve;     
     894    out[i].ChiSqPM        = in[i].ChiSqPM;     
     895    out[i].ChiSqPar       = in[i].ChiSqPar;     
     896    out[i].Tmean          = in[i].Tmean;     
     897    out[i].Trange         = in[i].Trange;     
     898                         
     899    out[i].psfQF          = in[i].psfQF;
     900    out[i].psfQFperf      = in[i].psfQFperf;
     901    out[i].stargal        = in[i].stargal;     
     902    out[i].Npos           = in[i].Npos;     
     903                         
     904    out[i].Nmeasure       = in[i].Nmeasure;     
     905    out[i].Nmissing       = in[i].Nmissing;     
     906    out[i].Nlensing       = in[i].Nlensing;     
     907    out[i].Nlensobj       = in[i].Nlensobj;     
     908    out[i].Nextend        = in[i].Nextend;     
     909                         
     910    out[i].measureOffset  = in[i].measureOffset;
     911    out[i].missingOffset  = in[i].missingOffset;
     912    out[i].lensingOffset  = in[i].lensingOffset;
     913    out[i].lensobjOffset  = in[i].lensobjOffset;
     914    out[i].extendOffset   = in[i].extendOffset;
     915    out[i].paramsOffset   = in[i].paramsOffset;
     916                         
     917    out[i].refColorBlue   = in[i].refColorBlue;
     918    out[i].refColorRed    = in[i].refColorRed;
     919                         
     920    out[i].flags          = in[i].flags;   
     921    out[i].photFlagsUpper = in[i].photFlagsUpper;   
     922    out[i].photFlagsLower = in[i].photFlagsLower;   
     923    out[i].objID          = in[i].objID;
     924    out[i].catID          = in[i].catID;
     925    out[i].extID          = in[i].extID;
     926    out[i].extIDgc        = in[i].extIDgc;
     927  }
     928  return (out);
     929}
     930
     931int gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems) {
     932
     933  off_t i;
     934  unsigned char *byte, tmp;
     935
     936  if (size != 184) {
     937    fprintf (stderr, "WARNING: mismatch in data types Average_PS1_V5alt: "OFF_T_FMT" vs %d\n",  size,  184);
     938    return (FALSE);
     939  }
     940
     941  /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */
     942  i = tmp = 0;
     943  byte = NULL;
     944
     945# ifdef BYTE_SWAP
     946  byte = (unsigned char *) data;
     947  for (i = 0; i < nitems; i++, byte += 184) {
     948    /** BYTE SWAP **/
     949    SWAP_DBLE (0); // RA
     950    SWAP_DBLE (8); // DEC
     951    SWAP_WORD (16); // RA_ERR
     952    SWAP_WORD (20); // DEC_ERR
     953    SWAP_WORD (24); // U_RA
     954    SWAP_WORD (28); // U_DEC
     955    SWAP_WORD (32); // V_RA_ERR
     956    SWAP_WORD (36); // V_DEC_ERR
     957    SWAP_WORD (40); // PAR
     958    SWAP_WORD (44); // PAR_ERR
     959    SWAP_DBLE (48); // RA_STK
     960    SWAP_DBLE (56); // DEC_STK
     961    SWAP_WORD (64); // RA_STK_ERR
     962    SWAP_WORD (68); // DEC_STK_ERR
     963    SWAP_WORD (72); // CHISQ_POS
     964    SWAP_WORD (76); // CHISQ_PM
     965    SWAP_WORD (80); // CHISQ_PAP
     966    SWAP_WORD (84); // MEAN_EPOCH
     967    SWAP_WORD (88); // TIME_RANGE
     968    SWAP_WORD (92); // PSF_QF
     969    SWAP_WORD (96); // PSF_QF_PERF
     970    SWAP_WORD (100); // STARGAL_SEP
     971    SWAP_BYTE (104); // NUMBER_POS
     972    SWAP_BYTE (106); // NMEASURE
     973    SWAP_BYTE (108); // NMISSING
     974    SWAP_BYTE (110); // NLENSING
     975    SWAP_BYTE (112); // NLENSOBJ
     976    SWAP_BYTE (114); // NEXTEND
     977    SWAP_WORD (116); // OFF_MEASURE
     978    SWAP_WORD (120); // OFF_MISSING
     979    SWAP_WORD (124); // OFF_LENSING
     980    SWAP_WORD (128); // OFF_LENSOBJ
     981    SWAP_WORD (132); // OFF_EXTEND
     982    SWAP_WORD (136); // OFF_PARAMS
     983    SWAP_WORD (140); // REF_COLOR_BLUE
     984    SWAP_WORD (144); // REF_COLOR_RED
     985    SWAP_WORD (148); // FLAGS
     986    SWAP_WORD (152); // PHOTFLAGS_U
     987    SWAP_WORD (156); // PHOTFLAGS_L
     988    SWAP_WORD (160); // OBJ_ID
     989    SWAP_WORD (164); // CAT_ID
     990    SWAP_DBLE (168); // EXT_ID
     991    SWAP_DBLE (176); // EXT_ID_GC
     992  }
     993# endif 
     994
     995  return (TRUE);
     996}
     997
     998/*** add test of EXTNAME and header-defined columns? ***/
     999/* return internal structure representation */
     1000Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) {
     1001
     1002  int Ncols;
     1003  Average_PS1_V5alt *data;
     1004
     1005  Ncols = ftable[0].header[0].Naxis[0];
     1006  if (Ncols != 184) {
     1007    fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 184);
     1008    return NULL;
     1009  }
     1010
     1011  *Ndata = ftable[0].header[0].Naxis[1];
     1012  data = (Average_PS1_V5alt *) ftable[0].buffer;
     1013  if ((swapped == NULL) || (*swapped == FALSE)) {
     1014    if (!gfits_convert_Average_PS1_V5alt (data, sizeof (Average_PS1_V5alt), *Ndata)) {
     1015      return NULL;
     1016    }
     1017    gfits_table_scale_data (ftable);
     1018    if (swapped != NULL) *swapped = TRUE;
     1019  }
     1020  return (data);
     1021}
     1022
     1023/****** alt secfilt **********/
     1024
     1025SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues) {
     1026
     1027  off_t i;
     1028  SecFilt *out;
     1029
     1030  ALLOCATE_ZERO (out, SecFilt, Nvalues);
     1031
     1032  for (i = 0; i < Nvalues; i++) {
     1033    dvo_secfilt_init (&out[i]);
     1034
     1035    out[i].M             = in[i].M;     
     1036    out[i].dM            = in[i].dM;     
     1037    out[i].Map           = in[i].Map;     
     1038    out[i].dMap          = in[i].dMap;     
     1039    out[i].sMap          = in[i].sMap;     
     1040    out[i].Mkron         = in[i].Mkron;     
     1041    out[i].dMkron        = in[i].dMkron;     
     1042
     1043    out[i].Mstdev        = in[i].Mstdev;     
     1044    out[i].Mmin          = in[i].Mmin;     
     1045    out[i].Mmax          = in[i].Mmax;     
     1046    out[i].Mchisq        = in[i].Mchisq;     
     1047
     1048    out[i].Ncode         = in[i].Ncode;
     1049    out[i].Nused         = in[i].Nused;
     1050    out[i].NusedKron     = in[i].NusedKron;
     1051    out[i].NusedAp       = in[i].NusedAp;
     1052
     1053    out[i].flags         = in[i].flags;     
     1054
     1055    out[i].MpsfStk       = in[i].MpsfStk;
     1056    out[i].FpsfStk       = in[i].FpsfStk;
     1057    out[i].dFpsfStk      = in[i].dFpsfStk;
     1058
     1059    out[i].MkronStk      = in[i].MkronStk;
     1060    out[i].FkronStk      = in[i].FkronStk;
     1061    out[i].dFkronStk     = in[i].dFkronStk;
     1062
     1063    out[i].MapStk        = in[i].MapStk;
     1064    out[i].FapStk        = in[i].FapStk;
     1065    out[i].dFapStk       = in[i].dFapStk;
     1066
     1067    out[i].stackPrmryOff = in[i].stackPrmryOff;     
     1068    out[i].stackBestOff  = in[i].stackBestOff;     
     1069
     1070    out[i].MpsfWrp       = in[i].MpsfWrp;
     1071    out[i].FpsfWrp       = in[i].FpsfWrp;
     1072    out[i].dFpsfWrp      = in[i].dFpsfWrp;
     1073    out[i].sFpsfWrp      = in[i].sFpsfWrp;
     1074
     1075    out[i].MkronWrp      = in[i].MkronWrp;
     1076    out[i].FkronWrp      = in[i].FkronWrp;
     1077    out[i].dFkronWrp     = in[i].dFkronWrp;
     1078    out[i].sFkronWrp     = in[i].sFkronWrp;
     1079
     1080    out[i].MapWrp        = in[i].MapWrp;
     1081    out[i].FapWrp        = in[i].FapWrp;
     1082    out[i].dFapWrp       = in[i].dFapWrp;
     1083    out[i].sFapWrp       = in[i].sFapWrp;
     1084
     1085    out[i].NusedWrp      = in[i].NusedWrp;
     1086    out[i].NusedKronWrp  = in[i].NusedKronWrp;
     1087    out[i].NusedApWrp    = in[i].NusedApWrp;
     1088
     1089    out[i].ubercalDist   = in[i].ubercalDist;     
     1090  }
     1091  return (out);
     1092}
     1093
     1094int gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems) {
     1095
     1096  off_t i;
     1097  unsigned char *byte, tmp;
     1098
     1099  if (size != 160) {
     1100    fprintf (stderr, "WARNING: mismatch in data types SecFilt_PS1_V5alt: "OFF_T_FMT" vs %d\n",  size,  160);
     1101    return (FALSE);
     1102  }
     1103
     1104  /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */
     1105  i = tmp = 0;
     1106  byte = NULL;
     1107
     1108# ifdef BYTE_SWAP
     1109  byte = (unsigned char *) data;
     1110  for (i = 0; i < nitems; i++, byte += 160) {
     1111    /** BYTE SWAP **/
     1112    SWAP_WORD (0); // MAG
     1113    SWAP_WORD (4); // MAG_ERR
     1114    SWAP_WORD (8); // MAG_AP
     1115    SWAP_WORD (12); // MAG_AP_ERR
     1116    SWAP_WORD (16); // MAG_AP_STDEV
     1117    SWAP_WORD (20); // MAG_KRON
     1118    SWAP_WORD (24); // MAG_KRON_ERR
     1119    SWAP_WORD (28); // MAG_KRON_STDEV
     1120    SWAP_WORD (32); // MAG_STDEV
     1121    SWAP_WORD (36); // MAG_MIN
     1122    SWAP_WORD (40); // MAG_MAX
     1123    SWAP_WORD (44); // MAG_CHI
     1124    SWAP_BYTE (48); // NCODE
     1125    SWAP_BYTE (50); // NUSED
     1126    SWAP_BYTE (52); // NUSED_KRON
     1127    SWAP_BYTE (54); // NUSED_AP
     1128    SWAP_WORD (56); // FLAGS
     1129    SWAP_WORD (60); // MAG_PSF_STK
     1130    SWAP_WORD (64); // FLUX_PSF_STK
     1131    SWAP_WORD (68); // FLUX_PSF_STK_ERR
     1132    SWAP_WORD (72); // MAG_KRON_STK
     1133    SWAP_WORD (76); // FLUX_KRON_STK
     1134    SWAP_WORD (80); // FLUX_KRON_STK_ERR
     1135    SWAP_WORD (84); // MAG_AP_STK
     1136    SWAP_WORD (88); // FLUX_AP_STK
     1137    SWAP_WORD (92); // FLUX_AP_STK_ERR
     1138    SWAP_WORD (96); // STACK_PRIMARY_OFF
     1139    SWAP_WORD (100); // STACK_BEST_OFF
     1140    SWAP_WORD (104); // MAG_PSF_WRP
     1141    SWAP_WORD (108); // FLUX_PSF_WRP
     1142    SWAP_WORD (112); // FLUX_PSF_WRP_ERR
     1143    SWAP_WORD (116); // FLUX_PSF_WRP_STD
     1144    SWAP_WORD (120); // MAG_KRON_WRP
     1145    SWAP_WORD (124); // FLUX_KRON_WRP
     1146    SWAP_WORD (128); // FLUX_KRON_WRP_ERR
     1147    SWAP_WORD (132); // FLUX_KRON_WRP_STD
     1148    SWAP_WORD (136); // MAG_AP_WRP
     1149    SWAP_WORD (140); // FLUX_AP_WRP
     1150    SWAP_WORD (144); // FLUX_AP_WRP_ERR
     1151    SWAP_WORD (148); // FLUX_AP_WRP_STD
     1152    SWAP_BYTE (152); // NUSED_WRP
     1153    SWAP_BYTE (154); // NUSED_KRON_WRP
     1154    SWAP_BYTE (156); // NUSED_AP_WRP
     1155    SWAP_BYTE (158); // UBERCAL_DIST
     1156  }
     1157# endif 
     1158
     1159  return (TRUE);
     1160}
     1161
     1162/*** add test of EXTNAME and header-defined columns? ***/
     1163/* return internal structure representation */
     1164SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) {
     1165
     1166  int Ncols;
     1167  SecFilt_PS1_V5alt *data;
     1168
     1169  Ncols = ftable[0].header[0].Naxis[0];
     1170  if (Ncols != 160) {
     1171    fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 160);
     1172    return NULL;
     1173  }
     1174
     1175  *Ndata = ftable[0].header[0].Naxis[1];
     1176  data = (SecFilt_PS1_V5alt *) ftable[0].buffer;
     1177  if ((swapped == NULL) || (*swapped == FALSE)) {
     1178    if (!gfits_convert_SecFilt_PS1_V5alt (data, sizeof (SecFilt_PS1_V5alt), *Ndata)) {
     1179      return NULL;
     1180    }
     1181    gfits_table_scale_data (ftable);
     1182    if (swapped != NULL) *swapped = TRUE;
     1183  }
     1184  return (data);
     1185}
     1186
     1187
Note: See TracChangeset for help on using the changeset viewer.