Changeset 32239
- Timestamp:
- Aug 31, 2011, 12:39:49 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20110710/psphot/src/psphotSersicModelClass.c
r32205 r32239 115 115 } 116 116 117 /* the Sersic model class guess system uses a set of empirically-determined fits to several 118 * relationships: index vs psf-kron mags, total mag vs index, major axis vs index, minor axis 119 * vs index. all are functions of the aspect ratio and of the ratio between the measure major 120 * axis and the size of the psf. Below we have the fits for these different ranges. 121 122 * aspect ratio values: 1.0, 0.5, 0.33, 0.2 123 * psf ratio values: 0.5, 1.0, 2.0, 4.0 124 125 * psf ratio ranges: 0.5-0.8, 0.8-1.5, 1.5-3.0, 3.0-4.0 126 * apt ratio ranges: 1.0-0.71, 0.71-0.41, 0.41-0.25, 0.25-0.20 127 128 */ 129 117 130 void psphotSersicModelClassInit () { 118 131 … … 124 137 classArray = psArrayAllocEmpty (4); 125 138 126 // image.00.0 1.fit.dat: PSFratio : 1.0, ASPratio : 1.0127 class = psphotSersicModelClassAlloc(); 128 129 class->PSFratioMin = 1.0;130 class->PSFratioMax = 1.5;139 // image.00.00.fit.dat: PSFratio : 0.5, ASPratio : 1.0 140 class = psphotSersicModelClassAlloc(); 141 142 class->PSFratioMin = 0.5; 143 class->PSFratioMax = 0.8; 131 144 class->ASPratioMin = 0.71; 132 145 class->ASPratioMax = 1.00; … … 136 149 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 137 150 138 // major: C0: -0.430070611162, C1: 0.0511725134843 139 class->IndexToMajor->coeff[0] = -0.430070611162; 140 class->IndexToMajor->coeff[1] = 0.0511725134843; 141 142 // minor: C0: -0.250221103738, C1: 0.0136204422354 143 class->IndexToMinor->coeff[0] = -0.250221103738; 144 class->IndexToMinor->coeff[1] = 0.0136204422354; 145 146 // MagOffset: C0: -0.0718507604436, C1: -0.0518624470415 147 class->IndexToTotalMag->coeff[0] = -0.0718507604436; 148 class->IndexToTotalMag->coeff[1] = -0.0518624470415; 149 150 // KronMag: C0: -1.80936771396, C1: 0.344933296013, C2: -0.0314000083805 151 class->KronToIndex->coeff[0] = -1.80936771396; 152 class->KronToIndex->coeff[1] = 0.344933296013; 153 class->KronToIndex->coeff[2] = -0.0314000083805; 154 155 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 156 157 psArrayAdd(classArray, 4, class); 158 psFree (class); 159 160 // image.00.02.fit.dat: PSFratio : 2.0, ASPratio : 1.0 161 class = psphotSersicModelClassAlloc(); 162 163 class->PSFratioMin = 1.5; 164 class->PSFratioMax = 4.0; // note : missing 4.0, 1.0 151 # include "psphotSersicGuess.00.00.h" 152 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 153 154 psArrayAdd(classArray, 4, class); 155 psFree (class); 156 157 // image.00.01.fit.dat: PSFratio : 1.0, ASPratio : 1.0 158 class = psphotSersicModelClassAlloc(); 159 160 class->PSFratioMin = 0.8; 161 class->PSFratioMax = 1.5; 165 162 class->ASPratioMin = 0.71; 166 163 class->ASPratioMax = 1.00; … … 170 167 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 171 168 172 // major: C0: -0.0611883230251, C1: 0.0498266924052 173 class->IndexToMajor->coeff[0] = -0.0611883230251; 174 class->IndexToMajor->coeff[1] = 0.0498266924052; 175 176 // minor: C0: -0.0471497475843, C1: 0.0498093464447 177 class->IndexToMinor->coeff[0] = -0.0471497475843; 178 class->IndexToMinor->coeff[1] = 0.0498093464447; 179 180 // MagOffset: C0: 0.133350843774, C1: -0.147490621217 181 class->IndexToTotalMag->coeff[0] = 0.133350843774; 182 class->IndexToTotalMag->coeff[1] = -0.147490621217; 183 184 // KronMag: C0: -3.81043970737, C1: 1.11738875295, C2: -0.121059914305 185 class->KronToIndex->coeff[0] = -3.81043970737; 186 class->KronToIndex->coeff[1] = 1.11738875295; 187 class->KronToIndex->coeff[2] = -0.121059914305; 188 189 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 169 # include "psphotSersicGuess.00.01.h" 170 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 171 172 psArrayAdd(classArray, 4, class); 173 psFree (class); 174 175 // image.00.02.fit.dat: PSFratio : 2.0, ASPratio : 1.0 176 class = psphotSersicModelClassAlloc(); 177 178 class->PSFratioMin = 1.5; 179 class->PSFratioMax = 3.0; 180 class->ASPratioMin = 0.71; 181 class->ASPratioMax = 1.00; 182 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 183 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 184 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 185 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 186 187 # include "psphotSersicGuess.00.02.h" 188 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 189 190 psArrayAdd(classArray, 4, class); 191 psFree (class); 192 193 // image.00.03.fit.dat: PSFratio : 4.0, ASPratio : 1.0 194 class = psphotSersicModelClassAlloc(); 195 196 class->PSFratioMin = 3.0; 197 class->PSFratioMax = 4.0; 198 class->ASPratioMin = 0.71; 199 class->ASPratioMax = 1.00; 200 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 201 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 202 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 203 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 204 205 # include "psphotSersicGuess.00.03.h" 206 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 207 208 psArrayAdd(classArray, 4, class); 209 psFree (class); 210 211 // image.01.00.fit.dat: PSFratio : 0.5, ASPratio : 0.5 212 class = psphotSersicModelClassAlloc(); 213 214 class->PSFratioMin = 0.5; 215 class->PSFratioMax = 0.8; 216 class->ASPratioMin = 0.41; 217 class->ASPratioMax = 0.71; 218 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 219 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 220 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 221 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 222 223 # include "psphotSersicGuess.01.00.h" 224 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 190 225 191 226 psArrayAdd(classArray, 4, class); … … 195 230 class = psphotSersicModelClassAlloc(); 196 231 197 class->PSFratioMin = 1.0;232 class->PSFratioMin = 0.8; 198 233 class->PSFratioMax = 1.5; 199 234 class->ASPratioMin = 0.41; … … 204 239 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 205 240 206 // major: C0: -0.315072669277, C1: 0.00877759328113 207 class->IndexToMajor->coeff[0] = -0.315072669277; 208 class->IndexToMajor->coeff[1] = 0.00877759328113; 209 210 // minor: C0: -0.315072669277, C1: 0.00877759328113 211 class->IndexToMinor->coeff[0] = -0.315072669277; 212 class->IndexToMinor->coeff[1] = 0.00877759328113; 213 214 // MagOffset: C0: -0.441283222989, C1: 0.0531287339075 215 class->IndexToTotalMag->coeff[0] = -0.441283222989; 216 class->IndexToTotalMag->coeff[1] = 0.0531287339075; 217 218 // KronMag: C0: -0.819564188427, C1: -0.0333590360661, C2: 0.00814022994725 219 // XXX use a linear fit? 220 class->KronToIndex->coeff[0] = -0.819564188427; 221 class->KronToIndex->coeff[1] = -0.0333590360661; 222 class->KronToIndex->coeff[2] = 0.00814022994725; 223 224 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 225 226 psArrayAdd(classArray, 4, class); 227 psFree (class); 228 241 # include "psphotSersicGuess.01.01.h" 242 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 243 244 psArrayAdd(classArray, 4, class); 245 psFree (class); 246 229 247 // image.01.02.fit.dat: PSFratio : 2.0, ASPratio : 0.5 230 248 class = psphotSersicModelClassAlloc(); … … 239 257 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 240 258 241 // major: C0: 0.0394644381614, C1: -0.00261362634784 242 class->IndexToMajor->coeff[0] = 0.0394644381614; 243 class->IndexToMajor->coeff[1] = -0.00261362634784; 244 245 // minor: C0: -0.314123499959, C1: 0.0215627071372 246 class->IndexToMinor->coeff[0] = -0.314123499959; 247 class->IndexToMinor->coeff[1] = 0.0215627071372; 248 249 // MagOffset: C0: 0.00475524952411, C1: -0.0960576544787 250 class->IndexToTotalMag->coeff[0] = 0.00475524952411; 251 class->IndexToTotalMag->coeff[1] = -0.0960576544787; 252 253 // KronMag: C0: -2.77961654208, C1: 0.719625939973, C2: -0.0772103821458 254 class->KronToIndex->coeff[0] = -2.77961654208; 255 class->KronToIndex->coeff[1] = 0.719625939973; 256 class->KronToIndex->coeff[2] = -0.0772103821458; 257 258 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 259 # include "psphotSersicGuess.01.02.h" 260 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 259 261 260 262 psArrayAdd(classArray, 4, class); … … 273 275 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 274 276 275 // major: C0: 0.0966828791109, C1: 0.0508749927221 276 class->IndexToMajor->coeff[0] = 0.0966828791109; 277 class->IndexToMajor->coeff[1] = 0.0508749927221; 278 279 // minor: C0: -0.163878057365, C1: 0.0621817242826 280 class->IndexToMinor->coeff[0] = -0.163878057365; 281 class->IndexToMinor->coeff[1] = 0.0621817242826; 282 283 // MagOffset: C0: -0.0584285249407, C1: -0.115758644152 284 class->IndexToTotalMag->coeff[0] = -0.0584285249407; 285 class->IndexToTotalMag->coeff[1] = -0.115758644152; 286 287 // KronMag: C0: -4.41677343695, C1: 1.23569951267, C2: -0.131733958476 288 class->KronToIndex->coeff[0] = -4.41677343695; 289 class->KronToIndex->coeff[1] = 1.23569951267; 290 class->KronToIndex->coeff[2] = -0.131733958476; 291 292 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 277 # include "psphotSersicGuess.01.03.h" 278 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 279 280 psArrayAdd(classArray, 4, class); 281 psFree (class); 282 283 // image.02.00.fit.dat: PSFratio : 0.5, ASPratio : 0.33 284 class = psphotSersicModelClassAlloc(); 285 286 class->PSFratioMin = 0.5; 287 class->PSFratioMax = 0.8; 288 class->ASPratioMin = 0.25; 289 class->ASPratioMax = 0.41; 290 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 291 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 292 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 293 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 294 295 # include "psphotSersicGuess.02.00.h" 296 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 293 297 294 298 psArrayAdd(classArray, 4, class); … … 298 302 class = psphotSersicModelClassAlloc(); 299 303 300 class->PSFratioMin = 1.0;304 class->PSFratioMin = 0.8; 301 305 class->PSFratioMax = 1.5; 302 306 class->ASPratioMin = 0.25; … … 307 311 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 308 312 309 // major: C0: -0.154899753946, C1: -0.0193502412043 310 class->IndexToMajor->coeff[0] = -0.154899753946; 311 class->IndexToMajor->coeff[1] = -0.0193502412043; 312 313 // minor: C0: -0.154899753946, C1: -0.0193502412043 314 class->IndexToMinor->coeff[0] = -0.154899753946; 315 class->IndexToMinor->coeff[1] = -0.0193502412043; 316 317 // MagOffset: C0: -0.696799097791, C1: 0.098950200942 318 class->IndexToTotalMag->coeff[0] = -0.696799097791; 319 class->IndexToTotalMag->coeff[1] = 0.098950200942; 320 321 // KronMag: C0: -0.567489477137, C1: 0.00400934329328, C2: -0.00641637764069 322 // XXX use a linear fit? 323 class->KronToIndex->coeff[0] = -0.567489477137; 324 class->KronToIndex->coeff[1] = 0.00400934329328; 325 class->KronToIndex->coeff[2] = -0.00641637764069; 326 327 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 313 # include "psphotSersicGuess.02.01.h" 314 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 328 315 329 316 psArrayAdd(classArray, 4, class); … … 342 329 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 343 330 344 // major: C0: -0.227923466363, C1: 0.078789082243 345 class->IndexToMajor->coeff[0] = -0.227923466363; 346 class->IndexToMajor->coeff[1] = 0.078789082243; 347 348 // minor: C0: -0.39010838322, C1: -0.0191311211209 349 class->IndexToMinor->coeff[0] = -0.39010838322; 350 class->IndexToMinor->coeff[1] = -0.0191311211209; 351 352 // MagOffset: C0: -0.196058611899, C1: -0.0364610432252 353 class->IndexToTotalMag->coeff[0] = -0.196058611899; 354 class->IndexToTotalMag->coeff[1] = -0.0364610432252; 355 356 // KronMag: C0: -1.94707725307, C1: 0.296502645791, C2: -0.0225310468023 357 class->KronToIndex->coeff[0] = -1.94707725307; 358 class->KronToIndex->coeff[1] = 0.296502645791; 359 class->KronToIndex->coeff[2] = -0.0225310468023; 360 361 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 331 # include "psphotSersicGuess.02.02.h" 332 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 362 333 363 334 psArrayAdd(classArray, 4, class); … … 376 347 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 377 348 378 // major: C0: -0.00875235291975, C1: 0.0644897947208 379 class->IndexToMajor->coeff[0] = -0.00875235291975; 380 class->IndexToMajor->coeff[1] = 0.0644897947208; 381 382 // minor: C0: -0.250701690848, C1: 0.0431820606974 383 class->IndexToMinor->coeff[0] = -0.250701690848; 384 class->IndexToMinor->coeff[1] = 0.0431820606974; 385 386 // MagOffset: C0: -0.158069871256, C1: -0.0811671351817 387 class->IndexToTotalMag->coeff[0] = -0.158069871256; 388 class->IndexToTotalMag->coeff[1] = -0.0811671351817; 389 390 // KronMag: C0: -3.6119244064, C1: 0.8631113861, C2: -0.0853296107645 391 class->KronToIndex->coeff[0] = -3.6119244064; 392 class->KronToIndex->coeff[1] = 0.8631113861; 393 class->KronToIndex->coeff[2] = -0.0853296107645; 394 395 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 349 # include "psphotSersicGuess.02.03.h" 350 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 351 352 psArrayAdd(classArray, 4, class); 353 psFree (class); 354 355 // image.03.00.fit.dat: PSFratio : 0.5, ASPratio : 0.2 356 class = psphotSersicModelClassAlloc(); 357 358 class->PSFratioMin = 0.5; 359 class->PSFratioMax = 0.8; 360 class->ASPratioMin = 0.20; 361 class->ASPratioMax = 0.25; 362 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 363 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 364 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 365 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 366 367 # include "psphotSersicGuess.03.00.h" 368 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 396 369 397 370 psArrayAdd(classArray, 4, class); … … 401 374 class = psphotSersicModelClassAlloc(); 402 375 403 class->PSFratioMin = 1.0; 404 class->PSFratioMax = 1.5; 405 class->ASPratioMin = 0.20; 406 class->ASPratioMax = 0.25; 407 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 408 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 409 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 410 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 411 412 // major: C0: -0.212431708382, C1: 0.00426679037981 413 class->IndexToMajor->coeff[0] = -0.212431708382; 414 class->IndexToMajor->coeff[1] = 0.00426679037981; 415 416 // minor: C0: -0.212431708382, C1: 0.00426679037981 417 class->IndexToMinor->coeff[0] = -0.212431708382; 418 class->IndexToMinor->coeff[1] = 0.00426679037981; 419 420 // MagOffset: C0: -0.62070857795, C1: 0.000773428325368 421 class->IndexToTotalMag->coeff[0] = -0.62070857795; 422 class->IndexToTotalMag->coeff[1] = 0.000773428325368; 423 424 // KronMag: C0: -0.460478728787, C1: 0.00587256401903, C2: -0.002344873666 425 class->KronToIndex->coeff[0] = -0.460478728787; 426 class->KronToIndex->coeff[1] = 0.00587256401903; 427 class->KronToIndex->coeff[2] = -0.002344873666; 428 429 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 376 class->PSFratioMin = 0.8; 377 class->PSFratioMax = 1.5; 378 class->ASPratioMin = 0.20; 379 class->ASPratioMax = 0.25; 380 class->KronToIndex = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 2); 381 class->IndexToTotalMag = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 382 class->IndexToMajor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 383 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 384 385 # include "psphotSersicGuess.03.01.h" 386 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 430 387 431 388 psArrayAdd(classArray, 4, class); … … 444 401 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 445 402 446 // major: C0: -0.385105744329, C1: 0.066302247629 447 class->IndexToMajor->coeff[0] = -0.385105744329; 448 class->IndexToMajor->coeff[1] = 0.066302247629; 449 450 // minor: C0: -0.385105744329, C1: 0.066302247629 451 class->IndexToMinor->coeff[0] = -0.385105744329; 452 class->IndexToMinor->coeff[1] = 0.066302247629; 453 454 // MagOffset: C0: -0.359723538992, C1: 0.00907435268225 455 class->IndexToTotalMag->coeff[0] = -0.359723538992; 456 class->IndexToTotalMag->coeff[1] = 0.00907435268225; 457 458 // KronMag: C0: -1.42088663998, C1: 0.0988810020043, C2: -0.00428297294884 459 class->KronToIndex->coeff[0] = -1.42088663998; 460 class->KronToIndex->coeff[1] = 0.0988810020043; 461 class->KronToIndex->coeff[2] = -0.00428297294884; 462 463 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 403 # include "psphotSersicGuess.03.02.h" 404 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 464 405 465 406 psArrayAdd(classArray, 4, class); … … 478 419 class->IndexToMinor = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 479 420 480 // major: C0: -0.132561970043, C1: 0.064707352393 481 class->IndexToMajor->coeff[0] = -0.132561970043; 482 class->IndexToMajor->coeff[1] = 0.064707352393; 483 484 // minor: C0: -0.195782196124, C1: -0.0457728222883 485 class->IndexToMinor->coeff[0] = -0.195782196124; 486 class->IndexToMinor->coeff[1] = -0.0457728222883; 487 488 // MagOffset: C0: -0.208808020613, C1: -0.0605412708629 489 class->IndexToTotalMag->coeff[0] = -0.208808020613; 490 class->IndexToTotalMag->coeff[1] = -0.0605412708629; 491 492 // KronMag: C0: -3.01650012413, C1: 0.618382890037, C2: -0.0615504992544 493 class->KronToIndex->coeff[0] = -3.01650012413; 494 class->KronToIndex->coeff[1] = 0.618382890037; 495 class->KronToIndex->coeff[2] = -0.0615504992544; 496 497 psphotSersicModelClassSetIndexRange(class, 0.5, 6.0); 421 # include "psphotSersicGuess.03.03.h" 422 psphotSersicModelClassSetIndexRange(class, 1.0, 4.0); 498 423 499 424 psArrayAdd(classArray, 4, class);
Note:
See TracChangeset
for help on using the changeset viewer.
