Changeset 32633 for trunk/psphot/src/psphotStackObjects.c
- Timestamp:
- Nov 8, 2011, 2:56:56 PM (15 years ago)
- Location:
- trunk/psphot
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/psphotStackObjects.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20110906/psphot (added) merged: 32605-32606,32612-32613,32616,32619,32628,32630
- Property svn:mergeinfo changed
-
trunk/psphot/src/psphotStackObjects.c
r32348 r32633 70 70 71 71 // S/N limit to perform full non-linear fits 72 float SN_LIM = psMetadataLookupF32 (&status, recipe, "EXTENDED_SOURCE_SN_LIM"); 72 float SN_LIM_PETRO = psMetadataLookupF32 (&status, recipe, "EXTENDED_SOURCE_SN_LIM"); 73 float SN_LIM_RADIAL = psMetadataLookupF32 (&status, recipe, "RADIAL_APERTURES_SN_LIM"); 73 74 74 75 bool doPetroStars = psMetadataLookupBool (&status, recipe, "PETROSIAN_FOR_STARS"); … … 81 82 // we check each source for an object and keep the object if any source is valid 82 83 83 bool keepObject = false; 84 bool keepObjectRadial = false; 85 bool keepObjectPetro = false; 84 86 for (int j = 0; j < object->sources->n; j++) { 85 87 … … 94 96 if (source->mode & PM_SOURCE_MODE_SATSTAR) continue; 95 97 96 // optionally allow non-extended objects to get petrosians as well97 if (!doPetroStars) {98 if (!(source->mode & PM_SOURCE_MODE_EXT_LIMIT)) continue;99 if (source->type == PM_SOURCE_TYPE_STAR) continue;100 }101 102 // limit selection to some SN limit103 // assert (source->peak); // how can a source not have a peak?104 // limit selection to some SN limit105 bool skipSource = false;106 if (source->mode & PM_SOURCE_MODE_EXT_LIMIT) {107 skipSource = (source->moments->KronFlux < SN_LIM * source->moments->KronFluxErr);108 } else {109 skipSource = (sqrt(source->peak->detValue) < SN_LIM);110 }111 if (skipSource) continue;112 113 98 // limit selection by analysis region (this automatically apply 114 99 if (source->peak->x < AnalysisRegion.x0) continue; … … 117 102 if (source->peak->y > AnalysisRegion.y1) continue; 118 103 119 keepObject = true; 104 // SN limit tests for RADIAL APERTURES: 105 bool skipSourceRadial = false; 106 if (source->mode & PM_SOURCE_MODE_EXT_LIMIT) { 107 skipSourceRadial = (source->moments->KronFlux < SN_LIM_RADIAL * source->moments->KronFluxErr); 108 } else { 109 skipSourceRadial = (sqrt(source->peak->detValue) < SN_LIM_RADIAL); 110 } 111 if (!skipSourceRadial) keepObjectRadial = true; 112 113 // SN limit tests for PETRO 114 bool skipSourcePetro = false; 115 if (source->mode & PM_SOURCE_MODE_EXT_LIMIT) { 116 skipSourcePetro = (source->moments->KronFlux < SN_LIM_PETRO * source->moments->KronFluxErr); 117 } else { 118 skipSourcePetro = doPetroStars ? (sqrt(source->peak->detValue) < SN_LIM_PETRO) : true; 119 } 120 if (!skipSourcePetro) keepObjectPetro = true; 121 122 keepObjectPetro = true; 120 123 } 121 124 … … 128 131 // avoid the single-detection tests 129 132 130 if (keepObject ) {131 source->tmpFlags |= PM_SOURCE_TMPF_ STACK_KEEP;132 source->tmpFlags &= ~PM_SOURCE_TMPF_ STACK_SKIP;133 if (keepObjectPetro) { 134 source->tmpFlags |= PM_SOURCE_TMPF_PETRO_KEEP; 135 source->tmpFlags &= ~PM_SOURCE_TMPF_PETRO_SKIP; 133 136 } else { 134 source->tmpFlags |= PM_SOURCE_TMPF_STACK_SKIP; 135 source->tmpFlags &= ~PM_SOURCE_TMPF_STACK_KEEP; 137 source->tmpFlags |= PM_SOURCE_TMPF_PETRO_SKIP; 138 source->tmpFlags &= ~PM_SOURCE_TMPF_PETRO_KEEP; 139 } 140 141 if (keepObjectRadial) { 142 source->tmpFlags |= PM_SOURCE_TMPF_RADIAL_KEEP; 143 source->tmpFlags &= ~PM_SOURCE_TMPF_RADIAL_SKIP; 144 } else { 145 source->tmpFlags |= PM_SOURCE_TMPF_RADIAL_SKIP; 146 source->tmpFlags &= ~PM_SOURCE_TMPF_RADIAL_KEEP; 136 147 } 137 148 }
Note:
See TracChangeset
for help on using the changeset viewer.
