Changeset 26893 for trunk/psModules/src/objects/pmSource.c
- Timestamp:
- Feb 10, 2010, 7:34:39 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmSource.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSource.c
r26395 r26893 3 3 * Functions to define and manipulate sources on images 4 4 * 5 * @author GLG, MHPCC6 * @author EAM, IfA: significant modifications.5 * @author EAM, IfA 6 * @author GLG, MHPCC (initial code base) 7 7 * 8 8 * @version $Revision: 1.70 $ $Name: not supported by cvs2svn $ 9 9 * @date $Date: 2009-02-16 22:29:59 $ 10 * 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 12 * 10 * Copyright 2009 Institute for Astronomy, University of Hawaii 13 11 */ 14 12 … … 277 275 // psphot-specific function which applies the recipe values 278 276 // only apply selection to sources within specified region 279 pmPSFClump pmSourcePSFClump(ps Region *region, psArray *sources, psMetadata *recipe)277 pmPSFClump pmSourcePSFClump(psImage **savedImage, psRegion *region, psArray *sources, float PSF_SN_LIM, float PSF_CLUMP_GRID_SCALE, psF32 SX_MAX, psF32 SY_MAX, psF32 AR_MAX) 280 278 { 281 279 psTrace("psModules.objects", 10, "---- begin ----\n"); … … 287 285 288 286 PS_ASSERT_PTR_NON_NULL(sources, errorClump); 289 PS_ASSERT_PTR_NON_NULL(recipe, errorClump);290 291 bool status = true; // Status of MD lookup292 float PSF_SN_LIM = psMetadataLookupF32(&status, recipe, "PSF_SN_LIM");293 if (!status) {294 PSF_SN_LIM = 0;295 }296 float PSF_CLUMP_GRID_SCALE = psMetadataLookupF32(&status, recipe, "PSF_CLUMP_GRID_SCALE");297 if (!status) {298 PSF_CLUMP_GRID_SCALE = 0.1;299 }300 287 301 288 // find the sigmaX, sigmaY clump 302 289 { 303 psF32 SX_MAX = psMetadataLookupF32(&status, recipe, "MOMENTS_SX_MAX");304 if (!status) {305 psWarning("MOMENTS_SX_MAX not set in recipe");306 SX_MAX = 10.0;307 }308 psF32 SY_MAX = psMetadataLookupF32(&status, recipe, "MOMENTS_SY_MAX");309 if (!status) {310 psWarning("MOMENTS_SY_MAX not set in recipe");311 SY_MAX = 10.0;312 }313 psF32 AR_MAX = psMetadataLookupF32(&status, recipe, "MOMENTS_AR_MAX");314 if (!status) {315 psWarning("MOMENTS_AR_MAX not set in recipe");316 AR_MAX = 3.0;317 }318 290 psF32 AR_MIN = 1.0 / AR_MAX; 319 291 … … 401 373 psfClump.nSigma = stats->sampleStdev; 402 374 403 const bool keep_psf_clump = psMetadataLookupBool(NULL, recipe, "KEEP_PSF_CLUMP"); 404 if (keep_psf_clump) 405 { 406 psMetadataAdd(recipe, PS_LIST_TAIL, 407 "PSF_CLUMP", PS_DATA_IMAGE, "Image of PSF coefficients", splane); 375 if (savedImage) { 376 *savedImage = psMemIncrRefCounter(splane); 408 377 } 409 378 psFree (splane); … … 411 380 412 381 // if we failed to find a valid peak, return the empty clump (failure signal) 413 if (!peaks || !peaks->n) { 382 if (peaks == NULL) { 383 psError(PS_ERR_UNKNOWN, false, "failure in peak analysis for PSF clump.\n"); 384 psFree (peaks); 385 return emptyClump; 386 } 387 388 if (peaks->n == 0) 389 { 414 390 psLogMsg ("psphot", 3, "failed to find a peak in the PSF clump image\n"); 415 391 if (nValid == 0) { … … 418 394 psLogMsg ("psphot", 3, "no significant peak\n"); 419 395 } 396 psFree (peaks); 420 397 return (emptyClump); 421 398 } … … 524 501 *****************************************************************************/ 525 502 526 bool pmSourceRoughClass(psRegion *region, psArray *sources, psMetadata *recipe, pmPSFClump clump, psImageMaskType maskSat)503 bool pmSourceRoughClass(psRegion *region, psArray *sources, float PSF_SN_LIM, float PSF_CLUMP_NSIGMA, pmPSFClump clump, psImageMaskType maskSat) 527 504 { 528 505 psTrace("psModules.objects", 10, "---- begin ----"); 529 506 530 507 PS_ASSERT_PTR_NON_NULL(sources, false); 531 PS_ASSERT_PTR_NON_NULL(recipe, false);532 508 533 509 int Nsat = 0; … … 542 518 psVector *starsn_peaks = psVectorAllocEmpty (sources->n, PS_TYPE_F32); 543 519 psVector *starsn_moments = psVectorAllocEmpty (sources->n, PS_TYPE_F32); 544 545 // get basic parameters, or set defaults546 bool status;547 float PSF_SN_LIM = psMetadataLookupF32 (&status, recipe, "PSF_SN_LIM");548 if (!status) PSF_SN_LIM = 20.0;549 float PSF_CLUMP_NSIGMA = psMetadataLookupF32 (&status, recipe, "PSF_CLUMP_NSIGMA");550 if (!status) PSF_CLUMP_NSIGMA = 1.5;551 552 // float INNER_RADIUS = psMetadataLookupF32 (&status, recipe, "SKY_INNER_RADIUS");553 520 554 521 pmSourceMode noMoments = PM_SOURCE_MODE_MOMENTS_FAILURE | PM_SOURCE_MODE_SKYVAR_FAILURE | PM_SOURCE_MODE_SKY_FAILURE | PM_SOURCE_MODE_BELOW_MOMENTS_SN;
Note:
See TracChangeset
for help on using the changeset viewer.
