IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 11, 2018, 8:16:23 PM (7 years ago)
Author:
mhuber
Message:

update ppMOPS to WS cuts used in PS2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppTranslate/src/ppMopsRead.c

    r40495 r40582  
    250250    psVector *rall = psMetadataLookupVector(NULL, table, "DIFF_NRATIO_ALL");
    251251
     252    psVector *rp = psMetadataLookupVector(NULL, table, "DIFF_R_P");
     253    psVector *rm = psMetadataLookupVector(NULL, table, "DIFF_R_M");
     254    psVector *snp = psMetadataLookupVector(NULL, table, "DIFF_SN_P");
     255    psVector *snm = psMetadataLookupVector(NULL, table, "DIFF_SN_M");
     256
     257    psVector *mxx = psMetadataLookupVector(NULL, table, "MOMENTS_XX");
     258    psVector *myy = psMetadataLookupVector(NULL, table, "MOMENTS_YY");
     259    //MEH
     260
    252261    double plateScale = 0.0;        // Plate scale
    253262    long numGood = 0;               // Number of good rows
     
    264273      // -- need to test similarity/differences for WW/WS -- have separate block for WW
    265274      // -- may need to move block
     275      // -- block should set vars and then run rej afterwards -- not clear want all for both --
     276
     277//      if (!strcasecmp(args->difftype, "WW")) {
     278//        // cut non-physical moments for PS -- <2.0? -- need to modify w/ mask level for edges
     279//        if (!isfinite(mxx->data.F32[row]) || !isfinite(myy->data.F32[row])) {
     280//          psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of NAN MOMENTS_XX/YY params: < 2 2:  %f %f ", row, i, mxx->data.F32[row],myy->data.F32[row]);
     281//          det->mask->data.U8[row] = 0xFF;
     282//          continue;
     283//        }
     284//        if ( (mxx->data.F32[row]<2.0 || myy->data.F32[row]<2.0) && rmask->data.F32[row]>0.2 ) {
     285//          psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of non-physical MOMENTS_XX/YY params: < 2 2:  %f %f ", row, i, mxx->data.F32[row],myy->data.F32[row]);
     286//          det->mask->data.U8[row] = 0xFF;
     287//          continue;
     288//        }
     289//      }
     290
    266291      if (!strcasecmp(args->difftype, "WS")) {
     292//      if (!strcasecmp(args->difftype, "WS") && (!strcasecmp(args->camera, "GPC2")) {
    267293        psU64 flags2 = flags2V->data.U64[row]; // table reads in as U64
    268294        if (flags2 & SOURCE_MASK2) {
    269295          psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of flags2: %lud", row, i, flags2);
     296          det->mask->data.U8[row] = 0xFF;
     297          continue;
     298        }
     299
     300        // MEH -- filter on same source P/M in diff (movers shouldn't have) -- WS deeper and may have M
     301        // cut P/M sources at same position (stationary) -- NULL is issue when isn't one, lower s/n larger centroid error
     302        if ( (isfinite(rp->data.F32[row]) && isfinite(snp->data.F32[row])) && (rp->data.F32[row]>4.0 && snp->data.F32[row]>5.0) ) {
     303            psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of NAN R_P/SN_P or R_P/SN_P params: >4 >5 : %f %f ", row, i, rp->data.F32[row],snp->data.F32[row]);
     304          det->mask->data.U8[row] = 0xFF;
     305          continue;
     306        }
     307
     308        if ( (isfinite(rm->data.F32[row]) && isfinite(snm->data.F32[row])) && (rm->data.F32[row]<4.0 && snm->data.F32[row]>5.0) ) {
     309            psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of NAN R_M/SN_M or R_M/SN_M params: <4 >5 : %f %f ", row, i, rm->data.F32[row],snm->data.F32[row]);
    270310          det->mask->data.U8[row] = 0xFF;
    271311          continue;
     
    280320        // DIFF_NRATIO_MASK>0.4
    281321        // DIFF_NRATIO_ALL>0.3
     322        // -- increase the cuts for gpc2 to exclude the poor masked edges more
     323        // DIFF_FRATIO>0.6 -- losing some fainter sources @0.7
     324        // DIFF_NRATIO_BAD>0.5
     325        // DIFF_NRATIO_MASK>0.6
     326        // DIFF_NRATIO_ALL>0.5
    282327        // -- unclear about npos still -- so remove from check
    283328        //if (npos->data.S32[row]<=3 ||
     
    288333          continue;
    289334        }
    290         if (fpos->data.F32[row]<=0.6 || rbad->data.F32[row]<=0.4 || rmask->data.F32[row]<=0.6 || rall->data.F32[row]<=0.3) {
     335        if (fpos->data.F32[row]<=0.6 || rbad->data.F32[row]<=0.5 || rmask->data.F32[row]<=0.6 || rall->data.F32[row]<=0.5) {
    291336          //psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of diff params: 3, 0.6, 0.4, 0.4, 0.3: %d %g %f %f %f ", row, i, npos->data.S32[row], fpos->data.F32[row], rbad->data.F32[row], rmask->data.F32[row], rall->data.F32[row]);
    292337          psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of diff params: 3, 0.6, 0.4, 0.4, 0.3: %g %f %f %f ", row, i, fpos->data.F32[row], rbad->data.F32[row], rmask->data.F32[row], rall->data.F32[row]);
     
    294339          continue;
    295340        }
     341
     342        // cut non-physical moments for PS -- <2.0? -- need to modify w/ mask level for edges
     343        if (!isfinite(mxx->data.F32[row]) || !isfinite(myy->data.F32[row])) {
     344            psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of NAN MOMENTS_XX/YY params: < 2 2:  %f %f ", row, i, mxx->data.F32[row],myy->data.F32[row]);
     345          det->mask->data.U8[row] = 0xFF;
     346          continue;
     347        }
     348        if ( (mxx->data.F32[row]<=2.0 || myy->data.F32[row]<=2.0) && rmask->data.F32[row]>0.2 ) {
     349            psTrace("ppMops.read", 10, "Discarding row %ld from input %d because of non-physical MOMENTS_XX/YY params: < 2 2:  %f %f ", row, i, mxx->data.F32[row],myy->data.F32[row]);
     350          det->mask->data.U8[row] = 0xFF;
     351          continue;
     352        }
     353
    296354      }
    297355
Note: See TracChangeset for help on using the changeset viewer.