Changeset 42093 for trunk/psModules
- Timestamp:
- Feb 28, 2022, 2:52:56 PM (4 years ago)
- Location:
- trunk/psModules
- Files:
-
- 13 edited
-
. (modified) (1 prop)
-
src/objects/models/pmModel_GAUSS.c (modified) (1 diff)
-
src/objects/models/pmModel_HSC_V1.c (modified) (1 diff)
-
src/objects/models/pmModel_PGAUSS.c (modified) (1 diff)
-
src/objects/models/pmModel_PS1_V1.c (modified) (1 diff)
-
src/objects/models/pmModel_QGAUSS.c (modified) (1 diff)
-
src/objects/models/pmModel_RGAUSS.c (modified) (1 diff)
-
src/objects/pmModelUtils.c (modified) (2 diffs)
-
src/objects/pmModelUtils.h (modified) (1 diff)
-
src/objects/pmPSFtryModel.c (modified) (1 diff)
-
src/objects/pmSourceFitModel.c (modified) (2 diffs)
-
src/objects/pmSourceFitModel.h (modified) (1 diff)
-
src/objects/pmSourceIO_CMF.c.in (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules
- Property svn:mergeinfo changed
-
trunk/psModules/src/objects/models/pmModel_GAUSS.c
r36857 r42093 203 203 204 204 // set the shape parameters 205 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 205 // the last parameter is the scaling factor for Moments to shape parameter radius guess 206 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 1.0)) { 206 207 return false; 207 208 } -
trunk/psModules/src/objects/models/pmModel_HSC_V1.c
r40491 r42093 223 223 224 224 // set the shape parameters 225 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 225 // the last parameter is the scaling factor for Moments to shape parameter radius guess 226 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 1.0)) { 226 227 return false; 227 228 } -
trunk/psModules/src/objects/models/pmModel_PGAUSS.c
r36857 r42093 204 204 205 205 // set the shape parameters 206 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 206 // the last parameter is the scaling factor for Moments to shape parameter radius guess 207 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 1.0)) { 207 208 return false; 208 209 } -
trunk/psModules/src/objects/models/pmModel_PS1_V1.c
r38280 r42093 223 223 224 224 // set the shape parameters 225 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 225 // the last parameter is the scaling factor for Moments to shape parameter radius guess 226 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 1.0)) { 226 227 return false; 227 228 } -
trunk/psModules/src/objects/models/pmModel_QGAUSS.c
r38280 r42093 224 224 225 225 // set the shape parameters 226 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 226 // the last parameter is the scaling factor for Moments to shape parameter radius guess 227 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 1.5)) { 227 228 return false; 228 229 } -
trunk/psModules/src/objects/models/pmModel_RGAUSS.c
r36857 r42093 213 213 214 214 // set the shape parameters 215 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false)) { 215 // the last parameter is the scaling factor for Moments to shape parameter radius guess 216 if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments, false, 2.0)) { 216 217 return false; 217 218 } -
trunk/psModules/src/objects/pmModelUtils.c
r36859 r42093 179 179 // Reff says if this is a model which uses R_eff (like exp or dev) instead of Sigma 180 180 // set the parameter values SXX, SXY, SYY 181 bool pmModelSetShape (float *Sxx, float *Sxy, float *Syy, pmMoments *moments, bool useReff) { 181 // Scale allows some models to increase the guess size relative to Mxx,Myy 182 bool pmModelSetShape (float *Sxx, float *Sxy, float *Syy, pmMoments *moments, bool useReff, float Scale) { 182 183 183 184 psEllipseMoments emoments; … … 190 191 191 192 if (!isfinite(axes.major)) return false; 192 if (axes.major == 0) return false;193 193 if (!isfinite(axes.minor)) return false; 194 194 if (!isfinite(axes.theta)) return false; 195 if (axes.major == 0) return false; 196 195 196 // set a lower limit to avoid absurd solutions.. 197 // NOTE: I should set the lower limit based on the PSF size, if known 198 float Rmajor = PS_MAX(1.0, Scale * axes.major); 199 float Rminor = Rmajor * (axes.minor / axes.major); 200 axes.major = Rmajor; 201 axes.minor = Rminor; 202 203 // EAM 2022.02.05 : Mrf is often much too large, disable this for now 197 204 // Mxx, Mxy, Myy define the elliptical shape, but Mrf defines the width 198 float scale = (isfinite(moments->Mrf) && (moments->Mrf > 0.0)) ? moments->Mrf / axes.major : 1.0;199 axes.major *= scale;200 axes.minor *= scale;205 // float scale = (isfinite(moments->Mrf) && (moments->Mrf > 0.0)) ? moments->Mrf / axes.major : 1.0; 206 // axes.major *= scale; 207 // axes.minor *= scale; 201 208 202 209 pmModelAxesToParams (Sxx, Sxy, Syy, axes, useReff); -
trunk/psModules/src/objects/pmModelUtils.h
r35768 r42093 44 44 bool pmModelSetPosition (float *Xo, float *Yo, pmSource *source); 45 45 bool pmModelSetNorm (float *Io, pmSource *source); 46 bool pmModelSetShape (float *Sxx, float *Sxy, float *Syy, pmMoments *moments, bool useReff );46 bool pmModelSetShape (float *Sxx, float *Sxy, float *Syy, pmMoments *moments, bool useReff, float Scale); 47 47 48 48 bool pmModelUseReff (pmModelType type); -
trunk/psModules/src/objects/pmPSFtryModel.c
r36856 r42093 151 151 if (Nx > Ny) { 152 152 options->psfTrendNx = i; 153 options->psfTrendNy = PS_MAX (orderMin, (int)(i * (Ny / Nx) + 0.5));153 options->psfTrendNy = PS_MAX (orderMin, (int)(i * (Ny / (float) Nx) + 0.5)); 154 154 } else { 155 155 options->psfTrendNy = i; 156 options->psfTrendNx = PS_MAX (orderMin, (int)(i * (Nx / Ny) + 0.5)); 157 } 156 options->psfTrendNx = PS_MAX (orderMin, (int)(i * (Nx / (float) Ny) + 0.5)); 157 } 158 159 fprintf (stderr, "fitting %d x %d model for PSF\n", options->psfTrendNx, options->psfTrendNy); 158 160 159 161 // free existing data, if any -
trunk/psModules/src/objects/pmSourceFitModel.c
r36859 r42093 69 69 opt->chisqConvergence = true; 70 70 opt->isInteractive = false; 71 opt->useReweighting = false; 71 72 72 73 return opt; … … 251 252 myMin->chisqConvergence = options->chisqConvergence; 252 253 myMin->isInteractive = options->isInteractive; 254 myMin->useReweighting = options->useReweighting; 253 255 254 256 psImage *covar = psImageAlloc (params->n, params->n, PS_TYPE_F32); -
trunk/psModules/src/objects/pmSourceFitModel.h
r36375 r42093 40 40 bool chisqConvergence; 41 41 bool isInteractive; 42 bool useReweighting; 42 43 } pmSourceFitOptions; 43 44 -
trunk/psModules/src/objects/pmSourceIO_CMF.c.in
r41892 r42093 296 296 // generate an FITS table using the array of columns defined above, with space for all rows 297 297 psFitsTable *table = psFitsTableCreate (tableColumns, sources->n); 298 psFree (tableColumns); // we are now done with the definition of the table columns 298 299 299 300 /************ write the data to the table *****************/
Note:
See TracChangeset
for help on using the changeset viewer.
