Changeset 36857
- Timestamp:
- Jun 13, 2014, 6:25:48 AM (12 years ago)
- Location:
- trunk/psModules/src/objects/models
- Files:
-
- 1 added
- 18 edited
-
fwhm.sh (added)
-
pmModel_DEV.c (modified) (5 diffs)
-
pmModel_DEV.h (modified) (1 diff)
-
pmModel_EXP.c (modified) (5 diffs)
-
pmModel_EXP.h (modified) (1 diff)
-
pmModel_GAUSS.c (modified) (5 diffs)
-
pmModel_GAUSS.h (modified) (1 diff)
-
pmModel_PGAUSS.c (modified) (5 diffs)
-
pmModel_PGAUSS.h (modified) (1 diff)
-
pmModel_PS1_V1.c (modified) (5 diffs)
-
pmModel_PS1_V1.h (modified) (1 diff)
-
pmModel_QGAUSS.c (modified) (5 diffs)
-
pmModel_QGAUSS.h (modified) (1 diff)
-
pmModel_RGAUSS.c (modified) (5 diffs)
-
pmModel_RGAUSS.h (modified) (1 diff)
-
pmModel_SERSIC.c (modified) (5 diffs)
-
pmModel_SERSIC.h (modified) (1 diff)
-
pmModel_TRAIL.c (modified) (5 diffs)
-
pmModel_TRAIL.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/models/pmModel_DEV.c
r36623 r36857 36 36 #include "pmMoments.h" 37 37 #include "pmModelFuncs.h" 38 #include "pmModelClass.h" 38 39 #include "pmModel.h" 39 40 #include "pmModelUtils.h" 40 #include "pmModelClass.h"41 41 #include "pmSourceMasks.h" 42 42 #include "pmSourceExtendedPars.h" … … 59 59 # define PM_MODEL_LIMITS pmModelLimits_DEV 60 60 # define PM_MODEL_RADIUS pmModelRadius_DEV 61 # define PM_MODEL_SET_FWHM pmModelSetFWHM_DEV 61 62 # define PM_MODEL_FROM_PSF pmModelFromPSF_DEV 62 63 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_DEV … … 336 337 } 337 338 339 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 340 return (NAN); 341 } 342 338 343 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 339 344 { … … 357 362 // the 2D PSF model fits polarization terms (E0,E1,E2) 358 363 // convert to shape terms (SXX,SYY,SXY) 359 bool useReff = pmModelUseReff (modelPSF->type);364 bool useReff = modelPSF->class->useReff; 360 365 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 361 366 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 411 416 // convert to shape terms (SXX,SYY,SXY) 412 417 // XXX user-defined value for limit? 413 bool useReff = pmModelUseReff (model->type);418 bool useReff = model->class->useReff; 414 419 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 415 420 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_DEV.h
r35560 r36857 8 8 psF64 pmModelFlux_DEV(const psVector *params); 9 9 psF64 pmModelRadius_DEV(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_DEV(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_DEV(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_DEV(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_EXP.c
r36623 r36857 33 33 #include "pmMoments.h" 34 34 #include "pmModelFuncs.h" 35 #include "pmModelClass.h" 35 36 #include "pmModel.h" 36 37 #include "pmModelUtils.h" 37 #include "pmModelClass.h"38 38 #include "pmSourceMasks.h" 39 39 #include "pmSourceExtendedPars.h" … … 56 56 # define PM_MODEL_LIMITS pmModelLimits_EXP 57 57 # define PM_MODEL_RADIUS pmModelRadius_EXP 58 # define PM_MODEL_SET_FWHM pmModelSetFWHM_EXP 58 59 # define PM_MODEL_FROM_PSF pmModelFromPSF_EXP 59 60 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_EXP … … 343 344 } 344 345 346 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 347 return (NAN); 348 } 349 345 350 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 346 351 { … … 364 369 // the 2D PSF model fits polarization terms (E0,E1,E2) 365 370 // convert to shape terms (SXX,SYY,SXY) 366 bool useReff = pmModelUseReff (modelPSF->type);371 bool useReff = modelPSF->class->useReff; 367 372 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 368 373 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 418 423 // convert to shape terms (SXX,SYY,SXY) 419 424 // XXX user-defined value for limit? 420 bool useReff = pmModelUseReff (model->type);425 bool useReff = model->class->useReff; 421 426 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 422 427 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_EXP.h
r35560 r36857 8 8 psF64 pmModelFlux_EXP(const psVector *params); 9 9 psF64 pmModelRadius_EXP(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_EXP(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_EXP(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_EXP(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_GAUSS.c
r36623 r36857 33 33 #include "pmMoments.h" 34 34 #include "pmModelFuncs.h" 35 #include "pmModelClass.h" 35 36 #include "pmModel.h" 36 37 #include "pmModelUtils.h" 37 #include "pmModelClass.h"38 38 #include "pmSourceMasks.h" 39 39 #include "pmSourceExtendedPars.h" … … 54 54 # define PM_MODEL_GUESS pmModelGuess_GAUSS 55 55 # define PM_MODEL_LIMITS pmModelLimits_GAUSS 56 # define PM_MODEL_SET_FWHM pmModelSetFWHM_GAUSS 56 57 # define PM_MODEL_RADIUS pmModelRadius_GAUSS 57 58 # define PM_MODEL_FROM_PSF pmModelFromPSF_GAUSS … … 257 258 } 258 259 260 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 261 return (2.35482004503*sigma); 262 } 263 259 264 // construct the PSF model from the FLT model and the psf 260 265 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) … … 279 284 // the 2D PSF model fits polarization terms (E0,E1,E2) 280 285 // convert to shape terms (SXX,SYY,SXY) 281 bool useReff = pmModelUseReff (modelPSF->type);286 bool useReff = modelPSF->class->useReff; 282 287 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 283 288 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 331 336 // the 2D PSF model fits polarization terms (E0,E1,E2) 332 337 // convert to shape terms (SXX,SYY,SXY) 333 bool useReff = pmModelUseReff (model->type);338 bool useReff = model->class->useReff; 334 339 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 335 340 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_GAUSS.h
r35560 r36857 8 8 psF64 pmModelFlux_GAUSS(const psVector *params); 9 9 psF64 pmModelRadius_GAUSS(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_GAUSS(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_GAUSS(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_GAUSS(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_PGAUSS.c
r36623 r36857 33 33 #include "pmMoments.h" 34 34 #include "pmModelFuncs.h" 35 #include "pmModelClass.h" 35 36 #include "pmModel.h" 36 37 #include "pmModelUtils.h" 37 #include "pmModelClass.h"38 38 #include "pmSourceMasks.h" 39 39 #include "pmSourceExtendedPars.h" … … 55 55 # define PM_MODEL_LIMITS pmModelLimits_PGAUSS 56 56 # define PM_MODEL_RADIUS pmModelRadius_PGAUSS 57 # define PM_MODEL_SET_FWHM pmModelSetFWHM_PGAUSS 57 58 # define PM_MODEL_FROM_PSF pmModelFromPSF_PGAUSS 58 59 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_PGAUSS … … 324 325 } 325 326 327 // scale factor is constant for PGAUSS, I found it with the fwhm.sh script 328 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 329 return (3.0063103*sigma); 330 } 331 326 332 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 327 333 { … … 344 350 // the 2D PSF model fits polarization terms (E0,E1,E2) 345 351 // convert to shape terms (SXX,SYY,SXY) 346 bool useReff = pmModelUseReff (modelPSF->type);352 bool useReff = modelPSF->class->useReff; 347 353 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 348 354 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 396 402 // the 2D PSF model fits polarization terms (E0,E1,E2) 397 403 // convert to shape terms (SXX,SYY,SXY) 398 bool useReff = pmModelUseReff (model->type);404 bool useReff = model->class->useReff; 399 405 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 400 406 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_PGAUSS.h
r35560 r36857 8 8 psF64 pmModelFlux_PGAUSS(const psVector *params); 9 9 psF64 pmModelRadius_PGAUSS(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_PGAUSS(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_PGAUSS(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_PGAUSS(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_PS1_V1.c
r36623 r36857 35 35 #include "pmMoments.h" 36 36 #include "pmModelFuncs.h" 37 #include "pmModelClass.h" 37 38 #include "pmModel.h" 38 39 #include "pmModelUtils.h" 39 #include "pmModelClass.h"40 40 #include "pmSourceMasks.h" 41 41 #include "pmSourceExtendedPars.h" … … 57 57 # define PM_MODEL_LIMITS pmModelLimits_PS1_V1 58 58 # define PM_MODEL_RADIUS pmModelRadius_PS1_V1 59 # define PM_MODEL_SET_FWHM pmModelSetFWHM_PS1_V1 59 60 # define PM_MODEL_FROM_PSF pmModelFromPSF_PS1_V1 60 61 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_PS1_V1 … … 336 337 } 337 338 339 // I used the script in models/fwhm.sh to generate the trend of FWHM scaling vs the K value 340 // FWHM = Scale * Sigma (not that PAR[PM_PAR_SXX] = sigma * sqrt(2) 341 // K : z_hm : FWHM 342 // 0 : 1.000 : 2.83 343 // 1 : 0.597 : 2.19 344 // 2 : 0.396 : 1.78 345 // 3 : 0.291 : 1.53 346 // 4 : 0.232 : 1.36 347 // 5 : 0.198 : 1.26 348 // 6 : 0.169 : 1.16 349 // 7 : 0.142 : 1.07 350 // 8 : 0.124 : 0.99 351 // 9 : 0.118 : 0.97 352 // 10 : 0.106 : 0.92 353 // 11 : 0.092 : 0.86 354 // 12 : 0.091 : 0.85 355 // 13 : 0.080 : 0.80 356 // 14 : 0.078 : 0.79 357 // 15 : 0.073 : 0.76 358 // 16 : 0.063 : 0.71 359 // 17 : 0.068 : 0.74 360 // 18 : 0.056 : 0.67 361 // 19 : 0.058 : 0.68 362 363 // static float PS1_V1_Core[] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 364 static float PS1_V1_Scale[] = {2.83, 2.19, 1.78, 1.53, 1.36, 1.26, 1.16, 1.07, 0.99, 0.97, 0.92, 0.86, 0.85, 0.80, 0.79, 0.76, 0.71, 0.74, 0.67, 0.68}; 365 366 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 367 368 psF32 *PAR = params->data.F32; 369 370 float core = PAR[PM_PAR_7]; 371 372 if (!isfinite(core)) return (2.0*M_SQRT2*sigma); 373 374 // if PS1_V1_Core is defined as a set of integer steps, so we can simplify: 375 int binCore = MAX(0, MIN (19, (int)core)); 376 377 float scale = NAN; 378 if (binCore == 0) { 379 scale = (core - binCore + 0) * (PS1_V1_Scale[binCore + 1] - PS1_V1_Scale[binCore + 0]) + PS1_V1_Scale[binCore + 0]; 380 } else { 381 scale = (core - binCore - 1) * (PS1_V1_Scale[binCore + 0] - PS1_V1_Scale[binCore - 1]) + PS1_V1_Scale[binCore - 1]; 382 } 383 384 return (scale * sigma); 385 } 386 338 387 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 339 388 { 340 341 389 psF32 *out = modelPSF->params->data.F32; 342 390 psF32 *in = modelFLT->params->data.F32; … … 357 405 // the 2D PSF model fits polarization terms (E0,E1,E2) 358 406 // convert to shape terms (SXX,SYY,SXY) 359 bool useReff = pmModelUseReff (modelPSF->type);407 bool useReff = modelPSF->class->useReff; 360 408 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 361 409 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 411 459 // convert to shape terms (SXX,SYY,SXY) 412 460 // XXX user-defined value for limit? 413 bool useReff = pmModelUseReff (model->type);461 bool useReff = model->class->useReff; 414 462 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 415 463 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_PS1_V1.h
r35560 r36857 8 8 psF64 pmModelFlux_PS1_V1(const psVector *params); 9 9 psF64 pmModelRadius_PS1_V1(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_PS1_V1(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_PS1_V1(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_PS1_V1(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_QGAUSS.c
r36623 r36857 35 35 #include "pmMoments.h" 36 36 #include "pmModelFuncs.h" 37 #include "pmModelClass.h" 37 38 #include "pmModel.h" 38 39 #include "pmModelUtils.h" 39 #include "pmModelClass.h"40 40 #include "pmSourceMasks.h" 41 41 #include "pmSourceExtendedPars.h" … … 57 57 # define PM_MODEL_LIMITS pmModelLimits_QGAUSS 58 58 # define PM_MODEL_RADIUS pmModelRadius_QGAUSS 59 # define PM_MODEL_SET_FWHM pmModelSetFWHM_QGAUSS 59 60 # define PM_MODEL_FROM_PSF pmModelFromPSF_QGAUSS 60 61 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_QGAUSS … … 337 338 } 338 339 340 // I used the script in models/fwhm.sh to generate the trend of FWHM scaling vs the K value 341 // FWHM = Scale * Sigma (not that PAR[PM_PAR_SXX] = sigma * sqrt(2) 342 // K : z_hm : FWHM 343 // 0 : 1.000 : 2.83 344 // 1 : 0.648 : 2.28 345 // 2 : 0.430 : 1.85 346 // 3 : 0.310 : 1.58 347 // 4 : 0.244 : 1.40 348 // 5 : 0.200 : 1.26 349 // 6 : 0.165 : 1.15 350 // 7 : 0.149 : 1.09 351 // 8 : 0.125 : 1.00 352 // 9 : 0.116 : 0.96 353 // 10 : 0.101 : 0.90 354 // 11 : 0.095 : 0.87 355 // 12 : 0.083 : 0.82 356 // 13 : 0.082 : 0.81 357 // 14 : 0.080 : 0.80 358 // 15 : 0.074 : 0.77 359 // 16 : 0.064 : 0.71 360 // 17 : 0.068 : 0.74 361 // 18 : 0.057 : 0.67 362 // 19 : 0.058 : 0.68 363 364 // static float QGAUSS_Core[] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 365 static float QGAUSS_Scale[] = {2.83, 2.28, 1.85, 1.58, 1.40, 1.26, 1.15, 1.09, 1.00, 0.96, 0.90, 0.87, 0.82, 0.81, 0.80, 0.77, 0.71, 0.74, 0.67, 0.68}; 366 367 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 368 369 psF32 *PAR = params->data.F32; 370 371 float core = PAR[PM_PAR_7]; 372 373 if (!isfinite(core)) return (2.0*M_SQRT2*sigma); 374 375 // QGAUSS_Core is defined as a set of integer steps, so we can simplify: 376 int binCore = MAX(0, MIN (19, (int)core)); 377 378 float scale = NAN; 379 if (binCore == 0) { 380 scale = (core - binCore + 0) * (QGAUSS_Scale[binCore + 1] - QGAUSS_Scale[binCore + 0]) + QGAUSS_Scale[binCore + 0]; 381 } else { 382 scale = (core - binCore - 1) * (QGAUSS_Scale[binCore + 0] - QGAUSS_Scale[binCore - 1]) + QGAUSS_Scale[binCore - 1]; 383 } 384 385 return (scale * sigma); 386 } 387 339 388 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 340 389 { … … 358 407 // the 2D PSF model fits polarization terms (E0,E1,E2) 359 408 // convert to shape terms (SXX,SYY,SXY) 360 bool useReff = pmModelUseReff (modelPSF->type);409 bool useReff = modelPSF->class->useReff; 361 410 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 362 411 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 416 465 // the 2D PSF model fits polarization terms (E0,E1,E2) 417 466 // convert to shape terms (SXX,SYY,SXY) 418 bool useReff = pmModelUseReff (model->type);467 bool useReff = model->class->useReff; 419 468 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 420 469 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_QGAUSS.h
r35560 r36857 8 8 psF64 pmModelFlux_QGAUSS(const psVector *params); 9 9 psF64 pmModelRadius_QGAUSS(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_QGAUSS(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_QGAUSS(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_QGAUSS(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_RGAUSS.c
r36623 r36857 34 34 #include "pmMoments.h" 35 35 #include "pmModelFuncs.h" 36 #include "pmModelClass.h" 36 37 #include "pmModel.h" 37 38 #include "pmModelUtils.h" 38 #include "pmModelClass.h"39 39 #include "pmSourceMasks.h" 40 40 #include "pmSourceExtendedPars.h" … … 56 56 # define PM_MODEL_LIMITS pmModelLimits_RGAUSS 57 57 # define PM_MODEL_RADIUS pmModelRadius_RGAUSS 58 # define PM_MODEL_SET_FWHM pmModelSetFWHM_RGAUSS 58 59 # define PM_MODEL_FROM_PSF pmModelFromPSF_RGAUSS 59 60 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_RGAUSS … … 330 331 } 331 332 333 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 334 return (NAN); 335 } 336 332 337 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 333 338 { … … 351 356 // the 2D PSF model fits polarization terms (E0,E1,E2) 352 357 // convert to shape terms (SXX,SYY,SXY) 353 bool useReff = pmModelUseReff (modelPSF->type);358 bool useReff = modelPSF->class->useReff; 354 359 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 355 360 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 404 409 // the 2D PSF model fits polarization terms (E0,E1,E2) 405 410 // convert to shape terms (SXX,SYY,SXY) 406 bool useReff = pmModelUseReff (model->type);411 bool useReff = model->class->useReff; 407 412 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 408 413 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_RGAUSS.h
r35560 r36857 8 8 psF64 pmModelFlux_RGAUSS(const psVector *params); 9 9 psF64 pmModelRadius_RGAUSS(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_RGAUSS(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_RGAUSS(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_RGAUSS(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_SERSIC.c
r36762 r36857 43 43 #include "pmMoments.h" 44 44 #include "pmModelFuncs.h" 45 #include "pmModelClass.h" 45 46 #include "pmModel.h" 46 47 #include "pmModelUtils.h" 47 #include "pmModelClass.h"48 48 #include "pmSourceMasks.h" 49 49 #include "pmSourceExtendedPars.h" … … 66 66 # define PM_MODEL_LIMITS pmModelLimits_SERSIC 67 67 # define PM_MODEL_RADIUS pmModelRadius_SERSIC 68 # define PM_MODEL_SET_FWHM pmModelSetFWHM_SERSIC 68 69 # define PM_MODEL_FROM_PSF pmModelFromPSF_SERSIC 69 70 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_SERSIC … … 357 358 } 358 359 360 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 361 return (NAN); 362 } 363 359 364 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf) 360 365 { … … 378 383 // the 2D PSF model fits polarization terms (E0,E1,E2) 379 384 // convert to shape terms (SXX,SYY,SXY) 380 bool useReff = pmModelUseReff (modelPSF->type);385 bool useReff = modelPSF->class->useReff; 381 386 if (!pmPSF_FitToModel (out, 0.1, useReff)) { 382 387 psTrace("psModules.objects", 5, "Failed to fit object at (r,c) = (%.1f,%.1f)", in[PM_PAR_YPOS], in[PM_PAR_XPOS]); … … 432 437 // convert to shape terms (SXX,SYY,SXY) 433 438 // XXX user-defined value for limit? 434 bool useReff = pmModelUseReff (model->type);439 bool useReff = model->class->useReff; 435 440 if (!pmPSF_FitToModel (PAR, 0.1, useReff)) { 436 441 psTrace ("psModules.objects", 3, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo); -
trunk/psModules/src/objects/models/pmModel_SERSIC.h
r35560 r36857 8 8 psF64 pmModelFlux_SERSIC(const psVector *params); 9 9 psF64 pmModelRadius_SERSIC(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_SERSIC(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_SERSIC(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_SERSIC(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io); -
trunk/psModules/src/objects/models/pmModel_TRAIL.c
r36623 r36857 5 5 * The meaning of the parameters may thus vary depending on the specifics of the model. 6 6 * All models which are used as a PSF representations share a few parameters, for which # 7 #include "pmModelClass.h" 7 8 * define names are listed in pmModel.h: 8 9 … … 33 34 #include "pmMoments.h" 34 35 #include "pmModelFuncs.h" 36 #include "pmModelClass.h" 35 37 #include "pmModel.h" 36 38 #include "pmModelUtils.h" 37 #include "pmModelClass.h"38 39 #include "pmSourceMasks.h" 39 40 #include "pmSourceExtendedPars.h" … … 55 56 # define PM_MODEL_LIMITS pmModelLimits_TRAIL 56 57 # define PM_MODEL_RADIUS pmModelRadius_TRAIL 58 # define PM_MODEL_SET_FWHM pmModelSetFWHM_TRAIL 57 59 # define PM_MODEL_FROM_PSF pmModelFromPSF_TRAIL 58 60 # define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_TRAIL … … 352 354 353 355 psF32 *psfPAR = source->modelPSF->params->data.F32; 354 bool useReff = pmModelUseReff (source->modelPSF->type);356 bool useReff = source->modelPSF->class->useReff; 355 357 356 358 psEllipseAxes psfAxes; … … 413 415 // PAR_LENGTH is the unconvolved length. add a bit for safety 414 416 return (0.5*PAR[PM_PAR_LENGTH] + 2); 417 } 418 419 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { 420 return (NAN); 415 421 } 416 422 -
trunk/psModules/src/objects/models/pmModel_TRAIL.h
r35560 r36857 8 8 psF64 pmModelFlux_TRAIL(const psVector *params); 9 9 psF64 pmModelRadius_TRAIL(const psVector *params, psF64 flux); 10 psF64 pmModelSetFWHM_TRAIL(const psVector *params, psF64 flux); 10 11 bool pmModelFromPSF_TRAIL(pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf); 11 12 bool pmModelParamsFromPSF_TRAIL(pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io);
Note:
See TracChangeset
for help on using the changeset viewer.
