IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34381


Ignore:
Timestamp:
Sep 4, 2012, 6:01:04 AM (14 years ago)
Author:
eugene
Message:

update mksource.pl to track the three variant series (PS1_V?, PS1_DV?, PS1_SV?) separate -- this lets us have >< rules for each set; set PLTSCALE to have sign based on axis parity (+ve = sky parity); finalize PS1_V4, PS1_SV2, PS1_DV3; add AP_FLUX & AP_FLUX_SIG to PS1_V4, SV2, DV3

Location:
branches/eam_branches/ipp-20120805/psModules/src/objects
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120805/psModules/src/objects/Makefile.am

    r34375 r34381  
    162162        mksource.pl pmSourceIO_CMF.c.in PS1_SV1 pmSourceIO_CMF_PS1_SV1.c
    163163
     164pmSourceIO_CMF_PS1_SV2.c : pmSourceIO_CMF.c.in mksource.pl
     165        mksource.pl pmSourceIO_CMF.c.in PS1_SV2 pmSourceIO_CMF_PS1_SV2.c
     166
    164167# EXTRA_DIST = pmErrorCodes.h.in pmErrorCodes.dat pmErrorCodes.c.in
  • branches/eam_branches/ipp-20120805/psModules/src/objects/mksource.pl

    r34259 r34381  
    1414# validate the cmfmode
    1515
    16 # see if we can add in PS1_DV* and PS1_SV* as well...
    17 %cmfmodes = ("PS1_V1", 1,
    18              "PS1_V2", 2,
    19              "PS1_V3", 3,
    20              "PS1_V4", 4,
     16# keep the series (V1,SV1,DV1) separate)
     17%cmfmodes_v = ("PS1_V1", 1,
     18               "PS1_V2", 2,
     19               "PS1_V3", 3,
     20               "PS1_V4", 4,
     21    );
     22%cmfmodes_dv = ("PS1_DV1", 1,
     23                "PS1_DV2", 2,
     24                "PS1_DV3", 3,
     25    );
     26%cmfmodes_sv = ("PS1_SV1", 1,
     27                "PS1_SV2", 2,
    2128    );
    2229
     
    118125        if ($rule =~ m|^>=|) {
    119126            print ">= rule: $rule\n" if $DEBUG;
    120             if ($cmfmodes{$cmfmode} == 0) { next; }
     127            # find the cmfmode series (v, dv, sv)
    121128            $realrule = substr($rule,2);
    122             $thisLevel = $cmfmodes{$realrule};
    123             $myLevel = $cmfmodes{$cmfmode};
     129            %series = &cmf_series ($realrule);
     130            if (! %series) { next; }
     131            if ($series{$cmfmode} == 0) { next; }
     132            $thisLevel = $series{$realrule};
     133            $myLevel = $series{$cmfmode};
    124134            print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
    125135            if ($myLevel >= $thisLevel) { $keepLine = 1; }
     
    130140        if ($rule =~ m|^>|) {
    131141            print "> rule: $rule\n" if $DEBUG;
    132             if ($cmfmodes{$cmfmode} == 0) { next; }
     142            # find the cmfmode series (v, dv, sv)
    133143            $realrule = substr($rule,1);
    134             $thisLevel = $cmfmodes{$realrule};
    135             $myLevel = $cmfmodes{$cmfmode};
     144            %series = &cmf_series ($realrule);
     145            if (! %series) { next; }
     146            if ($series{$cmfmode} == 0) { next; }
     147            $thisLevel = $series{$realrule};
     148            $myLevel = $series{$cmfmode};
    136149            print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
    137150            if ($myLevel > $thisLevel) { $keepLine = 1; }
     
    142155        if ($rule =~ m|^<=|) {
    143156            print "<= rule: $rule\n" if $DEBUG;
    144             if ($cmfmodes{$cmfmode} == 0) { next; }
     157            # find the cmfmode series (v, dv, sv)
    145158            $realrule = substr($rule,2);
    146             $thisLevel = $cmfmodes{$realrule};
    147             $myLevel = $cmfmodes{$cmfmode};
     159            %series = &cmf_series ($realrule);
     160            if (! %series) { next; }
     161            if ($series{$cmfmode} == 0) { next; }
     162            $thisLevel = $series{$realrule};
     163            $myLevel = $series{$cmfmode};
    148164            print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
    149165            if ($myLevel <= $thisLevel) { $keepLine = 1; }
     
    154170        if ($rule =~ m|^<|) {
    155171            print "< rule: $rule\n" if $DEBUG;
    156             if ($cmfmodes{$cmfmode} == 0) { next; }
     172            # find the cmfmode series (v, dv, sv)
    157173            $realrule = substr($rule,1);
    158             $thisLevel = $cmfmodes{$realrule};
    159             $myLevel = $cmfmodes{$cmfmode};
     174            %series = &cmf_series ($realrule);
     175            if (! %series) { next; }
     176            if ($series{$cmfmode} == 0) { next; }
     177            $thisLevel = $series{$realrule};
     178            $myLevel = $series{$cmfmode};
    160179            print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
    161180            if ($myLevel < $thisLevel) { $keepLine = 1; }
     
    174193
    175194exit 0;
     195
     196sub cmf_series {
     197
     198    my ($rule) = $_[0];
     199
     200    if ($cmfmodes_v{$rule})  { return %cmfmodes_v;  }
     201    if ($cmfmodes_sv{$rule}) { return %cmfmodes_sv; }
     202    if ($cmfmodes_dv{$rule}) { return %cmfmodes_dv; }
     203    return 0;
     204}
  • branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO_CMF.c.in

    r34379 r34381  
    136136        @ALL,!PS1_V1,!PS1_V2@     psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG",PS_DATA_F32, "Sigma of PSF instrumental flux",             source->psfFluxErr);
    137137
    138         @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG",           PS_DATA_F32, "magnitude in standard aperture",             source->apMag);
    139         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RAW",       PS_DATA_F32, "magnitude in reported aperture",             source->apMagRaw);
    140         @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RADIUS",    PS_DATA_F32, "radius used for aperture mags",              outputs.apRadius);
    141         @PS1_DV2@                psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX",          PS_DATA_F32, "instrumental flux in standard aperture",     source->apFlux);
    142         @PS1_DV2@                psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX_SIG",      PS_DATA_F32, "aperture flux error",                        source->apFluxErr);
    143 
    144         @<PS1_V3,PS1_SV1,PS1_DV?@ psMetadataAdd (row, PS_LIST_TAIL, "PEAK_FLUX_AS_MAG", PS_DATA_F32, "Peak flux expressed as magnitude",           outputs.peakMag);
     138        @ALL@                       psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG",           PS_DATA_F32, "magnitude in standard aperture",             source->apMag);
     139        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RAW",       PS_DATA_F32, "magnitude in reported aperture",             source->apMagRaw);
     140        @ALL@                       psMetadataAdd (row, PS_LIST_TAIL, "AP_MAG_RADIUS",    PS_DATA_F32, "radius used for aperture mags",              outputs.apRadius);
     141        @>PS1_DV1,>PS1_V3,>PS1_SV1@ psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX",          PS_DATA_F32, "instrumental flux in standard aperture",     source->apFlux);
     142        @>PS1_DV1,>PS1_V3,>PS1_SV1@ psMetadataAdd (row, PS_LIST_TAIL, "AP_FLUX_SIG",      PS_DATA_F32, "aperture flux error",                        source->apFluxErr);
     143
     144        @<PS1_V3,PS1_SV?,PS1_DV?@ psMetadataAdd (row, PS_LIST_TAIL, "PEAK_FLUX_AS_MAG", PS_DATA_F32, "Peak flux expressed as magnitude",           outputs.peakMag);
    145145
    146146        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "CAL_PSF_MAG",      PS_DATA_F32, "PSF Magnitude using supplied calibration",   outputs.calMag);
     
    163163        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      outputs.psfTheta);
    164164        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor (bad)",          source->pixWeightNotBad);
    165         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT",   PS_DATA_F32, "PSF coverage/quality factor (poor)",         source->pixWeightNotPoor);
     165        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT",   PS_DATA_F32, "PSF coverage/quality factor (poor)",         source->pixWeightNotPoor);
    166166        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         outputs.nDOF);
    167167        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    outputs.nPix);
     
    171171        @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_YY",       PS_DATA_F32, "second moments (Y*Y)",                       moments.Myy);
    172172
    173         @>PS1_V2,PS1_SV1@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M3C",      PS_DATA_F32, "third momemt cos theta",                     moments.M_c3);
    174         @>PS1_V2,PS1_SV1@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M3S",      PS_DATA_F32, "third momemt sin theta",                     moments.M_s3);
    175         @>PS1_V2,PS1_SV1@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M4C",      PS_DATA_F32, "fourth momemt cos theta",                    moments.M_c4);
    176         @>PS1_V2,PS1_SV1@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M4S",      PS_DATA_F32, "fourth momemt sin theta",                    moments.M_s4);
    177 
    178         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_R1",       PS_DATA_F32, "first radial moment",                        moments.Mrf);
    179         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_RH",       PS_DATA_F32, "half radial moment",                         moments.Mrh);
    180         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX",        PS_DATA_F32, "Kron Flux (in 2.5 R1)",                      moments.Krf);
    181         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_ERR",    PS_DATA_F32, "Kron Flux Error",                            moments.dKrf);
    182         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_INNER",  PS_DATA_F32, "Kron Flux (in 1.0 R1)",                      moments.Kinner);
    183         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_OUTER",  PS_DATA_F32, "Kron Flux (in 4.0 R1)",                      moments.Kouter);
     173        @>PS1_V2,PS1_SV?@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M3C",      PS_DATA_F32, "third momemt cos theta",                     moments.M_c3);
     174        @>PS1_V2,PS1_SV?@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M3S",      PS_DATA_F32, "third momemt sin theta",                     moments.M_s3);
     175        @>PS1_V2,PS1_SV?@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M4C",      PS_DATA_F32, "fourth momemt cos theta",                    moments.M_c4);
     176        @>PS1_V2,PS1_SV?@         psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_M4S",      PS_DATA_F32, "fourth momemt sin theta",                    moments.M_s4);
     177
     178        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_R1",       PS_DATA_F32, "first radial moment",                        moments.Mrf);
     179        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_RH",       PS_DATA_F32, "half radial moment",                         moments.Mrh);
     180        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX",        PS_DATA_F32, "Kron Flux (in 2.5 R1)",                      moments.Krf);
     181        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_ERR",    PS_DATA_F32, "Kron Flux Error",                            moments.dKrf);
     182        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_INNER",  PS_DATA_F32, "Kron Flux (in 1.0 R1)",                      moments.Kinner);
     183        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "KRON_FLUX_OUTER",  PS_DATA_F32, "Kron Flux (in 4.0 R1)",                      moments.Kouter);
    184184
    185185        @>PS1_V3@                 psMetadataAdd (row, PS_LIST_TAIL, "SKY_LIMIT_RAD",    PS_DATA_F32, "Radius where object hits sky",               source->skyRadius);
     
    198198        @PS1_DV2@                 psMetadataAdd (row, PS_LIST_TAIL, "DIFF_SN_M",        PS_DATA_F32, "signal-to-noise of neg match src",           diffStats.SNm);
    199199
    200         @ALL@                     psMetadataAdd (row, PS_LIST_TAIL, "FLAGS",            PS_DATA_U32, "psphot analysis flags",                      source->mode);
    201         @>PS1_V2,PS1_SV1,PS1_DV2@ psMetadataAdd (row, PS_LIST_TAIL, "FLAGS2",           PS_DATA_U32, "psphot analysis flags",                      source->mode2);
    202         @>PS1_V2@                 psMetadataAdd (row, PS_LIST_TAIL, "PADDING2",         PS_DATA_S32, "more padding", 0);
    203         @PS1_SV1@
     200        @ALL@                      psMetadataAdd (row, PS_LIST_TAIL, "FLAGS",            PS_DATA_U32, "psphot analysis flags",                      source->mode);
     201        @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "FLAGS2",           PS_DATA_U32, "psphot analysis flags",                      source->mode2);
     202        @>PS1_V2@                  psMetadataAdd (row, PS_LIST_TAIL, "PADDING2",         PS_DATA_S32, "more padding", 0);
     203        @PS1_SV?@
    204204
    205205          // note that this definition is inconsistent with the definition in
     
    316316        @ALL@     source->psfMagErr = psMetadataLookupF32 (&status, row, "PSF_INST_MAG_SIG");
    317317        @ALL@     source->apMag     = psMetadataLookupF32 (&status, row, "AP_MAG");
    318         @>PS1_V2,PS1_SV1,PS1_DV2@ source->apMagRaw  = psMetadataLookupF32 (&status, row, "AP_MAG_RAW");
     318        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->apMagRaw  = psMetadataLookupF32 (&status, row, "AP_MAG_RAW");
    319319
    320320        // XXX use these to determine PAR[PM_PAR_I0] if they exist?
    321321        // XXX add these to PS1_SV1?
    322         @>PS1_V2,PS1_SV1,PS1_DV?@ source->psfFlux   = psMetadataLookupF32 (&status, row, "PSF_INST_FLUX");
    323         @>PS1_V2,PS1_SV1,PS1_DV?@ source->psfFluxErr= psMetadataLookupF32 (&status, row, "PSF_INST_FLUX_SIG");
     322        @>PS1_V2,PS1_SV?,PS1_DV?@ source->psfFlux   = psMetadataLookupF32 (&status, row, "PSF_INST_FLUX");
     323        @>PS1_V2,PS1_SV?,PS1_DV?@ source->psfFluxErr= psMetadataLookupF32 (&status, row, "PSF_INST_FLUX_SIG");
    324324
    325325        // XXX this scaling is incorrect: does not include the 2 \pi AREA factor
     
    342342
    343343        @ALL@     source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
    344         @>PS1_V2,PS1_SV1,PS1_DV2@ source->pixWeightNotPoor = psMetadataLookupF32 (&status, row, "PSF_QF_PERFECT");
     344        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->pixWeightNotPoor = psMetadataLookupF32 (&status, row, "PSF_QF_PERFECT");
    345345        @ALL@     source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
    346346        @ALL@     source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
     
    362362        // XXX we do not save all of the 3rd and 4th moment parameters. when we load in data,
    363363        // we are storing enough information so the output will be consistent with the input
    364         @>PS1_V2,PS1_SV1@ source->moments->Mxxx = +1.0 * psMetadataLookupF32 (&status, row, "MOMENTS_M3C");
    365         @>PS1_V2,PS1_SV1@ source->moments->Mxxy = 0.0;
    366         @>PS1_V2,PS1_SV1@ source->moments->Mxyy = 0.0;
    367         @>PS1_V2,PS1_SV1@ source->moments->Myyy = -1.0 * psMetadataLookupF32 (&status, row, "MOMENTS_M3S");
    368 
    369         @>PS1_V2,PS1_SV1@ source->moments->Mxxxx = +1.00 * psMetadataLookupF32 (&status, row, "MOMENTS_M4C");
    370         @>PS1_V2,PS1_SV1@ source->moments->Mxxxy = 0.0;
    371         @>PS1_V2,PS1_SV1@ source->moments->Mxxyy = 0.0;
    372         @>PS1_V2,PS1_SV1@ source->moments->Mxyyy = -0.25 * psMetadataLookupF32 (&status, row, "MOMENTS_M4S");
    373         @>PS1_V2,PS1_SV1@ source->moments->Myyyy = 0.0;
    374 
    375         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->Mrf         = psMetadataLookupF32 (&status, row, "MOMENTS_R1");
    376         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->Mrh         = psMetadataLookupF32 (&status, row, "MOMENTS_RH");
    377         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->KronFlux    = psMetadataLookupF32 (&status, row, "KRON_FLUX");
    378         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->KronFluxErr = psMetadataLookupF32 (&status, row, "KRON_FLUX_ERR");
    379         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->KronFinner  = psMetadataLookupF32 (&status, row, "KRON_FLUX_INNER");
    380         @>PS1_V2,PS1_SV1,PS1_DV2@ source->moments->KronFouter  = psMetadataLookupF32 (&status, row, "KRON_FLUX_OUTER");
     364        @>PS1_V2,PS1_SV?@ source->moments->Mxxx = +1.0 * psMetadataLookupF32 (&status, row, "MOMENTS_M3C");
     365        @>PS1_V2,PS1_SV?@ source->moments->Mxxy = 0.0;
     366        @>PS1_V2,PS1_SV?@ source->moments->Mxyy = 0.0;
     367        @>PS1_V2,PS1_SV?@ source->moments->Myyy = -1.0 * psMetadataLookupF32 (&status, row, "MOMENTS_M3S");
     368
     369        @>PS1_V2,PS1_SV?@ source->moments->Mxxxx = +1.00 * psMetadataLookupF32 (&status, row, "MOMENTS_M4C");
     370        @>PS1_V2,PS1_SV?@ source->moments->Mxxxy = 0.0;
     371        @>PS1_V2,PS1_SV?@ source->moments->Mxxyy = 0.0;
     372        @>PS1_V2,PS1_SV?@ source->moments->Mxyyy = -0.25 * psMetadataLookupF32 (&status, row, "MOMENTS_M4S");
     373        @>PS1_V2,PS1_SV?@ source->moments->Myyyy = 0.0;
     374
     375        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->Mrf         = psMetadataLookupF32 (&status, row, "MOMENTS_R1");
     376        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->Mrh         = psMetadataLookupF32 (&status, row, "MOMENTS_RH");
     377        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->KronFlux    = psMetadataLookupF32 (&status, row, "KRON_FLUX");
     378        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->KronFluxErr = psMetadataLookupF32 (&status, row, "KRON_FLUX_ERR");
     379        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->KronFinner  = psMetadataLookupF32 (&status, row, "KRON_FLUX_INNER");
     380        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->moments->KronFouter  = psMetadataLookupF32 (&status, row, "KRON_FLUX_OUTER");
    381381
    382382        @>PS1_V3@ source->skyRadius            = psMetadataLookupF32 (&status, row, "SKY_LIMIT_RAD");
     
    393393        @PS1_DV?@      source->diffStats->nRatioAll  = psMetadataLookupF32 (&status, row, "DIFF_NRATIO_ALL");
    394394       
    395         @PS1_DV2@      source->diffStats->Rp         = psMetadataLookupF32 (&status, row, "DIFF_R_P");
    396         @PS1_DV2@      source->diffStats->SNp        = psMetadataLookupF32 (&status, row, "DIFF_SN_P");
    397         @PS1_DV2@      source->diffStats->Rm         = psMetadataLookupF32 (&status, row, "DIFF_R_M");
    398         @PS1_DV2@      source->diffStats->SNm        = psMetadataLookupF32 (&status, row, "DIFF_SN_M");
     395        @>PS1_DV1@      source->diffStats->Rp         = psMetadataLookupF32 (&status, row, "DIFF_R_P");
     396        @>PS1_DV1@      source->diffStats->SNp        = psMetadataLookupF32 (&status, row, "DIFF_SN_P");
     397        @>PS1_DV1@      source->diffStats->Rm         = psMetadataLookupF32 (&status, row, "DIFF_R_M");
     398        @>PS1_DV1@      source->diffStats->SNm        = psMetadataLookupF32 (&status, row, "DIFF_SN_M");
    399399        @PS1_DV?@  }
    400400
    401401        @ALL@                     source->mode  = psMetadataLookupU32 (&status, row, "FLAGS");
    402         @>PS1_V2,PS1_SV1,PS1_DV2@ source->mode2 = psMetadataLookupU32 (&status, row, "FLAGS2");
     402        @>PS1_V2,PS1_SV?,>PS1_DV1@ source->mode2 = psMetadataLookupU32 (&status, row, "FLAGS2");
    403403        assert (status);
    404404
     
    734734    }
    735735
    736     @PS1_DV3@ pmChip *chip = readout->parent->parent;
     736    @>PS1_DV2@ pmChip *chip = readout->parent->parent;
    737737
    738738    table = psArrayAllocEmpty (sources->n);
     
    769769            yErr = dPAR[PM_PAR_YPOS];
    770770
    771             @PS1_DV3@ psSphere ptSky = {0.0, 0.0, 0.0, 0.0};
    772             @PS1_DV3@ float posAngle = 0.0;
    773             @PS1_DV3@ float pltScale = 0.0;
    774             @PS1_DV3@ pmSourceLocalAstrometry (&ptSky, &posAngle, &pltScale, chip, xPos, yPos);
    775             @PS1_DV3@ double raPos = ptSky.r*PS_DEG_RAD;
    776             @PS1_DV3@ double decPos = ptSky.d*PS_DEG_RAD;
     771            @>PS1_DV2@ psSphere ptSky = {0.0, 0.0, 0.0, 0.0};
     772            @>PS1_DV2@ float posAngle = 0.0;
     773            @>PS1_DV2@ float pltScale = 0.0;
     774            @>PS1_DV2@ pmSourceLocalAstrometry (&ptSky, &posAngle, &pltScale, chip, xPos, yPos);
     775            @>PS1_DV2@ double raPos = ptSky.r*PS_DEG_RAD;
     776            @>PS1_DV2@ double decPos = ptSky.d*PS_DEG_RAD;
    777777
    778778            float kronFlux = source->moments ? source->moments->KronFlux : NAN;
     
    787787            psMetadataAddF32 (row, PS_LIST_TAIL, "X_EXT_SIG",        0, "Sigma in EXT x coordinate",                  xErr);
    788788            psMetadataAddF32 (row, PS_LIST_TAIL, "Y_EXT_SIG",        0, "Sigma in EXT y coordinate",                  yErr);
    789             @PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
    790             @PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
     789            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
     790            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
    791791            psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG",     0, "EXT fit instrumental magnitude",             model->mag);
    792792            psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG_SIG", 0, "Sigma of PSF instrumental magnitude",        model->magErr);
     793
     794            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "POSANGLE",   0, "position angle at source (degrees)",         posAngle);
     795            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "PLTSCALE",   0, "plate scale at source (arcsec/pixel)",       pltScale);
    793796
    794797            // psMetadataAddF32 (row, PS_LIST_TAIL, "MOMENTS_XX",       0, "second moment in x",                      extPars->Mxx);
     
    802805            psMetadataAddF32 (row, PS_LIST_TAIL, "KRON_MAG",         0, "Kron Mag",                                   kronMag);
    803806
    804             @ALL, !PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
    805             @PS1_DV3@       psMetadataAddS32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
     807            @ALL, <PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
     808            @>PS1_DV2@       psMetadataAddS32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
    806809            psMetadataAddStr (row, PS_LIST_TAIL, "MODEL_TYPE",       0, "name of model",                              pmModelClassGetName (model->type));
    807810
  • branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceOutputs.c

    r34376 r34381  
    227227    *pltScale = 0.5*(pltScale_x + pltScale_y);
    228228
     229    float crossProduct = dTPx_dCHx * dTPy_dCHy - dTPx_dCHy * dTPy_dCHx;
     230    if  (crossProduct > 0.) {
     231      *pltScale *= -1.0;
     232    }
     233
    229234    float posAngle_x = atan2 (+dTPy_dCHx, +dTPx_dCHx);
    230235    float posAngle_y = atan2 (-dTPy_dCHy, +dTPx_dCHy);
Note: See TracChangeset for help on using the changeset viewer.