IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28030


Ignore:
Timestamp:
May 19, 2010, 2:09:25 PM (16 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/czw_branch/20100427/psModules
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/czw_branch/20100427/psModules

  • branches/czw_branch/20100427/psModules/src/camera/pmFPAMosaic.c

    r26893 r28030  
    595595
    596596    if (cell->readouts->n > 1) {
    597         psWarning("Cell contains more than one readout (%ld) --- mosaicking only the first.\n",
    598                   cell->readouts->n);
     597        psWarning("Skipping video cell for mosaic.\n");
     598        return true;
    599599    }
    600600
  • branches/czw_branch/20100427/psModules/src/objects/Makefile.am

    r27672 r28030  
    4343        pmSourceIO_CMF_PS1_V1.c \
    4444        pmSourceIO_CMF_PS1_V2.c \
     45        pmSourceIO_CMF_PS1_SV1.c \
    4546        pmSourceIO_CMF_PS1_DV1.c \
    4647        pmSourceIO_MatchedRefs.c \
  • branches/czw_branch/20100427/psModules/src/objects/pmPhotObj.c

    r27657 r28030  
    5858    if (!object->sources) {
    5959        object->sources = psArrayAllocEmpty(1);
    60         object->x = source->peak->xf;
    61         object->y = source->peak->yf;
     60        object->x  = source->peak->xf;
     61        object->y  = source->peak->yf;
     62        object->SN = source->peak->SN;
     63    } else {
     64        object->SN = PS_MAX(object->SN, source->peak->SN);
    6265    }
    6366    psArrayAdd (object->sources, 1, source);
    6467    return true;
    6568}
     69
     70// sort by SN (descending)
     71int pmPhotObjSortBySN (const void **a, const void **b)
     72{
     73    pmPhotObj *objA = *(pmPhotObj **)a;
     74    pmPhotObj *objB = *(pmPhotObj **)b;
     75
     76    psF32 fA = objA->SN;
     77    psF32 fB = objB->SN;
     78
     79    psF32 diff = fA - fB;
     80    if (diff > FLT_EPSILON) return (-1);
     81    if (diff < FLT_EPSILON) return (+1);
     82    return (0);
     83}
  • branches/czw_branch/20100427/psModules/src/objects/pmPhotObj.h

    r27657 r28030  
    3939    float x;
    4040    float y;
     41    float SN;                           // max of peak->SN for all matched sources
    4142} pmPhotObj;
    4243
     44pmPhotObj *pmPhotObjAlloc(void);
     45
    4346bool pmPhotObjAddSource(pmPhotObj *object, pmSource *source);
    44 pmPhotObj *pmPhotObjAlloc(void);
     47
     48int pmPhotObjSortBySN (const void **a, const void **b);
    4549
    4650/// @}
  • branches/czw_branch/20100427/psModules/src/objects/pmSource.c

    r27657 r28030  
    5454    psFree(tmp->moments);
    5555    psFree(tmp->diffStats);
     56    psFree(tmp->radial);
    5657    psFree(tmp->blends);
    5758    psTrace("psModules.objects", 10, "---- end ----\n");
     
    116117    source->extpars = NULL;
    117118    source->diffStats = NULL;
     119    source->radial = NULL;
    118120
    119121    source->region = psRegionSet(NAN, NAN, NAN, NAN);
  • branches/czw_branch/20100427/psModules/src/objects/pmSource.h

    r27657 r28030  
    9191    pmSourceExtendedPars *extpars;      ///< extended source parameters
    9292    pmSourceDiffStats *diffStats;       ///< extra parameters for difference detections
     93    pmSourceRadialApertures *radial;    ///< radial flux in circular apertures
    9394    int imageID;
    9495};
  • branches/czw_branch/20100427/psModules/src/objects/pmSourceExtendedPars.c

    r28017 r28030  
    6565}
    6666
     67// pmSourceRadialApertures carries the raw radial flux information, including angular bins
     68static void pmSourceRadialAperturesFree(pmSourceRadialApertures *radial)
     69{
     70    if (!radial) return;
     71    psFree(radial->flux);
     72    psFree(radial->fluxErr);
     73    psFree(radial->fill);
     74}
     75
     76pmSourceRadialApertures *pmSourceRadialAperturesAlloc()
     77{
     78    pmSourceRadialApertures *radial = (pmSourceRadialApertures *)psAlloc(sizeof(pmSourceRadialApertures));
     79    psMemSetDeallocator(radial, (psFreeFunc) pmSourceRadialAperturesFree);
     80
     81    radial->flux = NULL;
     82    radial->fluxErr = NULL;
     83    radial->fill = NULL;
     84    return radial;
     85}
     86
     87bool psMemCheckSourceRadialApertures(psPtr ptr)
     88{
     89    PS_ASSERT_PTR(ptr, false);
     90    return ( psMemGetDeallocator(ptr) == (psFreeFunc) pmSourceRadialAperturesFree);
     91}
     92
    6793// pmSourceEllipticalFlux carries the elliptical renormalized radial flux info
    6894static void pmSourceEllipticalFluxFree(pmSourceEllipticalFlux *flux)
  • branches/czw_branch/20100427/psModules/src/objects/pmSourceExtendedPars.h

    r28017 r28030  
    2020    psVector *isophotalRadii;           // isophotal radius for the above angles
    2121} pmSourceRadialFlux;
     22
     23typedef struct {
     24    psVector *flux;                     // fluxes measured at above radii
     25    psVector *fluxErr;                  // formal error on the fluxes (sqrt\sum(variance))
     26    psVector *fill;                     // angles corresponding to above radial profiles
     27} pmSourceRadialApertures;
    2228
    2329typedef struct {
     
    6268bool psMemCheckSourceRadialFlux(psPtr ptr);
    6369
     70pmSourceRadialApertures *pmSourceRadialAperturesAlloc();
     71bool psMemCheckSourceRadialApertures(psPtr ptr);
     72
    6473pmSourceEllipticalFlux *pmSourceEllipticalFluxAlloc();
    6574bool psMemCheckSourceEllipticalFlux(psPtr ptr);
  • branches/czw_branch/20100427/psModules/src/objects/pmSourceIO.c

    r28017 r28030  
    539539                status &= pmSourcesWrite_CMF_PS1_V2 (file->fits, readout, sources, file->header, outhead, dataname);
    540540            }
     541            if (!strcmp (exttype, "PS1_SV1")) {
     542                status &= pmSourcesWrite_CMF_PS1_SV1 (file->fits, readout, sources, file->header, outhead, dataname, recipe);
     543            }
    541544            if (!strcmp (exttype, "PS1_DV1")) {
    542545                status &= pmSourcesWrite_CMF_PS1_DV1 (file->fits, readout, sources, file->header, outhead, dataname);
     
    556559                    status &= pmSourcesWrite_CMF_PS1_V2_XSRC (file->fits, readout, sources, file->header, xsrcname, recipe);
    557560                }
     561                if (!strcmp (exttype, "PS1_SV1")) {
     562                    status &= pmSourcesWrite_CMF_PS1_SV1_XSRC (file->fits, readout, sources, file->header, xsrcname, recipe);
     563                }
    558564                if (!strcmp (exttype, "PS1_DV1")) {
    559565                    status &= pmSourcesWrite_CMF_PS1_DV1_XSRC (file->fits, readout, sources, file->header, xsrcname, recipe);
     
    573579                    status &= pmSourcesWrite_CMF_PS1_V2_XFIT (file->fits, readout, sources, xfitname);
    574580                }
     581                if (!strcmp (exttype, "PS1_SV1")) {
     582                    status &= pmSourcesWrite_CMF_PS1_SV1_XFIT (file->fits, readout, sources, xfitname);
     583                }
    575584                if (!strcmp (exttype, "PS1_DV1")) {
    576585                    status &= pmSourcesWrite_CMF_PS1_DV1_XFIT (file->fits, readout, sources, xfitname);
     
    981990        // we need to find the corresponding table EXTNAME.
    982991        // first check the header
    983         char *extdata = psMetadataLookupStr (NULL, hdu->header, "EXTDATA");
     992        char *extdata = psMetadataLookupStr (&status, hdu->header, "EXTDATA");
    984993        if (extdata) {
    985994            // if EXTDATA is defined in the header, use that value for 'dataname'
     
    10231032            if (!strcmp (exttype, "PS1_V2")) {
    10241033                sources = pmSourcesRead_CMF_PS1_V2 (file->fits, hdu->header);
     1034            }
     1035            if (!strcmp (exttype, "PS1_SV1")) {
     1036                sources = pmSourcesRead_CMF_PS1_SV1 (file->fits, hdu->header);
    10251037            }
    10261038            if (!strcmp (exttype, "PS1_DV1")) {
  • branches/czw_branch/20100427/psModules/src/objects/pmSourceIO.h

    r28017 r28030  
    4343bool pmSourcesWrite_CMF_PS1_V2_XFIT (psFits *fits, pmReadout *readout, psArray *sources, char *extname);
    4444
     45bool pmSourcesWrite_CMF_PS1_SV1 (psFits *fits, pmReadout *readout, psArray *sources, psMetadata *imageHeader, psMetadata *tableHeader, char *extname, psMetadata *recipe);
     46bool pmSourcesWrite_CMF_PS1_SV1_XSRC (psFits *fits, pmReadout *readout, psArray *sources, psMetadata *imageHeader, char *extname, psMetadata *recipe);
     47bool pmSourcesWrite_CMF_PS1_SV1_XFIT (psFits *fits, pmReadout *readout, psArray *sources, char *extname);
     48
    4549bool pmSourcesWrite_CMF_PS1_DV1 (psFits *fits, pmReadout *readout, psArray *sources, psMetadata *imageHeader, psMetadata *tableHeader, char *extname);
    4650bool pmSourcesWrite_CMF_PS1_DV1_XSRC (psFits *fits, pmReadout *readout, psArray *sources, psMetadata *imageHeader, char *extname, psMetadata *recipe);
     
    5761psArray *pmSourcesRead_CMF_PS1_V1 (psFits *fits, psMetadata *header);
    5862psArray *pmSourcesRead_CMF_PS1_V2 (psFits *fits, psMetadata *header);
     63psArray *pmSourcesRead_CMF_PS1_SV1 (psFits *fits, psMetadata *header);
    5964psArray *pmSourcesRead_CMF_PS1_DV1 (psFits *fits, psMetadata *header);
    6065
  • branches/czw_branch/20100427/psModules/src/objects/pmSourceIO_CMF_PS1_DV1.c

    r28017 r28030  
    175175        psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_MAG",     PS_DATA_F32, "PSF fit instrumental magnitude",             source->psfMag);
    176176        psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_MAG_SIG", PS_DATA_F32, "Sigma of PSF instrumental magnitude",        errMag);
    177         psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX",     PS_DATA_F32, "PSF fit instrumental magnitude",            source->psfFlux);
    178         psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG", PS_DATA_F32, "Sigma of PSF instrumental magnitude",       source->psfFluxErr);
     177        psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX",    PS_DATA_F32, "PSF fit instrumental magnitude",             source->psfFlux);
     178        psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG",PS_DATA_F32, "Sigma of PSF instrumental magnitude",        source->psfFluxErr);
    179179        psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG",           PS_DATA_F32, "magnitude in standard aperture",             source->apMag);
    180180        psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RADIUS",    PS_DATA_F32, "radius used for aperture mags",              apRadius);
Note: See TracChangeset for help on using the changeset viewer.